(DAW) for MIDI 2.0 and audio tracks. And a PoC music sequencer. MIT license. Wasm version at: https://atsushieno.github.io/uapmd/ (no available synth yet)
and MIDI 2.0 (UMP) clips. can import MIDI 1.0 SMF, and split audio tracks (demucs-cpp) audio warps supported. (static time stretch so far. ARA2/3 in the future) DAG-based audio plugin graphs. (The PoC app has primitive editor features like PianoRoll, but UX isn't great.)
surprisingly great on Android (SDL3), but mobile UX is hard. => Why not use Compose Multiplatform? (Not rewriting everything in Kotlin; audio requires hard real-time safety.)
only for Kotlin in the long term) => cinterop first, for consistent API entrypoints to - JNA for (JVM and Android) - Emscripten (Wasm) => let AI generate bindings for to the cinterop-generated API for each platform (I don't target JS and Ktor for now; it is for CMP app with plugin UI)
for most app API (also for JS + MCP) so it should be almost only about GUI rewrites. "Create ImTimeline replacement in CMP" "Create ImNodes replacement in CMP" "Create a PianoRoll replacement in CMP"
is 2-3 days of AI slop. • Plugin UIs does not work perfectly ◦ need some special event loop handling (especially on Linux) • sluggish UI ◦ maybe I will have to remove extra cinterop layer. • dependencies are not organized well (at C++ layer)