My take on the classic drum & bass instrument
posix/benchmark: add benchmark_app_proc_play
posix: add benchmark
posix/test: make struct literal spacing uniform


browse  log 



You can also use your local clone with git send-email.


A digital device that records or merges together samples of recordings.

sampler - Wiktionary

sampler is my own personal music sampler application. It currently targets POSIX and the STM32F4-DISCOVERY microcontroller development board. The development board may change, as a sampler application benefits from having at least a few megabytes of RAM, and the current board has only 192 kB!


Experiment with techniques to tend the state of microcontroller (and C) application development, such as

  • Ease programmer flow (concentration)
    • Catch more bugs with strict compiler flags
    • Code comfier with ISO C11
    • Clarify intent with plenty of assert() calls
    • Build fast with Meson
    • Hasten feedback with entr for a smooth edit-compile-test cycle: git ls-tree --name-only -r HEAD | entr -c ./scrips/build-cross flashes the microcontroller when checked-in files change.
  • Ease feature and unit testing by putting as much code as possible in an extremely portable library that can be compiled for POSIX. The project can be run and tested on your laptop. You don't need an emulator or a development board.

  • Ease dependency integration through modern tooling such as Meson. I ported libopencm3 to Meson for this purpose. Meson also allows integrating projects built with CMake, such as FreeRTOS (which is not currently a dependency).

#Why microcontrollers?

They're inexpensive, simple, and fun to hack on. Powerful enough to create useful applications, but limited enough to need care in resource usage. Let's bring software freedom to this traditional stronghold of property.

I'm not getting paid for this. Leave Embedded Linux for the dayjob.