{
  "_args": [
    [
      "howler@git+https://github.com/goldfire/howler.js.git#v2.0.0-beta10",
      "/Users/nick/codes/twreporter-react/node_modules/react-howler"
    ]
  ],
  "_from": "git+https://github.com/goldfire/howler.js.git#v2.0.0-beta10",
  "_id": "howler@2.0.0-beta10",
  "_inCache": true,
  "_installable": true,
  "_location": "/howler",
  "_phantomChildren": {},
  "_requested": {
    "hosted": {
      "directUrl": "https://raw.githubusercontent.com/goldfire/howler.js/v2.0.0-beta10/package.json",
      "gitUrl": "git://github.com/goldfire/howler.js.git#v2.0.0-beta10",
      "httpsUrl": "git+https://github.com/goldfire/howler.js.git#v2.0.0-beta10",
      "shortcut": "github:goldfire/howler.js#v2.0.0-beta10",
      "ssh": "git@github.com:goldfire/howler.js.git#v2.0.0-beta10",
      "sshUrl": "git+ssh://git@github.com/goldfire/howler.js.git#v2.0.0-beta10",
      "type": "github"
    },
    "name": "howler",
    "raw": "howler@git+https://github.com/goldfire/howler.js.git#v2.0.0-beta10",
    "rawSpec": "git+https://github.com/goldfire/howler.js.git#v2.0.0-beta10",
    "scope": null,
    "spec": "git+https://github.com/goldfire/howler.js.git#v2.0.0-beta10",
    "type": "hosted"
  },
  "_requiredBy": [
    "/react-howler"
  ],
  "_resolved": "git+https://github.com/goldfire/howler.js.git#1caa9af606c3b74c1f9ce14c2cdcb5009155bd45",
  "_shasum": "80aea4dd432906c33dcf508218778072ccffa24a",
  "_shrinkwrap": null,
  "_spec": "howler@git+https://github.com/goldfire/howler.js.git#v2.0.0-beta10",
  "_where": "/Users/nick/codes/twreporter-react/node_modules/react-howler",
  "author": {
    "email": "james@goldfirestudios.com",
    "name": "James Simpson",
    "url": "http://goldfirestudios.com"
  },
  "bugs": {
    "url": "https://github.com/goldfire/howler.js/issues"
  },
  "dependencies": {},
  "description": "Javascript audio library for the modern web.",
  "devDependencies": {},
  "files": [
    "LICENSE.md",
    "howler.core.min.js",
    "howler.effects.min.js",
    "howler.min.js",
    "src"
  ],
  "gitHead": "1caa9af606c3b74c1f9ce14c2cdcb5009155bd45",
  "homepage": "http://howlerjs.com",
  "keywords": [
    "audio",
    "browser",
    "howler",
    "howler.js",
    "html5",
    "sound",
    "webaudio"
  ],
  "license": {
    "type": "MIT",
    "url": "https://raw.githubusercontent.com/goldfire/howler.js/master/LICENSE.md"
  },
  "main": "howler.min.js",
  "name": "howler",
  "optionalDependencies": {},
  "readme": "![howler.js](http://goldfirestudios.com/proj/howlerjs/howlerjs_logo.png \"howler.js\")\n\n## Description\n[**howler.js**](http://howlerjs.com) is an audio library for the modern web. It defaults to [Web Audio API](http://webaudio.github.io/web-audio-api/) and falls back to [HTML5 Audio](http://www.whatwg.org/specs/web-apps/current-work/#the-audio-element).\n\nMore documentation, examples and demos can be found at **[howlerjs.com](http://howlerjs.com)**.\n\n### Features\n* Defaults to Web Audio API\n* Falls back to HTML5 Audio\n* Supports multiple file formats to support all browsers\n* Automatic caching for Web Audio API\n* Implements cache pool for HTML5 Audio\n* Per-sound and global mute/unmute and volume control\n* Playback of multiple sounds at the same time\n* Easy sound sprite definition and playback\n* Fade in/out sounds\n* Supports Web Audio 3D sound positioning\n* Methods can be chained\n* Uses no outside libraries, just pure Javascript\n* Lightweight, 9kb filesize (3kb gzipped)\n\n### Browser Compatibility\nTested in the following browsers/versions:\n* Google Chrome 7.0+\n* Internet Explorer 9.0+\n* Firefox 4.0+\n* Safari 5.1.4+\n* Mobile Safari 6.0+ (after user input)\n* Opera 12.0+\n\n## Documentation\n\n### Quick Start\n\nSeveral options to get up and running:\n\n* Clone the repo: `git clone https://github.com/goldfire/howler.js.git`\n* Install with [Bower](http://bower.io/): `bower install howler`\n* Install with [npm](https://www.npmjs.com/package/howler): `npm install howler`\n* Hosted CDN: [`cdnjs`](http://bower.io/) [`jsDelivr`](http://bower.io/)\n\n### Examples\n\n##### Most basic, play an MP3:\n```javascript\nvar sound = new Howl({\n  src: ['sound.mp3']\n});\n\nsound.play();\n```\n\n##### More playback options:\n```javascript\nvar sound = new Howl({\n  src: ['sound.webm', 'sound.mp3', 'sound.wav'],\n  autoplay: true,\n  loop: true,\n  volume: 0.5,\n  onend: function() {\n    console.log('Finished!');\n  }\n});\n```\n\n##### Define and play a sound sprite:\n```javascript\nvar sound = new Howl({\n  src: ['sounds.webm', 'sounds.mp3'],\n  sprite: {\n    blast: [0, 1000],\n    laser: [2000, 3000],\n    winner: [4000, 7500]\n  }\n});\n\n// shoot the laser!\nsound.play('laser');\n```\n\n\n### Core Properties\n#### src `Array` `[]` *`required`*\nThe sources to the track(s) to be loaded for the sound (URLs or base64 data URIs). These should be in order of preference, howler.js will automatically load the first one that is compatible with the current browser. If your files have no extensions, you will need to explicitly specify the extension using the `ext` property.\n#### volume `Number` `1.0`\nThe volume of the specific track, from `0.0` to `1.0`.\n#### html5 `Boolean` `false`\nSet to `true` to force HTML5 Audio. This should be used for large audio files so that you don't have to wait for the full file to be downloaded and decoded before playing.\n#### loop `Boolean` `false`\nSet to `true` to automatically loop the sound forever.\n#### preload `Boolean` `true`\nAutomatically begin downloading the audio file when the `Howl` is defined.\n#### autoplay `Boolean` `false`\nSet to `true` to automatically start playback when sound is loaded.\n#### mute `Boolean` `false`\nSet to `true` to load the audio muted.\n#### sprite `Object` `{}`\nDefine a sound sprite for the sound. The offset and duration are defined in milliseconds. A third (optional) parameter is available to set a sprite as looping. An easy way to generate compatible sound sprites is with [audiosprite](https://github.com/tonistiigi/audiosprite).\n```javascript\n{\n  key: [offset, duration, (loop)]\n}\n```\n#### rate `Number` `1.0`\nThe rate of playback. 0.5 to 4.0, with 1.0 being normal speed.\n#### pool `Number` `5`\nThe size of the inactive sounds pool. Once sounds are stopped or finish playing, they are marked as ended and ready for cleanup. We keep a pool of these to recycle for improved performance. Generally this doesn't need to be changed. It is important to keep in mind that when a sound is paused, it won't be removed from the pool and will still be considered active so that it can be resumed later.\n#### format `Array` `[]`\nhowler.js automatically detects your file format from the extension, but you may also specify a format in situations where extraction won't work (such as with a SoundCloud stream).\n#### onload `Function`\nFires when the sound is loaded.\n#### onloaderror `Function`\nFires when the sound is unable to load. The first parameter is the ID of the sound (if it exists) and the second is the error message/code.\n#### onplay `Function`\nFires when the sound begins playing. The first parameter is the ID of the sound.\n#### onend `Function`\nFires when the sound finishes playing (if it is looping, it'll fire at the end of each loop). The first parameter is the ID of the sound.\n#### onpause `Function`\nFires when the sound has been paused. The first parameter is the ID of the sound.\n#### onstop `Function`\nFires when the sound has been stopped. The first parameter is the ID of the sound.\n#### onmute `Function`\nFires when the sound has been muted/unmuted. The first parameter is the ID of the sound.\n#### onvolume `Function`\nFires when the sound's volume has changed. The first parameter is the ID of the sound.\n#### onrate `Function`\nFires when the sound's playback rate has changed. The first parameter is the ID of the sound.\n#### onseek `Function`\nFires when the sound has been seeked. The first parameter is the ID of the sound.\n#### onfade `Function`\nFires when the current sound finishes fading in/out. The first parameter is the ID of the sound.\n\n\n### Core Methods\n#### play([sprite/id])\nBegins playback of a sound. Returns the sound id to be used with other methods. Only method that can't be chained.\n* **sprite/id**: `String/Number` `optional` Takes one parameter that can either be a sprite or sound ID. If a sprite is passed, a new sound will play based on the sprite's definition. If a sound ID is passed, the previously played sound will be played (for example, after pausing it). However, if an ID of a sound that has been drained from the pool is passed, nothing will play.\n\n#### pause([id])\nPauses playback of sound or group, saving the `seek` of playback.\n* **id**: `Number` `optional` The sound ID. If none is passed, all sounds in group are paused.\n\n#### stop([id])\nStops playback of sound, resetting `seek` to `0`.\n* **id**: `Number` `optional` The sound ID. If none is passed, all sounds in group are stopped.\n\n#### mute([muted], [id])\nMutes the sound, but doesn't pause the playback.\n* **muted**: `Boolean` `optional` True to mute and false to unmute.\n* **id**: `Number` `optional` The sound ID. If none is passed, all sounds in group are stopped.\n\n#### volume([volume], [id])\nGet/set volume of this sound or the group. This method optionally takes 0, 1 or 2 arguments.\n* **volume**: `Number` `optional` Volume from `0.0` to `1.0`.\n* **id**: `Number` `optional` The sound ID. If none is passed, all sounds in group have volume altered relative to their own volume.\n\n#### fade(from, to, duration, [id])\nFade a currently playing sound between two volumes. Fires the `fade` event when complete.\n* **from**: `Number` Volume to fade from (`0.0` to `1.0`).\n* **to**: `Number` Volume to fade to (`0.0` to `1.0`).\n* **duration**: `Number` Time in milliseconds to fade.\n* **id**: `Number` `optional` The sound ID. If none is passed, all sounds in group will fade.\n\n#### rate([rate], [id])\nGet/set the rate of playback for a sound. This method optionally takes 0, 1 or 2 arguments.\n* **rate**: `Number` `optional` The rate of playback. 0.5 to 4.0, with 1.0 being normal speed.\n* **id**: `Number` `optional` The sound ID. If none is passed, playback rate of all sounds in group will change.\n\n#### seek([seek], [id])\nGet/set the position of playback for a sound. This method optionally takes 0, 1 or 2 arguments.\n* **seek**: `Number` `optional` The position to move current playback to (in seconds).\n* **id**: `Number` `optional` The sound ID. If none is passed, the first sound will seek.\n\n#### loop([loop], [id])\nGet/set whether to loop the sound or group. This method can optionally take 0, 1 or 2 arguments.\n* **loop**: `Boolean` `optional` To loop or not to loop, that is the question.\n* **id**: `Number` `optional` The sound ID. If none is passed, all sounds in group will have their `loop` property updated.\n\n#### state()\nCheck the load status of the `Howl`, returns a `unloaded`, `loading` or `loaded`.\n\n#### playing(id)\nCheck if a sound is currently playing or not, returns a `Boolean`.\n* **id**: `Number` The sound ID to check.\n\n#### duration([id])\nGet the duration of the audio source. Will return 0 until after the `load` event fires.\n* **id**: `Number` `optional` The sound ID to check. If none is passed, the first sound is checked.\n\n#### on(event, function, [id])\nListen for events. Multiple events can be added by calling this multiple times.\n* **event**: `String` Name of event to fire/set (`load`, `loaderror`, `play`, `end`, `pause`, `stop`, `mute`, `volume`, `rate`, `seek`, `fade`).\n* **function**: `Function` Define function to fire on event.\n* **id**: `Number` `optional` Only listen to events for this sound id.\n\n#### once(event, function, [id])\nSame as `on`, but it removes itself after the callback is fired.\n* **event**: `String` Name of event to fire/set (`load`, `loaderror`, `play`, `end`, `pause`, `stop`, `mute`, `volume`, `rate`, `seek`, `fade`).\n* **function**: `Function` Define function to fire on event.\n* **id**: `Number` `optional` Only listen to events for this sound id.\n\n#### off(event, [function], [id])\nRemove event listener that you've set. Call without parameters to remove all events.\n* **event**: `String` Name of event (`load`, `loaderror`, `play`, `end`, `pause`, `stop`, `mute`, `volume`, `rate`, `seek`, `fade`).\n* **function**: `Function` `optional` The listener to remove. Omit this to remove all events of type.\n* **id**: `Number` `optional` Only remove events for this sound id.\n\n#### load()\nThis is called by default, but if you set `preload` to false, you must call `load` before you can play any sounds.\n\n#### unload()\nUnload and destroy a Howl object. This will immediately stop all sounds attached to this sound and remove it from the cache.\n\n### Global Core Methods\nThe following methods are used to modify all sounds globally, and are called from the `Howler` object.\n#### mute(muted)\nMute or unmute all sounds.\n* **muted**: `Boolean` True to mute and false to unmute.\n\n#### volume([volume])\nGet/set the global volume for all sounds, relative to their own volume.\n* **volume**: `Number` `optional` Volume from `0.0` to `1.0`.\n\n#### codecs(ext)\nCheck supported audio codecs. Returns `true` if the codec is supported in the current browser.\n* **ext**: `String` File extension. One of: \"mp3\", \"mpeg\", opus\", \"ogg\", \"oga\", \"wav\", \"aac\", \"caf\", m4a\", \"mp4\", \"weba\", \"webm\", \"dolby\".\n\n#### unload()\nUnload and destroy all currently loaded Howl objects. This will immediately stop all sounds and remove them from cache.\n\n\n### Global Core Properties\n#### usingWebAudio `Boolean`\n`true` if the Web Audio API is available.\n#### noAudio `Boolean`\n`true` if any audio is available.\n#### mobileAutoEnable `Boolean` `true`\nAutomatically attempts to enable audio on mobile (iOS, Android, etc) devices.\n#### autoSuspend `Boolean` `true`\nAutomatically suspends the Web Audio AudioContext after 30 seconds of inactivity to decrease processing and energy usage. Automatically resumes upon new playback. Set this property to `false` to disable this behavior.\n#### ctx `Boolean` *`Web Audio Only`*\nExposes the `AudioContext` with Web Audio API.\n#### masterGain `Boolean` *`Web Audio Only`*\nExposes the master `GainNode` with Web Audio API. This can be useful for writing plugins or advanced usage.\n\n\n### Plugin: Effects Methods\n#### pos(x, y, z, [id])\nGet/set the 3D spatial position of the audio source for this sound or group. The most common usage is to set the `x` position for left/right panning. Setting any value higher than `1.0` will begin to decrease the volume of the sound as it moves further away.\n* **x**: `Number` The x-position of the audio from `-1000.0` to `1000.0`.\n* **y**: `Number` The y-position of the audio from `-1000.0` to `1000.0`.\n* **z**: `Number` The z-position of the audio from `-1000.0` to `1000.0`.\n* **id**: `Number` `optional` The sound ID. If none is passed, all in group will be updated.\n\n#### orientation(x, y, z, [id])\nGet/set the direction the audio source is pointing in the 3D cartesian coordinate space. Depending on the direction of the sound, based on the `cone` attributes, a sound pointing away from the listener can be quiet or silent.\n* **x**: `Number` The x-orientation of the source.\n* **y**: `Number` The y-orientation of the source.\n* **z**: `Number` The z-orientation of the source.\n* **id**: `Number` `optional` The sound ID. If none is passed, all in group will be updated.\n\n#### velocity(x, y, z, [id])\nGet/set the velocity vector of the audio source or group. This controls both direction and speed in 3D space and is relative to the listener's velocity. The units are meters/second and are independent of position and orientation.\n* **x**: `Number` The x-velocity of the source.\n* **y**: `Number` The y-velocity of the source.\n* **z**: `Number` The z-velocity of the source.\n* **id**: `Number` `optional` The sound ID. If none is passed, all in group will be updated.\n\n#### pannerAttr(o, [id])\nGet/set the panner node's attributes for a sound or group of sounds. This method can optionall take 0, 1 or 2 arguments.\n* **o**: `Object` All values to update.\n  * **coneInnerAngle** `360` There will be no volume reduction inside this angle.\n  * **coneOuterAngle** `360` The volume will be reduced to a constant value of `coneOuterGain` outside this angle.\n  * **coneOuterGain** `0` The amount of volume reduction outside of `coneOuterAngle`.\n  * **distanceModel** `inverse` Determines algorithm to use to reduce volume as audio moves away from listener. Can be `linear`, `inverse` or `exponential.\n  * **maxDistance** `10000` Volume won't reduce between source/listener beyond this distance.\n  * **panningModel** `HRTF` Determines which spatialization algorithm is used to position audio. Can be `HRTF` or `equalpower`.\n  * **refDistance** `1` A reference distance for reducing volume as the source moves away from the listener.\n  * **rolloffFactor** `1` How quickly the volume reduces as source moves from listener.\n* **id**: `Number` `optional` The sound ID. If none is passed, all in group will be updated.\n\n\n### Plugin: Effects Properties\n#### orientation `Array` `[1, 0, 0]`\nSets the direction the audio source is pointing in the 3D cartesian coordinate space. Depending on how direction the sound is, based on the `cone` attributes, a sound pointing away from the listener can be quiet or silent.\n#### pos `Array` `null`\nSets the 3D spatial position of the audio source for this sound or group. The most common usage is to set the `x` position for left/right panning. Setting any value higher than `1.0` will begin to decrease the volume of the sound as it moves further away.\n#### velocity `Array` `[0, 0, 0]`\nSets the velocity vector of the audio source or group. This controls both direction and speed in 3D space and is relative to the listener's velocity. The units are meters/second and are independent of position and orientation.\n#### pannerAttr `Object`\nSets the panner node's attributes for a sound or group of sounds. See the `pannerAttr` method for all available options.\n#### onpos `Function`\nFires when the current sound has the listener position changes. The first parameter is the ID of the sound.\n#### onorientation `Function`\nFires when the current sound has the direction of the listener changes. The first parameter is the ID of the sound.\n#### onvelocity `Function`\nFires when the current sound has the listener velocity changes. The first parameter is the ID of the sound.\n\n\n### Plugin: Global Effects Methods\n#### pos(x, y, z)\nGet/set the position of the listener in 3D cartesian space. Sounds using 3D position will be relative to the listener's position.\n* **x**: `Number` The x-position of the listener.\n* **y**: `Number` The y-position of the listener.\n* **z**: `Number` The z-position of the listener.\n\n#### orientation(x, y, z, xUp, yUp, zUp)\nGet/set the direction the listener is pointing in the 3D cartesian space. A front and up vector must be provided. The front is the direction the face of the listener is pointing, and up is the direction the top of the listener is pointing. Thus, these values are expected to be at right angles from each other.\n* **x**: `Number` The x-orientation of listener.\n* **y**: `Number` The y-orientation of listener.\n* **z**: `Number` The z-orientation of listener.\n* **xUp**: `Number` The x-orientation of the top of the listener.\n* **yUp**: `Number` The y-orientation of the top of the listener.\n* **zUp**: `Number` The z-orientation of the top of the listener.\n\n#### velocity(x, y, z)\nGet/set the velocity vector of the listener. This controls both direction and speed in 3D space, and is combined relative to a sound's velocity to determine how much doppler shift (pitch change) to apply.\n* **x**: `Number` The x-velocity of listener.\n* **y**: `Number` The y-velocity of listener.\n* **z**: `Number` The z-velocity of listener.\n\n#### pannerAttr(o)\nGet/set the audio listener attributes.\n* **o**: `Object` All values to update.\n  * **dopplerFactor** `1` Determines the amount of pitch shift from doppler effect.\n  * **speedOfSound** `343.3` Speed of sound used to calculate doppler shift.\n\n\n### Mobile Playback\nBy default, audio on iOS, Android, etc is locked until a sound is played within a user interaction, and then it plays normally the rest of the page session ([Apple documentation](https://developer.apple.com/library/safari/documentation/audiovideo/conceptual/using_html5_audio_video/PlayingandSynthesizingSounds/PlayingandSynthesizingSounds.html)). The default behavior of howler.js is to attempt to silently unlock audio playback by playing an empty buffer on the first `touchend` event. This behavior can be disabled by calling:\n\n```javascript\nHowler.mobileAutoEnable = false;\n```\n\n### Dolby Audio Playback\nFull support for playback of the Dolby Audio format (currently support in Edge and Safari) is included. However, you must specify that the file you are loading is `dolby` since it is in a `mp4` container.\n\n```javascript\nvar dolbySound = new Howl({\n  src: ['sound.mp4', 'sound.webm', 'sound.mp3'],\n  format: ['dolby', 'webm', 'mp3']\n});\n```\n\n### Format Recommendations\nHowler.js supports a wide array of audio codecs that have varying browser support (\"mp3\", \"opus\", \"ogg\", \"wav\", \"aac\", \"m4a\", \"mp4\", \"webm\", ...), but if you want full browser coverage you still need to use at least two of them. If your goal is to have the best balance of small filesize and high quality, based on extensive production testing, your best bet is to default to `webm` and fallback to `mp3`. `webm` has nearly full browser coverage with a great combination of compression and quality. You'll need the `mp3` fallback for Internet Explorer.\n\nIt is important to remember that howler.js selects the first compatible sound from your array of sources. So if you want `webm` to be used before `mp3`, you need to put the sources in that order.\n\nIf you want your `webm` files to be seekable in Firefox, be sure to encode them with the cues element. One way to do this is by using the `dash` flag in [ffmpeg](https://www.ffmpeg.org/):\n\n```\nffmpeg -i sound1.wav -dash 1 sound1.webm\n```\n\n### License\n\nCopyright (c) 2013-2016 James Simpson and GoldFire Studios, Inc.\n\nReleased under the MIT License.\n",
  "readmeFilename": "README.md",
  "repository": {
    "type": "git",
    "url": "git://github.com/goldfire/howler.js.git#2.0"
  },
  "version": "2.0.0-beta10"
}
