13:52:04 RRSAgent has joined #audio 13:52:04 logging to http://www.w3.org/2016/04/07-audio-irc 13:52:09 trackbot, start meeting 13:52:11 RRSAgent, make logs world 13:52:11 Zakim has joined #audio 13:52:13 Zakim, this will be 28346 13:52:13 ok, trackbot 13:52:14 Meeting: Audio Working Group Teleconference 13:52:14 Date: 07 April 2016 13:52:29 ScribeNick BillHofmann 13:52:31 present+ jdsmith 13:52:35 present+ hongchan 13:52:40 ScribeNick: BillHofmann 13:52:47 present+ rtoyg_m 13:52:53 present+ BillHofmann 13:53:26 Zakim, this will be Web Audio F2F 13:53:27 ok, BillHofmann 13:53:51 Meeting: Web Audio F2F 13:54:02 Chair: mdjp 13:54:51 Agenda+ Goals for F2F 13:54:58 Agenda+ Audio Worker 13:55:17 Agenda+ Issue resolution session 1 13:57:10 zakim, take up agendum 1 13:57:10 agendum 1. "Goals for F2F" taken up [from BillHofmann] 13:57:21 mdjp: agenda reviewed 13:57:27 zakim, take up agendum 2 13:57:27 agendum 2. "Audio Worker" taken up [from BillHofmann] 13:57:50 https://github.com/WebAudio/web-audio-api/issues/776 13:58:10 https://github.com/WebAudio/web-audio-api/issues/776 13:58:22 https://github.com/WebAudio/web-audio-api/issues/777 13:58:25 https://github.com/WebAudio/web-audio-api/issues/778 13:58:26 https://github.com/WebAudio/web-audio-api/issues/779 13:59:13 hoch: first example is how to import a script - two potential patterns (issue 776) 13:59:49 hoch: either under window or under audiocontext - padenot liked audiocontext 14:00:02 padenot: not sure anymore - may make sense to use first item for consistency 14:00:50 hoch: advantage of audiocontext is binding to context specific data (e.g., samplerate) 14:02:31 hoch: however, audioworkletnode has access to context 14:03:51 padenot: exposing context should address this 14:04:26 rtoyg_m: other items besides samplerate - latency will be added 14:04:47 padenot: as well, currentTime, but you can get that by hand. 14:04:57 hoch: could/should be a param on process method 14:07:26 BillHofmann: what about (e.g.) an object renderer that needs number of channels from destination node? 14:07:44 padenot: plausibly something you can configure on load, or with postMessage 14:08:47 padenot: note that other current examples are 1:1 with target object --> window; note ours could/are specific to audiocontext 14:09:59 BillHofmann: what's the disadvantage of loading once (on window) 14:10:05 padenot: issue is name collision 14:11:12 BillHofmann: would always need to use URL, anyway 14:11:32 hoch: other issue with singleton is with multiple contexts, with context-specific data 14:12:05 padenot: could do init on instantiation... 14:12:33 hoch: what about shared expensive resources (e.g. HRTF)? 14:12:39 hongchan has joined #audio 14:13:01 padenot: could share immutable data with postMessage (via postMessage) 14:13:04 https://github.com/WebAudio/web-audio-api/issues/778#issuecomment-204138788 14:15:17 hongchan: sharing assets should be done manually 14:16:41 consensus - window scoped context is preferred 14:18:09 https://github.com/WebAudio/web-audio-api/issues/777 14:18:40 hongchan: about how you instantiate worklet 14:18:51 hongchan: prefer both new and factory 14:19:13 padenot: people expect a "create" method 14:20:06 padenot: should do both 14:22:08 padenot: (because is consistent with other elements in API) 14:26:18 all: discussion of details of new/create parameter - structure for AudioParams, inputs, outputs, ... 14:29:25 hongchan: details in issue - need to revise for exact WebIDL syntax, but... 14:29:30 padenot: looks good 14:31:21 https://github.com/WebAudio/web-audio-api/issues/778 14:35:53 hongchan: How to initialize - this is difficult 14:35:59 all: discusison of details in issue 14:36:12 s/discusison/discussion/g 14:38:56 hongchan: perhaps should set aside, and take up later 14:40:23 padenot: proposal to allow a new of a local AudioParam 14:40:49 hongchan: currently no constructure for AudioParam, and people will want to know why they can't use this outside 14:40:50 https://github.com/WebAudio/web-audio-api/issues/779 14:41:04 hongchan: messaging for AudioWorklet 14:41:25 hongchan: seems easy - postMessage/onmessage 14:42:03 padenot: order is postMessage/onmessage, then process 14:42:12 hongchan: note they're not necessarily synced 14:44:24 padenot: propose handle events first 14:44:57 rtoyg_m: actually, doesn't matter - implementation detail, really. 14:45:20 mdjp: would you have an issue about per-implementation differences? 14:45:28 rtoyg_m: no real way you can tell 14:45:45 hongchan: might want specific information in the event 14:46:16 ... e.g. timestamp info 14:48:39 mdjp: what would you want to know that for? 14:48:46 padenot: maybe to determine delay? 14:49:32 hongchan: might want to know currentTime of when event was created 14:56:11 mdjp: will take up at next call. 14:58:17 zakim, take up agendum 3 14:58:17 agendum 3. "Issue resolution session 1" taken up [from BillHofmann] 15:00:52 hongchan has joined #audio 15:04:21 BillHofm_ has joined #audio 15:04:51 present+ BillHofm_ 15:08:28 present+ padenot 15:15:50 ScribeNick: jdsmith 15:15:57 https://github.com/WebAudio/web-audio-api/issues/348 15:16:07 rtoyg_m has joined #audio 15:20:42 rtoyg_m: foolip raised a question on what "balanced" means, which was meant to be an in between for "interactive" (short latency) and "playback" (long latency) 15:21:06 rtoyg_m: We are still using these three latency catagories now. 15:21:29 mdjp: If you select "interactive" you get the shortest latency? Yes. 15:22:06 padenot: You'd presumably select that for WebRTC use. 15:22:21 rtoyg_m: That breaks WebRTC on phone, however... 15:25:24 rtoyg_m: foolip also suggests using "latencyHint" for the numeric latency hint. I like "baseLatency" to express it's the core latency of the input-output connection, without latency added by other nodes. 15:30:39 rtoyg_m: "Balanced" is needed for WebRTC, and would represent 10ms latency. There is some buffering (vs. "Interactive" which is spec'd as the lowest possible latency), but it's still close to real time. 15:31:56 hongchan has joined #audio 15:32:10 mdjp: Change "processingLatency" in issue 348 to "baseLatency" to clarify it's meaning. We also accept the revision to add the number value. 15:32:24 mdjp: Marking ready for edting. 15:35:35 https://github.com/WebAudio/web-audio-api/issues/780 15:36:17 mdjp: Agreed. Ready for editing. 15:37:04 https://github.com/WebAudio/web-audio-api/issues/771 15:39:54 rtoyg_m: Issue is that users can design a lowpass filter that we cannot represent. 15:40:19 rtoyg_m: Example in issue shows the difference. You can use cookbook to implement the filter. 15:40:40 rtoyg_m: Compare the results. Differences are audible. 15:41:12 http://rtoy.github.io/webaudio-hacks/more/biquad/biquad-lowpass-q.html?usedB=true 15:46:13 mdjp: Decision: Use audio cookbook, but use Q in dB. 15:46:32 https://github.com/WebAudio/web-audio-api/issues/769 15:47:13 rtoyg_m: Should be closed as invalid. 15:47:55 https://github.com/WebAudio/web-audio-api/issues/768 15:48:14 mdjp: Marking V1. 15:48:44 https://github.com/WebAudio/web-audio-api/issues/767 15:48:52 mdjp: Marking V1. 15:48:59 https://github.com/WebAudio/web-audio-api/issues/766 15:55:03 BillHofm: Automations you do yourself would likely have the same behaviors. 15:55:28 mdjp: Marking V1. All V1 items above (3 total) are ready for editing. 15:55:39 https://github.com/WebAudio/web-audio-api/issues/95 15:59:18 rtoyg_m: Playback rate is -100 to +100, but we've never described negative playback behavior. 16:00:12 rtoyg_m: cwilso has proposed a behavior in the absence of looping and when looping is present that seems complete. 16:00:38 mdjp: Issue was marked ready for editing 1 year ago. 16:01:07 padenot: Behavior should be symmetrical whether forward or backward. 16:03:31 padenot: Resolution: spec negative playbackRate as have being exactly mirrored behaviour from the positive playbackRate behaviour. 16:03:58 I am in the office, BTW and can jump on the phone if it would help. 16:05:02 hongchan has joined #audio 16:05:38 cwilso things are going ok but you are always welcome to dial in. See my email for skype details. 16:06:51 https://github.com/WebAudio/web-audio-api/issues/762 16:08:12 rtoyg_m: Requests specifying min/max values for all AudioParams. 16:09:45 rtoyg_m: Only ones to be agreed upon are playbackRate and detune. 16:10:34 mdjp: PlaybackRate will be -100 to +100, detune will be -inf to +inf. Others noted in issue. 16:10:47 mdjp: Marked ready for edting. 16:11:10 https://github.com/WebAudio/web-audio-api/issues/760 16:12:40 rtoyg_m: Want to change the range for biquad gain. Currently -40 to +40. Suggest -inf to +inf (leaves open to implementation). 16:12:46 https://github.com/WebAudio/web-audio-api/issues/759 16:13:20 [web-audio-api] padenot closed pull request #773: 759 biquad gain is db (gh-pages...759-biquad-gain-is-db) https://github.com/WebAudio/web-audio-api/pull/773 16:13:21 [web-audio-api] padenot pushed 3 new commits to gh-pages: https://github.com/WebAudio/web-audio-api/compare/ab068b55b1f0...f633b27f68af 16:13:21 web-audio-api/gh-pages 0855669 Raymond Toy: Fix #759: biquad gain is in dB... 16:13:21 web-audio-api/gh-pages 60025a5 Raymond Toy: Tidy 16:13:22 web-audio-api/gh-pages f633b27 Paul Adenot: Merge pull request #773 from rtoy/759-biquad-gain-is-db... 16:13:36 rtoyg_m: Editorial. Change pushed already. 16:13:43 padinot: Closed. 16:13:56 https://github.com/WebAudio/web-audio-api/issues/757 16:15:22 padinot: Should just return a typeerror. 16:16:09 mdjp: If array buffer has been neutered then promise rejected with type error. Marked "ready for editing" 16:16:30 https://github.com/WebAudio/web-audio-api/issues/749 16:18:39 "Merge SpatialPannerNode back into PannerNode?" 16:20:31 rtoyg_m: Agree with making this change. Probably need to deprecate the old API, but keep for compat. 16:20:53 jdsmith: Other specs leave deprecated APIs in, but highlight the preferred in text. 16:21:07 BillHofm: My suggestion as well. 16:21:50 padenot: Change is submitted by rtoy. Looks good, ready to merge. 16:23:10 padenot: Resolution: merge back the SpatialPannerNode into the PannerNode . 16:23:34 https://github.com/WebAudio/web-audio-api/issues/739 16:25:23 "loadHRTFDatabase for SpatialPanner" using promise? 16:25:43 padenot: Currently to a lazy load. 16:25:59 roytg_m: Chrome loads fast, possibly shouldn't. 16:26:17 jdsmith: What happens on spatialPanner if it's not loaded? 16:26:26 padenot: We output silence. 16:26:35 royt_g: Same. 16:26:59 mdjp: Resolution move to V.next and consider along side requests for custom HRTFs. 16:27:26 https://github.com/WebAudio/web-audio-api/issues/729 16:28:00 "Multiple calls to getFloatFrequencyData" 16:34:43 Will resume on this after lunch. 17:01:18 kawai has joined #audio 17:28:31 kawai has joined #audio 17:32:53 rtoyg_m has joined #audio 17:33:04 hongchan has joined #audio 17:37:07 ScribeNick: hongchan 17:37:13 ChrisL has joined #audio 17:37:17 jdsmith has joined #audio 17:37:26 https://github.com/WebAudio/web-audio-api/issues/729 17:37:32 rrsagent, here 17:37:32 See http://www.w3.org/2016/04/07-audio-irc#T17-37-32 17:38:00 mdjp: so we're looking at the difference in implementation. 17:39:02 jdsmith has joined #audio 17:39:15 present+ jdsmith 17:39:20 hoch: is this notion of stable state a part of web platform? 17:39:38 padenot: yes, html. 17:40:15 jdsmith has joined #audio 17:41:01 padenot: should return the same data. 17:41:11 jdsmith has joined #audio 17:41:22 present+ jdsmith 17:41:24 rtoyg_m: we should fix the implementation to follow the expectation. 17:43:44 F2F Resolution: getFrequencyData() should return the same value for multiple calls for the same currentTime. 17:44:39 https://github.com/WebAudio/web-audio-api/issues/703 17:44:56 rtoy_g: most of them are obvious. 17:45:17 BillHofm_: what is our policy on float vs double. 17:45:40 rtoy_g: generally double for time, float for everything else. 17:46:30 rtoy_g: let's start with 696. 17:46:40 https://github.com/WebAudio/web-audio-api/issues/696 17:47:56 rtoy_g: the pattern will be - new FooNode(context, opiotns) options as in property bag. 17:48:20 padenot: we should go by the type name. (e.g. new GainNode) 17:48:44 present+ ChrisL 17:49:17 rtoy_g: we keep the old factory pattern intact, so no property bag init options for them. 17:53:30 ChrisL: so if you pass in these values (channel count and etc) does it change dynamically? 17:53:39 padenot, rtoy_g: yes. 17:54:13 mdjp: it would be weird to exclude them from the options. 17:54:45 https://github.com/WebAudio/web-audio-api/issues/697 17:54:56 F2F Resoultion: Yes we will include these properties inthe property bag. 17:55:47 https://github.com/WebAudio/web-audio-api/issues/698 17:56:07 F2F resolution: No longer deprecated. constructor and property bag required for all parameters. 17:56:19 https://github.com/WebAudio/web-audio-api/issues/699 17:58:04 ChrisL: ScriptProcessor is a great example - we should not encourage people to use this anymore. We keep it, but we don't want the new constructor. 17:58:19 no-one is relying on a script processor node constructor, so no web compat issues; do not add a constructor 18:00:53 https://github.com/WebAudio/web-audio-api/issues/700 18:01:28 hoch: this is pretty similar to what we discussed previously. (AudioNodeDescriptor in AudioWorkletNode) 18:02:57 F2F resolution: numberOfIn/Outputs should be in the property bag. 18:04:49 rtoy_g: having to specify all the options in the dictionary is cumbersome. 18:05:50 padenot: a dictionary can be inherited, so we can extend on that. 18:05:59 (WebIDL allows it) 18:08:13 BillHofm_: so what happens if an arbitrary property gets passed in? 18:08:30 padenot, rtoy_g: it gets ignored. 18:12:23 BillHofm_: for AudioWorkletNode, when and where this initialization happens? Who's responsible for it? 18:12:53 hoch: that needs to be done in the constructor, the developer of the node is responsible. 18:13:03 https://github.com/WebAudio/web-audio-api/issues/702 18:14:09 rtoy_g: I think the example looks fine. 18:14:16 F2F resolution: Agreed 18:15:33 https://github.com/WebAudio/web-audio-api/issues/703 18:16:02 ChrisL: can we make the imag part optional? in most cases they are zero. 18:16:30 F2F: Agreed with caveat that if real or imag are undefined they will default to array of 0s. 18:18:09 https://github.com/WebAudio/web-audio-api/issues/671 18:18:55 rtoy_m: he is requesting power-law automation. reasonable. 18:19:03 ChrisL: yes. 18:20:05 mdjp: so is this v1 or v2? 18:20:28 F2F: this should be v2. 18:22:05 https://github.com/WebAudio/web-audio-api/issues/740 18:22:18 hoch: this is irrelvant now. 18:22:22 ChrisL: just close it. 18:22:29 https://github.com/WebAudio/web-audio-api/issues/737 18:23:13 padenot: we have the processing model specced, but I will add a clear definition in there. 18:23:26 F2F: Update to define as 1 block 18:24:09 https://github.com/WebAudio/web-audio-api/issues/730 18:25:19 https://www.chromestatus.com/metrics/feature/timeline/popularity/1251 18:26:02 rtoyg_m: according to this metric, we can remove this safely. 18:26:59 F2F: No web compat issue setVelocity will be removed 18:27:31 https://github.com/WebAudio/web-audio-api/issues/652 18:30:12 mdjp: related to this we can quickly review this issue too. 18:30:15 https://github.com/WebAudio/web-audio-api/pull/665 18:32:52 https://github.com/WebAudio/web-audio-api/issues/606 18:35:01 rtoyg_m: negative rolloff does not make sense. 18:35:18 mdjp: any idea on this? 18:35:47 rtoyg_m: what happens if you swap min and max? garbage in garbage out? 18:35:56 ChrisL: yes I think so. 18:37:55 https://github.com/WebAudio/web-audio-api/issues/251 18:40:04 cwilso - are you available for comment on https://github.com/WebAudio/web-audio-api/issues/251 18:40:12 jdsmith has joined #audio 18:40:22 present+ jdsmith 18:40:36 mdjp: we can come back to that. 18:40:55 https://github.com/WebAudio/web-audio-api/issues/12 18:43:52 (everyone reading the thread…) 18:47:01 padenot: the implementation wise, we can use the latency information from different platform libraries. 18:48:06 mdjp: what is the next step? 18:48:35 https://github.com/pozdnyakov/web-audio-api/commit/a20fe47f0bf084db909a9960fa1d13d803b7f112 18:52:03 padenot: I want to clear up the confusion between dynamic/static latency in the PR. 18:52:36 rtoyg_m: what happens if you plug-in a different audio device with a different latency? 18:54:24 padenot: the latency value is static, but it can be changed when the system changes. 18:56:24 padenot: notification might be possible from AudioOutputDeviceAPI, not us. 18:56:39 mdjp: Paul, can you take over? 18:56:52 padenot: yes. 19:04:20 https://github.com/WebAudio/web-audio-api/issues/251 19:08:00 hoch: the problem here is that we can't subclass or create a custom node from a subgraph without using hacky overriding on connect() method. 19:08:26 padenot: yeah, overriding connect() can cause some collision between libraries. 19:09:15 mdjp: let's connect with cwilso@ for more progress on this. 19:10:10 mdjp: take 20! 19:17:40 25;-) 19:39:57 hongchan has joined #audio 19:42:01 rtoyg_m has joined #audio 19:45:32 https://github.com/WebAudio/web-audio-api/issues/783 19:50:00 ChrisL: this is v.next; but this should be a separate node. 19:50:57 https://github.com/WebAudio/web-audio-api/issues/784 19:52:19 mdjp: 2) exposing latency in AudioWorkletNode 19:54:00 padenot: note that this is the latency of individual node, not the tail time. 19:54:09 https://github.com/WebAudio/web-audio-api/issues/785 19:55:39 https://github.com/WebAudio/web-audio-api/issues/786 19:57:00 mdjp: we're not going to implement Doppler effect. 19:57:41 scribenick: rtoyg_m 19:57:44 https://github.com/WebAudio/web-audio-api/issues/787 20:00:47 BillHofm_: Streaming decodeAudioData is very useful; but need to define use cases. It's definitely v.next 20:01:35 https://github.com/WebAudio/web-midi-api/issues/161 20:04:48 hongchan has joined #audio 20:04:51 mdjp: Analyzer node issue, basically FFT processing 20:05:07 https://github.com/WebAudio/web-audio-api/issues/788 20:05:25 http://chuck.cs.princeton.edu/doc/language/uana.html 20:05:39 (I'll just put it here for the reference, ChucK with UAna) 20:05:52 hongchan: Chuck can do fft processing. 20:06:26 padenot: Current webaudio implementation of this would be difficult. The time domain processing is important part. 20:06:45 mdjp: Webmidi for Firefox and Edge. 20:08:38 mdjp: Scanning over v2 issues 20:13:13 #496: encodeAudioData. 20:13:38 padenot: Discussed in video working group, but it's odd since video is tied to a real clock. 20:14:57 padenot: Connect offline context to media stream to encode data. 20:15:11 padenot: Like a video editor on the web. 20:23:12 https://github.com/WebAudio/web-audio-api/issues/468 20:23:19 Keep. 20:27:28 https://github.com/WebAudio/web-audio-api/issues/457 20:30:03 https://github.com/WebAudio/web-audio-api/issues/456 20:32:14 hongchan: Not clear it's really useful to have bypass on each AudioNode. 20:32:32 hongchan: What about source node? 20:32:42 BillHofm_: It becomes a noise generator. :-) 20:33:08 Now that I think about it, probably better a 60/50Hz line noise. :) 20:36:14 padenot: Leave in for now. 20:37:29 https://github.com/WebAudio/web-audio-api/issues/373 20:37:51 padenot: Issue was one-shot ABSN was generating too much garbage 20:39:49 https://github.com/WebAudio/web-audio-api/issues/371 20:39:51 Leave in. 20:40:02 https://github.com/WebAudio/web-audio-api/issues/367 20:41:09 Leave in. 20:42:09 hongchan has joined #audio 20:42:16 https://github.com/WebAudio/web-audio-api/issues/359 20:42:37 Leave in. 20:44:31 https://github.com/WebAudio/web-audio-api/issues/358 20:46:28 Leave in. 20:50:19 https://github.com/WebAudio/web-audio-api/issues/331 20:50:22 Leave in. 20:51:10 hongchan has joined #audio 20:52:49 https://github.com/WebAudio/web-audio-api/issues/318 20:53:00 Leave in. 20:58:59 [web-audio-api] padenot pushed 1 new commit to gh-pages: https://github.com/WebAudio/web-audio-api/commit/6a0938bc46cc7030577f285378ec864705eefc01 20:58:59 web-audio-api/gh-pages 6a0938b Paul Adenot: Make it so that the lower bound for the required sample-rate is 8000... 20:59:10 https://github.com/WebAudio/web-audio-api/issues/303 20:59:24 Close this one because offline context has suspend/resume. 20:59:40 rrsagent, make minutes 20:59:40 I have made the request to generate http://www.w3.org/2016/04/07-audio-minutes.html ChrisL 21:22:32 BillHofmann has joined #audio 21:48:04 ChrisL has joined #audio 21:58:25 rtoyg_m has joined #audio 22:01:21 kawai has joined #audio 23:35:46 ChrisL has joined #audio