Sonic Pi riceve MIDI da qualsiasi controller collegato. Puoi suonare le note con una tastiera o mappare le manopole ai parametri del codice, dal vivo.
# suona quando premi un tasto della tastiera MIDI
live_loop :tastiera do
note, velocity = sync "/midi:*/note_on"
synth :piano, note: note, amp: velocity / 127.0
end
# usa una manopola per pilotare il cutoff
live_loop :basso do
cutoff = (get(:knob) || 70)
synth :tb303, note: :e2, cutoff: cutoff, release: 0.3
sleep 0.25
end
Ogni evento MIDI diventa un messaggio che intercetti con sync "/midi:.../note_on". I valori delle manopole li leggi con get/set, aggiornandoli mentre suoni.
Il risultato: un'esibizione dove la tastiera controlla le note e le manopole plasmano il suono, mentre il codice resta il motore. Hardware ed editing dal vivo che si fondono: l'essenza di un set di live coding.