shorepine / tulipcc

The Tulip Creative Computer - a portable Python synthesizer for music and graphics
https://tulip.computer/
Other
449 stars 29 forks source link

Tulip Desktop should be a web page, not a native app #327

Open bwhitman opened 2 months ago

bwhitman commented 2 months ago

We want to simplify development and ease of use for Tulip Desktop, our Tulip simulator.

Tulip Desktop is crucial for Tulip - it helps people learn about Tulip and also helps them write programs for Tulip.

It is currently based on the unix port of Micropython and SDL, to simulate the screen. AMY works as is. We (Brian and Dan) do most of our work on macOS, and the linux/WSL ports have various problems that we can't fix. The linux/WSL ports also have to compiled from source.

We want to build Tulip Desktop for the web, using Micropython's webassembly port, AMY's web port, and emscripten's SDL support (or find another frame buffer-like canvas object.) This will let anyone just go to (e.g.) https://tulip.computer/desktop and have their own file system and be able to interact with Tulip on the web with no software install.

znmeb commented 2 months ago

Why not Web Audio and Web MIDI? Do you really need an Emscripten SDL2??

bwhitman commented 2 months ago

SDL is not for audio and MIDI (we will use native Web Audio (Worklets) and MIDI) but for the framebuffer, keyboard and touchscreen/"mouse".

znmeb commented 2 months ago

Ah ... I don't know much about the video stuff.

bwhitman commented 8 hours ago

This work is well underway, see latest here: https://tulip.computer/run/

znmeb commented 7 hours ago

Looks great! I'm working with AMY in Arduino on Pico Ws at the moment, but my project will definitely need some desktop components to supply data to the Pico version.