W3C home > Mailing lists > Public > public-audio@w3.org > July to September 2014

Re: Call for Consensus: retire current ScriptProcessorNode design & AudioWorker proposal

From: Srikumar K. S. <srikumarks@gmail.com>
Date: Thu, 14 Aug 2014 09:29:28 +0530
Cc: Chris Wilson <cwilso@google.com>, Olivier Thereaux <olivier.thereaux@bbc.co.uk>, Audio WG <public-audio@w3.org>
Message-Id: <5A3FC520-A8BA-49AD-8A86-29BEE6F9C03B@gmail.com>
To: robert@ocallahan.org
> Also I imagine there'll be some overhead to running JS on the audio thread that would be nice to avoid.

With JS running in the audio thread, the most exciting possibility performance-wise (imho) is to have 
the worker code use asm.js to limit/avoid GC and have much better performance than normal JS. 
(I’ve seen up to 5x gain relative to normal JS.)

If no external JS interactions are done, there is no reason for such code to behave any 
differently than the native nodes themselves. JS itself becomes the “shader lanaguge” here.

The only remaining unavoidable non-native overhead perhaps is message passing for 
onaudioprocess, perhaps? Likely even that can be optimized away.


> On 14 Aug 2014, at 8:50 am, Robert O'Callahan <robert@ocallahan.org> wrote:
> On Thu, Aug 14, 2014 at 3:22 AM, Chris Wilson <cwilso@google.com> wrote:
> On Tue, Aug 12, 2014 at 5:32 PM, Robert O'Callahan <robert@ocallahan.org> wrote:
> Running JS sync in the audio thread is also suboptimal: it means that JS misbehavior can cripple audio processing. I find it easy to imagine cases where I'd rather have all my JS analysis code running on the main thread to minimize the possibly of breaking my audio output, even though there's a small latency penalty.
> True enough.  But in that case, you can simply transfer the data over to another thread to do the processing there, yes?
> You can, but it's simpler and safer to be able to avoid running any JS on the audio thread in the first place.
> Also I imagine there'll be some overhead to running JS on the audio thread that would be nice to avoid.
> Rob
> -- 
> oIo otoeololo oyooouo otohoaoto oaonoyooonoeo owohooo oioso oaonogoroyo
> owoiotoho oao oboroootohoeoro oooro osoiosotoeoro owoiololo oboeo
> osouobojoeocoto otooo ojouodogomoeonoto.o oAogoaoiono,o oaonoyooonoeo owohooo
> osoaoyoso otooo oao oboroootohoeoro oooro osoiosotoeoro,o o‘oRoaocoao,o’o oioso
> oaonosowoeoroaoboloeo otooo otohoeo ocooouoroto.o oAonodo oaonoyooonoeo owohooo
> osoaoyoso,o o‘oYooouo ofooooolo!o’o owoiololo oboeo oiono odoaonogoeoro ooofo
> otohoeo ofoioroeo ooofo ohoeololo.

Received on Thursday, 14 August 2014 04:00:13 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:50:14 UTC