Review – Sonic Pi

Been a while since I posted anything, so here is a quick one.

I finally got the notion to try out Sonic Pi. I was hoping it would be something I could get my two oldest kids in to so they would do some coding and make some music. But I struggled with the interface and language. I was wishing it was more like Scratch. Music is more visual to me, and notation with bars and notes is much better in my mind than three lines of non-intuitive text.
While Sonic Pi does have its own editor, it has some quirks I kept tripping over. For one, the default text size was way too big, and even though I changed the size in one buffer, it would still be too big in the other buffers, and defaulted back after I closed it. Another annoyance was that Ctrl-C works for copy, but Ctrl-V doesn’t paste. Middle click pastes, but it inserts where the mouse cursor is, not where the editing caret is.
The syntax feels a bit too terse, but maybe I’m just used to Python these days.
I think in the end what I wanted was almost a way to scan in some music, pick instruments, and have it play for me (player piano style). Having to write two lines, one for the note to play and one for the pause to let the note play before the next note, doesn’t feel right. It seems like from the examples that most of what makes it something usable is mashing together samples and beats in loops, which is fine for electronic backgrounds but not helpful if you want to recreate the Super Mario theme song.

So, after writing that, my 11 year old did manage to get going on it and recreated Zelda’s Lullaby.  I coached him a bit on using wait time between notes to do different note lengths, and making all the notes relative to each other so you could adjust the tempo.  We even looked up how to tweak the sounds to sustain longer notes.  It was a successful exercise, we tripped on syntax a few times, but even managed to add a ascii art comment at the top of the file.  Still seems like it would be easy to write a visual front end that output the text file.

Leave a Reply

Your email address will not be published. Required fields are marked *