Hi, I’m Michael. I make software for sound and graphics.

I’m a developer working mostly on Apple platforms, where I spend my time on real-time audio, GPU rendering, and the small details that make an app feel good to use.

I like working close to the hardware: DSP code that has to finish in under a millisecond, shaders that need to hold 120 frames a second, text that has to stay sharp at any size. I also like the other end of the spectrum — small, focused apps that do one thing well and get out of the way.

This site is where I keep track of what I’m building and write up what I learn along the way.

Things I’m interested in right now:

  • real-time audio and DSP
  • text and vector rendering on the GPU
  • physical modelling of acoustic instruments
  • tools that feel more like instruments than software

The best way to reach me is email. My code is on GitHub.

Recent writing

  1. Rules for the Real-Time Audio Thread The short list of things you can’t do inside an audio callback, and what to do instead.
  2. Sharp Text at Any Size with MSDF How multi-channel signed distance fields let one small texture render crisp glyphs at any scale.
  3. A State Variable Filter in Twenty Lines A stable, modulation-friendly filter that gives you low-pass, band-pass and high-pass at once.
All posts →