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

Re: ScriptProcessorNode behavior without JavsScript references

From: Marcus Geelnard <mage@opera.com>
Date: Wed, 18 Sep 2013 11:50:01 +0200
Message-ID: <52397749.6010702@opera.com>
To: Raymond Toy <rtoy@google.com>
CC: Robert O'Callahan <robert@ocallahan.org>, "public-audio@w3.org" <public-audio@w3.org>
2013-09-17 23:12, Raymond Toy skrev:
>
>
>
> On Tue, Sep 17, 2013 at 2:02 PM, Robert O'Callahan 
> <robert@ocallahan.org <mailto:robert@ocallahan.org>> wrote:
>
>     On Wed, Sep 18, 2013 at 8:48 AM, Raymond Toy <rtoy@google.com
>     <mailto:rtoy@google.com>> wrote:
>
>         Let's say you create a ScriptProcessorNode and set the
>         onaudioprocess to generate, say, a sine wave.  Something like
>         the script below.
>
>         In this case, all Javascript references to the
>         ScriptProcessorNode and the corresponding onaudioprocess
>         function are dropped.
>
>         What should happen now?  Should you still hear the sine wave?
>
>
>     Yes, otherwise the timing of GC would be observable.
>
>
> Ok.
>
> And in this particular example, I can't stop the node so the only way 
> of stopping audio is to close the tab (because the script node is 
> directly connected to the destination)?
>

Since I'm the author of that particular example, maybe I should 
clarify... ;-)

This example comes from an app I did where I want to have continuous 
playback of generated audio as long as the tab is open. Even when the 
output is silence, events should be fired (but only zeros are filled 
into the buffer).

Yes, I expect that you can't delete it or stop it in anyway (otherwise I 
would have kept a reference to it). I think this is equivalent to other 
nodes in the graph - they won't be garbage collected just because you 
drop a reference to them. The main difference, as I see it, is that all 
nodes (?) except the ScriptProcessorNode have a way of telling the audio 
engine if they are "done" or not. Thus, the ScriptProcessorNode must be 
regarded as having an infinite life (right?).

/Marcus


> Ray
>
>
>     Rob
>     -- 
>     Jtehsauts  tshaei dS,o n" Wohfy Mdaon  yhoaus  eanuttehrotraiitny 
>     eovni le atrhtohu gthot sf oirng iyvoeu rs ihnesa.r"t sS?o  Whhei
>     csha iids  teoa stiheer :p atroa lsyazye,d  'mYaonu,r  "sGients 
>     uapr,e  tfaokreg iyvoeunr, 'm aotr  atnod  sgaoy ,h o'mGee.t" uTph
>     eann dt hwea lmka'n?  gBoutt  uIp  waanndt wyeonut  thoo mken.o w *
>     *
>
>


-- 
Marcus Geelnard
Technical Lead, Mobile Infrastructure
Opera Software
Received on Wednesday, 18 September 2013 09:50:35 UTC

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