3 name = "Midi Generator",
4 category = "Example", -- "Utility"
6 author = "Ardour Lua Task Force",
7 description = [[An Example Midi Generator for prototyping.]]
10 function dsp_ioconfig ()
11 return { { midi_out = 1, audio_in = 0, audio_out = 0}, }
14 local tme = 0 -- sample-counter
15 local seq = 1 -- sequence-step
16 local spb = 0 -- samples per beat
18 local midi_sequence = {
23 function dsp_init (rate)
26 if spb < 2 then spb = 2 end
29 function dsp_run (_, _, n_samples)
30 assert (type(midiout) == "table")
34 for time = 1,n_samples do -- not very efficient
35 -- TODO, timestamp the sequence in beats, calc/skip to next event
40 midiout[m]["time"] = time
41 midiout[m]["data"] = midi_sequence[seq]
45 if seq == #midi_sequence then seq = 1 else seq = seq + 1 end