diff options
author | Julien "_FrnchFrgg_" RIVAUD <frnchfrgg@free.fr> | 2016-08-17 02:04:27 +0200 |
---|---|---|
committer | Julien "_FrnchFrgg_" RIVAUD <frnchfrgg@free.fr> | 2016-08-17 02:04:27 +0200 |
commit | 7fa99abc3a014ee96a2f97de7b1570e407cb22ef (patch) | |
tree | 8a96199297a3b0ac9a68b375f5f42abb9859ae53 /scripts/_midi_rewrite.lua | |
parent | b48e803cf65b8437e7268e59199d65a3247b73ac (diff) | |
download | ardour-7fa99abc3a014ee96a2f97de7b1570e407cb22ef.zip ardour-7fa99abc3a014ee96a2f97de7b1570e407cb22ef.tar.gz ardour-7fa99abc3a014ee96a2f97de7b1570e407cb22ef.tar.bz2 |
These are not the scripts you're looking for
Diffstat (limited to 'scripts/_midi_rewrite.lua')
-rw-r--r-- | scripts/_midi_rewrite.lua | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/scripts/_midi_rewrite.lua b/scripts/_midi_rewrite.lua new file mode 100644 index 0000000..4dfc28a --- /dev/null +++ b/scripts/_midi_rewrite.lua @@ -0,0 +1,34 @@ +ardour { + ["type"] = "session", + name = "Rewrite Midi", + license = "MIT", + author = "Ardour Lua Task Force", + description = [[An example session script preprocesses midi buffers.]] +} + +function factory () + -- this function is called in every process cycle, before processing + return function (n_samples) + _, t = Session:engine ():get_ports (ARDOUR.DataType.midi (), ARDOUR.PortList ()) + for p in t[2]:iter () do + if not p:receives_input () then goto next end + + if not p:name () == "MIDI/midi_in 1" then goto next end + + midiport = p:to_midiport () + assert (not midiport:isnil ()) + mb = midiport:get_midi_buffer (n_samples); + + events = mb:table() -- copy event list into lua table + mb:silence (n_samples, 0); -- clear existing buffer + + for _,e in pairs (events) do + -- e is-a http://manual.ardour.org/lua-scripting/class_reference/#Evoral:MidiEvent + e:set_channel (2) + mb:push_event (e) + end + + ::next:: + end + end +end |