Hacker News new | comments | show | ask | jobs | submit login
Show HN: Web Audio DSP Playground (acarabott.github.io)
126 points by acarabott 7 months ago | hide | past | web | favorite | 43 comments

Audio Worklet https://developers.google.com/web/updates/2017/12/audio-work... is way, way cooler than these demos imply, as it actually gives you a high-priority digital signal processing thread separate from the UI thread. And because it can benefit from WebAssembly, it's only a matter of time before the power of native audio applications is ported to the browser.

This thread https://forum.juce.com/t/juce-plugins-in-webassembly/25255 , particularly the demo here https://webaudiomodules.org/demos/wasm/dexed.html (try using the ZXCV row on your keyboard) are incredibly promising, as they're straightforward ports of real synthesizers.

Other comments have mentioned that this is coming to Firefox as well; core contributors on the media team have been discussing how it's a priority as recently as two days ago: https://bugzilla.mozilla.org/show_bug.cgi?id=1062849

Really exciting times for the web audio space!

This is pretty sweet. It'd be cool to have more examples though like square wave, triangle wave, etc. and maybe some simple effects like tremolo.

    let amp = 0;
    const maxamp = 0.5;
    const freq = 880;

    function loop(numFrames, outL, outR, sampleRate) {
        const steps = sampleRate / freq;
        const delta = maxamp/steps;
        for (let i = 0; i < numFrames; i++) {
            amp += delta;
            outL[i] = amp;
            outR[i] = amp;

            if (amp > maxamp) amp = 0.0; 

Would be a cool addition to let users upload an mp3 and then act on it with the AudioWorklet to do stuff like bit crushing.

Great idea! Have implemented it, refresh and check it out.

Could you also try adding a polyfill for non-Chrome browsers? e.g. https://github.com/jariseon/audioworklet-polyfill

Had a crack at it but it throws NotSupportedException in both Firefox and Safari. There are also some parts that don't conform to the spec and break. Filing an issue...

Only available on Chrome and only versions 66 and up.

For cutting edge html5 we have no choice but the latest chrome. Audio worklets? Webmidi? Even though I prefer Firefox they're not moving at the same rate as chrome, no one is when it comes to things like audio worklets.

Apparently there is no issue when it is Google doing it.

bug tracking implementation of missing feature in FF: https://bugzilla.mozilla.org/show_bug.cgi?id=1062849

Yes, it's 4 years old.

To be clear, that bug originally tracked the implementation of the Audio Worker API, which went through many iterations that eventually led to the current Audio Worklet spec.

Just relaunch your browser, it should update automatically.

To state the obvious, not everybody has Chrome, and not everybody has or wants the newest version. That's how it should be. By implying that it's ok to assume otherwise, you're (probably unknowingly) harming the community.

Dumb (but genuine) question: why is it good that not everyone wants to be in the new version?

It hasn’t passed certification by your IT departments employer

Just try not to presuppose more than is required. I might be unhappy with the newest version. Or, my device can't be updated due to technical or polital reasons. Or, the newer version does not work or is not available for my hardware or operating system. Or, I might actually be on a fork (or fake) of the software that isn't up-to-date yet. You see, there are tons of reasons...

In Chrome's case, I believe it auto updates. So you don't really have a choice unless you actively try to disallow it or switch of auto-updates.

So I do have a choice, right? HN is a pretty technical forum -- not normally a place for ignorant-consumer type viewpoints (no offense intended). Case in point, my version of "Chrome" (chromium on Debian) does not auto-update (I think so - It's the normal way on Debian, although I don't really use chromium but firefox).

Why don’t you go ahead and restate what sgt said in a way that wouldn’t have set you off on this needlessly perjorative tangent.

Sorry, I'm just bad at leaving posts below my own ones unanswered. But actually I explained exactly what I thought was wrong with that (sgt's) comment and why I supposed it had been downvoted. I don't think there is a way of restating it -- OP has a perfectly valid point that does not need "nothing is wrong, just restart or install this thing that everybody needs to have" type rebuttals.

> Only available on Chrome and only versions 66 and up.

Lame. You are in a tech forum with techies and you are complaining about having to run the latest & greatest. How is this constructive?

Sometimes you need to run the newest stuff in order to, you know, use the newest stuff. As a techie, you should know that, right?

The alternative would be flash, but then you couldn't have done this demo....

Maybe they're not using Chrome?

Getting an error of "The AudioContext was not allowed to start. It must be resume (or created) after a user gesture on the page. https://goo.gl/7K7WLu".

Strange, as this is accounted for: https://github.com/acarabott/audio-dsp-playground/blob/maste...

OS / Chrome version? Were you clicking the start button or using the key command?

This is awesome. Sounds quite in tune at 440 Hz (A4). Could be the beginning of a DAW for Chrome ;)

There are several online DAWs: a friend works on this one https://skytracks.io/ and a google search will turn up many others

Requires Flash, but AudioTool has always been absolutely amazing to me:


Why for Chrome? Why not for the web?

Let’s not walk into the old MSIE trap all over again.

Need to convince the remaining browsers to implement more audio APIs.

Firefox plans to implement it last I checked[1].

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1062849

We are already there.


Its an experimental playground. I think you may be overreacting slightly.

What does that comment add? Someone hacked something off a relatively fresh API and done something cool with it, the hint is in the name, hacker news.

Hackernews, not "install proprietary software to have a peak at a walled garden" + "news".

Chromium isn't proprietary software. HN is though. Your rant is misguided and pointless.

That's [old, outdated] source available. Not non-proprietary software. If you're going to rant, you might want to at least be accurate?

So every Show HN Post hast to run on open source software or else it isn't hacker news worthy? That doesn't sound right to me.

That is not as far fetched as you make it seem

AudioWorklet is part of the proposed W3C Web Audio API standard.

Only available in Chrome 66+, and why do you submit it twice in a week?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact