12 ms·
Show HN: I'm building a browser-based DAW
- tiborsaas 4y agoThere's an issue with the clip looping, it doesn't repeat seamlessly at the start of a new bar. The DAW BPM and the clip's BPM is matching. I'm using the latest Chrome on OSX.
- stevehiehn 4y agoThanks for pointing that out. It's still very much a WIP. I'll fix that!
- stevehiehn 4y agoI think I fixed it. TBH I was cheating and just checking the mark position every 25millis lol. But the looping should be sample accurate now.
- superb-owl 4y agoSadly the performance limitations of doing serious work in the browser seem to be holding back web-based DAWs. I'd love to see a set of bindings come out that allow us to build web DAWs with the WebAudio API, but utilize native C/C++ when run locally via e.g. Electron
- rutierut 4y agoWASM and WebGPU do help a lot. WebAudio is still severely limited though.
- antidnan 4y agoAre there any projects using WASM for DAWs?
- jcelerier 4y agoIt's still alpha but https://ossia.io/score-web https://ossia.io/score-web is the whole https://ossia.io https://ossia.io (C++ / Qt) compiled to WASM. I haven't implemented file import at all yet though and there are enough UI bugs and latency / performance is too poor to make this nothing more than a fun but useless experiment... but it'll come as soon as I have some time to spend on it :-)
- capableweb 4y agoNot sure how much WASM would help, except for very complicated effects and/or sound generators. It would introduce latency as JS<>WASM still needs to communicate since you can't play audio directly from WASM. The problem with DAWs in browsers is more around latency and precise timing, which browsers don't exactly excel at compared to desktop applications.
- p0nce 4y agohttps://www.webaudiomodules.org/ https://www.webaudiomodules.org/
- stevehiehn 4y agoThis is very interesting thanks!
- stevehiehn 4y agoAgreed, I'm trying to work the angle where you quickly arrange loops and midi then download a bundle to import into your favorite desktop DAW.
- rutierut 4y agoThere have been a couple attempts at this stuff in the past years. Every time people get a bit closer. So far timing issues and performance of compute intense operations have been the killer. Good luck!
- vanillaicesquad 4y agosoundtrap.com is the answer, mostly.
- playworker 4y agoAudiotool? I've never used it but it looks relevant: https://www.audiotool.com/ https://www.audiotool.com/
- drcongo 4y agoAudiotool is surprisingly capable.
- stevehiehn 4y agoI agree. Although I'm using the term DAW it's really a loop arranger pulling from the server.
- and0 4y agoOh, that's very cool. Any ability to run the server as a local service? I know people who mix+master and sending huge project files and also have to convert between DAW formats even. Having a common web DAW that can render on a server could be a very powerful ecosystem.
- 0x20cowboy 4y agoI’ve tried to build a similar thing several times over the years - once in flash and once in JS. Timing is the hardest - especially if you’re going to try to let people record on the fly against the running track. Have two or more play at the same time… rough. And I suggest you checkout https://www2022.thewebconf.org/PaperFiles/40.pdf https://www2022.thewebconf.org/PaperFiles/40.pdf there is an implementation called wam out there that lets you use VSTs in JS. It works pretty well. Good luck! I’ll be one of the first to sign up.
- vanillaicesquad 4y agoTake soundtrap.com and make it more like Fruiti Loops (android apk)
- capableweb 4y ago
- adamnemecek 4y ago
- capableweb 4y ago
- adamnemecek 4y agoYou generally want to have an email list of people to contact when you launch.
- capableweb 4y agoThen do that instead of constantly spamming HN? Maybe @dang / moderators needs to step in a do something about this, because it doesn't seem like you actually understand what spam is/isn't.
- adamnemecek 4y agoIt seems like today, you did it for me.
- capableweb 4y agoWell, does this mean you'll wait until you launch, then do one "Show HN" and in the meantime stop spamming all music-related threads? If not, whatever I do is futile
- adamnemecek 4y agoI’m close to launch so yes I can not spam until then.
- stevehiehn 4y agops - SOURCE CODE: https://github.com/shiehn/SignalsAndSorcery https://github.com/shiehn/SignalsAndSorcery
- pmayrgundter 4y agoAha! This is the main feature for me.. not necessarily that I'm going to start hacking, but it signals the right mental model... which is, friends jamming online, minimal to no-strings attached. Must haves: - Compose a draft and share with friends, so that they can contribute - No install/login required.. just too much of a drag to keep track of when we're evaluating new things all the time. All the music features are less important backstory is my band broke up after we all moved around the country and too far for live jams due to latency. Since, we've been after an async composer just to screw around again.
- tomc1985 4y agoDo any of these browser projects support existing plug-ins? A lot of people making music have spent $$$ on plugins, and just on the sheer R&D they've received, are going to sound considerably better than anything someone who is focused on writing a DAW can make. Plus, from my own experience, I have 20+ years working with FLStudio and know the program inside and out. Abandoning that plus my investments in VSTs is simply a no-go. So, good luck, but you've got some significant barriers to overcome.
- crubier 4y agoLet's make WASM VST plugins!
- tomc1985 4y agoMy other thing is... why does something like this need to run in a browser? What's wrong with desktop apps? I have FLStudio mobile and some other mobile DAW on my iphone and ipad. And to be honest, I never use them, other than as a tapping BPM counter. Do people actually feel productive tapping this stuff in on an iPad?
- virgil_disgr4ce 4y agoWhat's wrong with browser apps?
- fwsgonzo 4y agoAudio is real-time and performance is everything. Freezing tracks should take the least amount of time possible and no skipping should occur unless you are using the most complex modular VST out there. With WASM being like 1/3 of native and having extremely limited SIMD support I would probably expect it to not work at all for serious work. Quite frankly, even native performance is often not enough. That said, I can see it being relevant for learning audio, synthesis and how signal processing works. And of course, just for fun! Source: Worked with DAWs for a decade. Also currently writing a paper on the role of native performance.
- pyrossh 4y agoIt's pretty slow to open a page. Saw this in the console, (index):62 cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI:
- stevehiehn 4y agoHonestly still trying to figure out what I'm even building, but I agree, the load time is pretty bad. Also I'm using the smallest instance of Postgress Google Cloud Run offers and I've never stress-tested it before :)
- drchopchop 4y agoI know this is a hobby project, but who is the target user for something like this? What's the benefit of doing this in a browser? Desktop DAW's have many benefits: - ASIO drivers for low latency - Better CPU utilization - Multi-channel output - VST plugins (essential for most composers) - Good MIDI support
- EUROCARE 4y agoLocked down school computer users Chromebook users On-the-go users Teachers where students have their own computers I bet there's more
- stevehiehn 4y agoThe platform is really about uploading strictly annotated loops and stems to the server and have them exposed via an API. The DAW thing your looking at is really just away to preview the content. So I'm trying to see how far I can push it.
- bee_rider 4y agoThat seems like a really cool idea, and I'd be curious to see how far it can go. I'm sure you aren't aiming your project at, like, totally upending the record publishing industry. But it would be cool if someday artists could upload snippets, mix them together, publish the result for sale on a site. And somehow have it sort out the contributors so that royalties can be trickled down elegantly so that, like, the internet-equivalent of a session artist gets a fair cut. Uh... not to set the bar too high or anything. Good luck!
- disintegore 4y agoI realize this probably isn't what the OP was aiming for, but I think a web-based DAW would be wonderful for artists collaborating over the internet. I am currently recording an album with my band and we all have have monitoring equipment and recording interfaces at home (save for the drummer for obvious reasons) and currently we just bounce a Reaper project between each other so we can all add our respective tracks. It's far from ideal. We don't all run the same OS. We don't all use the same commercial plugins. Result is that nobody gets the same audio out of it and sometimes the project gets mangled (eg the Linux port can't load some resources because they point towards `C:\Users\JohnDoe\Album` or something). Also, the folders get huge very fast. A web-native DAW would solve a lot of these problems, assuming realtime audio is possible. I know that, for instance, with Pipewire or JACK/PulseAudio, you could probably pull it off, but I have no idea how it would work on Windows' audio stack which appears to be made of pixie dust. I'm hoping the VST format dies a painful death, personally. It's a non-portable legacy solution and even in the best of cases it's a pain to work with.
- stevehiehn 4y agops - all the samples/loops are royalty free. I created REAPER daw scripts in LUA to quickly create beats/loops which are machine annotated and then upload directly to the backend.
- guggle 4y agoHow come Paul Davis didn't react yet ? ;-)
- klntsky 4y agoThat's interesting, but how are you going to deal with unpredictability of JS timers and with GC pauses?
- stevehiehn 4y agoIt's not real-time. The backend is fed heavily annotated loops. It merges all the audio buffers before playback. I regret using the term DAW. It's a bit disingenuous. It's really a loop preview/arranger for people looking for royalty free loops. (Not unlike Splice) HOWEVER - I am experimenting with an arpegiator and seeing where that goes.
- breckinloggins 4y agoThe web audio platform has approaches that purport to work around this [0]. We'll see how that pans out (no pun intended). [0] For example: https://web.dev/audio-scheduling/ https://web.dev/audio-scheduling/
- 12ian34 4y agobut, why?
- margoguryan 4y agoAs someone who uses very minimal freeware DAWs (literally, LMMS and Audacity- I am now a big fan of FL Studio Mobile with the Samsung S Pen as well), I would probably use this a lot! Have you considered a sample market? I'd love to be able to sell loops that I can't really find much of a use for, or drum samples that I made myself but don't need.
- stevehiehn 4y agoya, so that was the original Idea for this project (and still is-ish): A user generated sample platform. Then I decided I need a slick way for folks to preview the samples and am now trending towards building a composition tool. Also feel free to download and use the samples. They are 100% royalty free.
- ccbccccbbcccbb 4y agoWill it achieve latency on par with ASIO, in the ballpark of single-digit milliseconds?
- thewebcount 4y agoInteresting looking tool. I'm probably not the target audience, but could see how it could be useful. Here's my take on what I saw: The fonts make everything really hard to read. (Full disclosure, I'm old and my eyes suck, but I was wearing glasses while trying it out.) Personally, they also remind me of old Mac 128k adventure games. (Which I guess makes sense given the name, but isn't what I want when working with a tool.) I ran it in Orion (WebKit-based, similar to Safari) and couldn't get more than one segment of music to play at a time. Pressing the large play button at the bottom left did nothing, as did pressing the "Render" button. The switches in the top row only look like switches once you mouse over them (at least in Orion). Otherwise they look like a small off-center circle and had me scratching my head. Some additional contrast in the background color of the switch might help. I hope that helps!
- stevehiehn 4y agoThanks! I wish I could afford a designer. I'm trying to do my best with TailwindCss ATM.
- stevehiehn 4y agoRegarding browser compatibility: I want to see whats possible on chrome followed by mobile. I don't really know exactly how portable the WebAudioApi is tbh.
- jbverschoor 4y agoI see no use in this incarnation.. I expected a DAW, and most of all something that's multi-user/collaborative. But it's probably fun to work on
- zmix 4y agoWhy? If I want a DAW, that has extremely fair licensing conditions, a huge, passionate community, fast and steady, continious development, is highly compatible with the music recording environment and available on all three major platforms, I simply go for "Reaper".
- stevehiehn 4y agoI think the most valuable feedback I'm taking away today is to immediately stop using the term DAW. I'm building a loop arranger that exports a project to a DAW. REAPER is what I use to create samples. It's the only DAW I know of that allows scripting powerful enough to create a project, add midi, bounce the tracks, annotate them and upload to my server. I was hoping the BitWig api would allow me to do all these things but it doesn't. At least not yet?
- zmix 4y agoOh, ok :-) Cool!
- deleted 4y ago[deleted]
- redsummer 4y ago
- severak_cz 4y agoI am working on something similar. But it's just collection of instruments with limited recording capability. https://severak.github.io/cyber-music-studio/ https://severak.github.io/cyber-music-studio/
- Yahivin 4y agoNeato, I did something similar at https://danielx.net/composer/ https://danielx.net/composer/ Web audio has come a long way. MIDI and SoundFont support was an adventure. Good luck!
- stevehiehn 4y agoThis reply makes me happy. This app is great :)
- glial 4y agoSo awesome! It makes me nostalgic for Mario Paint: https://youtu.be/T3MWzEgtzDU?t=442 https://youtu.be/T3MWzEgtzDU?t=442
- bfrog 4y agoI mean I guess it depends on what it does, if it’s like a sequencer that’s fine. If it’s a live recording, live performance with synth plugins and filters and such yeah… I’m highly skeptical.
- fauria 4y agoDAW: digital audio workstation - https://en.wikipedia.org/wiki/Digital_audio_workstation https://en.wikipedia.org/wiki/Digital_audio_workstation
- shams93 4y agoNow with the clap plugin format and wasm its possible to have open audio and processesing plugins that could be used in the browser.
- ViceCitySage 4y agoNice. While I still favor native clients over web apps, stuff like this will make music production much more accessible.
- gbraad 4y agoUsing Vivaldi, a chrome based browser, and this doesn't seem to load/work. What's up with that?
- pell 4y agoThe website's design reminds me of Windows Vista in a very positive way.
- micbuffa 4y agoWe started writing a web-based DAW prototype that relies on the Webaudio Modules version 2.0 (a standard for plugins/hosts on the Web, that can be developed using a large variety of languages/approaches). For the moment, the DAW has very limited features but 1) Each track is written as an AudioWorklet, and sample accurate processing is being done for playing each track. That means, that from the processor part of each track player, we can schedule events (automation, midi, etc) to plugins. We can also loop and edit the audio track with a sample accuracy (this is not done yet, but everything is ready for that. We will add this soon). 2) Each track is associated with a plugin chain. Plugins are WAM plugins (webaudiomodules), and can be automated. 3) There are quite a lot of plugins already available in the WAM format, most effects, instruments. The WAM distribution comes with a set of example plugins + the FAUST IDE can generate WAM2 plugins in seconds. All running DSP in WASM. We (WAM designers, implementers and maintainers) can be reached on a slack channel (#webaudiomodules, subchannel of the #webaudio channel. Get incitation here: https://web-audio-slackin.herokuapp.com/ https://web-audio-slackin.herokuapp.com/ The WebAudioModules distro is 4 GitHub repos, it is also available as npm modules. (https://github.com/webaudiomodules https://github.com/webaudiomodules, start by building the wam-example one and run the examples). You can find some presentations on youtube (such as: https://www.youtube.com/watch?v=8G3we8dikq8 https://www.youtube.com/watch?v=8G3we8dikq8). DAW prototype (should be included soon in the wam-example repo): Picture : https://i.ibb.co/mBdNGqk/WAM2-DAW.jpg https://i.ibb.co/mBdNGqk/WAM2-DAW.jpg online version: https://wam-openstudio.vidalmazuy.fr/ https://wam-openstudio.vidalmazuy.fr/, current repo (work in progress, as I said, this work is active and we do plan to add all missing functionnalities the upcoming months) https://github.com/TER-M1/wam-openstudio https://github.com/TER-M1/wam-openstudio There are also professional, commercial DAWs, not open source ones, such as https://ampedstudio.com/ https://ampedstudio.com/ that is also capable of loading WAM plugins, and is developed using the same approach as our DAW proto (host as AW), bandlab.com or soundtrap.com. Michel