Sonic Pi(sonic-pi.net) |
> 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!
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...
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.
Short example (I don't know if she's using pi/strudel/whatever here but you get the idea):
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.
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 :-)
https://news.ycombinator.com/item?id=49208296
[22 days ago]
www.quadracollision.com/MeScript
https://tidalcycles.org is built in Haskell
https://strudel.cc is a Javascript REPL
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
Maybe I should try again with some LLM help
I haven't used Overtone in many years but it looks like it's still going: https://github.com/overtone/overtone
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'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
... coding. There many alternatives founded more in music.
Clickable:
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)