Minutes, 2016-04-08 Web Audio (Atlanta, Day 2)

https://www.w3.org/2016/04/08-audio-minutes.html

    

                      Audio WG f2f2, Atlanta, Dday 2

08 Apr 2016

    See also: [2]IRC log

       [2] http://www.w3.org/2016/04/08-audio-irc

Attendees

    Present
           rtoyg, hongchan, BillHofmann, jdsmith, ChrisL_, padenot,
           mdjp, kawai

    Regrets
           cwilso, joe

    Chair
           Matt

    Scribe
           BillHofmann, ChrisL

Contents

      * [3]Topics
          1. [4]Recharter
          2. [5]Output devices
          3. [6]Output Device Selection
          4. [7]wrap-up and next steps
      * [8]Summary of Action Items
      * [9]Summary of Resolutions
      __________________________________________________________

    <BillHofmann> Chair mdjp

Recharter

    <BillHofmann> scribe BillHofmann

    <BillHofmann> mdjp: should open discussion about whether/how we
    recharter

    <BillHofmann> mdjp: I believe we should continue, and it's
    collecting new use cases, etc.

    <BillHofmann> mdjp: issue raised at TPAC whether WG should
    split into specific areas

    <BillHofmann> mdjp: also of course relates to Web MIDI.

    <BillHofmann> mdjp: does anyone have objections to rechartering
    with a goal to specing V2, in the same structure as we are in
    today?

    <BillHofmann> all: silence :)

    <BillHofmann> mdjp: Joe + Matt need to discuss with Chris
    Lilley re process, but...

    <BillHofmann> mdjp: need to document wide review - WAC, etc are
    good evidence of this

    <BillHofmann> mdjp: testing is also key here. Google/Mozilla -
    any updates on the status?

    <BillHofmann> padenot: would be good to have Joe's intern's
    updates

    <BillHofmann> padenot: we have run a few blink tests, and ran
    ok. However, ~95% of mozilla tests are not in Web Platform
    Tests - that'd be good to do

    <BillHofmann> rtoyg_m: good thing is that tests can be run in a
    regular browser

    <BillHofmann> hongchan: advantage vs last year, most tests run
    in OfflineAudioContext

    <BillHofmann> padenot: most tests now run in both Offline and
    regular

    <BillHofmann> np.

    <BillHofmann> rtoyg_m: our goal is to cover every user visible
    thing, but a ways away from that. most basic things covered.

    <BillHofmann> jdsmith: asking re coverage required.

    <BillHofmann> mdjp: shows coverage sheet from Joe's intern's
    test

    <BillHofmann> jdsmith: are these tests to be submitted?

    <BillHofmann> mdjp: we need to produce an interoperability
    report

    <BillHofmann> jdsmith: Media goals include common test suite
    run on all browsers; at least two implementations have to pass
    all the tests

    <BillHofmann> mdjp: been going on ever since I joined the WG,
    really need someone to cover

    <BillHofmann> jdsmith: Media WG got help from W3C

    <BillHofmann> mdjp: probably no-one around the table has the
    time to do this

    <BillHofmann> BillHofmann: what is the state of Edge (including
    test coverage)

    <BillHofmann> jdsmith: not sure, took a snapshot of Chromium
    last year.

    <BillHofmann> padenot: there is an independent test suite
    someone created...

    <padenot> [10]https://github.com/mohayonao/web-audio-test-api

      [10] https://github.com/mohayonao/web-audio-test-api

    <BillHofmann> primarily a DOM test - covers all interfaces

    <BillHofmann> padenot: roughly 90% WebAudio coverage on mozilla
    - checking now

    <BillHofmann> mdjp: this is a good framework to fill in from,
    perhaps

    <BillHofmann> mdjp: testing is the main work remaining

    <BillHofmann> jdsmith: it's up to us to decide what interop
    means

    <BillHofmann> mdjp: should discuss with ChrisL - but likely we
    need at least some level of perceptual match for output

    ideally tests decide a pass/fail from script automatically, but
    yes we will need some tests that people have to listen to

    although maybe we can do some clever things with nulling where
    the test passes if there is silence

    taxi saams to be arriving, be there shortly

    <BillHofmann> hongchan: our tests do a lot of functional
    testing

    <BillHofmann> padenot: we've been using some techniques where
    you run the signal twice, invert, sum - should be zero

    <BillHofmann> padenot: one version run through graph, other is
    hand-built

    <BillHofmann> rtoyg_m: we do that a lot, as well

    <BillHofmann> rtoyg_m: some require bit accuracy, some times we
    do PSNR tests

    <BillHofmann> rtoyg_m: most everything is completely automatic,
    working to get to 100%

    <BillHofmann> kawai: I know the developer.

    <BillHofmann> mdjp: do we think he might be interested in
    extending the suite to cover functional tests? Can kawai talk
    with him?

    <BillHofmann> BillHofmann: we ought send him a letter rather
    than invite to a call

    <BillHofmann> jdsmith: what would collaboration look like? we
    could contribute cases to this?

    <BillHofmann> mdjp: how does this fit into Web Platform Tests?

    <BillHofmann> padenot: we have a few things in it, not much at
    this point. all new tests get pushed upstream to W3C test suite

    <BillHofmann> kawai: uses testharness.js - if you write to this
    and submit, it's automatically tested.

    <BillHofmann> mdjp: we've got test coverage in two browsers;
    mohayonao tests, web platform tests - so in reasonably good
    state, but need to pull things together

    <hongchan>
    [11]https://code.google.com/p/chromium/codesearch#chromium/src/
    third_party/WebKit/LayoutTests/webaudio/

      [11] https://code.google.com/p/chromium/codesearch#chromium/src/third_party/WebKit/LayoutTests/webaudio/

    <hongchan> This is our test suite.

    <hongchan> (Chrome)

    <BillHofmann> jdsmith: we've run these as well, don't know
    status of results, though

    <BillHofmann> padenot: 2-3 of these are run regularly.

    <BillHofmann> mdjp: what do we do for rechartering?

    <BillHofmann> mdjp: new charter should cover new use cases,
    etc.

    <BillHofmann> ChrisL: BillHofmann, should that cover audio
    output?

    <BillHofmann> BillHofmann: yes - though should it be in our WG?

    <BillHofmann> ChrisL: we could call it out as a requirement
    whether or not we do it ourselves

    <BillHofmann> mdjp: How long do we need?

    <BillHofmann> ChrisL: roughly June, for summer holidays.
    includes W3C staff overhead (~2 weeks), balloting, collating
    responses

    <BillHofmann> ACTION: ChrisL to draft new charter [recorded in
    [12]http://www.w3.org/2016/04/08-audio-minutes.html#action01]

      [12] http://www.w3.org/2016/04/08-audio-minutes.html#action01]

    <trackbot> Created ACTION-125 - Draft new charter [on Chris
    Lilley - due 2016-04-15].

    <BillHofmann> ACTION: ChrisL: to create implementation report
    [recorded in
    [13]http://www.w3.org/2016/04/08-audio-minutes.html#action02]

      [13] http://www.w3.org/2016/04/08-audio-minutes.html#action02]

    <trackbot> Created ACTION-126 - Create implementation report
    [on Chris Lilley - due 2016-04-15].

    <BillHofmann> ACTION: mdjp to coordinate new use cases
    [recorded in
    [14]http://www.w3.org/2016/04/08-audio-minutes.html#action03]

      [14] http://www.w3.org/2016/04/08-audio-minutes.html#action03]

    <trackbot> Created ACTION-127 - Coordinate new use cases [on
    Matthew Paradis - due 2016-04-15].

    <BillHofmann> mdjp: main outstanding item is testing. we've
    found there's a lot of resources available.

    <BillHofmann> mdjp: We've tried to get community input, just
    hasn't worked. Feels like this just needs someone to
    coordinate.

    <BillHofmann> mdjp: is there any scope/help we can get for this
    from W3C (to coordinate getting existing tests into)

    <BillHofmann> ChrisL: Web Platform Test tends to be DOM level

    <BillHofmann> ChrisL: it's a best effort on test coodination

    <BillHofmann> jdsmith: should they be in one location?

    <BillHofmann> rtoyg_m: most of ours are plain HTML

    <BillHofmann> BillHofmann: could they be just pushed into the
    web platform tests?

    <BillHofmann> rtoyg_m: sure

    <BillHofmann> mdjp: what we need, basically, is one (mozilla or
    chrome) to run against.

    <BillHofmann> jdsmith: the Web Platform tests, I believe, are
    WebIDL tests, so might have coverage there

    <BillHofmann> ChrisL: can take a look and see if we have
    someone to help coordinate the test effort.

    <BillHofmann> jdsmith: Media group had someone to assist with
    this.

    <BillHofmann> ChrisL: I'll be seeing Philippe on Monday, can
    discuss what he did.

    <BillHofmann> BillHofmann: could the existing Gecko tests be
    pushed up?

    <BillHofmann> padenot: no, different test harness.

    <BillHofmann> mdjp: is there an assumption that we have two
    complete implementations for CR?

    <BillHofmann> padenot: depends on how you count forking, 2-4,
    yes. minimum 2 completely different.

    <BillHofmann> rtoyg_m: many of the Safari tests will fail - way
    behind.

    <scribe> scribenick: ChrisL

Output devices

Output Device Selection

    jdsmith: discussions at tpac, with media capture and streans,
    but lots of requirements deferred to future version
    ... mostly input devices and streams from webcams etc, notion
    of a single output device, not really thinking about output
    channels
    ... want it to be generalized enough to say, video output
    devices, returns none or the ones matching constraints on
    resolution, highDR, etc. needs to be generalized enough
    ... some interest but no timelines. Since then, nothing.
    ... Joe agitated to get things moving, sent in some PR but
    nothing major was changed. There is not even abn output video
    type
    ... commented on joe's proposal got some input from netflicks,
    who care a lot about this
    ... we don't want a proprietary solution

    BillHofmann: they miss a lot of required capabilities

    jdsmith: generally useful for media devices. There is a
    fingerprinting concern. Capture group manage that by requiring
    permission. Seen as a privacy thing.
    ... can persist the permission per-domain, edge does not though

    ChrisL: on the web its notmall to assume there is permission to
    output audio 9we mutter arkly about autoplay videos)

    jdsmith: add a kind for video output

    BillHofmann: not in charter

    mdjp: could be in next charter

    jdsmith: broader than audio, not clear who owns it, media
    taskforce, and incubator to start with
    ... no elegant way to manage the fingerprint concern.

    BillHofmann: can already fingerprint

    ChrisL: fonts are a big fingerprint

    BillHofmann: mostly there is a single default output device.
    maybe query that. example where you plug a media adapter intoa
    tv, yu already gave permission and don't want to see a dialog
    box

    jdsmith: misuse of the api is hard, would need to give a reason
    for acessing devices
    ... need to persist permissions for the domain

    BillHofmann: iphone is very wrmissions oriented, location,
    photos etc. apps deal with by double dialogs.

    jdsmith: can also limit the information that is disclosed.
    constrain to what is needed. permissions that make sense to the
    user.

    BillHofmann: people are getting used t the iritating dialogs

    padenot: android has run-time permissions now, used to be
    install-only

    BillHofmann: idea of constraints is to pick an appropriate
    device
    ... (we wonder about permissions in getUserMedia)

    jdsmith: can't get the label until given permission

    ChrisL: media queries just added a gamut query - sRGB, P3, 2020
    basically

    [15]https://drafts.csswg.org/mediaqueries/#color-gamut

      [15] https://drafts.csswg.org/mediaqueries/#color-gamut

    jdsmith: we have a hardware pipeline that is more robust, we
    want to expose that, feed it with different characgteristics,
    let apps choose between them

    BillHofmann: you want codec support too? ecide which source
    stream to select.
    ... could do with an API or with MQ

    [16]https://developer.mozilla.org/en-US/docs/Web/API/Window/mat
    chMedia

      [16] https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia

    mql = window.matchMedia(mediaQueryString)

    mdjp: multichannel auio devices, want to see if there is better
    than stereo

    BillHofmann: media queries for audio?

    padenot: yes but only FF supports them
    ... can have multile source tags for small or large screens. no
    audio in the MQ

    jdsmith: who would review this, would we need a tag opinion?

    mdjp: constraints means you get a device meeting the
    constraints. not like device enumeration.

    BillHofmann: cant get details

    jdsmith: can enumerate audio devices, but not descrinbed in any
    way

    BillHofmann: so connstraits are channels, sample rate. what is
    the minimal list

    mdjp: output buffer size

    BillHofmann: presumably you get that after permission. then you
    get more detail

    mdjp: mostly this is okay.

    BillHofmann: default likely to be hdmi out

    mdjp: permission side is for a more specialized useage. sound
    card details, etc

    (discussion on switching video output devices, auto switching,
    hot-plug)

    BillHofmann: do you know sample rate?

    hongchan: yes

    padenot: platforms specifics on the internals of that

    BillHofmann: don't know the color capabilities of the output
    device, gamut, dynamic range, bit depth

    (Bill shows some webrtc option dialogs)

    <BillHofmann>
    [17]https://webrtc.github.io/samples/src/content/devices/input-
    output/

      [17] https://webrtc.github.io/samples/src/content/devices/input-output/

    (we play with this for a bit and try adding new devices, etc)

    BillHofmann: so who does it, is it in rechartering, is it a web
    incubator CG, where does it get done?
    ... we can't wait on getUserMedia, they are specific to the
    webrtc use case only

    mdjp: would audio output be better as a subset group or a
    separate group. its a lot of duplication. needs to tie to
    getUserMedia in some way

    jdsmith: would add output devices
    ... it is broader than audio only, so best not in our charter

    BillHofmann: agreed
    ... so we develop use csases first? and where to send them

    billl (finds mailing list for the audi output spec is media
    capture)

    mediacapture-output

    BillHofmann: seems like the mediacapture output spec is the
    right one for audio output

    seems semi abandoned, has no video output features.

    BillHofmann: so yes we need something, consrtraints api a good
    target, expose a limited set of features fro audio and video.

    jdsmith: fingerprinting is a bit voodoish, so if we have a use
    case that demands data hwhat is the minimal mitigation we
    propose?
    ... would like to see incubator work on this, by this summer

    mdjp: separate group with some audio wg involvement.

    BillHofmann: incubator is a good place to refactor this so it
    meets our requirements

    jdsmith: want folks from all the relevant groups
    ... api is fairly thought through, can be implemented and
    evaluated rapidly

    mdjp: can steer the direction so it meets our audio needs

    <scribe> ACTION: joe to liaise with the media capture and
    streams to discuss options for adding audio and video device
    constraint and enumeration, in context of existing group or the
    incubator group [recorded in
    [18]http://www.w3.org/2016/04/08-audio-minutes.html#action04]

      [18] http://www.w3.org/2016/04/08-audio-minutes.html#action04]

    <trackbot> Created ACTION-128 - Liaise with the media capture
    and streams to discuss options for adding audio and video
    device constraint and enumeration, in context of existing group
    or the incubator group [on Joe Berkovitz - due 2016-04-15].

    action ChrisL to figure out who reviews the
    privacy/fingerprinting issue

    <trackbot> Created ACTION-129 - Figure out who reviews the
    privacy/fingerprinting issue [on Chris Lilley - due
    2016-04-15].

    <ChrisL_> cwilso: lets keep the implementation status in the
    readme.md

    <ChrisL_>
    [19]https://github.com/WebAudio/web-midi-api/issues/148

      [19] https://github.com/WebAudio/web-midi-api/issues/148

    <ChrisL_> cwilso: no way to know the inputs and outputs are on
    the same device. so separate lists, not orered or encapsulated
    by hardware device

    <ChrisL_> ... request is to encapsulate them like that

    <ChrisL_> ... challenge is to create individual hardware
    devices for everything in some cases, depending what the OS
    exposes to us

    <ChrisL_> ChrisL_: if it fails, no worse off then now

    <ChrisL_> cwilso: prefer to not change the midiAccess and
    midiPort except a midi interface object on midiport

    <ChrisL_> ChrisL_: so no backwars compat issue

    <ChrisL_> cwilso: no

    <ChrisL_> mdjp: sounds useful

    <ChrisL_> ChrisL_: +1

    <ChrisL_>
    [20]https://github.com/WebAudio/web-midi-api/issues/158

      [20] https://github.com/WebAudio/web-midi-api/issues/158

    <ChrisL_> cwilso: we don't say how much you can send at one go.
    large buffers help.

    <ChrisL_> ... if pushing a lot of data, esp on DIN midi, mant
    to see if the buffer is emptying fast enough. ask on remaining
    buffer space

    <ChrisL_> cwilso: right way to do this is writeable streams,
    apparently

    <ChrisL_> cwilso: tied to ES6 and ES7 features

    <ChrisL_> cwilso: can connect streams together but mostly not a
    huge win. better to return a promise and expose the current
    buffer size

    <ChrisL_> ... domenic worrries it is duplicating streams, but
    only a very small part and we don't need the rest

    <ChrisL_> cwilso: so we need to expose backpressure, to give
    confidence that large transfers don't fail

    <ChrisL_> cwilso: think we should do the minimum viable

    <ChrisL_> cwilso: one area streans does help, can pipe between
    ins and outs.

    <ChrisL_> ChrisL_: but midi thru is not especially hard anyway

    <ChrisL_> cwilso: agreed, except for real time messages

    <ChrisL_> cwilso: moving to promise based made midi a bleeding
    edge thing, has worked well though. worried about streams
    because that is difficult to understand with async and ES7
    features

    <ChrisL_> kawai: agree with having both a send one and the
    stream one. it is useful but not really important, we can work
    around it

    <ChrisL_> cwilso: send does not expose backpressure. but we
    could add it

    <ChrisL_> ... don't think we shold replicate a lot of the
    stream api

    <ChrisL_> BillHofmann: not breaking makes sense, so keep send
    and provide the minimal change

    <ChrisL_> cwilso: ok

    <ChrisL_> BillHofmann: what is the minimum change?

    <ChrisL_> cwilso: add a "send space available" call

    <ChrisL_> ... not a "wait until this much space is available"

    <ChrisL_> cwilso: stream implementations are uncommon as yet

    <ChrisL_> mdjp: what about doing the minimal for v1 and
    re-evaluate for v2?

    <ChrisL_> cwilso: that is one way to do it

    <ChrisL_> ... remembering how windows api works here, is it
    dynamically reallocating

    <ChrisL_> ... duplication of effort

    <ChrisL_> ChrisL_: prefer the minimal backpressure for v1,
    close issue, re-open only if new data shows that is not
    sufficient

    <ChrisL_> cwilso: ok, need to talk to the TAGG and see what
    they think

    <ChrisL_> ... WebUSB and WebBT do not expose backpressure, they
    have an async promise based send model

    <ChrisL_> cwilso: rest of the issues are editorial

    <mdjp> [21]https://github.com/WebAudio/web-audio-api/issues/251

      [21] https://github.com/WebAudio/web-audio-api/issues/251

    <ChrisL_> mdjp: ok, great. now nto the webaudio issue

    <ChrisL_> (cwilso reads)

    <ChrisL_> cwilso: think that joe did a subclassing test which
    failed because of #250. Have to go through create methods o
    audioContext. once fixed, subclassing works as well

    <ChrisL_> ... can we compose an audio node and hook up a bunch
    of other things, an then call connect onto an arbitrary point
    in the graph.

    <ChrisL_> cwilso: can't do constructible audio params

    <ChrisL_> ... think this does work today, crate node and
    override .connect

    <ChrisL_> (cwilso tests)

    <ChrisL_> cwilso: yes, you can override it

    <ChrisL_> ... cant expose as audio params

    <ChrisL_> cwilso: being able to new and audio param and have it
    run

    <ChrisL_> cwilso: closed it because we put it on audio worker

    <ChrisL_> mdjp: so it can stay closed

    <ChrisL_> #134

    <ChrisL_> #367 is postponed to v.2

    <ChrisL_> hongchan: so in terms of subclassing we don't need to
    change anything

    <ChrisL_> cwilso: right, but composition does not, yet

    <ChrisL_> cwilso: audio param is still magic. not newable.
    marshalled across to worker behind the scenes

    <ChrisL_> BillHofmann: would #250 solve that?

    <ChrisL_> padenot: it could. yesterday we talked of making an
    audio param from iside a worklet

    <ChrisL_> Chair: Matt

    <ChrisL_> Meeting: Audio WG f2f2, Atlanta, Day 2

    <ChrisL_> cwilso: or we could say #251 and say 367 back

    <ChrisL_> cwilso: don't care exactly because we need to keep
    going on constructible params, whether it hits v.1 or not

    <ChrisL_> padenot: we should get constructible audionodes
    first, then constructible audio params, look at this issue.

    <ChrisL_> rtoyg: agree

    <ChrisL_> jdsmith: general question - there like 80 issues
    ready for editing, this one is useful but if we wanted to get
    these down to CR in summer, is this where we would be working
    and push to v.next?

    <cwilso> (Sorry, connection froze)

    <ChrisL_> jdsmith: maybe we need a v1-nonblocking flag

    <cwilso> I think this is pretty straightforward to spec; I
    think the question of how hard it is to implement might factor
    in there, but it is one of those fundamental,
    Extensible-Web-Layering type issues.

    <cwilso> hah

    <ChrisL_> BillHofmann: Jerry asked if we should stop adding new
    stuff and deal with the easier v.1 issues, pushing others to
    v.2 or v.1.nonblocking ie desired but at risk

    <ChrisL_> cwilso: it is an extensible web layering issue

    <ChrisL_> .. avoiding magic

    <ChrisL_> ... without this we can't extend

    <ChrisL_> ChrisL_: agree this is architectural

    <ChrisL_> padenot: if we realy want composite nodes, we need
    audio param remapping

    <ChrisL_> cwilso: useful when making a unity node, or a looping
    single sample; other one is four params exposed on a composite
    node

    <ChrisL_> padenot: what about a composite audio param that
    connects to two audio params

    <ChrisL_> cwilso: right, you need to be able to do that

    <ChrisL_> cwilso: title needs to be "constructible and
    connectable"

    <ChrisL_> mdjp: so, are we in v.1 or v.next?

    <ChrisL_> padenot: we keep adding stuff to v.1. Reluctant to
    but this is important

    <ChrisL_> padenot: review backlog next week and triage

    <ChrisL_> rtoyg: fair amount of design work in this one, too

    <ChrisL_> rtoyg: not clear how it is supposed to work

    <ChrisL_> mdjp: put a time tlimit on investigating this. Likely
    a v.1 requirement.

    <ChrisL_> mdjp: lets discuss in two weeks (no call next week)

    <ChrisL_> mdjp: agenda is pretty much cleared now

    <ChrisL_> Chair: Matt

    <ChrisL_> Meeting: udio WG f2f2, Atlanta, Day 2

    <ChrisL_> Meeting: Audio WG f2f2, Atlanta, Day 2

wrap-up and next steps

    <ChrisL_> rtoyg: we have 13 open pull requests

    <ChrisL_> padenot: will look at those next week

    <ChrisL_> [22]https://github.com/WebAudio/web-audio-api/pulls

      [22] https://github.com/WebAudio/web-audio-api/pulls

    <ghaudiobot> [web-audio-api] rtoy closed pull request #770: Fix
    #769 by correcting the formulas
    (gh-pages...769-fix-lowpass-highpass-formulas)
    [23]https://github.com/WebAudio/web-audio-api/pull/770

      [23] https://github.com/WebAudio/web-audio-api/pull/770

    <ChrisL_> meeting adjourned

Summary of Action Items

    [NEW] ACTION: ChrisL to draft new charter [recorded in
    [24]http://www.w3.org/2016/04/08-audio-minutes.html#action01]
    [NEW] ACTION: ChrisL: to create implementation report [recorded
    in
    [25]http://www.w3.org/2016/04/08-audio-minutes.html#action02]
    [NEW] ACTION: joe to liaise with the media capture and streams
    to discuss options for adding audio and video device constraint
    and enumeration, in context of existing group or the incubator
    group [recorded in
    [26]http://www.w3.org/2016/04/08-audio-minutes.html#action04]
    [NEW] ACTION: mdjp to coordinate new use cases [recorded in
    [27]http://www.w3.org/2016/04/08-audio-minutes.html#action03]

      [24] http://www.w3.org/2016/04/08-audio-minutes.html#action01
      [25] http://www.w3.org/2016/04/08-audio-minutes.html#action02
      [26] http://www.w3.org/2016/04/08-audio-minutes.html#action04
      [27] http://www.w3.org/2016/04/08-audio-minutes.html#action03

Summary of Resolutions

    [End of minutes]
      __________________________________________________________


-- 
Chris Lilley
@svgeesus
Technical Director, W3C Interaction Domain

Received on Friday, 8 April 2016 19:24:38 UTC