What do you think is the advantage of Sonic Pi?

Hi, everyone! Thank you for reading.

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.

My SNS Account👇
Twitter:@YuIma_sound
Instagram:@yuima_music

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

5 Likes

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.

Cheers.

1 Like