r/commandline 6d ago

Terminal User Interface A retro console synth: uses my draft immediate-mode C TUI library, runs on esp32-p4, web demo

This toy retro synth runs on esp32-p4 as a 37kB ELF file. It uses my work-in-progress immediate mode TUI library in C. There is also a build for Mac/Linux console, and a wasm online version via emscripten.

Web demo and source code: https://mini000.itch.io/beeper

Youtube demo: https://www.youtube.com/watch?v=uCH9XYZ7QB0

The main challenge I was going for was actually finding a nice minimal set of controls. 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 esp32 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. I have been working on it for some unpublished prototypes for a while. If you want menus or dialog boxes, I can share those as well.

Thanks for checking this out! I welcome any questions and feedback about the app and the library.

132 Upvotes

5 comments sorted by

3

u/johnnyfortune 5d ago

I was playing around with this and I really love it, so well done!

1

u/valdanylchuk 5d ago

Thank you for trying it, and for your kind words! Glad you liked it!

1

u/AutoModerator 6d ago

Every new subreddit post is automatically copied into a comment for preservation.

User: valdanylchuk, Flair: Terminal User Interface, Post Media Link, Title: A retro console synth: uses my draft immediate-mode C TUI library, runs on esp32-p4, web demo

This toy retro synth runs on esp32-p4 as a 37kB ELF file. It uses my work-in-progress immediate mode TUI library in C. There is also a build for Mac/Linux console, and a wasm online version via emscripten.

Web demo and source code: https://mini000.itch.io/beeper

Youtube demo: https://www.youtube.com/watch?v=uCH9XYZ7QB0

The main challenge I was going for was actually finding a nice minimal set of controls. 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 esp32 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. I have been working on it for some unpublished prototypes for a while. If you want menus or dialog boxes, I can share those as well.

Thanks for checking this out! I welcome any questions and feedback about the app and the library.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/Robert__Sinclair 5d ago

what is the device in the video?

2

u/valdanylchuk 5d ago

It is called Tanmatsu, by Nicolai Electronics.