What is Protoplug?
Protoplug is a
plugin that lets you load and edit
scripts as audio effects and instruments. The scripts can process audio and
MIDI, display their own interface, and use external libraries.
builds for Windows, Mac OS X and
Linux. This means that all protoplug scripts are compatible with these
platforms and can be loaded into a huge amount of audio software
(glory to JUCE
Use the speed of LuaJIT
and perform DSP tasks as efficiently as old school C implementations.
Free and open source:
Want a new feature? Add it yourself. The
source is MIT-licensed and available on Github
Simple GUI and MIDI-out
local function clamp (x, min, max)
return math.min (math.max (x, min), max)
function plugin.processBlock (samples, smax)
for i = 0, smax do
samples[i] = clamp (samples[i], -0.1, 0.1) -- left
samples[i] = clamp (samples[i], -0.1, 0.1) -- right
This bare-bones distortion clips the signal to a fixed value.
The above examples are pretty lame, but should serve their humble
demonstration purposes: the scripts use the
and work as fully functional plugins.
More scripts can be found in the standard distribution's
Made any cool protoplug scripts? You can contribute them by
sending them to me
submitting them as a pull request
add them to the distribution or to the future scripts repository (currently in
early planning stage).
There are very few on-the-fly scriptable VSTs out there. In fact, the
only real contender is
Study, research and prototyping are good causes, and this is fast enough that
you can also use it for real-world applications.
We've seen enough raving accounts of LuaJIT's now legendary performance, so
let's try it in the very demanding field of realtime audio. So far, the only
slowdown is that all floating-point operations are done with
does not always have an impact
, but it can be slower than vectorized SSE float
Latest binary release: 1.2.0