W3C

- DRAFT -

Audio Working Group Teleconference

02 Jun 2016

See also: IRC log

Attendees

Present
cwilso, hongchan
Regrets
Chair
SV_MEETING_CHAIR
Scribe
rtoyg_m

Contents


+present rtoyg_m

<hongchan> +present hongchan

<cwilso> +present cwilso

<padenot> +present padenot

<MikeAssenti> +present MikeAssenti

Pick a scribe victim?

<hongchan> https://github.com/WebAudio/web-audio-api/wiki/AudioWorklet-Examples

<joe> Ray can you scribe? (I'll scribe when you talk)

Yes.

<joe> thanks!

<scribe> scribenick: rtoyg_m

hongchan: Issues came up in writing examples.

mailing list thread: http://lists.w3.org/Archives/Public/public-audio/2016AprJun/0058.html

joe: What additional things do we need?
... How do audioparams get initialized from the main thread side when instantiating a worklet node.?
... Need sequence diagram to show sync and async handling? How do these work on a worklet? Not nailed down in examples.
... Can you subclass audioworklet node? Would be useful.
... VU meter example shows this.
... Would optimize for this use case because worklets (probably) would be in libraries.
... How should the packaging issue be handled?

hongchan: Subclassing should not be a issue since we already allow this.

<joe> https://lists.w3.org/Archives/Public/public-audio/2016AprJun/0062.html

<hongchan> https://lists.w3.org/Archives/Public/public-audio/2016AprJun/0073.html

hongchan: Seems overkill to do subclassing to handle this case.

<joe> https://lists.w3.org/Archives/Public/public-audio/2016AprJun/0073.html

joe: These are two approaches, not exclusive.

hongchan: Doesn't like two approaches having two separate files to define worklets.

<hongchan> https://jsfiddle.net/cjcskv7u/2/

hongchan: Having one unified place make more sense.
... Proposes new approach in jsfiddle link by defining two classes when registering the worklet node.

joe: Any comments?

ian: is looking over the ramifications.

joe: Like everything in one class, but makes it impossible to name things in the global scope to instantiate it.
... Current approach prevents subclassing which we do want.
... With single file, it should import the necessary scripts and do the required things.
... Node really needs to live in the main scope.

ian: There are ways to get hongchan's example to work, but might be too confusing for developers?
... Not something we want to do because it can leak state horribly.

joe: With all other nodes, they're ready to use from the main thread (even if audio thread side isn't). Worklets should behave the same.
... Is this possible? Instantiate processor in main thread?
... With that, original design is ok.
... To summarize, when you instantiate a worklet node the constructor will instantiate the processor class and won't return until it's done.
... Can we pass options arg from node all the way to processor?
... Simplifies handling of worklets.
... audioworklet would get new options arg to pass to processor.

ian: workletnode arg gets cloned and passed to processor.

joe: Do we need to separate out options between known ones and node specific?

ian: We could.

joe: Which is cleaner?

hongchan: doesn't like two options.

joe: Or one options arg with a data: for other dictionary options for the processor.

ian: Looking to see if anyone else does this....
... A single dictionary is fine and the whole thing gets structure-cloned.

joe: Excellent; can we move on?
... How do audioparams get declared and initialized.
... At the moment declaration is on the processor, but in a later example it's moved to the node.

hongchan: audioparam belongs to node, not processor. Haven't yet decided.

joe: Another thing: What if param descriptor array were part of options parameter.

ian: Argues that the should be tightly coupled to processor.

joe: Agrees. In favor of leaving audioparam on processor.

hongchan: param defined in node, but only processor has access to param contents.

joe: Both sides need to know what params are.
... Doesn't matter where they're defined, but the more constrained place is the processor.

hongchan: How is subclassing now possible?

joe: Maybe we should discuss initializing audioparams.
... Where does intialization actually happen? Appears magical.
... Having super() do the initialization of the audioparams so everything is set up and to the processor.

ian: Doesn't need to be (caching, etc), but fundamentally looks synchronous. Which is good.

joe: We touched everything and feels like we have a path forward.

ian: processor() is the onlly place with access to audioparams?

joe: Yes.

ian: parameter descriptors should be static.

hongchan: If so, can't access from processor.

<joe> +1 on that

ian: Should work. Then worklet node magically knows the audioparams, synchronously.

padenot: Generally agrees with the approach.

joe: Should rework the examples using this new approach.

honghan: Needs a lot of work to fix up everything for the spec.

joe: can help, but lets work on the examples.
... Let's keep pushing ahead.
... Any other business?
... Adjourn. Really good call.

<joe> ACTION: Joe and Hongchan to update examples and IDL to reflect today's discussion [recorded in http://www.w3.org/2016/06/02-audio-minutes.html#action01]

<trackbot> Created ACTION-132 - And hongchan to update examples and idl to reflect today's discussion [on Joe Berkovitz - due 2016-06-09].

Summary of Action Items

[NEW] ACTION: Joe and Hongchan to update examples and IDL to reflect today's discussion [recorded in http://www.w3.org/2016/06/02-audio-minutes.html#action01]
 

Summary of Resolutions

[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.144 (CVS log)
$Date: 2016/06/02 19:33:19 $

Scribe.perl diagnostic output

[Delete this section before finalizing the minutes.]
This is scribe.perl Revision: 1.144  of Date: 2015/11/17 08:39:34  
Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/

Guessing input format: RRSAgent_Text_Format (score 1.00)

Succeeded: s/this/hongchan's example/
Found ScribeNick: rtoyg_m
Inferring Scribes: rtoyg_m

WARNING: No "Topic:" lines found.

Present: cwilso hongchan

WARNING: Fewer than 3 people found for Present list!


WARNING: No meeting chair found!
You should specify the meeting chair like this:
<dbooth> Chair: dbooth

Found Date: 02 Jun 2016
Guessing minutes URL: http://www.w3.org/2016/06/02-audio-minutes.html
People with action items: hongchan joe

WARNING: Input appears to use implicit continuation lines.
You may need the "-implicitContinuations" option.


WARNING: No "Topic: ..." lines found!  
Resulting HTML may have an empty (invalid) <ol>...</ol>.

Explanation: "Topic: ..." lines are used to indicate the start of 
new discussion topics or agenda items, such as:
<dbooth> Topic: Review of Amy's report


[End of scribe.perl diagnostic output]