F2F Mar 2013

From Audio WG Wiki

The Audio Working Group had a two-days face-to-face meeting in San Francisco on 26 and 27 March, 2013. This page keeps a record of our discussion and an archive of the logistical details.

Minutes

Web Audio API V1 / Feature freeze

First meaty agenda of the day was to discuss whether/how we could split the web audio API spec, in order to make it easier to implement. We looked at a strawman split worked on by people at Mozilla from features known to be useful to game developers (one of our primary constituencies, see Use Cases & Requirements document)

The strawman list was (Version 1)

  • AudioContext
  • OfflineAudioContext (at risk)
  • GainNode
  • AudioBuffer
  • AudioBufferSourceNode
  • MediaElementAudioSourceNode
  • MediaStreamAudioSourceNode
  • ScriptProcessorNode
  • PannerNode
  • DynamicCompressorNode
  • BiquadFilterNode
  • DelayNode

(Not sure)

  • ConvolverNode
  • WaveShaperNode
  • OscillatorNode

(Post v1)

  • AnalyserNode
  • ChannelSplitterNode
  • ChannelMergerNode

The group could not reach consensus on whether this would be a valuable split. There was however consensus on three things:

  • all the features currently in the spec are valuable and would be useful to have sooner or later
  • removing one or two types of node will not increase the ease of implementation dramatically
  • we should put our effort into better specifying all the types of nodes and implementation will be much easier


Web Audio API walk through and live edit

Resolutions:

  • Resolution: WebIDL should be construed as normative
  • Resolution: Implementations are to omit functions from DOM bindings that are not implemented (e.g. createXXXNode where XXX isn't supported)

Issues generated/modified :


Web Midi

Chris Wilson walked us through the history of this spec, how he realised that our work on web audio would be a great opportunity to connect controllers (cheap and plenty) and build synthethisers, music apps on the web. There are concerns that the API will not be high on implementation lists but in the meantime, there is a shim (working with the Jazz midi plugin https://github.com/cwilso/WebMIDIAPIShim ).

Testing

We established that our goal for the time being was to focus on testing the quality (and testability) of the spec and interoperability of implementations. Testing "quality of implementation" (which is a very hard question for audio) or testing how our APIs integrate with the rest of the web platform is somewhat out of scope at the moment.

A short discussion was followed by demos:

  • Chris Rogers gave a tour of the webkit tests and how they are organised
  • Chris Lowis showed his current effort to create interface tests from IDL
  • Ehsan showed the Mozilla test framework

It was noted that the Mozilla and Webkit test harnesses are somewhat similar, and that it should be reasonably easy to translate these tests into the w3c harness. The fact that some of the webkit tests require OfflineAudioContext (a feature which Moz considers potentially at risk) was raised but not solved.

Guest session

We split our guest session in two:

  • Jory from the html5audio blog/twitter came to talk about interactions with the games dev community, and talked about games dev engines - libraries which support web audio. Something similar to http://threejs.org/ would be valuable.
  • Erik and Neil from Khronos also came to talk about the relationship between OpenSL and Web Audio API. The group working on OpenSL has been listening to interest for a web port. They also worked on use cases, which largely overlapped with the ones our group built. There was rapid agreement that it would be a bad thing to have a "webSL" and "web audio API" compete in this space, but it could be a good thing if a web version of OpenSL ES built upon the web audio API, abstracting away the node/graph model.


vendor prefixes & "deprecated" interface

Back to discussion of "big issues" with the web audio API, we tackled the question of vendor prefixed and "deprecated" interfaces (such as noteOn and noteOff). The group first leaned towards changing the deprecation text to remove the recommendation to implement the deprecated methods but after further discussion and looking into more details about the current state of implementation and usage, we reached the following resolution:

RESOLUTION: We'll support the two interfaces in the spec, have the noteOn etc in a separate section. Change the deprecation methods to "alternate names" and explain that they exist in the spec for historical reasons.

There was also general consensus that vendor prefixing should be taken away from documentation and articles as soon as implementations catch up. Ditto for "new names" and interfaces, which will be prioritised in all documentation.

Web workers

We looked at the part of MSP dealing with processing in workers ( http://www.w3.org/TR/streamproc/#stream-mixing-and-processing ) and agreed to add a way to use ScriptProcessorNode with workers, in a similar fashion.

The discussion continues on bugzilla: https://www.w3.org/Bugs/Public/show_bug.cgi?id=17415#c94

Next call date

Given the time it will take to address and follow up all the issues raised during the meeting, as well as a few other calendar considerations, we agreed our next teleconference will be on April 25th, same time as usual.

TPAC

Before adjourning, we had a short discussion about the upcoming TPAC in Shenzen, China. The group did not yet decide whether it will meet there, but there was general agreement that whether or not we meet, some presence at the event for developer advocacy would be a good thing.

Agenda

For reference, the initial agenda was:

Tuesday AM : spec issues and bug fixes

  • 9:00 - 9:30 Welcome, Process
  • 9:30 - 11:00 Web Audio V1 / feature freeze
  • 11:00 - 12:45 Web Audio API read-through, live edit

Tuesday PM : spec issues and bug fixes

  • 13:30 - 15:00 Web Audio walk through / live edit
    • find and fix small issues
    • build initial test coverage list
  • [BREAK]
  • 15:30 - 17:00 Web Audio Issues Triage pre-LC
    • Go through all the issues (in Bugzilla), and:
      • Decide severity / priority
      • Decide whether issue is a LC blocker
      • If obvious, fix on the spot
      • If clear path forward, assign (not necessarily to editor)
  • [BREAK]
  • 17:30 - 19:00 Web Midi LC discussion
    • Look at state of spec, decide whether/when to go to LC.
  • 19:00 Dinner

Wednesday AM : Testing Workshop

  • 9:00 - 12:00 Testing workshop
    • Test intro
    • looking at webkit tests
    • Everyone writes tests from initial feature coverage list

Wednesday PM

  • 1pm - 3pm: guest session
  • 3pm - 5pm: overflow / more testing

Logistics

Who

Registered participants for the meeting are:

  • Chris Lowis (BBC, co-chair)
  • Olivier Thereaux (BBC, co-chair)
  • Thierry Michel (W3C)
  • Doug Schepers (W3C)
  • Chris Lilley (W3C)
  • Joe Berkovitz (Noteflight)
  • James Wei (Intel)
  • Chris Wilson (Google)
  • Matthew Paradis (BBC)
  • Jer Noble (Apple)
  • Chris Rogers (Google)
  • Giridhar Mandyam (Qualcom)
  • Ehsan Akhgari (Mozilla)
  • Takashi Toyoshima (Google/Chromium)

Special guests / Observers :

  • Koji Oishi (Korg)
  • Ryoya KAWAI (Yamaha)
  • Erik Noreke (OpenSL Chair)

Where

We will be hosted by Google in their San Francisco, California offices. map


 345 Spear Street
 Floors 2-4
 San Francisco, CA 94105
 Phone: +1 415-736-0000

Getting There

It is strongly advised to people flying it to land at San Francisco Airport rather than San Jose, which is a fairly long car ride away.

The best way to get to the city from the airport is to take the (cheap and reliable) public transport - BART or CalTrain. Travelling by car is not recommended. Parking may be a serious issue in SF.

From Chris Rogers:

« James, there is no Google parking lot or free parking, so you have to park yourself. My manager advises me that there is a very close all-day parking lot] on Spear street just past Harrison street and almost right under the Bay Bridge.»

When

26 and 27 March 2013

We will start the first day at 09:00AM. Please get to the venue for 9AM sharp so we can all clear registration/security together. Bring a photo ID.

We may end day 2 early if several participants need to go catch a flight. Contact the chairs if you are in that case.

Registration

Registration is closed. Please contact Olivier if you would like to add a last-minute registration.

Accommodation

There are a number of hotels in central SF, but the proximity of GDC at the Moscone Center means that a number of hotels will be packed. Airbnb has been recommended as a viable alternative.