I'm not trying to burn anyone. The people who make the project really care about it and have put a lot of effort in it. I personally am just too stupid to figure it out.
I think like Haskell and R it's designed for a different profession so to people like me who are programmers first I am scratching my head the whole time. I can do some thing in it, yeah eventually, usually...
The documentation appears complete and I'm sure the compilers are well written, an enormous amount of effort went into it, it's just a problem with me here.
Do you have any recommendations for learning sound synthesis and such (for the purpose of music production) for those who are, as you say, programmers first? Most the materials I’ve found teach using Csound, PD, SC etc (understandably), and that’s always a bit off-putting to me and appears as another obstacle / headache, so the projects get shelfed more quickly. I’ve begun reading Miller Puckett’s book Theory and Technique of Electronic Music and quite like that, though, despite strongly disliking the PD interface.
The fundamentals of sound synthesis are things like oscillators, delays, filters etc as you see in Miller Puckett's book, and teaching materials tend to lean towards environments like Csound, pd, SC etc for their practical exercises because they all contain roughly equivalent implementations of those fundamental tools, albeit wrapped in some uniquely opinionated structural or UI paradigm, in each of those environments.
If you think as a programmer you might be happier around low-level things, take a look at Soundpipe, which contains those same fundamental elements again - often with the same or similar names to their equivalents in the above programs - but in plain C code.
For something a little more 'live' and high-level built on that library by the same author, check out Sporth, or another guy's browser-based embedding of it called AudioMasher - which has some very nice examples.
Chuck [1] is what clicked for me, as it is C/Java-like with the DSP basics built-in.
Im biased here however as I eventually became one of its developers.
Its easy to get started although unfortunately also easy to outgrow :)
SonicPi/Overtone or Gibber are also nice also as they are based off of existing languages.
I recommend Musical Signal Processing by Curtis Roads (latest edition), it mostly cover every type of sound synthesis in details, it also cover MIDI, spatialization, mixing, filtering and base concepts without much technical / mathematical overhead. Most sound synthesis algorithms can be implemented from the given block diagrams when you get used to read them.
Thank you for the recommendation, Curtis Roads seems to be quite the synthey-book legend. I read portions of Computer Music, but your title seems much more relevant to precisely the subset of info I'm after.
You can make midi interfaces in Python and plugins in LADSPA and other things with Jack ... lots of programs are fairly extensible these days.
so for instance, instead of a physical instrument connected to a usb port, your software is feeding the midi input into some other software, say something simple like seq42 (https://github.com/Stazed/seq42)
Synthesizers have some interesting things too. https://zynaddsubfx.sourceforge.io/ uses an XML format for its synthesis definition. It also has "learnable midi" as in parts of the interface can be instrumented from a midi controller - so you turn a knob in physical space and it turns in the software accordingly.
So let's go back to the previous part, the part about software defined midi. You can now emit the mutation of the sound and the sound itself into software like that. Here's a 2005 linux journal article with a screen shot (https://www.linuxjournal.com/files/linuxjournal.com/linuxjou...) essentially the stack I just said. https://www.linuxjournal.com/article/8304 ... "2005" you say? yeah, old pianos also still work.
The linux space is littered with generic audio tools that don't really work on their own and must be pasted together with other tools in order to get anywhere, much like in the shell. I did a bit of editing on the linux audio wiki about 3 years ago, it's probably the best place to look: https://wiki.linuxaudio.org/wiki/introduction
It's still just a bunch of hacks on top of hacks. Things break all over the place and latency is a bitch ... I dunno, there's a lot out there.