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

2 Likes

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

15 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.

5 Likes

How does spread works? What means rotate(4)? Thank you!

Consider this program:

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
2 Likes

Hi there,

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 :slight_smile: 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.

Cu.

5 Likes

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!

6 Likes

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!

5 Likes

Hey @lowtidefy this is so lovely to hear and welcome to our community - I hope you stick around and share your experiences with us all here :slight_smile:

3 Likes

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!

1 Like

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.

How did you decide between the different options?

2 Likes

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.

3 Likes

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…

1 Like