its built on https://github.com/graue/luasynth
By itself, Luasynth doesn’t do very much. It only comes with a basic demo app for generating or processing audio offline, via the command line. To use that, install LuaJIT. You’ll probably also want SoX to convert into and out of the raw, 32-bit, floating-point audio format Luasynth uses.
Here’s an example:
sox input.wav -tf32 -c2 -r44100 -q -
| ./luasynth delay -len 83 -feedback 90
| ./luasynth amp -gain -6
| sox -tf32 -c2 -r44100 -q - -b16 delayed.wav
This adds a delay to input.wav, reduces the volume by 6 dB, and writes the output to delayed.wav. The -tf32 -c2 -r44100 options to SoX tell it to handle the format Luasynth uses, while -b16 converts the output file back to 16-bit, the resolution of CD-quality audio.
In this example, we’re using luasynth twice. The first usage
./luasynth delay -len 83 -feedback 90
creates a delay unit with the len knob (length of time to delay) set to 83 milliseconds and feedback (amount of feedback) set to 90%. The second usage
./luasynth amp -gain -6
creates an amp unit and sets the gain knob, which is in decibels, to -6. For a full list of available units, run ./luasynth help units, and for help on an individual one, run ./luasynth help .
The sample rate is assumed to be 44100 Hz by default, but can be changed by setting the environment variable RATE. For example, to work at 48KHz, type export RATE=48000 in the shell followed by similar commands to those above.