Picture of vst_window


Published September 27, 2020

I'm the author of vst_window, a cross-platform library for building editor windows for VST plugins. This was a massive undertaking, requiring months of research on low-level platform-specific windowing APIs and attempting to understand poorly-documented specifics of the VST standard. However, the end result is super useful and I'm happy to share it with the community!


I began coding an audio synthesizer VST plugin in Rust, with an ultimate goal of being able to comfortably compose electronic music without relying on closed-source operating systems like Windows or MacOS.

The core features of the audio engine are just about completed. I initially wrote a demo GUI with React/Redux due to immaturity in the Rust GUI ecosystem, but wgpu made great progress since then and I switched to a custom implementation with it instead. In the process, I spent a lot of effort figuring out windowing implementation details, and I figured they'd benefit from additional community usage and testing even before the synthesizer was ready. I refactored the relevant low-level platform-specific windowing code into this library so others could use it for their own plugins.

I also wrote and published ampli-Fe, a well-documented example plugin, specifically for developers to learn how to use vst_window.

My work on the synthesizer has stalled ever since Vital was released. Vital is an excellent plugin that is both open source and works on Linux, so it instantly solved all my problems for me. I'm still happy to share more details about my own synthesizer project with anyone interested, even though it's not quite at a level of polish I'd be comfortable with releasing to the public - so feel free to reach out if you're curious!