Readit News logoReadit News
abetusk · 6 years ago
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/

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

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

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

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

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

raverbashing · 6 years ago
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)

lpil · 6 years ago
I created a command line interface for Sonic Pi which can be found here -> https://github.com/lpil/sonic-pi-tool/

Due to some security related changes in Sonic Pi it does not work with the latest version, but hopefully Sam and I can resolve this in future.

abetusk · 6 years ago
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

opminion · 6 years ago
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 · 6 years ago
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 · 6 years ago
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 (he'll certainly do wonderful things with such support).

StrauXX · 6 years ago
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 · 6 years ago
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

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

Deleted Comment

DarkCrusader2 · 6 years ago
After mucking around a bit, I found this doc[1] which worked pretty well for me on Ubuntu 19.10. There is also some effort underway to build an appimage on their forums[2].

[1] https://github.com/samaaron/sonic-pi/blob/master/INSTALL-LIN...

[2] https://in-thread.sonic-pi.net/t/sonic-pi-as-an-appimage/274...

xrd · 6 years ago
I second this. I tried a few months ago to get it working and was really frustrated with the state of the build scripts on Ubuntu and variants.

Deleted Comment

Leszek · 6 years ago
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

nkozyra · 6 years ago
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 · 6 years ago
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...

nkozyra · 6 years ago
You can handle midi in/out/thru natively in supercollider, too.
jweather · 6 years ago
Sonic Pi is a friendly Ruby face on the Supercollider engine, so the family resemblance is no coincidence. I'm not sure what a universal API would look like, but you can easily build Sonic Pi sketches to take in things like OSC or MIDI from other programs or peripherals.
cube2222 · 6 years ago
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 which looks similar, using Clojure though (which seems to deem itself better to live programming).

delineator · 6 years ago
In addition to Sonic Pi, I've also enjoyed experimenting with @neauoire's [0] Orca[1] and @yaxu's [2] TidalCycles[3].

Orca[1] is like a moving 2D functional programming crossword puzzle for generating sequences, be sure to watch some tutorial videos to get started.

TidalCycles[3] is a lovely way to very concisely and quickly generate looping patterns of samples and tones, still getting my head around it.

[0] https://twitter.com/neauoire

[1] https://hundredrabbits.itch.io/orca examples on twitter: https://twitter.com/hashtag/ORC%CE%9B

[2] https://twitter.com/yaxu

[3] https://tidalcycles.org/ examples on twitter: https://twitter.com/hashtag/TidalCycles

cube2222 · 6 years ago
Oh, the main contributor to Overtone is actually also the main contributor to Sonic Pi!
simongray · 6 years ago
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/
jimmcslim · 6 years ago
There is also Andrew Sorenson's [1] Extempore [2] which is also a Lisp.

[1] https://twitter.com/digego

[2] https://extemporelang.github.io/

benswift · 6 years ago
Yep. In fact, lisps tend to pop up quite a bit in livecoding (and in other places, really).

https://github.com/toplap/awesome-livecoding is a nice curated list of live coding languages and tools.

seph-reed · 6 years ago
> 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.