shithub: neindaw

ref: 0acd2208855ac7e5c1e2499614c50828a1ace0de
dir: /README.md/

View raw version
# faust9p

Tools to compile [FAUST](https://faust.grame.fr) DSP code to a 9p
server, provide UI to control DSP, etc.

WIP, nothing to look at yet

## 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, `raw` 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`.  `pcm` is the same but
is of format directly supported by `/dev/dsp` (two channels, 44100Hz).

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.

Several DSPs may be connected by chaining their `raw` interfaces
together.  If some parameters need to be changed dynamically during
processing with frame accuracy, it can be achieved by running the
chain for a chunk of data, changing the parameters, then continuing
processing.