RSSAmplifier

Blog

micah's blog

micahrj.github.ioRSS feed ↗5 posts

Latest posts

Simplifying the build process for vst3-rs

VST 3 is an audio plugin interface which is developed by Steinberg and supported by a large number of host applications and plugins. The VST 3 API comprises a set of C++ header files which contain definitions for structs, constants, and abstract base classes (used in a similar way to COM ). I maintain a set of Rust bindings for VST 3 which are automatically generated from the original C++ headers…

LLQ: A wait-free SPSC linked-list queue with recyclable nodes

Last year, I published a Rust library called basedrop , which implements a memory reclamation system tailored to the constraints of real-time audio scenarios. The purpose of basedrop is to make it easy to share dynamically allocated memory with a real-time audio thread while ensuring that no allocations or deallocations happen on that thread. This is accomplished by providing a set of smart…

Basedrop: A garbage collector for real-time audio in Rust

In real-time audio, deadlines are critical. Your code has on the order of several milliseconds to fill a buffer with samples to be shipped off to the DAC , milliseconds which it may be sharing with a number of other audio plugins. If your code takes too long to produce those samples, there are no second chances; they simply won't get played, and the user will hear an objectionable glitch or…

The amplitwist, the conjugate transpose, and the complex derivative

Complex numbers have a representation as 2 × 2 matrices, which can serve to illuminate some initially non-obvious aspects of how they work. A real number a can be represented as a multiple of the identity matrix: a I = [ a 0 ​ 0 a ​ ] with addition and multiplication given by the corresponding matrix operations. In order to extend this representation to the complex numbers, we need a matrix J such…

A rotated video of a cube

The following is a video of a rotating cube: This can be visualized as a plane sweeping through a cube of spacetime, or a flipbook: