Sneeds-Feed-and-Seed / sneedacity

Audio Editor
https://sneedacity.org
Other
883 stars 63 forks source link

Support WASM target #215

Closed wooky closed 2 years ago

wooky commented 3 years ago

(warning: seiousposting)

You may have noticed that, in the past few years, the fad has become to move away from desktop application to web applications. Making Sneedacity built for WebAssembly and running in the browser could make it stand out from the other forks and could help in the long term.

Pros:

Cons: This is an ambitious proposal, and will take a lot of time. The biggest hurdle is the UI. While it's technically possible to get wxWidgets compiled for WASM, the result can look and behave terribly. It would be better to rewrite it using HTML components, or to use some C/C++ UI framework that can run on the web.

What do you think?

eylles commented 3 years ago

that would need titanic amounts of websoydevvery and most of the devs can't do more html than 90's html

rcelyte commented 3 years ago

QT is a great framework with official support for WebAssembly, and is already somewhat being considered. Moving to a web based framework (i.e. Electron) sounds like a great way to alienate the project's user base and kill it.

eylles commented 3 years ago

the discussion is to move the wx backend from gtk to qt, which funny enough "usptream" started to consider the day after.

sneedcat commented 3 years ago

I would support WASM if wx supported WASM. If it was a Rust project, then sure, we could have searched for a gui library with support for WASM or WASI or Empscripten.

formerlychuck commented 3 years ago

at the very least, porting the backend code/libraries to wasm modules would be interesting and a good showcase of the technology. But yeah a new frontend would likely need to be built for that

ghost commented 3 years ago

well since Qt does support wasm i guess this could be done when we get around to switching to Qt

MonokumaBear commented 3 years ago

Wouldn't that require someone to completely remake the program? I could see it being doable if we highly limit the feature-set. If we want to start off slow and continuously add features to the web version, the web team would have to continuously try to keep up with the main software. If we want to make a web version, we should make it easy to use and with less features.

ImGonnaChuck commented 2 years ago

This would be pretty cool and maybe useful. There's no reason wxwidgets can't be modified to draw to a buffer, and then we could add some code to draw that buffer on a canvas.

@MonokumaBear Nah, you can run entire x86 virtual machines on the browser. They aren't talking about converting it to HTML5, just compiling the existing codebase to WASM and using the web browser for IO instead of Linux or Windows. It's still hard, especially because you would have to make a heavily modified version of wxwidgets, but not that hard.

On the other hand, this is currently out of scope, unless somebody wants to work on it.