mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 23:35:03 +01:00
Simplify _midifilter.lua example
Instead of and-ing the first byte to extract the event type, it is simpler and easier to understand to bitwise-shift it, so that we don't get the result as a multiple of 2^4, but as values corresponding to the MIDI specification. Currently, a guard is put against events with completely empty data, though maybe ardour discards those earlier on since that would not be valid MIDI.
This commit is contained in:
parent
812cbdaca9
commit
3b1a6a350e
1 changed files with 4 additions and 3 deletions
|
|
@ -27,11 +27,12 @@ function dsp_run (_, _, n_samples)
|
|||
for _,b in pairs (midiin) do
|
||||
local t = b["time"] -- t = [ 1 .. n_samples ]
|
||||
local d = b["data"] -- get midi-event
|
||||
local event_type
|
||||
if #d == 0 then event_type = -1 else event_type = d[1] >> 4 end
|
||||
|
||||
if (#d == 3 and bit32.band (d[1], 240) == 144) then -- note on
|
||||
if (#d == 3 and event_type == 9) then -- note on
|
||||
tx_midi (t, d)
|
||||
end
|
||||
if (#d == 3 and bit32.band (d[1], 240) == 128) then -- note off
|
||||
elseif (#d == 3 and event_type = 8) then -- note off
|
||||
tx_midi (t, d)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue