I’m live corder in Japan.
I hope the live cording industry will be excited in the future.
There are various ways to live cording such as Tidalcycles and Gibber.(Of course I use Sonic Pi)
What do you think is the advantage of Sonic Pi?
Please tell me your opinion.
For me it came down to accessibility. Getting into Sonic Pi was easy compared to other environments.
Documentation. When I was starting out I looked at a lot of different environments (or instruments), and they all suffered from having very little (if any) documentation. Sonic Pi’s documentation is absolutely stellar, and not just compared with other Open Source programs (it’s a common problem in my perception that Open Source software is poorly documented). I have been using Sonic Pi for a year now, and I have run into one thing which wasn’t documented.
Readability. Sonic Pi (and ruby in general) is semantically very easy to understand. You can read a lot of the code out loud and understand what is going on. As I’ve progressed as a musician my code has become more compact, but I can still explain what’s going on to someone with no programming experience.
Potential for growth. The real beauty of Sonic Pi is that it embraces both the beginner and the master. It’s accessible enough that the beginner can make something catchy with a few hours of practice. But it also grows with you as you get better at using it as an instrument. Consider the code below. This is how I as a beginner would write a drum kit
live_loop :kick do
sample :drum_bass_hard
sleep 1
end
live_loop :snare do
sleep 1
sample :drum_snare_hard
sleep 1
end
live_loop :hats do
sample :drum_cymbal_hard
sleep 0.5
end
Here’s how I write it now, after a year of practice
live_loop :drums do
64.times do
tick
sample :drum_bass_hard if (spread 4,16).look
sample :drum_snare_hard if (spread 2,16).rotate(4).look
sample :drum_cymbal_hard if (spread 8,16).look
sleep 0.25
end
end
They sound the same, but the latter is much faster to type out, and the structure works for everything which is loop-based. I’ve become better at playing the instrument, and the instrument rewards me for it. It’s accessible without a skill ceiling, and that’s the main selling point in my opinion
I am now at the “simple is good” phase of my life. I’ve been a musician as well as a programmer for years. Sonic Pi’s coding paradigm is a good fit for me. Sonic Pi can create complex arrangements using simple (or as complex as you wish) coding constructs. For me, typing text into the IDE is more enjoyable than trying to figure out a new software DAW, which slider does this, which knob does that, etc. (The manual for Reaper for instance is over 400 pages!) Add the gigabytes of audio samples I have accumulated over the years and now can easily use and it’s a win-win.
I have a special interest in using fractal formulas to generate note sequences. Sonic Pi, using the Ruby scripting language in the IDE, exposes a number of useful libraries to meet my needs. Ie; the Math library where statements like this: nf = Math.log(5) / Math.log(3) work fine.
I’d also say that for anyone who is looking for a good entry point into programming, scripting in Ruby is a good start. As well, being to get immediate feedback in the way of audio that responds to ones programming input is an encouragement.
puts spread(5,8) #=>(ring true, false, true, false, true, true, false, true)
#the abovev ring has 8 entries, 5 of which are true, the remainder false
#the true entries aare distributed amongst the total 8 entries
a=(ring 1,2,3,4,5)
puts a #=>(ring 1,2,3,4,5)
puts a.rotate(3) #=>(ring 4, 5, 1, 2, 3)
#This can give a different starting point in the ring if used with tick to select an entry
#use of the spread function to give interesting rhythms
#works best if the two numbers are not related eg 5,8, 8,13 9,16
# the tick functions selects true or false as it selects round the ring
live_loop :testSpread do
sample :bd_haus if spread(5,8).tick
sleep 0.25
end
You can also use them together to good effect. The folliwng program has a live_loop to establish a regular beat, and the second live loop uses a spread function to give a rhythm, whose starting point is shifted every 16 passes through the loop, by the rotate method.
live_loop :metro do
sample :drum_cymbal_closed
sleep 1
end
live_loop :test do
tick
tick_set :foo,look/16
puts look,look(:foo)
sample :bd_haus if spread(5,8).rotate(look(:foo)).look
sleep 0.25
end
I think Sonic Pi’s main advantage is its programming nature. It doesn’t put you in a solid workflow, you are free to create your music however you want. Thanks to the programming nature, you can create virtual instruments or complex structures with just a relatively small amount of code and have a high reuse factor. It’s easy to learn and start with and hard to master I think code is way more expressive and precise than partitures and it’s easily accessible because everything is just text.
Without Sonic Pi I would most likely not be interested in music production.
It’s a really good question. I’ve spent many hours going down different rabbit holes chasing music and art creation: programming languages, visual environments, DAW’s, etc. I’m the king of the introductory tutorial! For instance, I just spent a fair portion of my holiday trying to get tidalcycles working.
I’d echo what others said above – it’s the coding aspect, which has a pretty easy on-ramp, but can grow with you as you grow in your coding skills and understanding of SP. I’d consider myself an advanced n00b at this point, but I’m happy with what I can do, and I’m beginning to get the gist of what some of the ninjas like robin.newman can do. I use it in my 8th grade CS class, and I find that students can easily create things they enjoy.
Having said that, it seems that a lot of the appeal depends on how your brain processes stuff – visually? code? a combo? I’m learning that my brain works best with code. Visual environments (like Max or PureData) offer something that works for the visual learner: boxes and lines connecting boxes, etc. I’m intrigued by it, but I find my fingers itching to type some code to make that happen!
So Sonic Pi works for people like me. I would also mention that the accessibility of SP is a huge plus. You download it and it just basically works. Having spent hours lately in dependency hell with tidalcycles (td, supercollider, haskell, atom, etc.), it’s such a pleasure to just launch Sonic Pi and get to work!
I just started coding for the first time because of Sonic Pi. My background is photography, guitar, graphic design, html/css. I have made music in Logic/Protools/Garageband. I have to say I am going through MagPi’s tutorial book and am loving coding sound. It’s very intuitive and I feel like it’s a new realm for me. Thanks everyone for their great reply’s!
Hi there @samaaron I definitely will! Im practicing everyday and I usuall am looping guitar riffs and soon will attempt integrating SonicPi! Can’t wait to show it off in the next CoderDojo! Greets from Aruba!
I don’t know a lot about other l.c. environments. I tried FoxDot originally, teaching it in a class, and the students had really problematic install issues. Then I found Sonic Pi and loved it’s trouble free install.
Second, I really like Supercollider, so having that tool available for creating my own sounds is really nice.l
Then, after getting into Sonic Pi, I liked how friendly and musical it was and got hooked.
lowtidefy - I’ve been away from Sonic-Pi for about 6 months. Kinda gave up until I found that my problems with Sonic-Pi were related to my laptop and the Realtek audio drivers. Now that I have that sorted out I’m starting all over again. I agree with your assessment of Sonic-Pi. I find it an intuitive way of thinking when it comes to music design.
Hey…
It’s seems to me that the strength of Sonic Pi is that it is accessible to beginners, while still letting you do elaborate things in the long run…
I feel like @samaaron took a 747 jet plane (SuperCollider), removed the super complex cockpit, and slapped the dashboard of an ordinary car on it…