Marshall Lochbaum's APL-derived language BQN has some nods towards audio synthesis too:<p><a href="https://mlochbaum.github.io/BQN-Musician/synth/index.html" rel="nofollow">https://mlochbaum.github.io/BQN-Musician/synth/index.html</a>
Also Uiua:<p><a href="https://www.uiua.org/tour#audio" rel="nofollow">https://www.uiua.org/tour#audio</a><p><a href="https://www.uiua.org/tutorial/audio" rel="nofollow">https://www.uiua.org/tutorial/audio</a>
BQN kicks-ass and I've spent hours listening to the Array Cast podcast while in SoCal traffic. I'll check his stuff out with an eye towards the audio stuff.<p>I'm an APL newb... while I've been writing code-for-cash forever (C, etc.) I've had a long-time interest in APL languages, but I'm just messing around after working on waveform generation for another sound project I have in the works (<a href="https://github.com/octetta/skred" rel="nofollow">https://github.com/octetta/skred</a> ... <a href="https://youtu.be/L5-3gBpJsAo?si=JdBlntzn4doY-c3s" rel="nofollow">https://youtu.be/L5-3gBpJsAo?si=JdBlntzn4doY-c3s</a>).<p>While I was working on this I remember the first book I saw in the public library on computer programming was about APL (probably sometime around 1976)... I didn't have access to a "real computer" for another year after that and no APL for decades, but some ideas stick around, LOL.
On the C-side, I'm going to add a UDP listener to the code so I can send k-synth incantations live from Emacs (something I did for my skred program at the suggestion of an Emacs user).
Let me know if anyone wants to know about this when it's usable.
On the desktop app side, I use miniaudio (thank's Macron) so this is portable to the usual suspects.
I also made a single header file cross platform midi library which I have some devious plans for in this space. Stay tuned.
How do we get it to play Kompressor? <a href="https://youtu.be/9tlA0IyKjiI" rel="nofollow">https://youtu.be/9tlA0IyKjiI</a>
A warning... if you save a setup to JSON, it naively stores the generated waveforms put in slots and the notebook, so the files can become quiet large. I have a plan to just keep the code behind the waves and regenerate the waveforms at load time.
I have a CLI and desktop versions on github (all MIT license)<p><a href="https://github.com/octetta/k-synth" rel="nofollow">https://github.com/octetta/k-synth</a>
<a href="https://github.com/octetta/ksynth-desktop/" rel="nofollow">https://github.com/octetta/ksynth-desktop/</a><p>it's been a blast to play with... and a great excuse to learn array languages
> ...and the right-to-left evaluation logic.<p>The evaluation order doesn't matter as much as you don't really know what kind of function/operator you have at parse time so have to do a bunch of shenanigans to defer that decision until runtime while still keeping it efficient. Kind of fiddly to get right but once it works, it just works.<p>Claude and me (and a ton of decades old research) pretty much figured out all the complications in the APL parse/eval stack (<a href="https://github.com/dan-eicher/AiPL" rel="nofollow">https://github.com/dan-eicher/AiPL</a>).
Pretty cool, one suggestion for the site would be to have templates you can quickly load, copy, edit, and share. Sort of like strudel.cc has!
At any rate, in case it's hard to see, definitely try loading the dm-bell.ks patch, putting it in slot one so the melodic pad can play it... it's quick and dirty to see what's capable in a few keystrokes... although I'm sure the PD and ChucK and SC and ... wizards could put me to shame in a showdown, LOL.
i wimped out and just have the patches being loaded from my github repo. good suggestion though.
This is great
See also: Stanley Jordan, "APL For Music".<p><a href="https://dl.acm.org/doi/pdf/10.1145/75144.75174" rel="nofollow">https://dl.acm.org/doi/pdf/10.1145/75144.75174</a><p>(!!!)<p>(Wait, what? <i>That</i> Stanley Jordan?) (Yep.)