Support for DAW automation

Captain's Log: Stardate 77804.2

I made huge progress in the last couple of days on adding support for DAW/host parameters to Anukari. These are the host automation parameters that flow through VST/AU/etc directly, instead of being transported to the plugin via MIDI.

Overall this has been fairly straightforward, based on all the work that I got done to make the MIDI control plane complete. There were some slightly tricky issues regarding thread safety, since it does not appear that many (any?) guarantees are made about which threads can call into the plugin to notify it that an automation value changed, or when. And the documentation around what kind of parameter name strings all the DAWs will accept is frustratingly sparse. So I imagine that even after this is all working perfectly in one DAW, I'll have to do a bunch of testing in other DAWs as well.

But challenges aside, it's working in a basic way. I can create automation in Ableton and it is wired up to modulators in Anukari that change parameters. And you can change the name of the modulator in Anukari and have that new name show up in Ableton.

The way it works is that there are a fixed number of automation "slots" (32 right now), and at startup Anukari always notifies the host that there are 32 parameters with generic names like "Param1". By default these don't do anything. But when a user creates a Modulator and sets it to the "Host Parameter" sub-type, they get to pick which "slot" it's associated with. So if they pick slot #1, that Modulator will pick up values sent by the DAW to Param1. Then the user can edit the name to something better than Param1.

This goofiness is the best way I've come up with to guarantee that the mapping between the DAW and Anukari is perfectly stable in all DAWs, because DAWs do not support dynamic creation/removal/reordering of parameters.


© 2024 Anukari LLC, All Rights Reserved
Contact Us|Legal