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.
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)
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.
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.
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).
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.
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].
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:
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.
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...
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.
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).
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/
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.
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.
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.
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 :-)
One of the advantages is teaching people how to code. In it's early days of development, Sam worked with a CS teacher to investigate ways making music with code could help children to learn some computing fundamentals.
We still use it to teach about code and computer science. Last week we released two videos, both using Sonic Pi.
Musicians don’t use ‘one’ music creation mechanism. Musicians use instruments, sure, and musical scores, and they also use audio processing and production systems and digital audio workstations and MIDI controllers...
Some musicians use woodworking tools and materials science to manufacture new instruments to make new sounds. Others use CNC machines and 3D printers. Some use soldering irons and electronic components to build audio processing units and tone generators.
There’s a very active community of modular-synthesizer musicians who take electronic devices and patch them together, adjusting knobs and flicking switches to create music.
And there’s others who build all those same capabilities in software.
And Sonic pi sits on that tradition - of bringing more powerful programmatic tools to bear on the configurability of signal generators and sequencers and audio processing chains as a means to create music.
It's suberb for experimenting with ideas quickly, and serendipitous discovery. The speed at which you can transform an existing idea into a new one can be very inspiring.
Or you can fall down a rabbit hole and end up programming forever without making real music again (what happened to me).
Coding music let's you think about music composition in new ways.
I've found it easy to experiment with looping audio samples at different speeds with Sonic Pi (including backwards) and applying FX effects. Syncing the timing of loops playing is easy with Sonic Pi's `live_loop` cues.
Composing with audio samples has long traditions in magnetic tape manipulation, and later in the isolated beat loops in hip-hop.
Musique Concrète - beginning in the early 1940s - is a type of music composition that utilizes recorded sounds as raw material.
Delia Derbyshire used tape manipulation to create the original electronic realisation of the Doctor Who theme score in 1963, and in many other compositions from that decade.
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.
> 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.
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.
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.
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."
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.
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.
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?
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
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
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