blog whoami music contact
  • ANATOMY OF A BARE-METAL SYNTH, PART 6

    June 3, 2022 — 04:01

    The final part in the Daisy synth series, covering the (optional) external codecs and audio amplification.



  • ANATOMY OF A BARE-METAL SYNTH, PART 5

    May 26, 2022 — 04:01

    A post covering the audio codec on the Daisy synth.



  • ANATOMY OF A BARE-METAL SYNTH, PART 4

    May 20, 2022 — 04:01

    A post about the application portion of the Daisy synth.



  • ANATOMY OF A BARE-METAL SYNTH, PART 3

    May 13, 2022 — 04:01

    A post about the UART driver in a Daisy synth.



  • ANATOMY OF A BARE-METAL SYNTH, PART 2

    May 7, 2022 — 04:01

    A post about the MIDI input circuitry on a Daisy-based synthesizer.



  • ANATOMY OF A BARE-METAL SYNTH, PART 1

    April 30, 2022 — 04:01

    The first in a six part series about the components of a simple bare metal synth using the Daisy platform.



  • DEVELOPING AUDIO PROGRAMS FOR EMBEDDED LINUX, PART 2

    December 6, 2020 — 04:01

    The second in a two part series about cross-compiling an ALSA program for an ARM board and hooking up an external I2S DAC.



  • EMBEDDED LINUX AUDIO BOARD BRINGUP

    September 13, 2020 — 04:01

    Discusses writing an embedded Linux image designed for audio development with Buildroot and Raspberry Pi.



  • DEVELOPING AUDIO PROGRAMS FOR EMBEDDED LINUX, PART 1

    July 1, 2020 — 04:01

    The first in a two part series about cross-compiling an ALSA program for an ARM board and hooking up an external I2S DAC.



  • HOW TO GET INTO AUDIO CODING AS A MUSICIAN

    June 7, 2020 — 16:01

    Audio coding can be a rewarding field for musicians, and this post gives an overview of the field and how to get started.



  • A USE OF VARIADIC TEMPLATES THAT I CAN STILL UNDERSTAND NEXT WEEK

    March 2, 2019 — 21:01

    This post discusses a case in which a dash of variadic templates resulted in more elegant library code.



  • GETTING STARTED WITH SIMD INTRINSICS

    January 24, 2019 — 21:01

    This post enumerates some of the considerations for writing SIMD intrinsics in C++.



  • CONVOLUTION REVERB PART 3 - FAST CONVOLUTION

    June 25, 2017 — 15:14

    Third part in a series about convolution reverb.



  • CONVOLUTION REVERB PART 2 - DIRECT-FORM CONVOLUTION

    June 12, 2017 — 19:15

    Second part in a series about convolution reverb.



  • CONVOLUTION REVERB PART 1 - OVERVIEW

    June 12, 2017 — 11:24

    First part in a series about convolution reverb.



  • C++ GAME AUDIO ENGINE PART 4 - HASHING OBJECTS

    April 16, 2017 — 10:13

    How to encode an identifier for an object as a unique hash to avoid expensive string compares throughout an engine.



  • C++ GAME AUDIO ENGINE PART 3 - TIMELINE DRIVEN ARCHITECTURE

    April 12, 2017 — 12:24

    How to create an event driven sound implementation system.



  • CONTROLLING UNITY PHYSICS PARAMETERS WITH SOUND

    March 30, 2017 — 07:20

    An example of tying sound implementation to physics rather than player input.



  • C++ GAME AUDIO ENGINE PART 2 - FACTORIES AND POOLS

    March 20, 2017 — 12:49

    A useful optimization technique for systems that generate many small objects.



  • C++ GAME AUDIO ENGINE PART 1 - MULTITHREADED ARCHITECTURE

    March 17, 2017 — 21:01

    The first in a short series about designing game audio engines in C++.