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.