Snippets for working with the Web Audio API within Atom
Go to Atom > File > Settings then search for Web Audio in the Packages tab. Once found, install.
$ cd ~/.atom/packages
$ git clone https://github.com/njenkins/atom-webaudio-snippets.git
$ cd atom-webaudio-snippets
$ apm install
$ apm link
${1:AnalyserNode}.getByteFrequencyData(${2:dataArray});$0
${1:AnalyserNode}.getByteTimeDomainData(${2:dataArray});$0
${1:AnalyserNode}.getFloatFrequencyData(${2:dataArray});$0
${1:AnalyserNode}.getFloatTimeDomainData(${2:dataArray});$0
${1:AudioBuffer}.copyFromChannel(${2:destination},${3:channelNumber},${4:startInChannel});$0
${1:AudioBuffer}.copyToChannel(${2:source},${3:channelNumber},${4:startInChannel});$0
${1:AudioBuffer}.getChannelData(${2:channel});$0
${1:AudioBufferSourceNode}.start(${2:when}, ${3:offset}, ${4:duration});$0
${1:AudioBufferSourceNode}.stop(${2:when});$0
${1:AudioContext}.close().then(${2:function() \{ /*stuff here*/\}});$0
${1:AudioContext}.createAnalyser();$0
${1:AudioContext}.createAudioWorker();$0
${1:AudioContext}.createBiquadFilter();$0
${1:AudioContext}.createBuffer(${2:numOfChannels}, ${3:length}, ${4:sampleRate});$0
${1:AudioContext}.createBufferSource();$0
${1:AudioContext}.createChannelMerger(${2:numOfInputs});$0
${1:AudioContext}.createChannelSplitter(${2:numOfInputs});$0
${1:AudioContext}.createConvolver();$0
${1:AudioContext}.createConstantSource();$0
${1:AudioContext}.createDelay(${2:maxDelayTime});$0
${1:AudioContext}.createDynamicsCompressor();$0
${1:AudioContext}.createGain();$0
${1:AudioContext}.createIIRFilter(${2:feedforward}, ${3:feedback});$0
${1:AudioContext}.createMediaElementSource(${2:myMediaElement});$0
${1:AudioContext}.createMediaStreamDestination();$0
${1:AudioContext}.createMediaStreamSource(${2:stream});$0
${1:AudioContext}.createMediaStreamTrackSource(${2:streamTrack});$0
${1:AudioContext}.createOscillator();$0
${1:AudioContext}.createPanner();$0
${1:AudioContext}.createPeriodicWave(${2:real}, ${3:imag}, ${4:options});$0
${1:AudioContext}.createScriptProcessor(${2:bufferSize}, ${3:numberOfInputChannels}, ${4:numberOfOutputChannels});$0
${1:AudioContext}.createStereoPanner();$0
${1:AudioContext}.createWaveShaper();$0
${1:AudioContext}.decodeAudioData({2:audioData}).then(${3:function(decodedData) \{/* stuff here*/\}});$0
${1:AudioContext}.getOutputTimestamp();$0
${1:AudioContext}.resume().then(${2:function() \{ /*stuff here */ \}});$0
${1:AudioContext}.suspend().then(${2:function() \{ /*stuff here*/ \}});$0
${1:AudioListener}.setOrientation(${2:frontX},${3:frontY},${4:frontZ},${5:upX},${6:upY},${7:upZ});$0
${1:AudioListener}.setPosition(${2:x},${3:y},${4:z});$0
${1:AudioNode}.connect(${2:AudioNode or AudioParam});$0
${1:AudioNode}.disconnect(${2:destination}, ${3:output}, ${4:input});$0
${1:AudioParam}.cancelScheduledValues(${2:startTime});$0
${1:AudioParam}.exponentialRampToValueAtTime(${2:value}, ${3:endTime});$0
${1:AudioParam}.linearRampToValueAtTime(${2:value}, ${3:endTime});$0
${1:AudioParam}.setTargetAtTime(${2:target}, ${3:startTime}, ${4:timeConstant});$0
${1:AudioParam}.setValueAtTime(${2:value}, ${3:startTime});$0
${1:AudioParam}.setValueCurveAtTime(${2:values}, ${3:startTime}, ${4:duration});$0
${1:AudioWorker}.addParameter(${2:name}, ${3:defaultValue});$0
${1:AudioWorker}.createNode(${2:numberOfInputs}, ${3:numberOfOutputs});$0
${1:AudioWorker}.removeParameter(${2:name});$0
${1:BiquadFilterNode}.getFrequencyResponse(${2:freqHz}, ${3:magResponse}, ${4:phaseResponse});$0
${1:IIRFilterNode}.getFrequencyResponse(${2:freqHz}, ${3:magResponse}, ${4:phaseResponse});$0
${1:OfflineAudioContext}.resume();$0
${1:OfflineAudioContext}.startRendering();$0
${1:OfflineAudioContext}.suspend(${2:suspendTime});$0
${1:OscillatorNode}.setPeriodicWave(${2:periodicWave});$0
${1:OscillatorNode}.start(${2:when});$0
${1:OscillatorNode}.stop(${2:when});$0
${1:PannerNode}.setOrientation(${2:x}, ${3:y}, ${4:z});$0
${1:PannerNode}.setPosition(${2:x}, ${3:y}, ${4:z});$0
${1:PannerNode}.setVelocity(${2:x}, ${3:y}, ${4:z});$0