I love Sonic Pi. I am a terrible musician but I really enjoy finding chords for a song and then putting them into a sonic pi buffer and messing around. U2 started as a cover band, right, so maybe this is a path to becoming musical someday.
The one thing that confuses me about Sonic Pi is the buffers/editor. I always wish I could replace the UI with my own embedded editor (emacs in my case). I would then be able to manage all my songs as files. Right now I hunt for "least crowded" buffer window, comment out the code for the song or songs, and then add my new song. If I had my own embedded editor (like emacs), I could rename buffers to be songs, have an unlimited amount (rather than just ten), integrated version control, etc.
Am I missing something simple about how others use sonic pi?
The big breakthrough of sonic pi is representing music as a highly readable text file. I assume I don't know how to use the built in editor and buffer system because I feel a lot of friction there.
You can save/load the contents of a single buffer or all buffers. For a single buffer, select the buffer you want to save, then go to the Live menu and choose "Save Buffer As". To load a file into a buffer, choose the buffer you want to load it into and then go to the Live menu and select "Load into Buffer"
You can also save off all the buffers together (e.g. if you've put different parts of the same song into different buffers) by going to the Live menu and choosing "Save Set As" (or just "Save Set" if you want to overwrite what was previously in your last saved set e.g. you made changes to your song and you want to replace the previous version).
So to achieve a workflow similar to what you're describing, you construct your song (in up to ten buffers) and then save the set and clear the buffers or load a different set to work on another song. True, it doesn't give you infinite buffers, but it does give you a way to "manage all [your] songs as files".
You can then use e.g. Magit to version control the files just as you would if you were working in Emacs itself.
The sets are also saved as text files in a very human readable format; basically just all of the buffers dumped out one after another with some delimiters. You could even use Emacs to edit them and then load them into Sonic Pi to run them! (That said, I'm not sure there's a good sonic-pi-mode for things like indentation and autocomplete yet. Hopefully someday; I would love to have my custom evil-mode Emacs keybindings while working in Sonic Pi, but I get that it's not really a priority right now ;) )
Does this mean I just don't understand how to use the existing UI? I'm often messing around with a bunch of chords and sounds and I quickly run out of scratch space. Does that mean I'm doing it wrong?
I've been playing with it the last few weeks, great software and really fun to use. Fantastic timing. Thanks for all the hard work that went into the release.
I'm particularly happy to see keyboard shortcut preferences in the release notes, that's been a real pain point.
I love the new Link Audio which lets you stream and receive audio on the local network with any other Link Audio capable software such as Ableton Live.
I also like the new QuickStart Cards as a way to get started that doesn’t require reading the built-in tutorial.
if you want to attract more userbase that's probably the least meaningful copy-text someone can provide. Not only doesn't even in one sentence what sonic pi v5 is but also doesn't explain whats difference between v4 and v5 - I mean what it means more friendly/accessible/fun really?
Not sure if it’s possible to explain this in one sentence - I was just explaining the goals.
As a summary - friendly as in better autocomplete, better error messages. There are vast accessibility improvements for those with low vision and those that use screen readers. It’s more fun for many reasons but stand out ones are support for game controller input, interactive docs and low-friction QuickStart cards.
Every time I click a HN post with the Something Pi naming convention my graybeard brain expects to see an SBC. This is something just about as interesting! I grew up on (and still use) trackers for sequencing. It might be fun to try a similar workflow in this!
The SBC in question here is the Raspberry Pi — Sonic Pi was one of the early pieces of educational that made up the RPi ecosystem, and Sam Aaron was sponsored by the Raspberry Pi Foundation to write it.
Oh my pi! (Same here, yesterday I came to the conclusion that I dont understand any of the front page links. Thanks for commenters clearing it up also!)
I blame Mario for ruining me until a year ago Pi was RPi or 3.142... but yeah this is nice, I have been using daws and have written my own small piano roll app because bosca ceoil vanished a couple years ago, but this is nice too.
I think that app(bosca ceoil) is now back around among us, though I don't recall what had happened back in the day.
I donate to this software because it's so much fun to play around with. My wife (of 30 years as of today) knows way more about music than I do and this is one way for me to connect a little bit with her hobby.
I remember years and years ago getting a Raspberry Pi from my father. We were going to use it for something or other, but that plan fell through, and I ended up using it to "deploy" my first programming project when I was around 12 or so, which was a home assistant that I was really proud of. I remember using Sonic Pi to come up with what I think was an excessive 30 or so different sounds and indicator tones for it, and a little startup jingle. Good times.
I don't know what you mean with this. Strudel is AGPL, which is hardly "impossible to use on anything". The default sound banks are CC-by(-sa), CC0 and unspecified. The unspecified ones might indeed be a problem, but the other ones are fine.
As long as you allow anyone to get the source code of any derivative work you make of the Strudel code, and you take some measures to keep the distribution of the two works somewhat separate, you're should be good. And yes, there's a lot of FUD by the FSF, but your pet projects shouldn't be encumbered by such a narrow reading of 'derivative work'.
I want to embed the player into standalone video game binaries that don't require internet access to download the restrictively licensed files. I'm not looking to embed music file outputs, I want the music to remain customizable on the fly.
Hi, Sam! I have to say that's a strange statement. SuperSonic still uses scsynth as its synthesis engine. How is that a "complete replacement"?
I see that you are trying to circumvent the GPL, with somewhat dubious arguments. I'm pretty sure that running scsynth in an AudioWorklet creates a combined program and not an aggregate. (I'm not the only one who has raised this concern.)
Since scsynth is the foundation of Sonic Pi, why not respect the intention of its author?
Sorry if it came across as strange. I’m just making sure people don’t confuse the two as SuperSonic isn’t an official SuperCollider project and I don’t want to cause any confusion.
I’m also definitely not wanting to circumnavigate the GPL! I have wholeheartedly embraced it as whilst I would argue it isnt scsynth it is most definitely a derivative work with a lot of shared code. There’s also a lot that is different/new.
Instead I’m only attempting to uphold the same network boundary that has existed since v3 of SuperCollider. When used over a network using an open and documented protocol that doesn’t tend to be considered a derivative work. This is observed in other software is such as databases.
Oh and in Sonic Pi’s case I am not running anything in an audioworklet. SuperSonic is built and shipped in its native form as a totally separate process. No js or browsers involved.
Yep, as it’s a derivative work. But I have put effort into making the interface purely network shaped so it’s possible to use it from non-gpl projects without them being considered a derivative work and triggering the gpl.
Careful! Just because you are exchanging messages via sockets does not necessarily make it a mere aggregate! Quoting the official GPL FAQ:
> By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.
Oh that sounds like the official SuperCollider stance might be that any use of scsynth from an existing project via the network OSC API is considered an aggregate. Is this the case?
I definitely don’t want to create any issues and it would be great to get some clarity here.
that too could be a basis to consider the two parts as combined into a larger program.
That would not stand up in court. This battle has been fought before. Interoperability is not a trojan horse to spread the GPL anymore than it is a trojan horse to impose copyright restrictions by private software.
This is one of my favorite software projects. I have played a bit with it a few years ago, and I often recommend others to play with it.
I would love to have more musical knowledge, but even with my limited resources, I can do some cool stuff.
Congratulations and thank you for your hard work all these years!
I was just working on a music improv app for the MacBook trackpad [1] and tried to use Sonic Pi 4 for the backing track (muse) generator but it was too clunky to run a full fledged second GUI alongside the app and control it through OSC.
I had to do sample retrieval, decoding, native CoreAudio logic to get acceptable latency. A programmable synth would have made my life so much easier.
supersonic-scsynth in Pi 5 feels more fit now, it’s the first time I tried a JS frontend for a macOS app but if it lets me import this and use it so easily, it already paid its dividends.
I keep wanting to learn Supercollider but I never get to. Maybe I'm more enamored of the idea of live coding than actually wanting to play this way. Sonic Pi could finally convince me!
Get Claude to come up with ideas and generate .scd files which you can launch with supercollider. Ask it to build a gui with parameters. It’s pretty good at it.
I tried it for a few seconds but there is a huge lag between pressing a button and the sound, and half the time the button press does nothing. It's basically unusable.
By default there’s a 500ms latency as this gives all target platforms sufficient breathing space for system pauses and other work not to affect the scheduling.
Multiple presses spawn multiple threads which layer over each other - unless you’re using Live Loops in which case it triggers hot code swapping.
What was the code you were running? Happy to help.
why is the Amen Brother breakbeat included in this software as if it's open source and GPL / MIT license? Just because something has been stolen a million times, that doesn't make it public domain, it's still under copyright and owned by its publisher, who I'm pretty certain has never given it away under a free license.
I'd be really curious for this particular sample to go to court because unless The Winstons have been aggressively enforcing this copyright they may have already lost it to the public domain.
That's not how copyright works. There is no "use it or lose it". You legally retain control of licensing for copying and distribution, including derivative works (samples) for the full copyright duration.
There's a limit of 3 years for you to bring a copyright infringement case after a specific infringement takes place, but that doesn't stop you from bringing further cases against further infringements. You don't "lose" copyright if you fail to self-police it, as you might lose a trademark.
It gets very complicated around this specific 1969 sound recording and suing for copyright infringement, because prior to 1972, sound recordings were subject to US state law (presumably Georgia as the Holly Bee Music Co. was incorporated in Atlanta?) rather than federal law.
The drummer, Gregory Coleman, died homeless and penniless. Some UK DJs raised money for the bandleader, Richard Lewis Spencer, in 2015. He died in 2020. So there's probably not going to be anyone suing you for infringing the copyright on Amen, Brother, but it's not not infringement.
Pretty sure that aggressive defense is required for trademarks and not copyright. However it may be interesting whether or not it's still protected by copyright.
It would need to be defended in court yeah, but the absence of that defence doesn't automatically make it so it falls under the GPL and can be included in MIT licensed code just because the copyright holder doesn't know about it to defend it or refuse to be part of your software. Maybe you can argue the technicality but certainly not in the spirit of open source. There would be hundreds of other breakbeats you could include and give away under your MIT license if that were the case.
https://sonic-pi.net/
"Sonic Pi is your free code-based music creation and performance tool."
reply