diff --git a/webaudioapi/readme.md b/webaudioapi/readme.md
new file mode 100644
index 0000000000..08eac0767f
--- /dev/null
+++ b/webaudioapi/readme.md
@@ -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
+
+ ///
+or
+ ///
\ No newline at end of file
diff --git a/webaudioapi/waa-nightly.d.ts b/webaudioapi/waa-nightly.d.ts
new file mode 100644
index 0000000000..38ef2f4015
--- /dev/null
+++ b/webaudioapi/waa-nightly.d.ts
@@ -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 {
+
+}
\ No newline at end of file
diff --git a/webaudioapi/waa.d.ts b/webaudioapi/waa.d.ts
new file mode 100644
index 0000000000..b90c4b9597
--- /dev/null
+++ b/webaudioapi/waa.d.ts
@@ -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 {
+
+}