ref: 1110500359d75192a9e224f90fe6cc679a6e0a25
parent: 72f6206d3fbe5c94479d5b0eaa6f79bcab8a8911
author: Sigrid Haflínudóttir <[email protected]>
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