Example convolution plugin (Lua script, hardcoded IR)
[ardour.git] / scripts / synth1.lua
index 9d04e29ec12216dff5d2a229faaba5667ca535af..de68c58e46ee8d13550824fb43e6af266ee1c022 100644 (file)
@@ -3,29 +3,22 @@ ardour {
        name        = "Simple Synth",
        category    = "Instrument",
        license     = "MIT",
-       author      = "Robin Gareus",
-       email       = "robin@gareus.org",
-       site        = "http://gareus.org",
-       description = [[An Example Synth for prototyping.]]
+       author      = "Ardour Lua Task Force",
+       description = [[An Example Synth for Prototyping.]]
 }
 
 function dsp_ioconfig ()
        return
        {
-       --      { audio_in = 0, audio_out = -1}, -- any number of channels
-       --      { audio_in = 0, audio_out =  1}, -- values >  0, precisely N channels
-               { audio_in = 0, audio_out =  2}, -- values >  0, precisely N channels
-               { audio_in = 0, audio_out =  4}, -- values >  0, precisely N channels
-               { audio_in = 0, audio_out =  8}, -- values >  0, precisely N channels
-       --      { audio_in = 0, audio_out = -6}, -- values < -2, up to -N channels, here 1,..,6
+       --      { midi_in = 1, audio_in = 0, audio_out = -1}, -- any number of channels
+       --      { midi_in = 1, audio_in = 0, audio_out =  1}, -- values >  0, precisely N channels
+               { midi_in = 1, audio_in = 0, audio_out =  2}, -- values >  0, precisely N channels
+               { midi_in = 1, audio_in = 0, audio_out =  4}, -- values >  0, precisely N channels
+               { midi_in = 1, audio_in = 0, audio_out =  8}, -- values >  0, precisely N channels
+       --      { midi_in = 1, audio_in = 0, audio_out = -6}, -- values < -2, up to -N channels, here 1,..,6
        }
 end
 
-function dsp_has_midi_input ()
-       return true
-end
-
-
 local note_table = {}
 local active_notes = {}
 local phases = {}
@@ -80,17 +73,17 @@ function dsp_run (ins, outs, n_samples)
 
                local d = b["data"] -- get midi-event
                -- we ignore the midi channel
-               if (#d == 3 and bit32.band (d[1], 240) == 144) then -- note on
+               if (#d == 3 and (d[1] & 240) == 144) then -- note on
                        local n = 1 + d[2];
                        active_notes[n] = active_notes[n] or {}
                        active_notes[n]["tvel"] = d[3]
                end
-               if (#d == 3 and bit32.band (d[1], 240) == 128) then -- note off
+               if (#d == 3 and (d[1] & 240) == 128) then -- note off
                        local n = 1 + d[2];
                        active_notes[n] = active_notes[n] or {}
                        active_notes[n]["tvel"] = 0
                end
-               if (#d == 3 and bit32.band (d[1], 240) == 176) then -- CC
+               if (#d == 3 and (d[1] & 240) == 176) then -- CC
                        if (d[2] == 120 or d[2] == 123) then -- panic
                                active_notes = {}
                        end