mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-05-27 14:30:49 +08:00
16
webaudioapi/readme.md
Normal file
16
webaudioapi/readme.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# Web Audio API Definition Notes
|
||||
|
||||
|
||||
## The Web Audio API
|
||||
|
||||
|
||||
The Web Audio API is currently still under development. However WebKit browsers have started an implementation of the proposed specifications which can be found at: [w3.org](http://www.w3.org/TR/webaudio/).
|
||||
|
||||
The WebKit nightly builds try to keep up with the editors draft version of the specifications [w3.org](https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html)
|
||||
|
||||
|
||||
### Adding the reference to your project
|
||||
|
||||
/// <reference path="waa.d.ts" />
|
||||
or
|
||||
/// <reference path="waa-nightly.d.ts" />
|
||||
250
webaudioapi/waa-nightly.d.ts
vendored
Normal file
250
webaudioapi/waa-nightly.d.ts
vendored
Normal file
@@ -0,0 +1,250 @@
|
||||
// Type definitions for the Web Audio API, currently only implemented in WebKit browsers (nightly builds)
|
||||
// Conforms to the: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html specification
|
||||
// Definitions by: Baruch Berger (https://github.com/bbss)
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
interface webkitAudioContext {
|
||||
|
||||
destination: AudioDestinationNode;
|
||||
sampleRate: number;
|
||||
currentTime: number;
|
||||
listener: AudioListener;
|
||||
activeSourceCount: number;
|
||||
|
||||
createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer;
|
||||
|
||||
createBuffer(buffer: ArrayBuffer, mixToMono: bool): AudioBuffer;
|
||||
|
||||
decodeAudioData(audioData: ArrayBuffer, successCallback: any, errorCallback?: any): void;
|
||||
createBufferSource(): AudioBufferSourceNode;
|
||||
|
||||
createMediaElementSource(mediaElement: HTMLMediaElement): MediaElementAudioSourceNode;
|
||||
createMediaStreamSource(mediaStream: MediaStream): MediaStreamAudioSourceNode;
|
||||
createScriptProcessor(bufferSize: number, numberOfInputChannels?: number, numberOfOutputChannels?: number): ScriptProcessorNode;
|
||||
createAnalyser(): AnalyserNode;
|
||||
createGain(): GainNode;
|
||||
createDelay(maxDelayTime?: number): DelayNode;
|
||||
createBiquadFilter(): BiquadFilterNode;
|
||||
createWaveShaper(): WaveShaperNode;
|
||||
createPanner(): PannerNode;
|
||||
createConvolver(): ConvolverNode;
|
||||
createChannelSplitter(numberOfOutputs?: number): ChannelSplitterNode;
|
||||
createChannelMerger(numberOfInputs?: number): ChannelMergerNode;
|
||||
createDynamicsCompressor(): DynamicsCompressorNode;
|
||||
createOscillator(): OscillatorNode;
|
||||
createWaveTable(real: any, imag: any): WaveTable;
|
||||
|
||||
}
|
||||
|
||||
|
||||
declare var webkitAudioContext: {
|
||||
|
||||
new (value?: any): webkitAudioContext;
|
||||
|
||||
}
|
||||
|
||||
|
||||
interface AudioNode {
|
||||
|
||||
connect(destination: AudioNode, output?: number, input?: number): void;
|
||||
connect(destination: AudioParam, output?: number): void;
|
||||
disconnect(output?: number): void;
|
||||
context: webkitAudioContext;
|
||||
numberOfInputs: number;
|
||||
numberOfOutputs: number;
|
||||
|
||||
}
|
||||
|
||||
|
||||
interface AudioSourceNode extends AudioNode {
|
||||
|
||||
}
|
||||
|
||||
interface AudioDestinationNode extends AudioNode {
|
||||
|
||||
maxNumberOfChannels: number;
|
||||
numberOfChannels: number;
|
||||
|
||||
}
|
||||
|
||||
interface AudioParam {
|
||||
|
||||
value: number;
|
||||
computedValue: number;
|
||||
minValue: number;
|
||||
maxValue: number;
|
||||
defaultValue: number;
|
||||
setValueAtTime(value: number, startTime: number): void;
|
||||
linearRampToValueAtTime(value: number, endTime: number): void;
|
||||
exponentialRampToValueAtTime(value: number, endTime: number): void;
|
||||
setTargetAtTime(target: number, startTime: number, timeConstant: number): void;
|
||||
setValueCurveAtTime(values: any, startTime: number, duration: number): void;
|
||||
cancelScheduledValues(startTime: number): void;
|
||||
|
||||
}
|
||||
|
||||
interface GainNode extends AudioNode {
|
||||
|
||||
gain: AudioParam;
|
||||
|
||||
}
|
||||
|
||||
interface DelayNode extends AudioNode {
|
||||
|
||||
delayTime: AudioParam;
|
||||
|
||||
};
|
||||
|
||||
interface AudioBuffer {
|
||||
|
||||
sampleRate: number;
|
||||
length: number;
|
||||
duration: number;
|
||||
numberOfChannels: number;
|
||||
getChannelData(channel): any;
|
||||
|
||||
}
|
||||
|
||||
interface AudioBufferSourceNode extends AudioSourceNode {
|
||||
//actually enum
|
||||
playbackState: number;
|
||||
|
||||
buffer: AudioBuffer;
|
||||
playbackRate: AudioParam;
|
||||
loop: bool;
|
||||
loopStart: number;
|
||||
loopEnd: number;
|
||||
start(when: number, offset?: number, duration?: number): void;
|
||||
stop(when: number): void;
|
||||
|
||||
}
|
||||
|
||||
interface MediaElementAudioSourceNode extends AudioSourceNode {
|
||||
|
||||
}
|
||||
|
||||
interface ScriptProcessorNode extends AudioNode {
|
||||
|
||||
onaudioproces: EventListener;
|
||||
bufferSize: number;
|
||||
|
||||
}
|
||||
|
||||
interface AudioProcessingEvent extends Event {
|
||||
|
||||
node: ScriptProcessorNode;
|
||||
playbackTime: number;
|
||||
inputBuffer: AudioBuffer;
|
||||
outputBuffer: AudioBuffer;
|
||||
|
||||
}
|
||||
|
||||
interface PannerNode extends AudioNode {
|
||||
//actually enum
|
||||
panningModel: number;
|
||||
distanceModel: number;
|
||||
|
||||
setPosition(x: number, y: number, z: number): void;
|
||||
setOrientation(x: number, y: number, z: number): void;
|
||||
setVelocity(x: number, y: number, z: number): void;
|
||||
refDistance: number;
|
||||
maxDistance: number;
|
||||
rolloffFactor: number;
|
||||
coneInnerAngle: number;
|
||||
coneOuterAngle: number;
|
||||
coneOuterGain: number;
|
||||
|
||||
}
|
||||
|
||||
interface AudioListener {
|
||||
|
||||
dopplerFactor: number;
|
||||
speedOfSound: number;
|
||||
setPosition(x: number, y: number, z: number): void;
|
||||
setOrientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): void;
|
||||
setVelocity(x: number, y: number, z: number): void;
|
||||
|
||||
}
|
||||
|
||||
interface ConvolverNode extends AudioNode {
|
||||
|
||||
buffer: AudioBuffer;
|
||||
normalize: bool;
|
||||
|
||||
}
|
||||
|
||||
interface AnalyserNode extends AudioNode {
|
||||
|
||||
getFloatFrequencyData(array: any): void;
|
||||
getByteFrequencyData(array: any): void;
|
||||
getByteTimeDomainData(array: any): void;
|
||||
fftSize: number;
|
||||
frequencyBinCount: number;
|
||||
minDecibels: number;
|
||||
maxDecibels: number;
|
||||
smoothingTimeConstant: number;
|
||||
|
||||
}
|
||||
|
||||
interface ChannelSplitterNode extends AudioNode {
|
||||
|
||||
}
|
||||
|
||||
interface ChannelMergerNode extends AudioNode {
|
||||
|
||||
}
|
||||
|
||||
interface DynamicsCompressorNode extends AudioNode {
|
||||
|
||||
threshold: AudioParam;
|
||||
knee: AudioParam;
|
||||
ratio: AudioParam;
|
||||
reduction: AudioParam;
|
||||
attack: AudioParam;
|
||||
release: AudioParam;
|
||||
|
||||
}
|
||||
|
||||
interface BiquadFilterNode extends AudioNode {
|
||||
|
||||
//actually enum
|
||||
type: number;
|
||||
|
||||
frequency: AudioParam;
|
||||
Q: AudioParam;
|
||||
gain: AudioParam;
|
||||
getFrequencyResponse(frequencyHz: any, magResponse: any, phaseResponse: any): void;
|
||||
|
||||
}
|
||||
|
||||
interface WaveShaperNode extends AudioNode {
|
||||
|
||||
curve: any;
|
||||
|
||||
}
|
||||
|
||||
interface OscillatorNode extends AudioSourceNode {
|
||||
|
||||
//actually enums
|
||||
type: number;
|
||||
playbackState: number;
|
||||
|
||||
frequency: AudioParam;
|
||||
detune: AudioParam;
|
||||
start(when: number): void;
|
||||
stop(when: number): void;
|
||||
setWaveTable(waveTable: WaveTable): void;
|
||||
|
||||
}
|
||||
|
||||
interface WaveTable {
|
||||
|
||||
}
|
||||
|
||||
interface MediaStreamAudioSourceNode extends AudioSourceNode {
|
||||
|
||||
}
|
||||
|
||||
interface MediaStream {
|
||||
|
||||
}
|
||||
247
webaudioapi/waa.d.ts
vendored
Normal file
247
webaudioapi/waa.d.ts
vendored
Normal file
@@ -0,0 +1,247 @@
|
||||
// Type definitions for the Web Audio API, currently only implemented in WebKit browsers
|
||||
// Conforms to the: http://www.w3.org/TR/2012/WD-webaudio-20120802/ specification
|
||||
// Definitions by: Baruch Berger (https://github.com/bbss)
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
interface webkitAudioContext {
|
||||
destination: AudioDestinationNode;
|
||||
sampleRate: number;
|
||||
currentTime: number;
|
||||
listener: AudioListener;
|
||||
activeSourceCount: number;
|
||||
|
||||
createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer;
|
||||
createBuffer(buffer: ArrayBuffer, mixToMono: bool): AudioBuffer;
|
||||
|
||||
decodeAudioData(audioData: ArrayBuffer, successCallback: any, errorCallback?: any): void;
|
||||
|
||||
createBufferSource(): AudioBufferSourceNode;
|
||||
|
||||
createMediaElementSource(mediaElement: HTMLMediaElement): MediaElementAudioSourceNode;
|
||||
|
||||
createMediaStreamSource(mediaStream: any): MediaStreamAudioSourceNode;
|
||||
|
||||
createAnalyser(): RealtimeAnalyserNode;
|
||||
createGainNode(): AudioGainNode;
|
||||
createDelayNode(maxDelayTime?: number): DelayNode;
|
||||
createBiquadFilter(): BiquadFilterNode;
|
||||
createPanner():AudioPannerNode;
|
||||
createConvolver(): ConvolverNode;
|
||||
|
||||
createChannelSplitter(numberOfOutputs?: number):AudioChannelSplitter;
|
||||
createChannelMerger(numberOfInputs?: number): AudioChannelMerger;
|
||||
|
||||
createDynamicsCompressor(): DynamicsCompressorNode;
|
||||
|
||||
createOscillator(): Oscillator;
|
||||
createWaveTable(real: any,imag: any): WaveTable;
|
||||
}
|
||||
|
||||
declare var webkitAudioContext: {
|
||||
|
||||
new (): webkitAudioContext;
|
||||
|
||||
}
|
||||
|
||||
interface Oscillator extends AudioSourceNode {
|
||||
|
||||
type: number;
|
||||
playbackState: number;
|
||||
frequency: AudioParam;
|
||||
detune: AudioParam;
|
||||
noteOn(when: number): void;
|
||||
noteOff(when: number): void;
|
||||
setWaveTable(waveTable: WaveTable): void;
|
||||
|
||||
}
|
||||
|
||||
interface AudioDestinationNode extends AudioNode {
|
||||
|
||||
maxNumberOfChannels: number;
|
||||
numberOfChannels: number;
|
||||
|
||||
}
|
||||
|
||||
interface AudioNode {
|
||||
|
||||
connect(destination: AudioNode, output?: number, input?: number): void;
|
||||
connect(destination: AudioParam, output?: number): void;
|
||||
disconnect(output?: number): void;
|
||||
context: webkitAudioContext;
|
||||
numberOfInputs: number;
|
||||
numberOfOutputs: number;
|
||||
|
||||
};
|
||||
|
||||
interface AudioSourceNode extends AudioNode {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
interface AudioParam {
|
||||
|
||||
value: number;
|
||||
minValue: number;
|
||||
maxValue: number;
|
||||
defaultValue: number;
|
||||
setValueAtTime(value: number, time: number): void;
|
||||
linearRampToValueAtTime(value: number, time: number): void;
|
||||
exponentialRampToValueAtTime(value: number, time: number): void;
|
||||
setTargetValueAtTime(targetValue: number,time: number, timeConstant: number): void;
|
||||
setValueCurveAtTime(values: number[], time: number, duration: number): void;
|
||||
cancelScheduledValues(startTime: number): void;
|
||||
|
||||
}
|
||||
|
||||
interface AudioGain extends AudioParam {
|
||||
|
||||
}
|
||||
|
||||
interface AudioGainNode extends AudioNode {
|
||||
|
||||
gain: AudioGain;
|
||||
|
||||
}
|
||||
|
||||
interface DelayNode extends AudioNode {
|
||||
|
||||
delayTime: AudioParam;
|
||||
|
||||
}
|
||||
|
||||
interface AudioBuffer {
|
||||
|
||||
sampleRate: number;
|
||||
length: number;
|
||||
duration: number;
|
||||
numberOfChannels: number;
|
||||
getChannelData(channel: number): any;
|
||||
|
||||
}
|
||||
|
||||
interface AudioBufferSourceNode extends AudioSourceNode {
|
||||
|
||||
playbackState: number;
|
||||
buffer: AudioBuffer;
|
||||
playbackRate: AudioParam;
|
||||
loop: bool;
|
||||
noteOn(when: number): void;
|
||||
noteGrainOn(when: number, grainOffset: number, grainDuration: number): void;
|
||||
noteOff(when: number): void;
|
||||
|
||||
}
|
||||
|
||||
interface MediaElementAudioSourceNode extends AudioSourceNode {
|
||||
|
||||
}
|
||||
|
||||
interface JavaScriptAudioNode extends AudioNode {
|
||||
|
||||
onaudioprocess: EventListener;
|
||||
bufferSize: number;
|
||||
|
||||
}
|
||||
|
||||
interface AudioProcessingEvent extends Event {
|
||||
|
||||
node: JavaScriptAudioNode;
|
||||
playbackTime: number;
|
||||
inputBuffer: AudioBuffer;
|
||||
outputBuffer: AudioBuffer;
|
||||
|
||||
}
|
||||
|
||||
interface AudioPannerNode extends AudioNode {
|
||||
|
||||
panningModel: number;
|
||||
setPosition(x: number, y: number, z: number): void;
|
||||
setOrientation(x: number, y: number, z: number): void;
|
||||
setVelocity(x: number, y: number, z: number): void;
|
||||
distanceModel: number;
|
||||
refDistance: number;
|
||||
maxDistance: number;
|
||||
rolloffFactor: number;
|
||||
coneInnerAngle: number;
|
||||
coneOuterAngle: number;
|
||||
coneOuterGain: number;
|
||||
distanceGain: AudioGain;
|
||||
coneGain: AudioGain;
|
||||
|
||||
}
|
||||
|
||||
interface AudioListener {
|
||||
|
||||
dopplerFactor: number;
|
||||
speedOfSound: number;
|
||||
setPosition(x: number, y: number, z: number): void;
|
||||
setOrientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): void;
|
||||
setVelocity(x: number, y: number, z: number): void;
|
||||
|
||||
}
|
||||
|
||||
interface RealtimeAnalyserNode extends AudioNode {
|
||||
|
||||
getFloatFrequencyData(array: any): void;
|
||||
getByteFrequencyData(array: any): void;
|
||||
getByteTimeDomainData(array: any): void;
|
||||
fftSize: number;
|
||||
frequencyBinCount: number;
|
||||
minDecibels: number;
|
||||
maxDecibels: number;
|
||||
smoothingTimeConstant: number;
|
||||
|
||||
}
|
||||
|
||||
interface AudioChannelSplitter extends AudioNode {
|
||||
|
||||
}
|
||||
|
||||
interface AudioChannelMerger extends AudioNode {
|
||||
|
||||
}
|
||||
|
||||
interface DynamicsCompressorNode extends AudioNode {
|
||||
|
||||
threshold: AudioParam;
|
||||
knee: AudioParam;
|
||||
ratio: AudioParam;
|
||||
reduction: AudioParam;
|
||||
attack: AudioParam;
|
||||
release: AudioParam;
|
||||
|
||||
}
|
||||
|
||||
interface BiquadFilterNode extends AudioNode {
|
||||
|
||||
type: number;
|
||||
frequency: AudioParam;
|
||||
Q: AudioParam;
|
||||
gain: AudioParam;
|
||||
|
||||
getFrequencyResponse(frequencyHz: any, magResponse: any, phaseResponse: any): void;
|
||||
|
||||
}
|
||||
|
||||
interface WaveShaperNode extends AudioNode {
|
||||
|
||||
curve: any;
|
||||
|
||||
}
|
||||
|
||||
interface MediaStreamAudioSourceNode extends AudioSourceNode {
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
interface ConvolverNode extends AudioNode {
|
||||
|
||||
buffer: AudioBuffer;
|
||||
normalize: bool;
|
||||
|
||||
}
|
||||
|
||||
interface WaveTable {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user