IRC log of audio on 2012-03-05

Timestamps are in UTC.

18:51:26 [RRSAgent]
RRSAgent has joined #audio
18:51:26 [RRSAgent]
logging to
18:51:35 [olivier]
18:51:38 [olivier]
Scribe: Joe
18:51:41 [olivier]
Chair: olivier
18:51:49 [olivier]
Meeting: Audio WG Teleconference
18:51:53 [olivier]
rrsagent, make logs public
18:53:43 [olivier]
Agenda+ A way to destroy an AudioContext instance (Issue-3)
18:54:03 [olivier]
Agenda+ Setting sample rates for individual JavaScriptProcessingNodes (Issue-4)
18:54:11 [joe]
joe has joined #audio
18:54:40 [olivier]
[large agenda - we won't do everything and should decide what to prioritise]
18:54:59 [joe]
zakim, who is here?
18:54:59 [Zakim]
RWC_Audio()2:00PM has not yet started, joe
18:55:00 [Zakim]
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 [joe]
thanks for the tips Olivier
18:55:47 [Zakim]
RWC_Audio()2:00PM has now started
18:55:54 [Zakim]
18:56:11 [olivier]
18:56:16 [Gabriel]
Zakim, ??P0 is really me
18:56:16 [Zakim]
+Gabriel; got it
18:56:46 [Zakim]
18:57:12 [joe]
Zakim, I love that you remembered me
18:57:12 [Zakim]
I don't understand 'I love that you remembered me', joe
18:57:25 [Gabriel]
18:57:45 [joe]
Definite limits to its emotional intelligence
18:58:31 [olivier]
zakim, we are not laughing at you, but laughing with you :)
18:58:31 [Zakim]
I'm glad that smiley is there, olivier
18:58:39 [Zakim]
18:58:50 [chris]
chris has joined #audio
18:59:03 [mdjp]
Zakim, +??P3 is really me
18:59:03 [Zakim]
sorry, mdjp, I do not recognize a party named '+??P3'
18:59:04 [Zakim]
18:59:10 [olivier]
zakim, ??p4 is really me
18:59:10 [Zakim]
+olivier; got it
18:59:25 [olivier]
zakim, ??P3 is mdjp
18:59:25 [Zakim]
+mdjp; got it
18:59:42 [olivier]
zakim, who is here?
18:59:42 [Zakim]
On the phone I see Gabriel, Joe, mdjp, olivier
18:59:43 [Zakim]
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 [Zakim]
... jussi
18:59:47 [Zakim]
19:00:18 [jussi]
Zakim, ??P5 is me
19:00:18 [Zakim]
+jussi; got it
19:00:22 [Ronny]
Ronny has left #audio
19:00:24 [Zakim]
19:00:46 [jernoble]
jernoble has joined #audio
19:00:47 [Zakim]
+ +1.650.253.aaaa
19:00:57 [olivier]
Regrets: CLowis, Al, ROC
19:00:59 [chris]
19:01:16 [Zakim]
19:01:17 [Zakim]
19:01:21 [olivier]
zakim, aaaa is CRogers
19:01:21 [Zakim]
+CRogers; got it
19:01:47 [olivier]
zakim, ??P8 is Thierry
19:01:47 [Zakim]
+Thierry; got it
19:01:59 [olivier]
19:02:04 [cwilso]
yay! Doug's going to SXSW!
19:03:03 [joe]
I am here
19:03:05 [olivier]
zakim, take up agendum 1
19:03:05 [Zakim]
agendum 1. "Intro: Welcome Matt Paradis" taken up [from olivier]
19:03:46 [joe]
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 [joe]
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 [olivier]
zakim, take up agendum 2
19:04:59 [Zakim]
agendum 2. "Quick update on rechartering / MIDI work" taken up [from olivier]
19:05:35 [joe]
Olivier: we had a discussion last week on rechartering. Chris Wilson started work on this. I believe we're now done
19:06:05 [joe]
CWilson: we reached good wording on the rechartering and sent back out
19:06:16 [joe]
...feel like an open use case level issue around standard midi files
19:06:31 [joe] inclinatin is that this is a more advanced case than we should start with.
19:06:52 [joe]
...expect that Jussi and I will take a look at proposal and start drafting into a more formal shape
19:07:19 [joe]
Olivier: see from list discussions an issue on usage of timestamps. should we be solving this now or deal with later?
19:07:55 [joe]
CWilson: people have been confusing concept of ticks and tempo and beats. MIDI itself doesn't directly capture these concepts
19:08:19 [joe]
...there is timestamping in all low level APIs however. This question will resolve itself as we move forward.
19:08:48 [joe]
Olivier: Doug do you want to speak to process for what happens now [with MIDI recharter]?
19:09:38 [joe]
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 [olivier]
19:09:57 [joe]
...some control-freak modifications and send out to [didn't hear] who will be out next week.
19:10:09 [Zakim]
19:10:16 [olivier]
s/[didn't hear]/PLH/
19:10:17 [jernoble]
Zakim, ??P11 is me
19:10:17 [Zakim]
+jernoble; got it
19:10:21 [joe]
...we'll get review of charter by the advisory committee. no problems foreseen. We'll have 5 months to charter
19:10:39 [joe]
...we'll have to publsh first WD when we're chartered to do so
19:11:11 [joe]
...let's effectively pretend it's chartered
19:11:43 [joe]
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 [joe]
Olivier: any other questions, no, we'll move on
19:12:16 [olivier]
zakim, next agendum
19:12:16 [Zakim]
agendum 1. "Intro: Welcome Matt Paradis" taken up [from olivier]
19:12:22 [olivier]
zakim, close agendum 1
19:12:22 [Zakim]
agendum 1, Intro: Welcome Matt Paradis, closed
19:12:24 [Zakim]
I see 5 items remaining on the agenda; the next one is
19:12:24 [Zakim]
3. Adding the video and audio tracks sync use case [from olivier]
19:12:27 [olivier]
zakim, close agendum 2
19:12:27 [Zakim]
agendum 2, Quick update on rechartering / MIDI work, closed
19:12:28 [Zakim]
I see 5 items remaining on the agenda; the next one is
19:12:28 [Zakim]
3. Adding the video and audio tracks sync use case [from olivier]
19:12:37 [olivier]
zakim, next agendum
19:12:37 [Zakim]
agendum 3. "Adding the video and audio tracks sync use case" taken up [from olivier]
19:13:05 [joe]
Olivier: this is an issue raised by ROC who is travelling. wanted to get idea from group about this
19:13:38 [joe]
...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 [joe]
...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 [joe]
...wanted to get opinion from group on whether to add this UC or whether it's outside of scope
19:14:59 [olivier]
Joe: I see this as a low priority now
19:15:05 [olivier]
… though I see the value
19:15:19 [olivier]
… could be bolted into any implementation of audio API
19:15:33 [olivier]
… through the addition of timestamps
19:15:45 [chris]
19:15:48 [olivier]
… conceptual equivalent of click track
19:15:58 [olivier]
q+ chris
19:16:03 [olivier]
ack chris
19:16:33 [joe]
Chris: believe there's already an HTML5 speced MediaController to sync different HTMLMediaElements
19:16:43 [olivier]
19:16:48 [jernoble]
19:16:52 [jernoble]
q+ jer
19:16:52 [joe]
...then it's easy to handle
19:16:58 [olivier]
ack me
19:17:09 [joe]
yes i did
19:17:52 [joe]
CRogers: the media controller API is responsible for grouping a number of HTMLMediaElements and controlling/syncing that set as a unit
19:17:58 [olivier]
ack jer
19:18:03 [joe]
Chris, that sounds much cleaner than what I was suggesting
19:18:28 [joe]
Jer: as far as the spec is concerned WebKit has fully implemented the MediaControler spec
19:19:01 [joe]
Olivier: sounds as though this is handled in both APIs so suggest we record use case and move on
19:19:40 [joe]
ACTION: Record a use case that calls out a specific requirement and assigns it a priority
19:19:40 [trackbot]
Sorry, couldn't find user - Record
19:19:54 [joe]
RESOLUTION: Record a use case that calls out a specific requirement and assigns it a priority
19:20:24 [olivier]
ACTION: Olivier to add use case for video sync, add requirement to work well with mediacontroller, clarify on list
19:20:24 [trackbot]
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 [olivier]
zakim, close this agendum
19:20:37 [Zakim]
agendum 3 closed
19:20:38 [Zakim]
I see 4 items remaining on the agenda; the next one is
19:20:38 [Zakim]
4. New WD publication for web audio API [from olivier]
19:20:45 [jernoble]
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 [olivier]
zakim, next agendum
19:20:50 [Zakim]
agendum 4. "New WD publication for web audio API" taken up [from olivier]
19:21:15 [joe]
Olivier: 2 weeks ago we reviewed the Web Audio API changes and though there are still issues
19:21:34 [joe]
...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 [joe]
...reason is that a new WD would be a signal outside the WG to look at these changes
19:22:14 [joe]
...this is not saying that it's finished but that there is progress that we are making public.
19:22:27 [joe]
...Any objections to the fact that the spec has been making progress?
19:22:42 [joe]
[no response]
19:22:51 [joe]
Olivier: Would there be any objection to a new WD:
19:23:35 [joe]
[no objections]
19:23:52 [joe]
RESOLUTION: That the group will publish a new working draft of the Web Audio APi
19:24:21 [joe]
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 [joe] maximum delay time allowed, or being able to spec # of channels, splitters, mergers
19:24:44 [joe]
...would like to address these
19:25:13 [joe]
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 [joe]
CRogers: sounds good. most of these are refinements not controversial changes
19:25:41 [joe]
Olivier: one question for [?] and Thierry:
19:25:52 [olivier]
19:26:09 [joe]
Doug: We could publish a changelog, I meant a differences document
19:26:21 [joe]
Thierry: I don't think the diff document is very mature yet
19:26:41 [joe]
Olivier: Let me talk with Al to see if that's possible by next week
19:26:55 [joe]
Doug: I will be at SXSW so won't be able to do much btw now and next Thursday
19:27:06 [cwilso]
(I'll also be at SXSW)
19:27:43 [olivier]
ACTION: Olivier to talk with Al about getting material from the spec difference document ready for inclusion into umbrella spec
19:27:43 [trackbot]
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 [olivier]
zakim, close this agendum
19:27:55 [Zakim]
agendum 4 closed
19:27:56 [Zakim]
I see 3 items remaining on the agenda; the next one is
19:27:56 [Zakim]
5. Pausing a subgraph [from olivier]
19:28:01 [olivier]
19:28:40 [joe]
Olivier: Can we have a bit of a discussion on a few of these next 3 items
19:30:13 [joe]
Jussi: we are looking at what we would need for example [...] problematic
19:30:44 [joe]
...when people use our product they're using them as [...] the number of AudioContexts, we're looking to [...]
19:30:57 [olivier]
19:31:05 [olivier]
19:31:06 [joe]
...We can pare down the number of AudioContexts. We have some ways of working around this
19:31:10 [olivier]
19:31:10 [trackbot]
ISSUE-3 -- A way to destroy an AudioContext instance -- raised
19:31:10 [trackbot]
19:31:37 [joe]
...[couldn't hear]
19:32:07 [joe]
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 [joe]
...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 [olivier]
19:32:49 [joe]
...spec should mention that if nodes are connected to a context, this will keep it alive.
19:33:05 [joe]
...don't see other unusual issues regarding lifetime.
19:33:21 [joe]
...don't quite understand the problem you're having sharing a single context among multiple decoders
19:33:52 [joe]
...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 [joe]
...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 [joe]
...can't fix this tomorrow but it seems like a bona fide issue
19:34:26 [shepazu]
19:35:04 [joe]
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 [joe]
19:35:13 [olivier]
ack shepazu
19:35:38 [olivier]
s/important/specified in the API or left to the implementors/
19:35:41 [joe]
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 [joe]
...if people are really going to make multiple ctxs and seems like a common case then it should be clarified
19:36:45 [olivier]
19:36:46 [joe]
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 [joe]
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 [joe] 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 [joe] these things will happen, at the same time we should point people in the right direction.
19:38:54 [joe]
...we should say something, e.g. "You should reuse the same context with subgraphs as a best practice"
19:39:05 [jernoble]
19:39:06 [olivier]
q+ to mention informative sections on best practices, refrain from hardcoded limits
19:39:12 [joe]
..."and use multiple contexts in this situation"
19:39:44 [joe]
Jussi: This sounds reasonable to me
19:39:49 [olivier]
(agreement from Crogers and Jussi)
19:40:40 [joe]
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 [olivier]
19:41:10 [joe]
...any scheduled events with AudioBufferSourceNodes can be cancelled. Any type of HTMLMediaElement can be paused. Volume can be muted on streams.
19:41:21 [joe]
...I feel there is sufficient control already.
19:41:40 [olivier]
ack joe
19:41:52 [olivier]
Joe: agreeing with Doug
19:41:59 [olivier]
… wanted to get back to question of GC
19:42:09 [olivier]
… should be clear on conditions to release an audio context
19:42:29 [joe]
Doug: There should be an explicit release of a context in the API
19:42:31 [olivier]
Doug: agree with idea from Jussi to have a way to release an audio context
19:42:40 [joe]
Jer: Want to talk about # of contexts needed at same time
19:43:19 [joe]
CRogers: Way it currently works is, if no more connections to a ctx, it gets GCed and goes away
19:43:29 [joe]
...if any connections exist it won't be GCed
19:43:53 [joe]
Doug: Wonder if in practice it might be better to have a "kill it" explicit API
19:44:09 [joe]
Olivier: are you [CRogers] thinking this will lead to bad practice?
19:44:16 [jussi]
19:44:37 [joe]
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 [joe]
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 [olivier]
19:45:25 [olivier]
q+ to ask about duplication of feature
19:45:36 [olivier]
ack jer
19:45:37 [joe]
...So after this point the ctx still exists but it is dead, not consuming resources, not playing anything
19:45:55 [joe]
Jer: would be helpful to clarify why ctx need to be deleted.
19:46:19 [joe]
...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 [olivier]
ack jussi
19:46:53 [joe]
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 [joe]
Doug: I can see a reason for that, say a browser extension that immediately stops any active sound
19:47:30 [joe]
...a kill switch
19:47:58 [olivier]
19:48:01 [olivier]
ack me
19:48:01 [Zakim]
olivier, you wanted to ask about duplication of feature
19:48:03 [joe]
Olivier: that's interesting as a UC
19:48:40 [joe]
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 [joe]
...if so it sounds like we're adding too many ways of doing something
19:49:20 [joe]
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 [joe]
Jussi: I think this is ok, the API could schedule a fadeout and then kill the ctx
19:49:50 [joe]
CRogers: agree
19:50:28 [joe]
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 [joe]
CRogers: not now
19:50:36 [jernoble]
19:50:56 [joe]
CRogers: it's a fair point. but this sounds like something we might not conclude right now.
19:51:09 [joe]
Olivier: that's fine we don't need to decide right now on this point
19:51:19 [olivier]
ack jer
19:52:04 [joe]
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 [joe]
...same argument can be made w/r/t almost any media element or resource
19:52:38 [joe]
Olivier: Jussi, would you mind summarizing for next meeting the UCs behind the issue(s)
19:52:40 [joe]
Jussi: yes
19:53:03 [olivier]
ACTION: Jussi to record discussion into ISSUE-3
19:53:03 [trackbot]
Created ACTION-37 - Record discussion into ISSUE-3 [on Jussi Kalliokoski - due 2012-03-12].
19:53:48 [joe]
Olivier: is the question of pausing a graph the same as this issue of killing a context?
19:53:59 [joe]
CRogers: no, pausing a graph is about only part of the activity in a context.
19:54:09 [joe]'s easy to pause a graph through existing mechanisms
19:54:29 [joe]
Olivier: is this an open issue that no one considers a problem any more?
19:54:47 [joe]
...Jussi, do you still consider this an issue we need to track?
19:55:20 [joe]
Jussi: I'd like to see [...] other than that, I'm fine with it
19:55:28 [olivier]
s/[…]/a code example/
19:55:57 [joe]
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 [shepazu]
19:56:47 [joe]
Doug: I've just added this use case to reflect need for user control
19:57:22 [olivier]
19:57:34 [Zakim]
19:57:57 [jernoble]
19:57:58 [Zakim]
19:58:00 [Zakim]
19:58:02 [Zakim]
19:58:04 [Zakim]
19:58:04 [Zakim]
19:58:04 [olivier]
rrsagent, make minutes
19:58:04 [RRSAgent]
I have made the request to generate olivier
19:58:11 [olivier]
rrsagent, bye
19:58:11 [RRSAgent]
I see 4 open action items saved in :
19:58:11 [RRSAgent]
ACTION: Record a use case that calls out a specific requirement and assigns it a priority [1]
19:58:11 [RRSAgent]
recorded in
19:58:11 [RRSAgent]
ACTION: Olivier to add use case for video sync, add requirement to work well with mediacontroller, clarify on list [2]
19:58:11 [RRSAgent]
recorded in
19:58:11 [RRSAgent]
ACTION: Olivier to talk with Al about getting material from the spec difference document ready for inclusion into umbrella spec [3]
19:58:11 [RRSAgent]
recorded in
19:58:11 [RRSAgent]
ACTION: Jussi to record discussion into ISSUE-3 [4]
19:58:11 [RRSAgent]
recorded in