NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Sonic Pi (sonic-pi.net)
jyrkesh 1 days ago [-]
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!

ghusbands 18 hours ago [-]
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.
Krssst 16 hours ago [-]
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.
samaaron 16 hours ago [-]
For the record I didn’t use LLMs to write this tutorial.
Krssst 14 hours ago [-]
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 :-)
abirch 17 hours ago [-]
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.
saghm 1 days ago [-]
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.
onion2k 23 hours ago [-]
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...

saghm 12 hours ago [-]
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.
mellosouls 20 hours ago [-]
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

svennidal 18 hours ago [-]
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.

samaaron 18 hours ago [-]
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 :-)

chrisjj 12 hours ago [-]
> Sonic Pi was designed for teaching

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

makapuf 18 hours ago [-]
Some Pascal influences ?
chrisjj 12 hours ago [-]
Not Sonic Pi, but Strudel. Chalk and cheese.
lawik 1 days ago [-]
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.

markkitti 1 days ago [-]
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

NDlurker 1 days ago [-]
This is a great performance https://youtu.be/G1m0aX9Lpts
raffael_de 18 hours ago [-]
Tbarlow 22 hours ago [-]
Sonic Pi is fantastic for live coding sessions. Used it once for a small demo, really intuitive and fun to noodle with.
dirkk0 20 hours ago [-]
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
samaaron 20 hours ago [-]
For the record, this isn't an official Sonic Pi web version - it's an LLM rewrite by a fan.
dirkk0 20 hours ago [-]
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!!

samaaron 20 hours ago [-]
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)

dirkk0 20 hours ago [-]
Got it, great to hear that! On your Patreon now, and I sponsored via GitHub.
samaaron 20 hours ago [-]
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!
127 22 hours ago [-]
Is there alternative syntax? I don't want to be typing "end" everywhere. Stack based, declarative, sexp, indentation, anything?
chris_j 22 hours ago [-]
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

donaldihunter 21 hours ago [-]
There are alternative frameworks that also drive supercollider:

https://tidalcycles.org is built in Haskell

https://strudel.cc is a Javascript REPL

atimcha 20 hours ago [-]
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

poulpy123 16 hours ago [-]
There are many languages like sonic pi now, search for "livecoding". The most prominent currently is strudel
guytv 21 hours ago [-]
Did anyone have claude read the syntax, and start generating music from english prompts, yet? Please post results!
20 hours ago [-]
vegnus 17 hours ago [-]
I was working on a music programming language inspired by lisp

www.quadracollision.com/MeScript

Bluestein 17 hours ago [-]
I like the GUI/TUI.-

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

vegnus 17 hours ago [-]
examples is definitely a good idea, thanks for taking a look
Bluestein 17 hours ago [-]
Happy to. It has a very "tracker" feel to it. Neat.-

Clickable:

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

herbst 22 hours ago [-]
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

roflmaostc 1 days ago [-]
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
Zetaphor 1 days ago [-]
Hard in what way? Just install the Flatpak?

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

ViscountPenguin 22 hours ago [-]
At least for me, the Flatpack produces no sound.
disastronaut 18 hours ago [-]
The appimage also produces no sound :(
samaaron 19 hours ago [-]
v5 now has AppImage builds for Linux ARM64, x64 and x86: https://github.com/sonic-pi-net/sonic-pi/releases/tag/v5.0.0
lawn 1 days ago [-]
I used to have this issue as the package in AUR had some issues but they should be resolved now?
kuil009 1 days ago [-]
I've seen this software before. I'd like to know what caught your attention about it again.
riffraff 1 days ago [-]
V5 seems to have been released about a month ago.
y1n0 1 days ago [-]
Sonic Pi was done in clojure once upon a time. Looks like ruby now?
chris_j 22 hours ago [-]
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

y1n0 15 hours ago [-]
That must be what I was remembering. Thanks for the link.
riffraff 1 days ago [-]
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...

samaaron 20 hours ago [-]
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

suprjami 1 days ago [-]
So this is like OpenSCAD (code-based 3D modelling) but for music?
thiodrio 1 days ago [-]
1 days ago [-]
20 hours ago [-]
classified 20 hours ago [-]
Wow. What an infinite rabbit hole to get lost in…
brainzap 18 hours ago [-]
can it do karaoke
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 05:33:46 GMT+0000 (Coordinated Universal Time) with Vercel.