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_midi_input ()
- return true
-end
-
-
local note_table = {}
local active_notes = {}
local phases = {}
local tme = 1
-- parse midi messages
- assert (type(mididata) == "table") -- global table of midi events (for now)
- for _,b in pairs (mididata) do
+ assert (type(midiin) == "table") -- global table of midi events (for now)
+ for _,b in pairs (midiin) do
local t = b["time"] -- t = [ 1 .. n_samples ]
-- synth sound until event