local mb = midiport:get_midi_buffer (n_samples) -- get the midi-data buffers
local events = mb:table () -- copy event list into lua table
for _,e in pairs (events) do -- iterate over all events in the midi-buffer
- if bit32.band (e:buffer():array()[1], 0xf0) == 0x90 then -- note on
+ if (e:buffer():array()[1] & 0xf0) == 0x90 then -- note on
Session:maybe_enable_record (true) -- global record-enable from rt-context
-- maybe-enable may fail if there are no tracks or step-entry is active
-- roll transport if record-enable suceeded:
local r = math.random (0, 255)
local g = math.random (0, 255)
local b = math.random (0, 255)
- local rgba = bit32.lshift (r, 24) + bit32.lshift (g, 16) + bit32.lshift (b, 8) + 0xff
+ local rgba = (r << 24) + (g << 16) + (b << 8) + 0xff
grp:set_rgba(rgba)
end
end end
local d = b["data"] -- get midi-event
-- we ignore the midi channel
- if (#d == 3 and bit32.band (d[1], 240) == 144) then -- note on
+ if (#d == 3 and (d[1] & 240) == 144) then -- note on
local n = 1 + d[2];
active_notes[n] = active_notes[n] or {}
active_notes[n]["tvel"] = d[3]
end
- if (#d == 3 and bit32.band (d[1], 240) == 128) then -- note off
+ if (#d == 3 and (d[1] & 240) == 128) then -- note off
local n = 1 + d[2];
active_notes[n] = active_notes[n] or {}
active_notes[n]["tvel"] = 0
end
- if (#d == 3 and bit32.band (d[1], 240) == 176) then -- CC
+ if (#d == 3 and (d[1] & 240) == 176) then -- CC
if (d[2] == 120 or d[2] == 123) then -- panic
active_notes = {}
end