shithub: neindaw

Download patch

ref: 1110500359d75192a9e224f90fe6cc679a6e0a25
parent: 72f6206d3fbe5c94479d5b0eaa6f79bcab8a8911
author: Sigrid Haflínudóttir <ftrvxmtrx@gmail.com>
date: Sun Dec 29 23:20:44 EST 2019

add more todo and clean up readme a bit

--- a/README.md
+++ b/README.md
@@ -35,7 +35,7 @@
 	audio/pcmconv -i f32c2r44100 -l 128000 < data > /dev/audio
 
 # increase the delay of A oscillator
-% echo 0.2 > 'Kick Drum/a/delay/ctl' # make it
+% echo 0.2 > 'Kick Drum/a/delay/ctl'
 
 # now you can repeat the listen command to hear the difference
 ```
@@ -43,18 +43,15 @@
 ## Description
 
 A DSP fs presents an interface to create instances of a DSP class by
-reading the `clone` file.  In the resulting directory `ctl` is used to
-read general info about the dsp, `data` is used to supply input to the
-DSP (if it has any inputs) by writing to it, and output can be read
-from it.  The format is raw stream of `float`.
+reading the `clone` file.  In the resulting directory `metadata` is
+used to read general info about the dsp, `data` is used to supply
+input to the DSP (if it has any inputs) by writing to it, and output
+can be read from it.  The format is raw stream of `float`.
 
 Each DSP instance, in addition to the mentioned files, provides a file
 tree that reflects the UI elements.  UI elements may provide `ctl`
 file to read initial and current, maximum and minimum, step, and may
-be used to write a new value to it.  File `value` is for watching the
-value of the UI element change: first read gives current value and a
-number of samples processed before the change, next read is blocked
-until the value is changed.
+be used to write a new value to it.
 
 Several DSPs may be connected by chaining their `data` interfaces
 together.  If some parameters need to be changed dynamically during
@@ -65,3 +62,14 @@
 ## TODO
 
  * a program to control DSP through an actual UI in rio
+ * `<ui>/value` to watch the changes, add frame offset as well to know
+   when it actually changed
+ * optional frame offsets for all commands, perhaps that's easier than
+   running and stopping the processing all the time
+ * `reset` command for groups
+ * forbid writing values that are out of min/max range: return an error
+ * add writable `metadata` for each instance
+ * allow adding new key/values to `metadata`
+ * add some way to read and write the whole configuration of an instance
+   in an easy way, so instances can be cloned, or configs saved to disk
+   as presets