Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Sonic Pi (sonic-pi.net)
237 points by Bluestein 1 day ago | hide | past | favorite | 54 comments
 help



First few lines of the tutorial linked above the fold:

> Welcome to Sonic Pi. Hopefully you’re as excited to get started making your own sounds as I am to show you. It’s going to be a really fun ride where you’ll learn all about music, synthesis, programming, composition, performance and more.

> But wait, how rude of me! Let me introduce myself - I’m Sam Aaron - the chap that created Sonic Pi. You can find me at @samaaron on Twitter and I’d be more than happy to say hello to you. You might also be interested in finding out more about my Live Coding Performances where I code with Sonic Pi live in front of audiences.

> If you have any thoughts, or ideas for improving Sonic Pi - please pass them on - feedback is so helpful. You never know, your idea might be the next big feature!

In an older age, I might have thought this overly flowery or indulgent, but it's SO refreshing to see technical prose that's so clearly written by a real human with an individualized voice, tone, writing style, etc. I'm by no means anti-LLM, but I'm becoming incredibly fatigued at seeing the same style of marketing speak as the intro text to nearly all the new software I come across. Kudos to being a human and injecting your voice into an increasingly impersonal space.

The rest of the tutorial that I read below that doesn't disappoint, I intend to run through it despite my not so Copious Spare Time. I've really been looking to get into programmed music and this seems as good as a time and tool as any.

Cheers!


It's even more fatiguing to see so many comments about whether something is LLM-written or human-written. I hope we get past this stage, soon.

I don't want to read LLM written text (EDIT: just replying to parent comment, not implying at all that the tutorial might be written that way; it definitely does not look like it). It would be nice if people could just disclose when they used LLMs for their writing and how, then people who care can skip and people who don't can read. Of course this would have to come with not shaming the people who disclose actual use of LLM, otherwise we're back to square one.

For the record I didn’t use LLMs to write this tutorial.

Ah, sorry, I was only replying to the above comment but did not mean to imply that the tutorial might be AI-written; it very much looks human-written and generally a nice read :-)

Is it worth a human reading it or not? There are many, insipid human-writers (me included). Historically I got a lot of value of reading info posted on HN.

I can't say I agree with this is take; it's never occurred to me "how rude of this author of the tutorial not to plug their Twitter handle before teaching me the thing I came for". I have no reason to suspect this is from an LLM (I don't have much confidence in my ability to spot anything other than the most obvious examples) but I also don't see any reason to assume that someone couldn't just say something like "add an introduction paragraph plugging my Twitter and live performances in a friendly voice" and get something like this pretty quickly.

I have no reason to suspect this is from an LLM (I don't have much confidence in my ability to spot anything other than the most obvious examples) but I also don't see any reason to assume that someone couldn't just say something like "add an introduction paragraph plugging my Twitter and live performances in a friendly voice" and get something like this pretty quickly.

The text has been there since 2018. BERT wouldn't have been able to write like that. https://web.archive.org/web/20180312062205/http://sonic-pi.n...


Fair enough! I think my meta-point still stands though; I don't see any fundamental reason to assume that an LLM wouldn't generate something similar to this without needing a ton of effort in prompting.

One notable user of Sonic Pi is DJ Dave who streams her live coding now and then.

Short example (I don't know if she's using pi/strudel/whatever here but you get the idea):

https://youtube.com/shorts/pKs7NehiszY


I've only seen her using Strudel.

Sonic Pi looks nice. But as with Elixir, which I for most parts love, I really hate the `do end` syntax and I've never understood why someone would design something where you would have to type those words instead of using on pinky to press `shift` and another pinky to press either `{` or `}`.

`{ }` is just so instantly recognizable as a scope.


Here's DJ Dave using Sonic Pi: https://www.youtube.com/watch?v=w2s1DK1w3WI

Also, Sonic Pi was designed for teaching - the language priorities for professional programmers that touch-type are quite different to those for a learner. Lots of strict and unusual syntax can be a considerable and confusing barrier.

Also, Sonic Pi is implemented in Ruby, so you can totally use `{ }` just fine if that's your preference :-)


> Sonic Pi was designed for teaching

... coding. There many alternatives founded more in music.


Some Pascal influences ?

Not Sonic Pi, but Strudel. Chalk and cheese.

Love Sonic Pi. I can't make music but watching someone who can is fantastic. We had Sam (the creator of Sonic Pi) on stage at Goatmire Elixir and it was glorious. This year he comes back with a free 4 hour workshop, a talk and a DJ set at the end. It is going to be a blast.

Can't wait to hear his stuff in a venue where people are actually primed to move. Something very satisfying about code turning into music live.


If you are interested in a live demo / performance, see minute 7:13 from JuliaCon 2024 / PyData Eindhoven 2024:

https://youtu.be/g1Jsk3p_9O0?t=433&is=fXBtVdS6R178V7Lm


This is a great performance https://youtu.be/G1m0aX9Lpts


Sonic Pi is fantastic for live coding sessions. Used it once for a small demo, really intuitive and fun to noodle with.

I didn't look at it for a long time, and now I see that there is even a web version (which is probably not in sync with the main one): https://github.com/MrityunjayBhardwaj/SonicWeb

For the record, this isn't an official Sonic Pi web version - it's an LLM rewrite by a fan.

Understood. While I have your attention: it would be great if the official version would have a web version, too.

And thanks for your work!!


Of course - and it's what I've been working hard on in the background for the past year.

I ported SuperCollider's scsynth to Web Audio workouts (https://sonic-pi.net/supersonic/demo.html) late 2025, built an experimental spike called Sonic Tau (https://sonic-pi.net/tau). Then I wrapped SuperSonic in a native audio framework and used it to replace scsynth in Sonic Pi v5 (https://github.com/sonic-pi-net/sonic-pi/releases/tag/v5.0.0)

I'm now working on a new audio DSP engine building on this learning which combines my favourite aspects of scsynth and Erlang which I'll be discussing and revealing over on my Patreon over the coming months (https://patreon.com/samaaron)


Got it, great to hear that! On your Patreon now, and I sponsored via GitHub.

Oh amazing - thank-you so much for your kind and generous support! I can only do this work because of people such as yourself. Thanks!

Is there alternative syntax? I don't want to be typing "end" everywhere. Stack based, declarative, sexp, indentation, anything?

Overtone [0] is a precursor to Sonic Pi that uses Clojure. Sam used to work on it before he created Sonic Pi. I remember having great fun playing with it at a Clojure meetup in about 2011. Overtone appears to still be going if you want to check it out.

[0] https://github.com/overtone/overtone


There are alternative frameworks that also drive supercollider:

https://tidalcycles.org is built in Haskell

https://strudel.cc is a Javascript REPL


I am working on live coding WebDAW, written with ClojureScript (so a Lisp dialect): https://github.com/tmythicator/tritoncha

Live: https://tmythicator.github.io/tritoncha/

Right now it is based on mix of Three.js (for visuals) and Tone.js (for audio). I playing with the idea to rewrite the synth/sequencing part on WASM. But the live music scripting language will remain to be ClojureScript. As I see the Lisp language family to be much superior in expressiveness. Less syntax rules, more code as data


There are many languages like sonic pi now, search for "livecoding". The most prominent currently is strudel

Did anyone have claude read the syntax, and start generating music from english prompts, yet? Please post results!

I was working on a music programming language inspired by lisp

www.quadracollision.com/MeScript


I like the GUI/TUI.-

PS. Perhaps having it load a default file - and or offering sample files to load would be nice :)


examples is definitely a good idea, thanks for taking a look

Happy to. It has a very "tracker" feel to it. Neat.-

Clickable:

- https://www.quadracollision.com/MeScript


Saw him way over 10 years ago presenting it a Rubycon, it was incredible to watch and even thought I do understand a bit about music it's really hard for me to transport this concept to code event thought ruby is my language of choice. Tried it a few times since.

Maybe I should try again with some LLM help


I always wanted to test it out but it's really hard to get it run under Linux (e.g. Arch Linux) even though it runs fine on a Raspberry Pi

Hard in what way? Just install the Flatpak?

https://flathub.org/en/apps/net.sonic_pi.SonicPi


At least for me, the Flatpack produces no sound.

The appimage also produces no sound :(

v5 now has AppImage builds for Linux ARM64, x64 and x86: https://github.com/sonic-pi-net/sonic-pi/releases/tag/v5.0.0

I used to have this issue as the package in AUR had some issues but they should be resolved now?

I've seen this software before. I'd like to know what caught your attention about it again.

V5 seems to have been released about a month ago.

Sonic Pi was done in clojure once upon a time. Looks like ruby now?

Sam previously worked on Overtone, which is a Clojure library for driving the Supercollider synthesiser. I understand that he decided to create Sonic Pi in Ruby in order to make it more accessible to beginners. (And Ruby was all the rage back then.)

I haven't used Overtone in many years but it looks like it's still going: https://github.com/overtone/overtone


That must be what I was remembering. Thanks for the link.

It's been ruby for a long time.

I recall at some point the author started working on yet another version which used its own language instead of a ruby DSL but I don't know what happened with that

https://www.patreon.com/samaaron/posts/announcing-sonic-1126...


I nerd-sniped myself porting SuperCollider's scsynth audio DSP engine for that Tau5 project. This then turned into SuperSonic (https://sonic-pi.net/supersonic/demo.html). I then wrapped SuperSonic back into a native form and used it to replace scsynth in v5 of Sonic Pi (https://github.com/sonic-pi-net/sonic-pi/releases/tag/v5.0.0).

I'm now working on a new audio DSP engine which builds on all this learning which combines my favourite parts of scsynth and Erlang. I'll be discussing and sharing progress over on my Patreon (https://patreon.com/samaaron).

As a sneak peek - here's an experimental prototype of the kind of direction I'm headed in: https://sonic-pi.net/tau


So this is like OpenSCAD (code-based 3D modelling) but for music?


Wow. What an infinite rabbit hole to get lost in…

can it do karaoke



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: