neindaw/piper/README.md -rw-r--r-- 1.3 KiB
11bee08cSigrid Solveig Haflínudóttir fs: move a macro up the file 24 days ago



Piper reads human-readable commands from stdin, controls neindaw to produce sounds, mixes those together and writes the result to /dev/audio.

It's recommended to avoid using mixfs with piper since it causes timings to go wrong. Synth instances are created by piper automatically, automatic mixing is enabled by default unless -m is passed.

Running it with orca is pretty simple:

daw/ay -s ay -m /n/ay
daw/kick_drum -s kick -m /n/kick
games/orca -u /fd/3 |[3] daw/piper /n/ay /n/kick

Note that the order of "groups" (/n/ay and /n/kick) matters with the command language since the groups are addressed by their index.

See examples.


Piper accepts simple commands like so:


00 is first instance of the first group (/n/kick/0), C4 is the note, d is velocity (g == 1.0), 8 is duration (the higher, the less). Duration depends on the current bpm that can be set with a bpm120 command, for example.

Notes for the same instances can be connected with : like so:


In this case the second note is for the B oscillator of the kick drum, and ! is a way to "negate" the frequency value, so in fact it's C2 negative.

Commands can be separated with ;.

To change the global volume use vol100 to set it to 1.0.