15:54:15 RRSAgent has joined #audio 15:54:15 logging to http://www.w3.org/2012/08/22-audio-irc 15:54:17 RRSAgent, make logs world 15:54:17 Zakim has joined #audio 15:54:19 Zakim, this will be 28346 15:54:19 ok, trackbot; I see RWC_Audio()12:00PM scheduled to start in 6 minutes 15:54:20 Meeting: Audio Working Group Teleconference 15:54:20 Date: 22 August 2012 15:54:35 Agenda+ Renaming interfaces 15:54:35 Agenda+ Remaming noteOn/noteOff to start/stop or play/stop 15:54:35 Agenda+ Renaming setTargetValueAtTime (and other AudioParam methods) 15:54:35 Agenda+ Naming consistency for Create methods 15:54:35 Agenda+ Teleconference schedule 15:54:42 gmandyam has joined #audio 15:55:04 Agenda: http://lists.w3.org/Archives/Public/public-audio/2012JulSep/0602.html 15:58:10 chris has joined #audio 16:00:26 hi, this is James Wei from Intel. 16:00:41 Hi from Giri Mandyam, Qualcomm Innovation Center (calling from 858 area code) 16:00:42 hi, wistoch 16:01:03 Zakim, who's here? 16:01:03 RWC_Audio()12:00PM has not yet started, shepazu 16:01:04 On IRC I see chris, gmandyam, Zakim, RRSAgent, ot, wistoch, automata, shepazu, foolip, paul___irish, trackbot 16:01:57 zakim, who is here? 16:02:01 RWC_Audio()12:00PM has not yet started, ot 16:02:11 On IRC I see chris, gmandyam, Zakim, RRSAgent, ot, wistoch, automata, shepazu, foolip, paul___irish, trackbot 16:02:17 zakim, this is audio 16:02:32 ok, ot; that matches RWC_Audio()12:00PM 16:03:00 zakim, who is here? 16:03:03 On the phone I see gmandyam, Doug_Schepers, +1.408.765.aaaa, +1.510.334.aabb, ??P17 16:03:11 On IRC I see chris, gmandyam, Zakim, RRSAgent, ot, wistoch, automata, shepazu, foolip, paul___irish, trackbot 16:03:24 zakim, ??P17 is me 16:03:27 +ot; got it 16:04:01 +1.408.765.aaaa is me 16:04:17 zakim, +1.408.765.aaaa is wistoch 16:04:28 zakim, +1.510.334.aabb is crogers 16:04:33 +wistoch; got it 16:04:47 +crogers; got it 16:06:34 mage has joined #audio 16:08:05 Zakim, please list conferences 16:08:05 I see RWC_Audio()12:00PM, SW_RDFWG()11:00AM, T&S_Track(dnt)12:00PM, WAI_PF()12:00PM, VB_VBWG(SCXML)12:00PM active 16:08:07 also scheduled at this time are Style_CSS FP()12:00PM, WF_()9:30AM, XML_XMLCore()11:30AM, WAI_Team(WAIT)10:30AM 16:08:20 zakim, code? 16:08:20 the conference code is 28346 (tel:+1.617.761.6200 sip:zakim@voip.w3.org), ot 16:10:25 zakim, agenda? 16:10:25 I see 5 items remaining on the agenda: 16:10:27 1. Renaming interfaces [from ot] 16:10:27 2. Remaming noteOn/noteOff to start/stop or play/stop [from ot] 16:10:27 3. Renaming setTargetValueAtTime (and other AudioParam methods) [from ot] 16:10:27 4. Naming consistency for Create methods [from ot] 16:10:27 5. Teleconference schedule [from ot] 16:10:31 zakim, take up agendum 1 16:10:31 agendum 1. "Renaming interfaces" taken up [from ot] 16:11:57 http://lists.w3.org/Archives/Public/public-audio/2012JulSep/0621.html 16:12:13 + +46.3.13.48.aacc 16:14:28 tross has joined #audio 16:14:57 Olivier: lists the three options available if we decide to change an interface name 16:15:03 (see http://lists.w3.org/Archives/Public/public-audio/2012JulSep/0621.html) 16:15:08 Marcus: sounds reasonable 16:15:32 zakim, take up agendum 2 16:15:33 agendum 2. "Remaming noteOn/noteOff to start/stop or play/stop" taken up [from ot] 16:15:34 zakim, +46.3.13.48.aacc is maybe marcus 16:15:34 I don't understand '+46.3.13.48.aacc is maybe marcus', mage 16:16:06 https://www.w3.org/Bugs/Public/show_bug.cgi?id=17344 16:16:06 http://www.w3.org/2012/05/02-audio-minutes.html#item02 16:16:14 Olivier: already discussed in May 16:17:38 Olivier: asks chris if he still prefers the "deprecated" 16:17:46 +[Microsoft] 16:17:53 Crogers: yes, agree with start/stop 16:18:01 … Deprecated note can be anywhere 16:18:15 Marcus: what does deprecation mean in such context? 16:18:17 zakim, Microsoft is me 16:18:17 +tross; got it 16:18:53 zakim, 46.3.13.48.aacc is maybe mage 16:18:53 I don't understand '46.3.13.48.aacc is maybe mage', mage 16:19:27 Marcus: two versions in the market for some time 16:19:35 … incompatibility 16:19:42 … don't want to end up in a difficult situation 16:19:54 CRogers: would be for a limited, but could be long, time 16:19:58 … maybe a year or two 16:20:15 … would be a time when we want to take names out entirely 16:20:30 … Could have console warning in implementation, for instance 16:20:46 Marcus: sounds reasonable 16:22:15 Doug: does any other implementation expect to support the nodeOn/nodeOff syntax? 16:22:24 Marcus: will probably start with start/stop 16:22:31 … depends on timing of our implementation 16:23:03 Doug: if more than one implementation uses it, people will keep it (forever) 16:23:13 Marcus: gut feeling is that we wouldn't support them 16:24:51 Olivier: would like to push for the old name to be kept only in informational note 16:24:57 … would make sure nobody implements it 16:25:33 Resolved: noteOn/noteOff renamed to start/stop, the old name will be mentioned in informational section in the spec. 16:25:49 zakim, take up agendum 3 16:25:49 agendum 3. "Renaming setTargetValueAtTime (and other AudioParam methods)" taken up [from ot] 16:26:11 https://www.w3.org/Bugs/Public/show_bug.cgi?id=17334 16:26:27 Marcus: when we read spec the first time, we had difficulty understanding what this method did 16:26:34 … much better now the spec has been updated 16:26:49 … the names by themselves don't feel like they explain clearly enough what they are supposed to do 16:26:56 … there have been similar comments on the list 16:27:20 … Chris has made a great job improving this bit of the spec 16:27:31 … but there are name suggestions which feel much more natural 16:27:35 -> https://www.w3.org/Bugs/Public/show_bug.cgi?id=17334#c4 16:29:16 Olivier: options would be to change none, 1 method, or all 6 16:29:28 CRogers: I understand that people are sometimes confused 16:29:36 … but I still stand by the names as they are 16:29:52 … may be a little bit verbose 16:30:04 … (especially the atTime bit) 16:30:31 … the problem with setTargetValue is that a lot of people don't understand the concept of exponential approach 16:31:52 Marcus: also stand by original impression 16:32:02 … people use functions don't always read the spec fully 16:32:24 … appreciate that we all come from different angles, names feel more or less natural depending on your perspective 16:32:42 … suggestion of dropping the set for methods which do not set value immediately 16:33:10 … thought Rob Baxter's suggestion was making things easier 16:33:34 CRogers: understand suggestion of removing the "set" 16:34:07 … ramp methods specify the end time, the others specify a start time 16:34:49 Marcus: what gets confusing is whether you set a value or a target 16:35:12 CRogers: in the case of setTargetValueAtTime, the change starts immediatelu 16:35:15 s/lu/ly/ 16:35:21 Marcus: understand 16:36:00 CRogers: looking at the simplified names, one of the things you were worried about is that they were not descriptive enough 16:36:13 … that would be true® of the simplified names 16:36:48 Marcus: how about changing setTargetValue to setTarget ? 16:37:07 … at least it would not have verbose set and Value in the same method name 16:37:47 CRogers: I like that. would be open to change setTargetValueatTime to setTargetatTime 16:38:03 Tony: about the distinction between start and end time 16:38:20 … would it make sense to refer to those instead of a generic "time" parameter name 16:38:33 CRogers: sure, it could be called startTime / endTime 16:38:47 Tony: would help for people using for the first time 16:38:52 CRogers: would seem OK 16:39:38 Olivier: what about removing "atTime"? 16:40:03 http://www.w3.org/TR/webaudio/#AudioParam 16:40:07 CRogers: seems fine 16:40:30 Marcus: about value parameter 16:40:46 … the value attribute is not the one being changed by the setValue method 16:41:04 CRogers: agree it is kind of confusing 16:41:30 … go back to wanting the "atTime" now 16:41:58 Marcus: wouldn't be 16:42:13 Marcus: wouldn't object to a better name / definition of the value attribute 16:42:42 … confusion between the fallback and automation value 16:42:59 … so maybe we could rename the value attribute 16:43:13 CRogers: in simple cases, people are not going to use the automation method 16:43:24 … which is why it would make sense to keep the simple value name 16:43:31 … probably 75% of cases 16:43:36 … would like to keep simple name 16:43:46 Marcus: yes, it's a powerful interface 16:43:56 … difficult to get all the functionality in a simple name 16:44:12 CRogers: to expand on that, most cases will just set and read the value attribute 16:44:29 … the methods will be used in a few cases when you want to automate 16:44:59 … even more complicated will be to connect audioparam 16:45:15 Marcus: agree it is powerful interface 16:45:49 … do you think there is a real use case for reading the automation ? 16:46:04 … reading value when there is an automation curve, then you set a value 16:46:38 … spec says that when you read value, it will return either value written to it or automation value 16:47:02 CRogers: but do you want to change the value used for the DSP? 16:47:12 Marcus: no functional change 16:47:20 CRogers: wanted to read value being used 16:47:31 … if you don't, the value is meaningless 16:48:30 Marcus: could this be solved by adding a new method to get intrinsic or final value? 16:48:41 … value attribute kept as it is 16:50:22 Tony: that value assigned can still be affecting what the read out value will be, even if you can't read it 16:50:46 CRogers: if you have an automation curve and set that value, that value is ignored at the moment 16:50:59 … alternative would be to set the value and ignore the automation curve 16:51:33 Marcus: there is another situation where you have a value set, and input from an audioNode, the setting the value would effect it 16:51:59 CRogers: suggest - if you set a value then it will cancel any automation curve, and the value will be set as requested 16:52:17 Marcus: would be the same as calling cancelScheduledValues? 16:52:20 CRogers: yes 16:52:27 Marcus: could live with that 16:52:47 … not sure if there is a use case which would a problem 16:53:04 Crogers: at least this way is consistent 16:54:24 Resolution: setting audioparam value while there is an automation curve will cancel that automation curve and set value immediately 16:56:05 Resolution: setTargetValueAtTime becomes setTargetAtTime 16:57:19 Resolution: the rest of the methods are a decent enough compromise, keep as is 16:58:12 Tony: also to be recorded, we need a way to read a readonly the final / calculated value in 16:59:20 Resolved: need a method to get a readonly value of the combined value 16:59:40 (TBA - bugzilla issue on that one) 17:00:12 Zakim, take up agendum 5 17:00:12 agendum 5. "Teleconference schedule" taken up [from ot] 17:01:14 Olivier: would like to poll for preferred rhythm 17:01:20 Marcus: weekly may be too often 17:01:27 … at this hour is kind of fine 17:01:40 … fine with Monthly 17:01:46 … quite productive 17:02:06 Doug: suggest bi-weekly for a bit, to get back to the swing of things 17:02:11 Marcus: sounds reasonable 17:02:19 … can't guarantee I can join every time 17:02:53 Tony: we also get a fair amount through Bugzilla, agree weekly maybe too much 17:03:08 -Doug_Schepers 17:04:14 Olivier: OK to try every 2 weeks or so 17:05:16 [any preference of which we should tackle next] 17:05:46 Agenda+ JavascriptAudioNode 17:05:53 zakim, take up agendum 6 17:05:54 agendum 6. "JavascriptAudioNode" taken up [from ot] 17:06:10 Marcus: seems like consensus is to do worker-based processing 17:06:17 … it's a topic by itself 17:06:24 … we need to think about the design of it 17:10:15 Olivier: would like to know what the way forward could be… use cases? metrics? experiments? 17:10:37 CRogers: one thing mentioned was the question of number of inputs/outputs and channels 17:11:04 … JSAudioNode has 1 input/1 output but can have as many channels at the moment 17:11:21 … lots of confusion on these threads 17:11:29 … we should have a way to add inputs and outputs 17:11:47 … I added that to the constructor at first 17:11:54 … but everyone was confused, so I removed it 17:12:21 Marcus: we need to have the option of both changing number of input/output channels AND connectors 17:12:31 … useful for custom matrixing or things like that 17:12:34 … not sure how 17:12:57 … don't think any node can change its number of input/outputs after creation, at the moment 17:13:06 … but they can change number of channels after creation 17:13:10 … correct? 17:13:13 CRogers: true 17:13:22 Marcus: suggest a similar approach for JSnode 17:13:35 … methods for setting number of input/output connectors 17:13:41 … as an optional argument 17:14:10 CRogers: tried to have number of inputs/outputs in constructor and it was confusing 17:14:19 … maybe pass an optional json representation 17:14:26 … we need to look at that more closely 17:14:35 Crogers: concerning main thread and workers 17:14:57 … I do favour jsnodes running in web workers 17:15:10 … but many people have been doing it in the main thread 17:15:22 … a lot of people don't know how to use workers 17:15:54 … in the main threads, it's been proven to work 17:16:05 Marcus: I was of the opinion that we should try and prevent it 17:16:16 … but I do see the use cases to do it in the main thread 17:16:27 … worried that there will be 2 ways of do one thing 17:16:40 … would really like to push users to do it in workers 17:16:59 CRogers: may just be a variation on the constructor 17:17:16 … just a difference in where the js code is executing 17:17:30 … and there will be latency sync issues in either case 17:17:48 … some people seem to be angry about that latency 17:18:24 … I can't think of a way to make it feasibly to have that js execution without latency 17:18:49 Marcus: still think there is no fundamental issue with letting any language 17:19:00 … but doesn't match with way workers function 17:19:15 … there were discussions about using shader languages 17:19:17 +q 17:19:30 ack gm 17:19:55 Giri: wondering about the logic of supporting both 17:20:26 … is there a way using a worker would help when you have multiple cores? 17:20:33 … seems like increased complexity 17:20:50 Marcus: everything that runs in the main context can possibly be blocked by anything else working there 17:21:07 … e.g animation frames, UI events, setIntervals, document reflows etc 17:21:12 … would block the DOM 17:21:22 … which means you can get quite long dropouts 17:21:56 … in a worker, you would get much less of an issue, and you do get an option of using multiple cores 17:22:18 Giri: even with multiple cores you are still dependent on implementation 17:22:31 Marcus: yes, depends on hardware, OS and implementation 17:22:42 … but those things will typically not block for a very long time 17:22:49 … because of preemptive scheduling 17:23:43 Tony: way I look at this is, when you are in the main thread, implementation doesn't have a lot of choice to prioritize / optimize 17:26:31 CRogers: reiterates use cases to work in main thread… access to other APIs, access to the DOM 17:26:41 … many hoops to jump through 17:26:59 Marcus: agreed, one limitation of workers is data sharing 17:27:10 … no efficient way of sharing data between workers and main context. 17:27:28 … hope to get improvement in the future, but currently major limitations 17:27:51 Crogers: that's why I strongly suggest we support custom in main thread 17:28:13 CRogers: there has also been discussion about using shader language 17:28:30 … work being done by Stephane 17:28:41 Marcus: reminds me of openGL 17:29:15 … for something like that to be successful in audio you'd need objects you can access from your shader 17:29:31 Crogers: ideal would be that the shader have access to the audio data from inputs 17:29:41 … depends on details of syntax of audio shaders 17:29:52 … early work but very interesting 17:29:56 … very promising 17:30:08 … no GC, ability to use in real-time thread 17:30:58 [missed comment by Marcus] 17:31:36 CRogers: one limitation he mentioned is limit of single-threaded code 17:31:47 … convolution really need multiple threads 17:34:02 [ no resolution, but we can keep working on adding inputs and outputs to js node, as well as defining the constructor syntax for worker while experiments with shader language happen] 17:34:45 -gmandyam 17:34:48 - +46.3.13.48.aacc 17:34:50 -ot 17:34:51 [Adjourned] 17:34:52 -tross 17:34:54 -crogers 17:34:55 rrsagent, make minutes 17:34:55 I have made the request to generate http://www.w3.org/2012/08/22-audio-minutes.html ot 17:35:02 rrsagent, make logs public 17:35:03 rrsagent, make minutes 17:35:03 I have made the request to generate http://www.w3.org/2012/08/22-audio-minutes.html ot 17:35:18 wistoch has left #audio 17:35:47 -wistoch 17:35:49 RWC_Audio()12:00PM has ended 17:35:49 Attendees were gmandyam, Doug_Schepers, ot, wistoch, crogers, +46.3.13.48.aacc, tross 17:36:16 mage has left #audio 17:46:50 jussi has joined #audio 18:25:54 automata has joined #audio 19:05:50 ChrisWilson has joined #audio 19:57:36 ot has joined #audio 22:17:30 rtoyg has joined #audio