Supercollider, dealt with elsewhere
is an audio application with an active community that supports polyphony in a natural fashion, has a strong community, doesn’t require extortionate licensing fees, and has good sequencing abstractions. Unfortunately it is purely GPL’d, which makes it difficult to release real software using it. Also, it’s falling gradually apart from bitrot. In short, it has Issues too complex to deal with here.
csound is Supercollider’s even-less-hip cousin-by-marriage. Actively developed. A little eccentric. More permissive licensing than supercollider.
chuck is a more modern competitor to supercollider; still not that actively developed, in part because their source-management is AFAICT innocent of all developments in collaborative source code since the 90s, so contributing is too tedious for anyone to bother. Get it to together and get a public github URL, Princeton hermits.
protoplug looks pretty good actually; it runs jit-compiled lua scripts as DSP/whatever engines in a VST plugin
ReaJS is a plugin library from Reaper DAW that allows custom VST design using their weird custom language
Audio libraries for normal programming languages
- STK is a C++ library implementing a lot of synthesis algorithms in a bareback style, with a special emphasis on physical modelling algorithms for virtual instruments.
- maximilian is a C++ library for doing audio graphs, and seems to be a pragmatic choice for many artists (Direct source link)
- Juce seems to be the cross-platform Audio-GUI of choice and can host faust code; so that’s nice. I wonder if it can plug into maximilian?
- Beads brings realtime audio to java. Here’s an intro
- Light spatialization is the specialty of the gamer-oriented open-source OpenAL
- Comprehensive spatialization is the specialty of the open-source SSR
- python options listed under art python
Both a DSL and a low-level language; worth including in a category of its own.
FaustDSP is an academic functional programming language with optional IDE for DSP algorithms, and is multi-platform in the broadest possible sense: Write one, and run your algorithm embedded inside almost any of the programs I mentioned in the above paragraphs. Comes with category-theoretic rationale. I can also file it under “patchers”, but the patcher-style visualisation is secondary so I forgive them.
Romain Michon’s Stanford chipper little Faust Course is hands-on
has a python interface because why not.
it can also be controlled over the internet:
faust2jaqt - httpd mix4 . dsp
TODO: work out how to fill buffers from the disk via the hosting application (e.g. VST infrastructure.)