|
[Dec. 27th, 2015|03:55 pm]
Jason
|
Finally succeeded in a bit of refactoring to the synth backend that lets me dlopen in unit generators without restarting the program serving up audio. This recording is a bit of a regression in terms of filtering being missing, but I'm just using the goal of "get things to a point where I can post a recording on soundcloud" as a forcing function to keep me coding. This should be a step in the right direction. Soon should be able to try hooking up beepbox as a frontend.
Long ago I once had a similar architecture (i.e. javascript generates C, compiles it to a .so, and signals a server to dlopen-load it) working, but because the server was written in C, doing live communication with a js frontend (and also initialization of audio and midi libraries) was kind of a pain in the ass. Go may not be the holy grail of low-level programming languages, but it does at least give me (a) json parsing (b) http and websocket serving (c) nicely wrapped libraries for portaudio and portmidi, and (d) enough syntactic sugar for basic data structures like hashes that I don't want to stab myself implementing polyphony and sustain-pedal semantics. |
|