If you're interested in live coding, feel free to try Glicol (https://glicol.org).
There's also TidalCycles. I have to praise the ability of Haskell and Ruby in creating DSLs
For Glicol, my thoughts on language design are focused on a synth-inspired syntax, speed for composition, and convenience of sound design. The idea is to design a DSL that draws from previous programming habits but isn't confined to existing languages.
Some years ago I found a video on YouTube by someone who used Sonic Pi to re-create the THX Deep Note.
That video was awesome because he didn't initially explain what he was going to do. Je started by creating a single "note" of the sound but called it a bee. Then he tweaked the sound of the bee a bit here and there, showed what it sounds like, and in the end he was like "and now let's just create a couple hundred of these bees and hear what it sounds like in a beehive", and when he did that the Deep Note emerged.
I loved that video but I have since been unable to find it again. If anyone has a link to that video, please share
I also met Sam; went to dinner with him in...2008-2010 ish after a Clojure Conj in which he presented. Super nice guy, and great presentation, even then.
If you're interested in a couple of examples of artists that use Sonic Pi, I found out about DJ_Dave [1] a while back and think her stuff is a great example of a talented, competent musician using the tool well. She did an AMA [2] on Reddit a while back and I believe has some stuff up on GitHub [3]
Speaking as a Ruby developer, this is very cool. I could see using this for algorithmically generated music and that would be neat. (Speaking of which, I was meaning to make our noisy git repository events into some kind of algorithmic music — this would be good for that.)*
But speaking as a musician with lots of keyboard instruments — if I were trying to compose a piece of music, I'm not really sure why I would compose musical sequences with Ruby when I can play them with a MIDI keyboard, or record an acoustic instrument and loop it. I see that you can input anything you like with the Ruby DSL, but it's not a great UX compared to a piano keyboard.
I guess to put it another way — I would not use this to replace what I use Logic for. But that's just me.
I will say though - in some ways, the ruby DSL expresses intention more clearly than a midi sequence. Sometimes you really do think in terms of "now it's a C minor arpeggio, and now it's an F major arpeggio". And I like how you can compose functions that express that so clearly.
Yeah, I think Sonic Pi is really more about algorithmically created music (specifically live coding, but being mainly algorithmically-created rather than played-by-note seems pretty fundamental to that) than general composition.
But, interesting uses of tools that aren't what you would otherwise use because of unusual constraints is kind of centered in the "on topic" domain for Hacker News.
I alluded to this in the OP, but it's mostly due to logistical constraints. While I have a keyboard I like, and could theoretically use for this, all of my instruments have been in storage for the last... while, for messy personal reasons.
I was just thinking about Sonic Pi the other day and watched a few videos online. I only ever played with it briefly years ago(busted out the classic Old MacDonald and Hot Cross Buns jams).
For a different take (not live) at programming music check scamp for python[0]. The author also has a bunch of videos in youtube with things he does with it, like this Fourier Elise video[1].
I wish this was available as a flatpak. There are just toooo many dependencies that need to be custom install to install Sonic Pi. Packaging it for distro will be a nightmare.
It actually is available as a Flatpak, and it wasn't until these two things converged that I stopped having to put effort into getting it to work under Linux. (This is actually another reason it took me so long to pick this back up.)
I don't have actual specific advice but I will remark that, in my own experiences with webdev (I'm a backend and data engineer primarily though, so never doing anything too fancy but just trying to kind of naively use react and copy paste tailwind/bootstrap css), chrome and Firefox tend to mostly behave similarly whereas safari is often the one that gets persnickety about stuff. Something that randomly sticks out in my mind is that using a video tag, dynamically setting the src via react didn't work in safari (it would load the first one but then never change even if I updated the value, but if I put an actual source element as a child (which is guess is technically a more standards correct thing?) of the video element, that would work correctly on all platforms. But of course is not mentioned in the top simple results for "how to do html5 video tag" because I guess most people aren't dynamically swapping the video being played.
There's also TidalCycles. I have to praise the ability of Haskell and Ruby in creating DSLs
For Glicol, my thoughts on language design are focused on a synth-inspired syntax, speed for composition, and convenience of sound design. The idea is to design a DSL that draws from previous programming habits but isn't confined to existing languages.