AlgoCompSynth / CLAMS

Command Line Algorithmic Music System
https://algocompsynth.github.io/CLAMS
MIT License
17 stars 0 forks source link

Research zeptoforth as base #18

Closed znmeb closed 1 year ago

znmeb commented 1 year ago

Zeptoforth looks like it has all the needed infrastructure and more. It has RP2040 and STM32 assembler, full RTOS, builds with GNU tools. and Python 3.9 or later - I'd just need to build the DSP code and the livecoding language.

znmeb commented 1 year ago

I'm pretty sure https://github.com/tabemann/zeptoforth is going to be the way forward. It has everything I need and more, and it's already optimized for the M0 instruction set. The only potential issue is flash and RAM space usage, so the next step is to profile a full build and prune unwanted functionality if necessary.

See https://github.com/tabemann/zeptoforth/discussions/3 for a discussion.

znmeb commented 1 year ago

So far everything looks good. Remaining tasks:

  1. See if we can live without C library linking at build time. zeptoforth is comprehensive although I haven't seen direct USB support.
  2. Read through all the source and the Makefile. I'm probably going to keep the fork and redo the build process using https://github.com/AlgoCompSynth/rp2040-forth-builder unless upstream wants the audio words.
  3. Enhanced documentation - all that's there is the standard stack comments in most cases. The arithmetic operations need more documentation - a lot more.
  4. Profile flash and RAM usage. Given that there's no floating point and the kernel is highly optimized, I'm not expecting processor limitations for what may end up being a two-RP2040 solution - one board for the synthesizer and the other for interacting with the user.
znmeb commented 1 year ago

Done - will proceed without C/C++ for now and will document as needed