Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Audit WebAudio requirements for VR demos #21632

Open
Manishearth opened this issue Sep 7, 2018 · 6 comments

Comments

2 participants
@Manishearth
Copy link
Member

commented Sep 7, 2018

Part of #20355

I'm visiting various demos and noting down the APIs we need.

Recurring themes are:

  • We should support cancellation on AudioParams
  • We should support most of the accessors on AudioBufferSourceNode
  • AnalyzerNode seems to be used a lot to do visualizations
  • Some things need BiquadFilterNode
  • Few things need ConvolverNode or DynamicsCompressorNode
@Manishearth

This comment has been minimized.

Copy link
Member Author

commented Sep 7, 2018

cc @ferjm

@Manishearth

This comment has been minimized.

Copy link
Member Author

commented Sep 7, 2018

Inspirit

Unsupported:

  • AnalyzerNode
    • getByteFrequencyData, frequencyBinCount
  • DynamicsCompressorNode
  • on AudioBufferSourceNode
    • playbackRate loop
  19624 PannerNode.setPosition method
  19624 AnalyserNode.getByteFrequencyData method
   1892 AudioParam.value setter
   1795 BaseAudioContext.currentTime getter
   1795 AudioBuffer.duration getter
   1785 BaseAudioContext.listener getter
   1785 AudioListener.setPosition method
   1785 AudioListener.setOrientation method
   1784 AudioNode.context getter
   1227 AudioBufferSourceNode.playbackRate getter
    154 AudioParam.value getter
     92 AudioNode.connect method
     91 GainNode.gain getter
     33 BaseAudioContext.createBufferSource method
     29 BaseAudioContext.destination getter
     27 BaseAudioContext.createGain method
     22 BaseAudioContext.createPanner method
     22 AudioNode.disconnect method
     22 AudioBufferSourceNode.start method
     22 AudioBufferSourceNode.buffer setter
     12 BaseAudioContext.decodeAudioData method
     11 PannerNode.panningModel setter
     11 PannerNode.coneOuterGain setter
     11 PannerNode.coneOuterAngle setter
     11 PannerNode.coneInnerAngle setter
     11 BaseAudioContext.createAnalyser method
     11 AudioScheduledSourceNode.stop method
     11 AudioScheduledSourceNode.onended setter
     11 AudioNode.numberOfOutputs getter
     11 AudioBufferSourceNode.buffer getter
     11 AnalyserNode.frequencyBinCount getter
     10 AudioBufferSourceNode.loop setter
      6 AudioContext.AudioContext constructor
      1 BaseAudioContext.createDynamicsCompressor method
      1 BaseAudioContext.createBuffer method
@Manishearth

This comment has been minimized.

Copy link
Member Author

commented Sep 7, 2018

Dark Haze

Unsupported:

  • AnalyzerNode
    • frequencyBinCount, fftSize
      2 AudioNode.connect method
      1 BaseAudioContext.destination getter
      1 BaseAudioContext.createAnalyser method
      1 AudioContext.createMediaElementSource method
      1 AudioContext.AudioContext constructor
      1 AnalyserNode.frequencyBinCount getter
      1 AnalyserNode.fftSize setter
@Manishearth

This comment has been minimized.

Copy link
Member Author

commented Sep 7, 2018

Mass Migrations

Unsupported:

  • AnalyzerNode
    • getByteTimeDomainData, getByteFrequencyData, smoothingTimeConstant, frequencyBinCount, fftSize
    387 AnalyserNode.getByteTimeDomainData method
    387 AnalyserNode.getByteFrequencyData method
      7 AudioNode.connect method
      3 BaseAudioContext.destination getter
      2 GainNode.gain getter
      2 BaseAudioContext.decodeAudioData method
      2 BaseAudioContext.createGain method
      2 BaseAudioContext.createBufferSource method
      2 AudioBufferSourceNode.buffer getter
      1 BaseAudioContext.createAnalyser method
      1 AudioScheduledSourceNode.onended setter
      1 AudioContext.AudioContext constructor
      1 AudioBufferSourceNode.start method
      1 AudioBufferSourceNode.loop setter
      1 AudioBufferSourceNode.buffer setter
      1 AnalyserNode.smoothingTimeConstant setter
      1 AnalyserNode.frequencyBinCount getter
      1 AnalyserNode.fftSize setter
@Manishearth

This comment has been minimized.

Copy link
Member Author

commented Sep 7, 2018

http://christmasexperiments.com/2016/01/night-eye/

Unsupported:

  • on AudioBufferSourceNode
    • playbackRate, loop
  • on AudioParam
    • cancelScheduledValues
     23 BaseAudioContext.currentTime getter
     16 GainNode.gain getter
     16 AudioParam.setValueAtTime method
     16 AudioParam.cancelScheduledValues method
     11 AudioNode.disconnect method
     10 AudioParam.value setter
     10 AudioParam.value getter
     10 AudioParam.linearRampToValueAtTime method
      9 AudioNode.connect method
      9 AudioBufferSourceNode.loop setter
      7 AudioScheduledSourceNode.onended setter
      4 BaseAudioContext.createBufferSource method
      4 AudioBufferSourceNode.start method
      4 AudioBufferSourceNode.playbackRate getter
      4 AudioBufferSourceNode.buffer setter
      4 AudioBuffer.duration getter
      3 AudioScheduledSourceNode.stop method
      2 PannerNode.setPosition method
      2 PannerNode.setOrientation method
      2 PannerNode.rolloffFactor setter
      2 PannerNode.refDistance setter
      2 PannerNode.panningModel setter
      2 PannerNode.maxDistance setter
      2 PannerNode.distanceModel setter
      2 PannerNode.coneOuterGain setter
      2 PannerNode.coneOuterAngle setter
      2 PannerNode.coneInnerAngle setter
      2 BaseAudioContext.createPanner method
      2 BaseAudioContext.createGain method
      1 BaseAudioContext.state getter
      1 BaseAudioContext.resume method
      1 BaseAudioContext.destination getter
      1 BaseAudioContext.decodeAudioData method
      1 AudioContext.AudioContext constructor
@Manishearth

This comment has been minimized.

Copy link
Member Author

commented Sep 7, 2018

http://a-way-to-go.com

Unsupported:

  • DynamicsCompressorNode
  • BiquadFilterNode
  • ConvolverNode
  • on AudioParam
    • cancelScheduledValues
  • on AudioBufferSourceNode
    • playbackRate, loop
  32105 BaseAudioContext.currentTime getter
   7769 GainNode.gain getter
   3488 AudioParam.setValueAtTime method
   2994 AudioParam.cancelScheduledValues method
   2572 AudioParam.linearRampToValueAtTime method
   2285 AudioNode.connect method
   2241 AudioNode.disconnect method
   2038 AudioBuffer.duration getter
   1274 BaseAudioContext.createGain method
    923 AudioParam.value setter
    636 BaseAudioContext.createBufferSource method
    636 AudioBufferSourceNode.start method
    636 AudioBufferSourceNode.playbackRate getter
    636 AudioBufferSourceNode.loop setter
    636 AudioBufferSourceNode.buffer setter
    631 AudioScheduledSourceNode.stop method
    530 BaseAudioContext.decodeAudioData method
    282 AudioBufferSourceNode.loopStart setter
    282 AudioBufferSourceNode.loopEnd setter
    277 AudioScheduledSourceNode.onended setter
    140 PannerNode.setPosition method
    140 PannerNode.panningModel setter
    140 BaseAudioContext.createPanner method
    115 AudioBuffer.numberOfChannels getter
     94 AudioParam.value getter
      6 ConvolverNode.buffer setter
      6 BaseAudioContext.createConvolver method
      2 BiquadFilterNode.type setter
      2 BiquadFilterNode.Q getter
      2 BiquadFilterNode.frequency getter
      2 BaseAudioContext.state getter
      2 BaseAudioContext.resume method
      2 BaseAudioContext.destination getter
      2 BaseAudioContext.createDynamicsCompressor method
      2 BaseAudioContext.createBiquadFilter method
      2 AudioContext.AudioContext constructor

@ferjm ferjm added this to In progress in WebAudio Dec 5, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.