README.md

piper

WIP.

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.

Commands

Piper accepts simple commands like so:

00C4d8

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:

00C4d8:!C2df

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.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t