diff --git a/howlerjs/howler-tests.ts b/howlerjs/howler-tests.ts
new file mode 100644
index 000000000..aff0df926
--- /dev/null
+++ b/howlerjs/howler-tests.ts
@@ -0,0 +1,35 @@
+/**
+ * howler-tests.ts
+ * Created by xperiments on 02/09/14.
+ */
+///
+
+
+Howler.codecs('ogg');
+Howler.iOSAutoEnable = true;
+var sound = new Howl({
+ urls: ['sound.mp3']
+}).play();
+
+
+var sound = new Howl({
+ urls: ['sound.mp3', 'sound.ogg', 'sound.wav'],
+ autoplay: true,
+ loop: true,
+ volume: 0.5,
+ onend: function() {
+ console.log('Finished!');
+ }
+});
+
+var sound = new Howl({
+ urls: ['sounds.mp3', 'sounds.ogg'],
+ sprite: {
+ blast: [0, 1000],
+ laser: [2000, 3000],
+ winner: [4000, 7500]
+ }
+});
+
+// shoot the laser!
+sound.play('laser');
\ No newline at end of file
diff --git a/howlerjs/howler.d.ts b/howlerjs/howler.d.ts
new file mode 100644
index 000000000..577c9fd78
--- /dev/null
+++ b/howlerjs/howler.d.ts
@@ -0,0 +1,73 @@
+// Type definitions for howler.js v1.1.25
+// Project: https://github.com/goldfire/howler.js
+// Definitions by: Pedro Casaubon
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+
+declare class HowlerGlobal {
+ mute(): HowlerGlobal;
+ unmute(): HowlerGlobal;
+ volume(): number;
+ volume(volume: number): HowlerGlobal;
+ codecs(extension: string): boolean;
+ iOSAutoEnable: boolean;
+}
+
+declare var Howler: HowlerGlobal;
+
+
+interface IHowlCallback {
+ (): void;
+}
+interface IHowlSoundSpriteDefinition {
+ [name: string]: number[]
+}
+interface IHowlProperties {
+ autoplay?: boolean;
+ buffer?: boolean;
+ format?: string;
+ loop?: boolean;
+ sprite?: IHowlSoundSpriteDefinition;
+ volume?: number;
+ urls?: string[];
+ onend?: IHowlCallback;
+ onload?: IHowlCallback;
+ onloaderror?: IHowlCallback;
+ onpause?: IHowlCallback;
+ onplay?: IHowlCallback;
+}
+
+
+declare class Howl {
+
+ autoplay: Boolean;
+ buffer: Boolean;
+ format: string;
+ rate: number;
+ model: string;
+ onend: IHowlCallback;
+ onload: IHowlCallback;
+ onloaderror: IHowlCallback;
+ onpause: IHowlCallback;
+ onplay: IHowlCallback;
+ constructor(properties: IHowlProperties);
+ play(sprite?: string, callback?: (soundId: number) => void): Howl;
+ pause(soundId?: number): Howl;
+ stop(soundId?: number): Howl;
+ mute(soundId?: number): Howl;
+ unmute(soundId?: number): Howl;
+ fade(from: number, to: number, duration: number, callback?: IHowlCallback, soundId?: number): Howl;
+ loop(): boolean;
+ loop(loop: boolean): Howl;
+ pos(position?: number, soundId?: number): number;
+ pos3d(x: number, y: number, z: number, soundId?: number): any;
+ sprite(definition?: IHowlSoundSpriteDefinition): IHowlSoundSpriteDefinition;
+ volume(): number;
+ volume(volume?: number, soundId?: number): Howl;
+ urls(): string[];
+ urls(urls: string[]): Howl;
+ on(event: string, listener?: () => void): Howl;
+ off(event: string, listener?: () => void): Howl;
+ unload(): void;
+}
+