diff options
Diffstat (limited to 'configs/demo.lua')
-rw-r--r-- | configs/demo.lua | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/configs/demo.lua b/configs/demo.lua new file mode 100644 index 0000000..24a8396 --- /dev/null +++ b/configs/demo.lua @@ -0,0 +1,42 @@ +-- This example MIDIMonster Lua script spreads one input channel onto multiple output +-- channels using a polynomial function evaluated at multiple points. This effect can +-- be visualized e.g. with martrix (https://github.com/cbdevnet/martrix). + +-- The polynomial to evaluate +function polynomial(x) + return math.exp(-40 * input_value("width") * (x - input_value("offset")) ^ 2) +end + +-- Evaluate and set output channels +function evaluate() + for chan=0,10 do + output("out" .. chan, polynomial((1 / 10) * chan)) + end +end + +-- Handler functions for the input channels +function offset(value) + evaluate() +end + +function width(value) + evaluate() +end + +-- This is an example showing a simple chase running on its own without the need +-- (but the possibility) for external input + +-- Global value for the current step +current_step = 0 + +function step() + if(current_step > 0) then + output("dim", 0.0) + else + output("dim", 1.0) + end + + current_step = (current_step + 1) % 2 +end + +interval(step, 1000) |