
Sonic Pi is a code-based music creation and performance tool - threeme3
https://sonic-pi.net/
======
abetusk
Sam Aaron [1], the creator of Sonic-Pi, just released v3.2.0 [2].

I've only played around with Sonic-Pi a bit but I find it exceptional. It has
the sound quality that I would expect from a more professional tool while
still being accessible to the beginner and being programmer friendly. It's
also completely free/libre/open source.

There's a good community over at the discussion forum `in_thread` [3]. Sam
Aaron also has many videos of him practicing, live streaming, etc., complete
with code in the background to see what he's doing [4].

I'm a bit light on the details but I think Sonic-Pi uses `supercollider` [5]
"underneath" as the audio synthesis engine.

I've heard that Sam Aaron offsets some of his income by doing live gigs and
talks. COVID-19 has put a damper on that so I would encourage people to donate
to his Patreon [6] if they can.

[1] [http://sam.aaron.name/](http://sam.aaron.name/)

[2] [https://in-thread.sonic-pi.net/t/sonic-pi-v3-2-tau-
released/...](https://in-thread.sonic-pi.net/t/sonic-pi-v3-2-tau-
released/3361)

[3] [https://in-thread.sonic-pi.net/](https://in-thread.sonic-pi.net/)

[4]
[https://www.youtube.com/user/samaaronuk/videos](https://www.youtube.com/user/samaaronuk/videos)

[5] [https://github.com/samaaron/sonic-pi/wiki/Sonic-Pi-
Internals](https://github.com/samaaron/sonic-pi/wiki/Sonic-Pi-Internals)

[6] [https://www.patreon.com/samaaron](https://www.patreon.com/samaaron)

~~~
raverbashing
Seconding everything you say here

It takes a while to get it but it is very powerful. Docs could be a bit better
(they're not bad) but in the end it is Ruby code. I would also be happier if I
had a CLI because the IDE editor has (minor) issues but it also helps a lot
with its integration with the rest of the system

But those are minor issues in a great project.

Yes it uses supercollider (too bad that API is much more complicated than
Sonic-Pi)

~~~
abetusk
I haven't used it but apparently there's a `sonic-pi-cli` project that has a
command line interface to Sonic Pi [1]. It's unclear to me whether the Sonic
Pi IDE has to be running to use it, though.

I agree the documentation could be better but, in it's favor, there's a built
in tutorial/examples along with built in documentation in the IDE that gets
you most of the way there. I find it hard to track down what some of the
options do on effects and other functions but these are minor complaints of
mine.

[1] [https://github.com/Widdershin/sonic-pi-
cli](https://github.com/Widdershin/sonic-pi-cli)

~~~
lpil
If I might be so cheeky I would suggest my Rust alternative, it is much faster
and has a greater feature set -> [https://github.com/lpil/sonic-pi-
tool/](https://github.com/lpil/sonic-pi-tool/)

------
opminion
Sonic Pi is an instrument designed for optimal usability by a ten year old,
while using text-based syntax just like a normal programming language.

I have seen a 9-year old reinventing nested loops with it, just because that's
what she needed to make a tune.

The install and learning curve is as flat as it gets, there's no excuse for
not trying it if you are curious.

~~~
WillPostForFood
I'm upvoting because I agree it is a great tool for kids, and a fun way to
introduce some coding. But people might misinterpret what you are saying as
meaning it is dumbed down, or too simple for real work. It is just well
designed IMO, great for a 10 year old, but equally great for sophisticated
technical user. I.e., this is not Scratch.

------
ntoll
I know Sam (the creator) and can vouch that he's a good guy and a bit of a
legend.

He hasn't had the easiest of rides when it comes to sustainable support for
his work. I'd encourage folks to contribute here:
[https://www.patreon.com/samaaron](https://www.patreon.com/samaaron) (he'll
certainly do wonderful things with such support).

------
StrauXX
Did anyone get this running on Ubuntu/Mint? When I `sudo apt get install
sonic-pi` and start sonic-pi (even with root privileges) the loading screen
appears and nothing happens. There are no logged error-messages in the
terminal either.

~~~
delineator
Robin Newman has just released today a Sonic Pi 3.2.2 deb file for Ubuntu
20.04, see:
[https://twitter.com/rbnman/status/1257673599755915265](https://twitter.com/rbnman/status/1257673599755915265)

He notes this deb will NOT be suitable for Ubuntu 18.04.

------
Leszek
There's also a _great_ talk from the creator (Sam Aaron) on Sonic Pi,
including live-coding examples and some wonderful insights on how computer
science is taught in schools:

[https://www.youtube.com/watch?v=OLLwG_SN8oo](https://www.youtube.com/watch?v=OLLwG_SN8oo)

------
nkozyra
This reminds me a great deal of Supercollider, which is pretty robust and
time-tested.

One of the things that bothers me about Supercollider is its weird server
architecture and esoteric language. I'll take Ruby over that, but these things
really beg for APIs that let you hook in with other languages.

~~~
delineator
In Sonic Pi you can send and receive MIDI messages and OSC messages to
interoperate with external synthesiser hardware and software.

Sonic Pi comes bundled with SuperCollider. The Sonic Pi server calls out to
SuperCollider to play samples, synth tones, and apply FX. See the slightly out
of date diagram here for details:
[https://delftswa.gitbooks.io/desosa2016/content/sonicpi/chap...](https://delftswa.gitbooks.io/desosa2016/content/sonicpi/chapter.html#Context-
view)

~~~
nkozyra
You can handle midi in/out/thru natively in supercollider, too.

------
cube2222
Looks really nice, I'll be sure to try it out!

For people interested in this, there's also a recent project
[https://github.com/overtone/overtone](https://github.com/overtone/overtone)
which looks similar, using Clojure though (which seems to deem itself better
to live programming).

~~~
cube2222
Oh, the main contributor to Overtone is actually also the main contributor to
Sonic Pi!

~~~
simongray
Yeah, he started out with Overtone + a special emacs configuration (emacs-
live) and had a short-lived duo called Meta-eX playing music using that setup:
[https://meta-ex.com/](https://meta-ex.com/)

------
seph-reed
> Powerful enough for professional musicians.

Having worked with professional electronic musicians, I will say this is
likely really useful for getting some interesting layers, but is not a
professional environment in and of itself.

I don't mean to say this isn't fun, or that you can't make some really cool
stuff. It's just not that there's wayyy more programmers involved with VSTs
and DAWs than in this one project, and there's ultimately no competition from
a professional perspective.

------
FraKtus
I will definitely show that to my daughter.

It looks like a nice way to introduce kids to coding.

Specially if you are into IDM.

~~~
bob33212
My 8 year old enjoys it.

------
bwanab
I would feel remiss not pointing out Sam Aaron’s prior project Overtone which
while similar in spirit to Sonic-Pi is much more oriented toward the
programmer/musician and less to the musician/programmer. It’s interface
language is Clojure which probably tells a lot.

Both projects are amazing, but, after playing with Sonic-Pi, I’ve stuck with
Overtone as my coded music synthesis toolset.

~~~
Karrot_Kream
Other than programming language, what are the main differences?

~~~
bwanab
The main difference to me is that Overtone is closer to the “medal”, where
medal in this case is Supercollider.

------
birracerveza
Sonic Pi is really fun to play around. However, the editor is fucking abysmal
and turns me off every time I try to use it, since I can't use my muscle
memory to copy/paste/multiselect and have to otherwise learn another set of
keybinding that make no sense whatsoever (instead of CTRL-X to cut you have
ALT-X, for example). I wish I were able to use VSCode. I know an extension
exists, but it only sends the current file to the Sonic Pi session and has no
autocompletion, which is fairly necessary during a live-coding music session
to keep the tunes flowing. If I'll ever get around to understand how to
develop an extension I'll try my hand at it, I guess.

But otherwise yeah, it's some good stuff and has lots of unexplored potential.

[https://www.youtube.com/watch?v=KJPdbp1An2s](https://www.youtube.com/watch?v=KJPdbp1An2s)

~~~
Moru
They are working on different setups apparently, I was able to use ctrl+c/v to
copy paste and next versions promises different selectable profiles. Sadly it
defaults to your system language (swedish) and the menu shortcuts collide with
some of the commands. I can't use alt+r for running the music for example, it
just gets stuck in the menu for "Redigera". Only way I can find to start is by
clicking run with the mouse. Can't find a way to switch language either.

Really great program, daughter really loved the few minutes we had before
bedtime. Not that it's only for kids, it's nothing like scratch where you can
get started but the next step up is gigantic to programming. It seems to
nicely scale up with your learning level. I'm no musician though so can't say
how far we get with it :-)

------
albybisy
What's the advantage of a "code-based" music creation respect of the classic
one musicians use?

~~~
r4vik
you can translate your thoughts into sound without having to have any sort of
manual dexterity or years of practice

~~~
snorremd
I agree.

I spent years of my childhood learning to play the piano. I did not have the
patience to practice four hours a day , so I never became more than moderately
proficient.

And learning to play an instrument does not necessarily mean learning to
create music. While playing off sheet music and focusing on dexterity
exercises can be rewarding, they are not creative activities.

With Sonic Pi you can focus on music creation and simple programming concepts.
It is rewarding in a different way.

~~~
fredfjohnsen
> While playing off sheet music and focusing on dexterity exercises can be
> rewarding, they are not creative activities.

Of all the idiotic things written in the comments of HN (there are plenty...)
this has to be, hands down, the most idiotic. There are literally an infinite
number of possible expressions in terms of muscle movement & hand / eye
coordination involved in an activity like playing the piano & this is BEFORE
discussing the activity of using that infinite set of expressions to actually
interpret music played from memory, by ear, or from a page. The fact that you
think it's not a "creative activity" says more about your lack of creativity
than anything else.

~~~
jayjader
Ok. Not the person you're quoting, but I _do_ have ~20yrs experience playing
piano, and got to a _decent_ level when I was still pursuing tutoring/classes.

There definitely is a creative aspect to interpretation, and I agree it is big
(in potential if not how much it is exploited often). However you're playing
with fundamentally different building blocks for your artistic expression.
Interpretation is much more subtle; you're leaving your own mark on something
someone else originally made whereas composition can feel much more like
conjuring art out of the ether/your mind. The infinite variations on a piece
one can produce are still bounded by the original melody, and are vastly
inferior in count/number than the variations of music that can be created
"from scratch".

In any case, the parent comment author did not seem to me to have reached a
level where they felt comfortable experimenting with interpretation - and may
in fact not have achieved the requisite level to begin to be able to actively
choose how they interpret pieces beyond "trying to be as accurate to the sheet
music as possible". In contrast, if you're improvising, or composing with some
kind of software, it is much more approachable to attempt to translate a
random idea into music that can be listened to (to judge how close or off the
mark our attempt is from our idea).

Basically you can skip the lengthy manual skill acquisition and jump right
into playing around with the entire range of sounds and melodies that can be
made.

~~~
fredfjohnsen
I don't disagree with anything you said. I also understand that the "skip" you
refer to probably is fun for people that don't have traditional musical
experience. That's fine. However, anyone who thinks that typing start & stop
into a terminal or text editor to trigger loops is MORE CREATIVE than playing
a musical instrument is wrong.

------
Already__Taken
The is doing a/some sessions for githubs conference in a couple of days.

~~~
ingenieros
It's happening tomorrow actually:
[https://githubsatellite.com/schedule/#satellite-
kickstart-58...](https://githubsatellite.com/schedule/#satellite-
kickstart-58-live-coded-dj-set-with-sam-aaron)

~~~
kimburgess
The entire second stream has a pretty solid lineup of creative/live coding.
It’s a horrible TZ to make from Australia, but I’ll be up mainly for that.

~~~
ingenieros
FYI: "Every session will be recorded and made available soon after it ends. If
you’re double-booked or tuning in from a different time zone after the live
session time, you can catch up by clicking on past session titles in the
Schedule once they are uploaded."

------
lydzb123
Oo! I will maybe check this out. I've explored Supercollider and thought that
was v interesting, though a bit tedious to jump into actual music making with
for me personally.

~~~
jweather
Please do check it out. Supercollider is like walking into a fully-stocked
machine shop with a comprehensive 9000-step guide to building your own car.
Sonic Pi is like a go-kart with the engine already running. It's very
approachable, and with Supercollider on the back end, incredibly capable.

------
felipesabino
It seems really fun watching others, but I guess my lacking music theory
knowledge makes everything I try to result in awful noise instead of anything
resembling music

Anyone out there have any good resources for using Sonic-Pi (or anything else)
as a hands on way to to learn more about music theory?

Do you think doing any MOOC in music theory can help? Or is it something that
I just have to put hours on and just keep fiddling and trying?

------
rhodin
Didn't Joe Armstorng use this to DJ at a Erlang User Conference? Can't find it
now, but at least there is this talk from a years ago:
[https://www.youtube.com/watch?v=4SUdnOUKGmo](https://www.youtube.com/watch?v=4SUdnOUKGmo)

~~~
francescoc
This is another keynote from CodeMesh in memory of Joe joining together the
tiddly wiki and the SonicPi, by Sam, Erlang co-inventor Robert Virding and
tiddly wiki inventor Jeremy Rushton:
[https://www.youtube.com/watch?v=aUji_DlXjm8](https://www.youtube.com/watch?v=aUji_DlXjm8)

------
suyash
For those who are interested in making music with Java Programming, check out
: [http://www.jfugue.org](http://www.jfugue.org)

------
0xdeadbeefbabe
How does it compare to csound?

------
jimmcslim
One wonders what the great classical composers would have done with these
tools?

~~~
zerr
They would have had tool fatigue :)

------
olivierestsage
Has anyone had any luck getting this running on a non-Raspbian Linux distro?

~~~
xipho
IIRC he has at least one YT video where he bemoans the lack of Linux support
for sound, sounded like it was non-trivial in many cases.

------
spdegabrielle
This is awesome - I have it set up to play my synth over midi

------
louis8799
I really hope that it has python api

~~~
weego
There's a number of SuperCollider wrappers that use python for scripting,
FoxDot is the most well known in live coding I think

For reference Id say the most mature ones other than sonic pi are tidalcycles
(haskell) and overtone (clojure)

tidalcycles is my favourite out of the bunch

------
galaxyLogic
Can you program tempo envelopes?

