Readit News logoReadit News
ahilss · 2 years ago
Wavacity developer here. I released this a year ago under the name "wavvy" but needed to rename the project because of a trademark conflict.

https://news.ycombinator.com/item?id=32688646

winrid · 2 years ago
How did you get wxwidgets to compile to the web? Was it a lot of work?
supportengineer · 2 years ago
This is the part I want to know also
wyldfire · 2 years ago
Great job!

The world needs more folks to take initiative like this.

notpushkin · 2 years ago
This is pretty cool!

Maybe add a description and URL in the repo settings? https://github.com/ahilss/wavacity

(and linking back to the GitHub from Wavacity would be nice too, as right now it's not obvious it's available)

ncr100 · 2 years ago
I like this name too, it's even better.
dylan604 · 2 years ago
I can't believe they have the audacity to rename their project
helpfulContrib · 2 years ago
Can this somehow be used to edit a file on a system remotely? Say I have some .wav's on a raspberryPi, can I publish them, edit, send them back to that raspberryPi?

Because that seems to me to be a very awesome use-case ..

bjackman · 2 years ago
What motivated you to build this? Just because it's cool (it is cool!) or to serve a practical need?
dylan604 · 2 years ago
There was a lot of discussion back when Audacity decided to make some changes. I don't remember what they were specifically, but I do remember a few threads here about forks of the project. I don't remember the name wavvy, so maybe this is another fork. I was thinking the fork discussed here previously also was a play on the "*city" name as well.
bigyikes · 2 years ago
Wow, this is incredible! I was not expecting it to work on mobile Safari of all things, but it does! The UI is even usable.

Audacity is an indispensable utility. It’s great to see it and other “real” software on the web. I’m reminded of Photopea[1] which is a web clone of Photoshop.

[1]: https://www.photopea.com/

autoexec · 2 years ago
> Audacity is an indispensable utility. It’s great to see it and other “real” software on the web.

It's been a very long time since I used it, but didn't Audacity turn evil, add a bunch of networking code it never needed before, and start spying on people? (https://fosspost.org/audacity-is-now-a-spyware/). I remember people reverting to older "safe" versions.

I guess that doesn't much matter for this web app since it's collecting your IP and data by design (their privacy policy seems very vague and handwavy), but for the desktop app it seemed like kind of a big deal at the time.

asddubs · 2 years ago
IMHO the spyware angle was overblown. they added telemetry to the dev builds. the real thing I took issue with was adding a CLA after the fact
rcme · 2 years ago
I'll never understand peoples' obsession with equating telemetry with spyware. As an application developer, I need to know that my application is working appropriately for my users. It's not sufficient to rely on manual bug reports. If someone doesn't like that, then that's perfectly fine in my opinion. Just don't use the product. To accuse an application developer of spying on users is a bit much imo.
russellbeattie · 2 years ago
If all the browsers, including mobile ones, would implement all of the the FileSystem Access APIs, these types of apps would be even more usable.

https://developer.mozilla.org/en-US/docs/Web/API/File_System...

meepmorp · 2 years ago
According to that link, all the browsers do implement the non-experimental parts of that API. The other features seem to be ones that Chrome has shipped unilaterally - the links to the standards docs seem to only have Google authors for those bits.
8n4vidtmkvmk · 2 years ago
Yeah I didn't expect Photopea to be any good but now I use it all the time. Perfect Photoshop replacement for light editing.
lost_tourist · 2 years ago
better than gimp?
mock-possum · 2 years ago
I agree that it running on mobile safari is incredible - I wouldn’t call the UI ‘usable’ though, it’s a straight duplicate of the desktop UI, which isn’t geared for mobile by any stretch of the imagination, and is actually unusable on my iPhone due to (I assume) far too small a clickable area for most controls.

A UI rework to incorporate mobile-friendly design would be a ton of effort, but it would really take this project to the next level!

StevePerkins · 2 years ago
Does EVERY desktop application really need to run on mobile? Some apps are just... call me crazy... desktop apps! (NOTE: "native vs. browser-based" is separate distinction from "desktop vs. mobile".)

That's not to say that there can't be mobile audio apps, or mobile whatever. I just think that's a separate app, and should be designed and written as a mobile app from conception.

I realize that a large cohort finds desktop applications uncool today, but I'm just so frustrated with the idea that serious and powerful desktop interfaces need to crippled in order to fit into a "mobile-first" (a.k.a. "lowest-common denominator") paradigm. For audio listening, that's fine. But for serious audio creation and editing? FUCK an iPhone, sheesh.

causality0 · 2 years ago
Are you using an old iPhone with a tiny screen or have you not tried turning it sideways? It's extremely usable in landscape. My sausage fingers don't have trouble hitting any buttons.
mrtksn · 2 years ago
The page loads fairly quickly, I guess most people miss out the loading screen with the link to the github repo: https://github.com/ahilss/wavacity

So yes, this is a WebAssembly app. It loads a 5.2MB .wasm file and 2.3MB .data file.

Neat, isn't it?

lathiat · 2 years ago
Also impressive is that is smaller than every other release artifact: https://github.com/audacity/audacity/releases
albertzeyer · 2 years ago
Why is that? Has it some features removed? Or how else can that be?

Edit I guess the wxWidgets lib is smaller, as it is more incomplete.

thyrox · 2 years ago
Wow this is just incredible! Seeing this and software like photopea I can now start to feel that HTML has become powerful enough that almost any desktop app can now be built for the web just as same.

A lot of people/companies tried their best to impede this progress (1) for promoting app stores but I'm so glad we are finally getting there regardless. Better late than never!

(1) https://thenewstack.io/apples-browser-engine-ban-is-holding-...

clintfred · 2 years ago
I agree it's awesome, but I think we have WebAssembly more to thank than HTML. :-)
lfmunoz4 · 2 years ago
Can anyone summarize how this works. Guessing Audacity is some C++ program. How did they take all the dependencies and make them work on browser, using WASM? What about the frontend? Is the UI just completely re-written?
xd1936 · 2 years ago
I think so. They use Emscripten to compile.

https://github.com/ahilss/wavacity

Remarkable.

thomond · 2 years ago
It uses wxwidgets so they can just compile that to webassembly too.
schemescape · 2 years ago
wxWidgets uses native controls, so just compiling to "WebAssembly" (I'm assuming it's compiled to WebAssembly, plus some JavaScript for DOM manipulation) was probably a significant amount of work. I'm actually curious how it was done!

Edit: the previous submission had a helpful thread on this very topic: https://news.ycombinator.com/item?id=32689423

evrimoztamur · 2 years ago
Alright, it's at a kind of uncanny valley situation where we have Windows XP applications running real-time in our browsers. Is the end-game just a universal sandboxed VM that's cross-platform? What do we do next?
esperkin39 · 2 years ago
For better or for worse, that's what Google is aiming at with ChromeOS. Especially now that the overarching "OS" is really just a Linux shell for multiple VMs.

https://chromium.googlesource.com/chromium/src/+/main/docs/l...

asfgiaosnio · 2 years ago
People often claim that ChromeOS is versatile enough to replace a normal computer because it has these various compatibility layers. They often fail to mention that they work terribly. You wind up with the poor performance and annoying isolation that VMs give, but with an extra helping of instability and incompatibility. Running anything Google hasn't approved is gated behind "developer mode", and even for a developer the pseudo-Debian container "developer mode" unlocks is confusing. I regularly encounter problems (like needing to run Wireshark) that I believe are simply unsolvable.

I don't understand anything about ChromeOS. At one point it was a bad but clear idea: a machine with just a web browser, capable only of running web apps. Then at some point they decided to just make the world's most complicated and confusing Linux distro, with the vestigial browser-centric design kept around just to make things as inconsistent as possible.

ajross · 2 years ago
FWIW: native audacity (literally the debian package) runs in ChromeOS as a wayland/somellier client from crostini. Basically everything not tied to particular driver or hardware environments runs great.

The whole OS is really the best "app fusion" desktop environment out there. I've got Android apps for Threads and Tesla running alongside all the web apps you'd expect to find. I've got my personal email via linux Thunderbird. I read my PDFs in Evince (because, let's be honest, both the Chrome and Adobe readers are junk) and it integrates with the native ChromeOS Files app like a normal app. In fact all the Gnome .desktop files in the Crostini personality appear as apps in the OS menu that can be associated with files types or pinned to the shelf, so there's a surprising amount of scriptability to the process. Likewise it makes a great X terminal for shells and emacs windows from development machines.

In fact I've moved (to be fair: for professional reasons, and I resisted for quite a while) to a mid-tier junky old Chromebook for basically all my client activity at this point (windows games being the sole exception). Really it's pretty great. The proverbial year of Linux on the desktop arrived and won while we were all looking elsewhere.

Fudgel · 2 years ago
TheRealPomax · 2 years ago
Fun fact: when you don't give a shit about whether your UI looks like what "the OS looks like" (no offense to Tantacrul, but audacity clearly doesn't), you can get a surprising amount of work done. This isn't a Windows XP application, it looked like this well before Windows XP existed.
PaulDavisThe1st · 2 years ago
Audacity is a cross-platform app that runs on (at least) Linux, macOS and windows (I suspect most other *nixes are supported to).

Also, note that most creative apps (music, video, art) do not follow the UI guidelines for any particular OS platform (partly because they tend to be cross-platform, partly because their needs are very different from office productivity and communications apps. This is true even when the apps are nominally made by Apple for Apple (see Logic Pro or FCP for examples).

Finally, Tantacrul has zero responsibility for the UI appearance of the Audacity that Wavacity is based on.

raincole · 2 years ago
As a game dev I haven't seen an app (except browser and terminal) that looks like the OS native UI for quite a while.

Blender, Houdini, 3DCoat, Photoshop, Krita, FL Studio, Bitwig... all of them use their own UI widget.

nativeit · 2 years ago
I strongly support using OSS every chance I have, and do what I can as a non-programmer to support OSS projects, but as someone who trained on industry standards for audio editing (since the 1990s, starting with Syntrillium’s Cool Edit Pro) I found Audacity quite difficult to use. I really don’t understand this philosophy that prefers when applications lack any cohesive visual design language. “Designed by engineers” is every bit as problematic to me as “engineering by designers”.
Lammy · 2 years ago
> What do we do next?

The next step will be the same stack except the browser engine will be running in """The Cloud""" and streamed to your consumption-only device like an OnLive/Stadia/PSNow game. Everything already has dedicated video-decoding hardware so it will probably be sold as better for battery life to rely on that instead of the unpredictable load of your own local OS and browser engine.

adamrezich · 2 years ago
"The Birth & Death of JavaScript" called it...
whoopdedo · 2 years ago
Seeing as we're talking about a webasm blob rendering into a canvas element, I'd title it "The Death & Rebirth of Flash".
londons_explore · 2 years ago
Run a web browser in the sandboxed VM duh. Must always add more layers.
dspillett · 2 years ago
> What do we do next?

Recompile Chromium for webasm. Run Chromium in Chromium in Chromium…

Then add Firefox into the mix.

(Being facetious of course, not wishing to put down managing to get an Audacity port running this way which is cool and even potentially useful (should you find yourself desperately in need of an audio editor in a place where you can't install software packages)).

Alekhine · 2 years ago
I mean, that was kind of the idea behind the JVM, wasn't it? It's not a terrible idea.
malux85 · 2 years ago
Much further in each direction, on the left, we compile LLMs to bare metal and boot them without an operating system.

On the right, we have more layers, so we must boot a VM in the browser, visit the same webpage, boot a vm on that page, and then run wavacity in that.

grotorea · 2 years ago
We can already do that for DOS programs, right? So a few more decades and it should work for XP too.
lagniappe · 2 years ago
I still can't find Unreal Tournament 2000 running in the browser :( and not Return to Napali either :/

My heart will go on.

otikik · 2 years ago
Run internet explorer inside our browsers, of course
archon810 · 2 years ago
Not sure why but in Chrome stable on my Pixel 7 Pro, as soon as I start playing, the whole page starts to flicker and is basically unusable.
1-6 · 2 years ago
We'll need to stop calling web browsers web browsers.
pixelpoet · 2 years ago
On reddit at least it seems like everyone under a certain age doesn't use the term at all and just calls everything, including websites, an app.
PaulDavisThe1st · 2 years ago
Back in the 80s, when 90% of software development consisted of using a database and the tooling provided by the database supplier, and creating a front end to enter/edit/view the database contents, the results were called "applications".

In the 2020s, when 90% of software development consists of using a database, tooling supplied by various open source projects and some choice of web front- and backends to create a front end to enter/edit/view the database contents, the results are called "apps".

plus ça change, plus c'est la même chose

hyperhopper · 2 years ago
To be fair, they aren't wrong. Web applications are applications. Who says native mobile applications are the only kind of applications?

Though if you call the PNG file that's a menu for your restaurant an app, that's just wrong.

dspillett · 2 years ago
I can see their point. Even a static website can be seen as a very (very) simple multi-page app.
jauntywundrkind · 2 years ago
Honestly it's just so hurtful to me how confined & narrow opinions are on what the web should be, on what should be allowed, for what it can be.

This sort of stuff is so prime to me, so excellent.

There's plenty of scary platforms about, less than great sites, sure. But there is no other connected medium available for humanity.

And to let the Fear Uncertainty & Doubt - or to let IMHO pitiful pointless sad grumbling about performance - dog us down is is to miss such huge potential, to grow & expand & improve, in unconstrained & vast greatness. This sort of shit is so excellent. Yes you can. And anyone with any kind of computing device can tune in & try it. Heck yeah!

russellbeattie · 2 years ago
We need to split the web into documents and apps, in my opinion.

We still don't have a standard HTML text editor, instead relying on hundreds of Incompatible WYSIWYG editors which all produce custom output, or worse (much, much worse) the abomination that is MarkDown. Every browser should be an editor which all produce standardized output.

In 2023, we're still relying on asterisk, hash marks and underscores to format text, while simultaneously being able to run full fledged audio editors. It's ridiculous.

Dalewyn · 2 years ago
>We still don't have a standard HTML text editor

Notepad.

postalrat · 2 years ago
Call the operating systems and call what was the operating system the kernel.
grotorea · 2 years ago
What do you propose? Internet operating systems?
franky47 · 2 years ago
Obligatory reference to Gary Bernhardt's 2014 prediction talk:

https://www.destroyallsoftware.com/talks/the-birth-and-death...