diff options
Diffstat (limited to 'share/scripts')
-rw-r--r-- | share/scripts/_midigenerator2.lua | 9 | ||||
-rw-r--r-- | share/scripts/_rawmidi.lua | 7 | ||||
-rw-r--r-- | share/scripts/midimon.lua | 7 |
3 files changed, 16 insertions, 7 deletions
diff --git a/share/scripts/_midigenerator2.lua b/share/scripts/_midigenerator2.lua index 6bd904b097..3dcb378d88 100644 --- a/share/scripts/_midigenerator2.lua +++ b/share/scripts/_midigenerator2.lua @@ -11,6 +11,11 @@ function dsp_ioconfig () return { { midi_in = 1, midi_out = 1, audio_in = -1, audio_out = -1}, } end +function dsp_configure (ins, outs) + n_out = outs + n_out:set_midi (0) +end + function dsp_runmap (bufs, in_map, out_map, n_samples, offset) local ob = out_map:get (ARDOUR.DataType ("midi"), 0) if ob ~= ARDOUR.ChanMapping.Invalid then @@ -28,7 +33,5 @@ function dsp_runmap (bufs, in_map, out_map, n_samples, offset) ba:add ({0x80, 64, 127}) mb:push_back (n_samples - 1 - offset, ba:size (), ba:to_array()); end - - -- passthrough audio, apply pin/channel mapping - ARDOUR.DSP.process_map (bufs, in_map, out_map, n_samples, offset, ARDOUR.DataType ("audio")) + ARDOUR.DSP.process_map (bufs, n_out, in_map, out_map, n_samples, offset) end diff --git a/share/scripts/_rawmidi.lua b/share/scripts/_rawmidi.lua index dba45f5483..426feb6652 100644 --- a/share/scripts/_rawmidi.lua +++ b/share/scripts/_rawmidi.lua @@ -14,6 +14,10 @@ function dsp_ioconfig () return { { midi_in = 1, midi_out = 1, audio_in = -1, audio_out = -1}, } end +function dsp_configure (ins, outs) + n_out = outs +end + -- "dsp_runmap" uses Ardour's internal processor API, eqivalent to -- 'connect_and_run()". There is no overhead (mapping, translating buffers). -- The lua implementation is responsible to map all the buffers directly. @@ -41,8 +45,7 @@ function dsp_runmap (bufs, in_map, out_map, n_samples, offset) -- The following code is needed with "dsp_runmap" to work for arbitrary pin connections -- this passes though all audio/midi data unprocessed. - ARDOUR.DSP.process_map (bufs, in_map, out_map, n_samples, offset, ARDOUR.DataType ("audio")) - ARDOUR.DSP.process_map (bufs, in_map, out_map, n_samples, offset, ARDOUR.DataType ("midi")) + ARDOUR.DSP.process_map (bufs, n_out, in_map, out_map, n_samples, offset) -- equivalent lua code. -- NOTE: the lua implementation below is intended for io-config [-1,-1]. diff --git a/share/scripts/midimon.lua b/share/scripts/midimon.lua index 7f58fd34de..a4af172458 100644 --- a/share/scripts/midimon.lua +++ b/share/scripts/midimon.lua @@ -54,13 +54,16 @@ function dsp_init (rate) end end +function dsp_configure (ins, outs) + n_out = outs +end + function dsp_runmap (bufs, in_map, out_map, n_samples, offset) local pos = self:shmem():atomic_get_int(0) local buffer = self:shmem():to_int(1):array() -- passthrough all data - ARDOUR.DSP.process_map (bufs, in_map, out_map, n_samples, offset, ARDOUR.DataType ("audio")) - ARDOUR.DSP.process_map (bufs, in_map, out_map, n_samples, offset, ARDOUR.DataType ("midi")) + ARDOUR.DSP.process_map (bufs, n_out, in_map, out_map, n_samples, offset) -- then fill the event buffer local ib = in_map:get (ARDOUR.DataType ("midi"), 0) -- index of 1st midi input |