Web-based version via emscripten: https://mini000.itch.io/beeper
Source code: https://github.com/valdanylchuk/beeper
Demo video running on Tanmatsu (esp32-p4): https://www.youtube.com/watch?v=uCH9XYZ7QB0
The main challenge I was going for was actually to find a nice minimal set of controls for a subtractive synth. Usually there are 40-50 of them in "simple" synths; I ended up with 16.
In terms of TUI, I wanted to see if it would be practical at embedded C scale to use a modern approach similar to ratatui, Dear ImGui, or Nuklear. I am quite happy with it so far. Will keep using and extending it for more embedded apps.
I did not publish the library as a separate project yet; it is not mature enough. Feel free to reuse it via good old copying for now if you like it.
For those who remember my earlier post here about the BreezyBox ( https://news.ycombinator.com/item?id=46918429 ), a few updates from the last 6 months:
* added sshd for inbound connections * extended shell with variables, loops, conditions, tar, grep, diff * added sound component, including pico8-themed sequencer, and a few example apps * ported my self-hosting C compiler for RISC-V (rcc700) * shared a full example firmware project for Tanmatsu (p4), in addition to earlier Waveshare (s3)
Thanks for checking this out! I welcome any questions and feedback about the synth app, the TUI library, or the Breezybox firmware.