Hacker News

Bluestein
Sonic Pi sonic-pi.net

jyrkesh14 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!

ghusbands14 days 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.

Krssst14 days 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.

samaaron14 days ago

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

Krssst13 days 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 :-)

abirch14 days 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.

latexr13 days ago

I hope we don’t, or that if we do it’s because either it has become impossible to hide or everyone became honest about it.

Tons of conversations are fatiguing, such as climate change, the rise of totalitarianism, the erosion of rights, mass surveillance… These conversations will only cease when we fix the problems or give up on trying to fix them.

I feel your pain, I too am fatigued at these. But I’d rather criticise the ones causing the problem than the ones pointing it out.

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

onion2k14 days 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...

saghm13 days 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.

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

mellosouls14 days 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

svennidal14 days 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.

samaaron14 days 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 :-)

svennidal16 hours ago

Oh, that's awesome! Thank you!

Also, that DJ Dave song is a banger

chrisjj13 days ago

> Sonic Pi was designed for teaching

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

makapuf14 days ago

Some Pascal influences ?

chrisjj13 days ago

Not Sonic Pi, but Strudel. Chalk and cheese.

markkitti14 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

NDlurker14 days ago

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

raffael_de14 days ago

Tbarlow14 days ago

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

dirkk014 days 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

samaaron14 days ago

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

dirkk014 days 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!!

samaaron14 days 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)

dirkk014 days ago

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

samaaron14 days 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!

12714 days ago

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

chris_j14 days 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

donaldihunter14 days ago

There are alternative frameworks that also drive supercollider:

https://tidalcycles.org is built in Haskell

https://strudel.cc is a Javascript REPL

atimcha14 days 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

poulpy12314 days ago

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

roflmaostc14 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

Zetaphor14 days ago

Hard in what way? Just install the Flatpak?

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

ViscountPenguin14 days ago

At least for me, the Flatpack produces no sound.

disastronaut14 days ago

The appimage also produces no sound :(

samaaron14 days 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

lawn14 days ago

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

guytv14 days ago

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

[deleted]14 days agocollapsed

herbst14 days 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

kuil00914 days ago

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

riffraff14 days ago

V5 seems to have been released about a month ago.

vegnus14 days ago

I was working on a music programming language inspired by lisp

www.quadracollision.com/MeScript

Bluesteinop14 days ago

I like the GUI/TUI.-

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

vegnus14 days ago

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

Bluesteinop14 days ago

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

Clickable:

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

y1n014 days ago

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

chris_j14 days 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

y1n014 days ago

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

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

samaaron14 days 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

suprjami14 days ago

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

thiodrio14 days ago

classified14 days ago

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

[deleted]14 days agocollapsed

[deleted]14 days agocollapsed

brainzap14 days ago

can it do karaoke

hn-front (c) 2024 voximity
source