From RNBO export to AU/VST3 MIDI plugins: lessons from three generative instruments (Office Hours, Oct 28)
Hi all. Over the last few months I turned three RNBO patches into polyphonic generative MIDI plugins (AU and VST3, macOS and Windows): AMI-POLYCHAOS (chaotic maps), AMI-PLSYSTEMS (L-systems played as a mensuration canon) and AMI-POLYMARKOV (Markov chains learned from a MIDI file). They come out of my doctoral research on algorithmic composition at UNAM.
A few things I learned on the way, in case they save someone time:
- The whole engine lives in one codebox; the params feed its inlets. One export builds the universal Mac binary and, on GitHub Actions, the Windows VST3.
- External buffers loaded from JUCE (setExternalData) need their own [data] box in the patch, or the engine silently reads zeros.
- Logic 12 hosts AUs out of process and does not turn a note-on with velocity 0 into a note-off, so makenote → noteout leaves notes hanging. I rewrite them as real note-offs in the JUCE wrapper.
- Params you use as outputs to the UI get recorded as automation in Logic's Latch mode unless you declare them as meters (non-automatable).
- Live has no slot for third-party MIDI effects: the VST3 has to be an instrument, with its MIDI routed to another track.
I'll talk about all of this with Tom Hall on Office Hours on October 28, 11am PT, with live demos: https://youtube.com/live/-F6NtownCVM
Happy to answer questions here. The plugins and a 30-day trial are at https://www.drzoppa.com/soft