18:51:26 RRSAgent has joined #audio 18:51:26 logging to http://www.w3.org/2012/03/05-audio-irc 18:51:35 Agenda: http://lists.w3.org/Archives/Public/public-audio/2012JanMar/0322.html 18:51:38 Scribe: Joe 18:51:41 Chair: olivier 18:51:49 Meeting: Audio WG Teleconference 18:51:53 rrsagent, make logs public 18:53:43 Agenda+ A way to destroy an AudioContext instance (Issue-3) 18:54:03 Agenda+ Setting sample rates for individual JavaScriptProcessingNodes (Issue-4) 18:54:11 joe has joined #audio 18:54:40 [large agenda - we won't do everything and should decide what to prioritise] 18:54:59 zakim, who is here? 18:54:59 RWC_Audio()2:00PM has not yet started, joe 18:55:00 On IRC I see joe, RRSAgent, tmichel, Zakim, olivier, smus, Gabriel, colinbdclark, mdjp, cwilso, F1LT3R, Ronny, kinetik, kennyluck, foolip, paul___irish, trackbot, shepazu, jussi 18:55:41 thanks for the tips Olivier 18:55:47 RWC_Audio()2:00PM has now started 18:55:54 +??P0 18:56:11 np 18:56:16 Zakim, ??P0 is really me 18:56:16 +Gabriel; got it 18:56:46 +Joe 18:57:12 Zakim, I love that you remembered me 18:57:12 I don't understand 'I love that you remembered me', joe 18:57:25 haha 18:57:45 Definite limits to its emotional intelligence 18:58:31 zakim, we are not laughing at you, but laughing with you :) 18:58:31 I'm glad that smiley is there, olivier 18:58:39 +??P3 18:58:50 chris has joined #audio 18:59:03 Zakim, +??P3 is really me 18:59:03 sorry, mdjp, I do not recognize a party named '+??P3' 18:59:04 +??P4 18:59:10 zakim, ??p4 is really me 18:59:10 +olivier; got it 18:59:25 zakim, ??P3 is mdjp 18:59:25 +mdjp; got it 18:59:42 zakim, who is here? 18:59:42 On the phone I see Gabriel, Joe, mdjp, olivier 18:59:43 On IRC I see chris, joe, RRSAgent, tmichel, Zakim, olivier, smus, Gabriel, colinbdclark, mdjp, cwilso, F1LT3R, Ronny, kinetik, kennyluck, foolip, paul___irish, trackbot, shepazu, 18:59:43 ... jussi 18:59:47 +??P5 19:00:18 Zakim, ??P5 is me 19:00:18 +jussi; got it 19:00:22 Ronny has left #audio 19:00:24 +ChrisWilson 19:00:46 jernoble has joined #audio 19:00:47 + +1.650.253.aaaa 19:00:57 Regrets: CLowis, Al, ROC 19:00:59 +chris 19:01:16 +Doug_Schepers 19:01:17 +??P8 19:01:21 zakim, aaaa is CRogers 19:01:21 +CRogers; got it 19:01:47 zakim, ??P8 is Thierry 19:01:47 +Thierry; got it 19:01:59 Agenda? 19:02:04 yay! Doug's going to SXSW! 19:03:03 I am here 19:03:05 zakim, take up agendum 1 19:03:05 agendum 1. "Intro: Welcome Matt Paradis" taken up [from olivier] 19:03:46 Olivier: Want to introduce Matt to the group. Matt is another colleague from the BBC who will be joining and will be working on a prototyping implementation. 19:04:22 Matt: Hello group. My background is audio and real time control of synthesis and installation works. Have come to the BBC and look forward to working with this platform 19:04:59 zakim, take up agendum 2 19:04:59 agendum 2. "Quick update on rechartering / MIDI work" taken up [from olivier] 19:05:35 Olivier: we had a discussion last week on rechartering. Chris Wilson started work on this. I believe we're now done 19:06:05 CWilson: we reached good wording on the rechartering and sent back out 19:06:16 ...feel like an open use case level issue around standard midi files 19:06:31 ...my inclinatin is that this is a more advanced case than we should start with. 19:06:52 ...expect that Jussi and I will take a look at proposal and start drafting into a more formal shape 19:07:19 Olivier: see from list discussions an issue on usage of timestamps. should we be solving this now or deal with later? 19:07:55 CWilson: people have been confusing concept of ticks and tempo and beats. MIDI itself doesn't directly capture these concepts 19:08:19 ...there is timestamping in all low level APIs however. This question will resolve itself as we move forward. 19:08:48 Olivier: Doug do you want to speak to process for what happens now [with MIDI recharter]? 19:09:38 Doug: I believe we should simply keep going. Chris, you proposed wording, I gave a time for people to object, think that we're near the expiration of that comment time. I will add that wording to the charter maybe with 19:09:46 q? 19:09:57 ...some control-freak modifications and send out to [didn't hear] who will be out next week. 19:10:09 +??P11 19:10:16 s/[didn't hear]/PLH/ 19:10:17 Zakim, ??P11 is me 19:10:17 +jernoble; got it 19:10:21 ...we'll get review of charter by the advisory committee. no problems foreseen. We'll have 5 months to charter 19:10:39 ...we'll have to publsh first WD when we're chartered to do so 19:11:11 ...let's effectively pretend it's chartered 19:11:43 Doug: we will have to change the milestones to better reflect all deliverables. we'll extend it and give ourselves another 2 years 19:12:06 Olivier: any other questions, no, we'll move on 19:12:16 zakim, next agendum 19:12:16 agendum 1. "Intro: Welcome Matt Paradis" taken up [from olivier] 19:12:22 zakim, close agendum 1 19:12:22 agendum 1, Intro: Welcome Matt Paradis, closed 19:12:24 I see 5 items remaining on the agenda; the next one is 19:12:24 3. Adding the video and audio tracks sync use case [from olivier] 19:12:27 zakim, close agendum 2 19:12:27 agendum 2, Quick update on rechartering / MIDI work, closed 19:12:28 I see 5 items remaining on the agenda; the next one is 19:12:28 3. Adding the video and audio tracks sync use case [from olivier] 19:12:37 zakim, next agendum 19:12:37 agendum 3. "Adding the video and audio tracks sync use case" taken up [from olivier] 19:13:05 Olivier: this is an issue raised by ROC who is travelling. wanted to get idea from group about this 19:13:38 ...I will be the one trying to summarize. ROC said in one of his demos there's a possibility to synchronize and duck several different tracks based on syncing with one video track 19:14:04 ...our UCs relate primarily to video but ROC's proposal is interesting and [removing chair hat] for us as broadcasters it's interesting 19:14:30 ...wanted to get opinion from group on whether to add this UC or whether it's outside of scope 19:14:59 Joe: I see this as a low priority now 19:15:05 … though I see the value 19:15:19 … could be bolted into any implementation of audio API 19:15:33 … through the addition of timestamps 19:15:45 +chris 19:15:48 … conceptual equivalent of click track 19:15:58 q+ chris 19:16:03 ack chris 19:16:33 Chris: believe there's already an HTML5 speced MediaController to sync different HTMLMediaElements 19:16:43 q+ 19:16:48 +jer 19:16:52 q+ jer 19:16:52 ...then it's easy to handle 19:16:58 ack me 19:17:09 yes i did 19:17:52 CRogers: the media controller API is responsible for grouping a number of HTMLMediaElements and controlling/syncing that set as a unit 19:17:58 ack jer 19:18:03 Chris, that sounds much cleaner than what I was suggesting 19:18:28 Jer: as far as the spec is concerned WebKit has fully implemented the MediaControler spec 19:19:01 Olivier: sounds as though this is handled in both APIs so suggest we record use case and move on 19:19:40 ACTION: Record a use case that calls out a specific requirement and assigns it a priority 19:19:40 Sorry, couldn't find user - Record 19:19:54 RESOLUTION: Record a use case that calls out a specific requirement and assigns it a priority 19:20:24 ACTION: Olivier to add use case for video sync, add requirement to work well with mediacontroller, clarify on list 19:20:24 Created ACTION-35 - Add use case for video sync, add requirement to work well with mediacontroller, clarify on list [on Olivier Thereaux - due 2012-03-12]. 19:20:37 zakim, close this agendum 19:20:37 agendum 3 closed 19:20:38 I see 4 items remaining on the agenda; the next one is 19:20:38 4. New WD publication for web audio API [from olivier] 19:20:45 Point of clarification: the MediaController spec should be fully implemented on Mac platforms; high resolution timers need to be added for other platforms. 19:20:50 zakim, next agendum 19:20:50 agendum 4. "New WD publication for web audio API" taken up [from olivier] 19:21:15 Olivier: 2 weeks ago we reviewed the Web Audio API changes and though there are still issues 19:21:34 ...I wanted to get the group to decide whether we think there's been enough progress in past 3 months on Web Audio API spec to justify new WD 19:21:49 ...reason is that a new WD would be a signal outside the WG to look at these changes 19:22:14 ...this is not saying that it's finished but that there is progress that we are making public. 19:22:27 ...Any objections to the fact that the spec has been making progress? 19:22:42 [no response] 19:22:51 Olivier: Would there be any objection to a new WD: 19:23:35 [no objections] 19:23:52 RESOLUTION: That the group will publish a new working draft of the Web Audio APi 19:24:21 CRogers: one or two further changes that I would like to make these changes before we publish that have to do with some details 19:24:38 ...like maximum delay time allowed, or being able to spec # of channels, splitters, mergers 19:24:44 ...would like to address these 19:25:13 Olivier: How about we get the document ready with your new changes and next week have a last-check call on the changes? Then we can publish right away. 19:25:24 CRogers: sounds good. most of these are refinements not controversial changes 19:25:41 Olivier: one question for [?] and Thierry: 19:25:52 s/[?]/Doug/ 19:26:09 Doug: We could publish a changelog, I meant a differences document 19:26:21 Thierry: I don't think the diff document is very mature yet 19:26:41 Olivier: Let me talk with Al to see if that's possible by next week 19:26:55 Doug: I will be at SXSW so won't be able to do much btw now and next Thursday 19:27:06 (I'll also be at SXSW) 19:27:43 ACTION: Olivier to talk with Al about getting material from the spec difference document ready for inclusion into umbrella spec 19:27:43 Created ACTION-36 - Talk with Al about getting material from the spec difference document ready for inclusion into umbrella spec [on Olivier Thereaux - due 2012-03-12]. 19:27:55 zakim, close this agendum 19:27:55 agendum 4 closed 19:27:56 I see 3 items remaining on the agenda; the next one is 19:27:56 5. Pausing a subgraph [from olivier] 19:28:01 agenda? 19:28:40 Olivier: Can we have a bit of a discussion on a few of these next 3 items 19:30:13 Jussi: we are looking at what we would need for example [...] problematic 19:30:44 ...when people use our product they're using them as [...] the number of AudioContexts, we're looking to [...] 19:30:57 http://www.w3.org/2011/audio/track/issues/3 19:31:05 ISSUE-3 19:31:06 ...We can pare down the number of AudioContexts. We have some ways of working around this 19:31:10 ISSUE-3? 19:31:10 ISSUE-3 -- A way to destroy an AudioContext instance -- raised 19:31:10 http://www.w3.org/2011/audio/track/issues/3 19:31:37 ...[couldn't hear] 19:32:07 CRogers: a couple of issues there. The current WebKit impl isn't optimal for this. It is an optimization that could be made and the spec has no real 19:32:33 ...limit on the number of AudioContexts. The lifetime question: the AudioContext should be GCed when there are no more refs to it 19:32:49 q? 19:32:49 ...spec should mention that if nodes are connected to a context, this will keep it alive. 19:33:05 ...don't see other unusual issues regarding lifetime. 19:33:21 ...don't quite understand the problem you're having sharing a single context among multiple decoders 19:33:52 ...I think it boils down to your running into some difficulties with the WebKit impl limiting the ctx count to 4 or something 19:34:12 ...the optimization to increase this hasn't happened yet. I suppose we could track this in WebKit if you would like to file a bug. 19:34:24 ...can't fix this tomorrow but it seems like a bona fide issue 19:34:26 q+ 19:35:04 Olivier: Is there an issue about when GC happens and curious to know whether this is the kind of detail that is important. 19:35:05 q+ 19:35:13 ack shepazu 19:35:38 s/important/specified in the API or left to the implementors/ 19:35:41 Doug: There are always certain things that should be left up to impl, as in "SVG doesn't say don't make 50,000 elements" but that will fail 19:36:15 ...if people are really going to make multiple ctxs and seems like a common case then it should be clarified 19:36:45 q+ 19:36:46 CRogers: in best practices ctx should be shared b/c while it makes sense to have conceptually distinct contexts you can mix outputs within one context 19:37:21 Doug: what I was saying is that if people are likely to do this, consistency is important. whatever the # of max contexts you want to make it consistent 19:37:58 ...so people can code something once and have it work. Maybe spec should speak to multiple contexts and encourage/discourage best practice. For instance IFrames might be mixed on a page. 19:38:34 ...so these things will happen, at the same time we should point people in the right direction. 19:38:54 ...we should say something, e.g. "You should reuse the same context with subgraphs as a best practice" 19:39:05 q+ 19:39:06 q+ to mention informative sections on best practices, refrain from hardcoded limits 19:39:12 ..."and use multiple contexts in this situation" 19:39:44 Jussi: This sounds reasonable to me 19:39:49 (agreement from Crogers and Jussi) 19:40:40 CRogers: There was another issue about pausing a context. There are sufficient controls where this isn't needed but we can discuss that. 19:40:45 q- 19:41:10 ...any scheduled events with AudioBufferSourceNodes can be cancelled. Any type of HTMLMediaElement can be paused. Volume can be muted on streams. 19:41:21 ...I feel there is sufficient control already. 19:41:40 ack joe 19:41:52 Joe: agreeing with Doug 19:41:59 … wanted to get back to question of GC 19:42:09 … should be clear on conditions to release an audio context 19:42:29 Doug: There should be an explicit release of a context in the API 19:42:31 Doug: agree with idea from Jussi to have a way to release an audio context 19:42:40 Jer: Want to talk about # of contexts needed at same time 19:43:19 CRogers: Way it currently works is, if no more connections to a ctx, it gets GCed and goes away 19:43:29 ...if any connections exist it won't be GCed 19:43:53 Doug: Wonder if in practice it might be better to have a "kill it" explicit API 19:44:09 Olivier: are you [CRogers] thinking this will lead to bad practice? 19:44:16 q+ 19:44:37 CRogers: not necessarily. if it was playing some music the impl wouldn't just abruptly kill off whatever was happening with a sharp glitch 19:45:09 CRogers: You still might have a reference around to the context in JS but the context would become unusable at that point. 19:45:11 q+ 19:45:25 q+ to ask about duplication of feature 19:45:36 ack jer 19:45:37 ...So after this point the ctx still exists but it is dead, not consuming resources, not playing anything 19:45:55 Jer: would be helpful to clarify why ctx need to be deleted. 19:46:19 ...don't see any reason why it couldn't be restarted. but if the reason to stop it is to free up resources then this should be called out explicitly 19:46:22 ack jussi 19:46:53 Jussi: I am wondering if there is any other value in stopping an audio ctx other than resource usage, like a disconnectAll() method 19:47:23 Doug: I can see a reason for that, say a browser extension that immediately stops any active sound 19:47:30 ...a kill switch 19:47:58 q? 19:48:01 ack me 19:48:01 olivier, you wanted to ask about duplication of feature 19:48:03 Olivier: that's interesting as a UC 19:48:40 Olivier: I have a question, about the volume slowly fading on killing a ctx, would that be a duplication of something we could do otherwise? 19:48:50 ...if so it sounds like we're adding too many ways of doing something 19:49:20 CRogers: that's the point I was initially trying to make. it's possible to manually disconnect everything from a ctx and then even delete the node so the current API should be possible 19:49:47 Jussi: I think this is ok, the API could schedule a fadeout and then kill the ctx 19:49:50 CRogers: agree 19:50:28 Doug: I am curious if maybe someone might be using one or more audio libs and they don't know exactly what's being held onto. Can one introspect the window and find out what ctxs are active to kill them? 19:50:33 CRogers: not now 19:50:36 +q 19:50:56 CRogers: it's a fair point. but this sounds like something we might not conclude right now. 19:51:09 Olivier: that's fine we don't need to decide right now on this point 19:51:19 ack jer 19:52:04 Jer: One contrary point, this desire to kill an audio context also exists in a desire to kill video players due to resource leaks via event listeners, etc. 19:52:14 ...same argument can be made w/r/t almost any media element or resource 19:52:38 Olivier: Jussi, would you mind summarizing for next meeting the UCs behind the issue(s) 19:52:40 Jussi: yes 19:53:03 ACTION: Jussi to record discussion into ISSUE-3 19:53:03 Created ACTION-37 - Record discussion into ISSUE-3 [on Jussi Kalliokoski - due 2012-03-12]. 19:53:48 Olivier: is the question of pausing a graph the same as this issue of killing a context? 19:53:59 CRogers: no, pausing a graph is about only part of the activity in a context. 19:54:09 ...it's easy to pause a graph through existing mechanisms 19:54:29 Olivier: is this an open issue that no one considers a problem any more? 19:54:47 ...Jussi, do you still consider this an issue we need to track? 19:55:20 Jussi: I'd like to see [...] other than that, I'm fine with it 19:55:28 s/[…]/a code example/ 19:55:57 Olivier: moving to adjourn the call for today. I'll keep track on other agenda and we'll take them on next week. 19:56:24 http://www.w3.org/2011/audio/wiki/Use_Cases_and_Requirements#UC-14:_User_Control_of_Audio 19:56:47 Doug: I've just added this use case to reflect need for user control 19:57:22 [ADJOURNED] 19:57:34 -Joe 19:57:57 bye! 19:57:58 -olivier 19:58:00 -jernoble 19:58:02 -jussi 19:58:04 -mdjp 19:58:04 -ChrisWilson 19:58:04 rrsagent, make minutes 19:58:04 I have made the request to generate http://www.w3.org/2012/03/05-audio-minutes.html olivier 19:58:11 rrsagent, bye 19:58:11 I see 4 open action items saved in http://www.w3.org/2012/03/05-audio-actions.rdf : 19:58:11 ACTION: Record a use case that calls out a specific requirement and assigns it a priority [1] 19:58:11 recorded in http://www.w3.org/2012/03/05-audio-irc#T19-19-40 19:58:11 ACTION: Olivier to add use case for video sync, add requirement to work well with mediacontroller, clarify on list [2] 19:58:11 recorded in http://www.w3.org/2012/03/05-audio-irc#T19-20-24 19:58:11 ACTION: Olivier to talk with Al about getting material from the spec difference document ready for inclusion into umbrella spec [3] 19:58:11 recorded in http://www.w3.org/2012/03/05-audio-irc#T19-27-43 19:58:11 ACTION: Jussi to record discussion into ISSUE-3 [4] 19:58:11 recorded in http://www.w3.org/2012/03/05-audio-irc#T19-53-03