I am not a sonic pi master but used it sometime in the past. (Great program, Sam thanks!) I could not find a solution to my problem by a search for the posts. So my question:
Is there a way to sync a couple of sonic pi machines in a learning group? This might be needed to add external hardware synths as well. Thanks for any solution!
@bitwo - see the following for similar discussion:
Also, synchronising multiple instances of Sonic Pi using Ableton link is what Sam is now working towards, so hopefully native multi-user jamming is not too far away
I am not on a network but separated machines mixed PC/Raspberryand hardware synthesizers. I am not using any DAW with this setup. (I sometimes use DAW’s for more professional purposes.)
My objective is to get software and hardware synced as simple as possible, at best by a simple sync signal as it is the use chaining for instance the Korg Volcas.
Simply chaining sync out from the main synth to sync in an sync out to sync in …
just for reference, Ableton’s Link technology doesn’t require a DAW. It’s simply a tool for multiple pieces of music software to talk together on a network and share a common timeline to enable them to synchronise. The next version of Sonic Pi will hopefully include support for this and will enable multiple instances of Sonic Pi running on different computers connected to the same network to synchronise with each other. It will also enable Sonic Pi to synchronise with any software that supports Link - which includes many DAWs, VJ software and iPad apps.
When synchronising with external tools/systems/hardware from Sonic Pi, there are 3 other main approaches:
MIDI (either note on events or sharing a MIDI clock)
OSC (sending explicit network messages)
Audio clicks (as found on some analogue synths)
Note that eurorack synths and other modular synths often use voltage signals for this but without dedicated hardware that can talk to a computer this isn’t something a regular PC supports. It could potentially be something that could be made with the right hardware connected to the GPIO pins of a Raspberry Pi though.
If you’re looking specifically to connect to a Volca via the audio sync signal, you just need to record one of the clicks as a sample (interestingly this is something I was actually thinking about doing and including in a future version of Sonic Pi only last night) and then play that sample out of the sound card and pass the signal to the Volca.
Of course, this would mean that the version of Sonic Pi that’s generating the clock signals wouldn’t also be able to generate audio as they would both conflict. Therefore, to generate clock signals and audio, you’ll need a sound card with multiple out channels and use the :sound_out FX to send the clock signal to the specific audio channel that’s directly connected to the Korg.
I have looked around and there might be a solution. Actually I do not know if it works.
There are adapter cables USB Interface Konverter to 5 pin In Out Midi available. Such converters are problematic. You only can connect a device on one side with a host on the other.
It should be possible to connect the USB from PC to the MIDI in of a Korg Volca (in my example application). This should be possible with any other PC-Synth (USB-MIDI) connection as well. As long as the USB-plug is the host and the MIDI-plug the device. You cannot connect device-device this way!
If Sonic Pi and the Korg can synced this way one may use the sync signal of the Korg to chain any other devices syncable via this sync signal.
Hopefully this works?
This should work if Sonic Pi will send MIDI to USB? I have not tried yet, just ordered such a cable.
you can definitely use MIDI to synchronise an external synth with Sonic Pi. All you need is a MIDI out connector from your computer. This can either be via a dedicated USB->MIDI converter as you suggest or some sound cards also have a MIDI out built into them.
If your computer’s operating system can see your MIDI connection, then Sonic Pi should be able to as well.
If you’re sending clock signals from Sonic Pi to your external synth (connecting the MIDI cable to the MIDI-In port of your synth or using a USB connection directly with synths that have one) then the following code should get you started:
live_loop :midi_clock do
midi_clock_beat
sleep 1
end
This will send the correct number of MIDI clock ticks for a beat (24 ticks for a quarter note) to all connected MIDI devices.
For different tempos other than the default (60 BPM) then you can change the tempo as you would normally:
live_loop :midi_clock do
use_bpm 70
midi_clock_beat
sleep 1
end