10 ms·
Wavacity – a FOSS port of Audacity to the web
- evrimoztamur 3y agoAlright, 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?
- londons_explore 3y agoRun a web browser in the sandboxed VM duh. Must always add more layers.
- adamrezich 3y ago"The Birth & Death of JavaScript" called it...
- grotorea 3y agoWe can already do that for DOS programs, right? So a few more decades and it should work for XP too.
- lagniappe 3y agoI still can't find Unreal Tournament 2000 running in the browser :( and not Return to Napali either :/ My heart will go on.
- jakearmitage 3y agohttps://icculus.org/ut99-emscripten/ https://icculus.org/ut99-emscripten/ Here you go.
- lagniappe 3y ago> This is just the intro flyby to show it works. The whole game is not included because it's a big download and not mine to give out.
- jakearmitage 3y agoRight, but it's not a technical issue. It is a legal one.
- beebeepka 3y agoThere is no UT2000. ut99, 2003/4
- TheRealPomax 3y agoFun fact: Unreal was the first real, major piece of software that got ported to run in the browser, in a collaboration between Epic and Mozilla... almost a decade ago https://blog.mozilla.org/en/mozilla/mozilla-and-epic-preview-unreal-engine-4-running-in-firefox/ https://blog.mozilla.org/en/mozilla/mozilla-and-epic-preview...
- speakingorthly 3y agoUnreal Engine support is coming back to the browser, and with faster performance and load times than ever before! My team and I at Wonder Interactive are building a hosting platform and suite of devtools that enable native games and 3D apps in the browser using WebAssembly and WebGPU. Unreal is the first of many engines we'll support, we started with it because it has historically had subpar (and since the deprecation of HTML5 support in UE4, non-existent support for the web platform!) Check out a few of our demos below, as well as a roadmap blog post we did last year: https://theimmersiveweb.com/blog https://theimmersiveweb.com/blog Top down RPG UE4 game demo: https://topdown.tiwsamples.com/ https://topdown.tiwsamples.com/ Space game demo (UE4) - https://play.spacelancers.com/ https://play.spacelancers.com/
- esperkin39 3y agoFor 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/lacros.md https://chromium.googlesource.com/chromium/src/+/main/docs/l...
- asfgiaosnio 3y agoPeople 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.
- londons_explore 3y agoTest of if an OS is ready for regular users: Does drag and drop work? Can I choose a random image/file somewhere in one tab/application and drop it into another. Just testing that now... * Drag HN logo to Whatsapp Web: Pass * Drag from Google Photos to Photopea: Pass * Drag a zip file from Google Drive to Dropbox: Fail. * Drag an attachment from an email from gmail into an online hex editor: Fail Conclusion: The web platform isn't yet ready.
- jrajav 3y agoYou could just as easily construct an arbitrary usability test over interop that the web platform excels at while current desktop apps do terribly. For instance: * Send a link to a Google Drive document to another person on WeChat: Pass * Send a link to a Microsoft Word document to another person on Slack: Fail The web has different paradigms and some of them are an improvement, one being hyperlinks, another being instant delivery just for example (no install time).
- Alekhine 3y agoI mean, that was kind of the idea behind the JVM, wasn't it? It's not a terrible idea.
- TheRealPomax 3y agoFun 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 3y agoAudacity 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.
- TheRealPomax 3y agoSo we agree: this appication/UI has nothing to do with "Windows XP".
- raincole 3y agoAs 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.
- TheRealPomax 3y agoI'm trying to think how you'd even make blender or bitwig look native, but then I remember the DirectShow node graph editor from the windows 98 days and I'm going to stop thinking about this again.
- nativeit 3y agoI 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”.
- malux85 3y agoMuch 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.
- otikik 3y agoRun internet explorer inside our browsers, of course
- Lammy 3y 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.
- dspillett 3y 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)).
- bigyikes 3y agoWow, 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/ https://www.photopea.com/
- russellbeattie 3y agoIf 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_API https://developer.mozilla.org/en-US/docs/Web/API/File_System...
- meepmorp 3y agoAccording 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.
- russellbeattie 3y agoOK. Let me rephrase. If all browsers would support the very useful set of experimental FSA APIs implemented in Chrome/Edge's desktop browsers, then these types of web apps would be even more usable. There was nothing biased in my comment - even Chrome for Android doesn't support these APIs.
- tambourine_man 3y agoWhat useful features aren’t implemented in other browsers?
- danShumway 3y agoPersistent read/write access to user-defined folders rather than only to private origins. You know how everyone complains about Flatpak sandboxing until they learn about portals and Bubblewrap because the programs are isolated from the rest of their disk? The web is like that, except without portals and Bubblewrap. You can save stuff and drag files in, but you can't really integrate a webapp with a user's local filesystem -- and it's very hard to keep all of a webapp's data in a user-inspectable format that's easy to transform, open up with native apps, or transfer across browsers or websites. Now, the problem is that persistent read/write access to user-defined folders is wildly dangerous. And Google's proposal is... not the worst thing in the world? But it's suboptimal and it's a missed opportunity to build something far better, and I kind of understand why Mozilla considers it harmful. Getting this wrong would have permanent implications for the web. Mozilla is absolutely right to be cautious. However, it's also really holding the web back and in particular holding back PWAs because the only really reliable way as a developer to store data via the web is to sync it to an online account. As a result offline webapps are very limited; you never really trust the storage. It's an extremely dangerous feature that we really need, but it's not clear who should champion it and I don't really trust Google to be heavily involved in the spec process, let alone to be the people writing the first draft. I don't think Google is good at building nuanced web specs even when there's no conflict of interest at all (see the web audio API, HTML templates, etc...). A lot of Google specs end up being very weird and they end up having strange quirks and very strange limitations that don't need to exist? They're very often kind of orthogonal to what the community needs. I don't know if the problem is that Google doesn't think enough about the spec or that they think too much and over-complicate things, but for low-level important features I prefer other browser-makers to lead the way. What would be best is if a team with more earned trust picked up the spec and went over it again trying to better address the dangers and trying to make something that better addressed everyone's needs in a cleaner way, but there are not a ton of stakeholders on the web that I trust to do that. As it stands the proposal is... ok-ish? But needs a lot more discussion and could be better. I don't blame anyone for being hesitant about it; the potential for abuse is so unbelievably high. But... it is a serious limitation that I can't ask for persistent read/write access to a folder from an offline webapp.
- 1-6 3y agoWe'll need to stop calling web browsers web browsers.
- pixelpoet 3y agoOn 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.
- hyperhopper 3y agoTo 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.
- anon____ 3y agoCan you apply that image file to help you order food? Then that's an application. And that's why they are wrong. If anything and everything can be called an app then the word lost its meaning.
- hyperhopper 3y agoApply the image file? Do you apply road signs?
- anon____ 3y agoYes and yes. I'm not a native English speaker, though. Definitions of the verb apply from https://en.wiktionary.org/wiki/apply#Verb https://en.wiktionary.org/wiki/apply#Verb: 2. (transitive) To put to use; to use or employ for a particular purpose, or in a particular case to apply funds to the repayment of a debt 3. (transitive) To make use of, declare, or pronounce, as suitable, fitting, or relative We need to apply the skills we've learned to solve this problem
- 3y ago
- lfmunoz4 3y agoCan 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?
- thomond 3y agoIt uses wxwidgets so they can just compile that to webassembly too.
- schemescape 3y agowxWidgets 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 https://news.ycombinator.com/item?id=32689423
- xd1936 3y agoI think so. They use Emscripten to compile. https://github.com/ahilss/wavacity https://github.com/ahilss/wavacity Remarkable.
- tyingq 3y agoSee this: https://news.ycombinator.com/item?id=32610129 https://news.ycombinator.com/item?id=32610129
- wasm123 3y agoMic Recording on the Web still a little rough. Could just be my machine, M1 MBP
- mrtksn 3y agoThe 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 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 3y agoAlso impressive is that is smaller than every other release artifact: https://github.com/audacity/audacity/releases https://github.com/audacity/audacity/releases
- albertzeyer 3y agoWhy 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.
- mxmilkiib 3y agoI wonder if there any wasm window managers.
- baq 3y agoWill be bundled by your wasm Linux distro.
- ahilss 3y agoWavacity 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 https://news.ycombinator.com/item?id=32688646
- ncr100 3y agoI like this name too, it's even better.
- dylan604 3y agoI can't believe they have the audacity to rename their project
- rpastuszak 3y agoThe chutzpah! Would be a good name too
- wyldfire 3y agoGreat job! The world needs more folks to take initiative like this.
- winrid 3y agoHow did you get wxwidgets to compile to the web? Was it a lot of work?
- supportengineer 3y agoThis is the part I want to know also
- chx 3y agohttps://news.ycombinator.com/item?id=32689423 https://news.ycombinator.com/item?id=32689423
- 3y ago
- panzi 3y agoNow someone do the same with blender. XD
- hiccuphippo 3y agoGodot can run on the web. Blender couldn't be that far from it.
- seba_dos1 3y agoSo nice to see Audacity with a working playback position marker again :D
- deleted 3y ago[deleted]
- thyrox 3y agoWow 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-back-web-app-innovation/ https://thenewstack.io/apples-browser-engine-ban-is-holding-...
- clintfred 3y agoI agree it's awesome, but I think we have WebAssembly more to thank than HTML. :-)
- eigenvalue 3y agoVery cool. Seems like there is just tons of potential for more full-fledged open-source software to turn into web apps using WASM.
- javajosh 3y agoBravo! Very cool. The audio quality isn't nearly as good as local audacity. But very cool to have the option. Great job!
- dvh 3y agoOn my computer audacity takes 20s to start, does anybody know why it takes so long?
- jdthedisciple 3y agoTakes about 3 seconds for me, maybe it's just hardware limitations for you?
- baq 3y agoChecks for updates or phones home for other reasons, gets blocked, waits for timeout?
- kzrdude 3y agohow is it installed (flatpak or similar?)
- PappGaborSandor 3y ago[dead]
- EspressoGPT 3y agoNice, but what's the advantage of this? Not having it to install for one-time things?
- z3t4 3y agoThis is very cool. The sound quality when recording is however very bad for me, compared to just plain web mic recording.
- junon 3y agoWow this works exceptionally well. This is great.
- chaosprint 3y agoAmazing job. I once used this in a public computer and it works well. Thank you!
- ikesau 3y agoAwesome project! Would love to take some time to understand how this all works. One tiny thing I noticed is that the build information tab seems to point to a commit that no longer exists.
- swyx 3y agowas very excited about this! but recorded my thing and tried to export it and the page went unresponsive. ugh. so sorry but have to go back to real audacity.
- ott90210 3y agothis is so cool what's the future?
- archon810 3y agoNot 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.