I’m looking to build a hardware instrument and have been evaluating Supercollider and Pure Data as possible sound/sequencing engines.
I have been leaning toward Supercollider and recently found Sonic Pi.
I’m curious to know what advantages the Sonic Pi environment offers over working directly in Supercollider.
Thanks so much for your input.
Think of Sonic-Pi as a window with a view on SuperCollider. The big plus is that you don’t have to write everything yourself to trigger a sound. You already have everything you need to play with some SynthDefs, PBinds, etc. All these things are presented in a complete new and simplified way: the Sonic-Pi syntax. You can still write your own SythDefs and include them in Sonic-Pi if you want.
You also have a powerful I/O for MIDI and OSC. Instead of writing your own, or instead of tweaking things, you have a shortcut to be immediately ready to make some music. Sonic-Pi is using SuperCollider as a sound server. You can’t do everything you want directly in Sonic-Pi, but you can prepare things and trigger them with Sonic-Pi later.
PS: I’m curious. If you want to build a hardware instrument, why are you looking at Sonic-Pi? Sonic-Pi cannot be used to develop software or to design electronic instruments.
What makes you so sure this is the case?
Sonic Pi is great for both of those things - assuming the semantics it provides matches the requitements of the thing you’re building. For example it’s great at routing OSC and MIDI to drive synths…
Hey Sam. I wasn’t trying to say it so abruptly, maybe I failed to nuance my words or the nuance got lost in translation.
Of course it’s great for routing OSC and MIDI and I said it in my previous post. For me, Sonic-Pi might be the most powerful I/O tool that I ever used to make music. I was simply talking about hardware synth architecture and design.
If I were trying to build a standalone brick type synthesizer, I would buy a Bela, a few knobs and I would code something with a MIDI / OSC input so I can trigger it with Sonic-Pi but I would not include Sonic-Pi directly in the hardware architecture. I was just expressing an opinion about what would be my way to do it.
EDIT : I think that we need to define more clearly what we are talking about. Are we talking about using Sonic-Pi as a control tool or as a sound engine type of thing?
The idea is to build a self contained drum synth and sequencer. The buttons and sensors on the hardware unit will send midi values to a Raspberry Pi running Sonic-Pi/Supercollider internally.
Is there an issue with the licensing of Sonic-Pi that would forbid this type of usage?
I wasn’t trying to be defensive - apologies if I came across in this manner. I was just curious as to why you would think that Sonic Pi cannot be used to develop software or to design electronic instruments
I totally see a valid use case for Sonic Pi being the brain of a small electronic instrument running on a Bela. I also see people using the audio server directly via the OSC interface and eschewing the GUI for a variety of different purposes. Of course, there are many situations where Sonic Pi wouldn’t be the best approach, but I would definitely argue there are some useful and valid situations for using it.
The license for sonic pi is, to my understanding, very permissive. You wont run into any issues making your own instrument with sonic pi.
However I see sonic pi more like a ready made instrument, like a guitar that already has all the strings conveniently on the fret and ready to strum and make music. Yes, sonic pi has powerful sequencing abilities and can do wonders to trigger samples and other synths and external instruments. But I think sonic pi is too big of a solution for this kind of problem.
If I were building an instrument I would gather my drums and synths and then used sonic pi to make a prototype. I think sonic pi would be cumbersome to serve as only a sequencer inside a bigger instrument especially since sonic pi is already a full instrument. I would plan out my instrument with sonic pi and then use pure data to build a sequencer for my instrument. Pure data is more fit in my opinion because it has no built in functionality, you have to patch it yourself. Need a sequencer, build it! If you don’t need some feature just don’t build them. This will create a less cluttered solution because if you just build a computer to run ableton live or sonic pi to trigger your instrument it would be overkill, because DAW’s and sonic pi have just way too many features.