Sonic Pi is a code-based music creation and performance tool
sonic-pi.net
sonic-pi.net
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.
[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
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 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.
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.
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.
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).
[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...
He notes this deb will NOT be suitable for Ubuntu 18.04.
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.
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...
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).
https://github.com/toplap/awesome-livecoding is a nice curated list of live coding languages and tools.
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
[3] https://tidalcycles.org/ examples on twitter: https://twitter.com/hashtag/TidalCycles
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.
It looks like a nice way to introduce kids to coding.
Specially if you are into IDM.
Both projects are amazing, but, after playing with Sonic-Pi, I’ve stuck with Overtone as my coded music synthesis toolset.
But otherwise yeah, it's some good stuff and has lots of unexplored potential.
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 :-)
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.
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.
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.
We still use it to teach about code and computer science. Last week we released two videos, both using Sonic Pi.
Or you can fall down a rabbit hole and end up programming forever without making real music again (what happened to me).
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.
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.
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?
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