News
Workshop interne avec l’équipe de l’EPFL-ECAL-lab pour évaluer lubyk. Si tout va bien, on aura quelques démos à mettre en ligne…
Nous travaillons actuellement sur le spectacle des bateaux pour nulle part prévu pour l’automne 2012.
Improved Midi objects
New MidiIn object, Lua scripts can receive midi events.
Midi messages in Lua
Lua scripts can now receive midi messages (set with the lua_pushmidi function of LuaScript). These messages appear as a table with the following capacities:
msg.channel -- midi channel msg.type -- msg type, see below -- 'NoteOn', 'NoteOff' msg.note -- note value as number msg.velocity -- note velocity -- 'Ctrl' msg.ctrl -- ctrl change number msg.value -- ctrl value -- Clock related: , 'Start', 'Stop', '.' (clock tick), 'Continue' -- Other: '?'
New MidiIn object
(the Midi object has been renamed to “MidiOut”)
The new midi in object receives midi events from other sources (use MidiIn.list to get sources list). Outputs are:
OUTLET(MidiIn,all) // 1 OUTLET(MidiIn,notes) // 2 OUTLET(MidiIn,ctrl) // 3 OUTLET(MidiIn,clock) // 4 OUTLET(MidiIn,tick) // 5
The ‘clock’ outlet can be used to start/stop and sync a beat machine. For example:
mii = MidiIn(0) mii.4 => l l = Lua(load:"beatmachine.lua") l => miout miout = MidiOut(0)
The lua script receives 24 ticks per quarter note (“noire”).
quantize input
This is a simple example to quantize midi input with rubyk:
mii = MidiIn() # midi input (virtual port) mii.2 => 2.v # send notes to 'set_value' port of Value (no bang) v = Value() mii.5 => b # send ticks to 'bang' b = Bang() b => v # send 'bang' to Value object outputs midi notes v => mio # send notes to midi out mio = MidiOut() # midi output (virtual port)