This one is simple. Bought a Volca FM, connected with a usb-midi cable, sent it midi notes from Sonic Pi. It worked Oh, I had to switch it on first. Very low latency, nice sounds. After all the shenanigans trying to get various software synths to work on Raspberry Pi this was fresh air.
Iāve got this running in a SPi buffer, one loop takes local OSC and sends MIDI to the volca. The other one sends a sync note every 4 bars or so to a locally running VCV Rack to reset itās clock.
#Osc2Midi V2
midi_all_notes_off
#Local Sync Pulse
live_loop :osc2midi_localsync do
use_real_time
n,v,d,ch = sync "/osc:127.0.0.1:4560/sync"
midi n, v, channel: ch, sustain: d, port: "loopmidi_port"
end
#Volca
live_loop :osc2midi_volca do
use_real_time
n,v,d,ch = sync "/osc:127.0.0.1:4560/midi"
midi n, v, channel: ch, sustain: d, port: "usb_midi_interface"
end
On a remote PC I have this similar script that receives OSC and sends MIDI notes to its VCV Rack
midi_all_notes_off
live_loop :osc2midi_recv do
use_real_time
n,v,d,ch = sync "/osc:192.168.1.64:4560/midi"
midi n, v, sustain: d, channel: ch, port: "loopmidi_port"
end
On my āConductor PCā I simply send OSC notes to whatever remote device I choose, more or less as if they were play
commands. This little bit of abstraction will make it easier to set things up, integrate other hardware, and allow switching between voices in the moment.
#Little ARP
12.times do
osc "/midi", notes["34262847".ring[look].to_i],127,0.2,2 if "x-x-x-xxx".ring[tick]=="x"
end