Version NEXT [not yet released]
****************************************************************************************************



Version 0.6.0 [December 12, 2014]
************************************************************************************************************************
**   Please note SoundJS 0.6.0 is only compatible with PreloadJS 0.6.0 and later. Earlier versions are incompatible. ***
************************************************************************************************************************
CRITICAL (may break existing content):
- removed preload property from Sound.registerSound and Sound.registerManifest, as it is only used by PreloadJS
- changed WebAudioPlugin dynamicsCompressorNode and gainNode to be instance level rather than static class level
  this is now accessed via createjs.Sound.activePlugin.dynamicsCompressorNode rather than
  createjs.WebAudioPlugin.dynamicsCompressorNode
- removed iOS disabling by default on HTMLAudioPlugin
- SoundInstance stop, setVolume, setPan, setPosition now return a reference to the instance, instead of a Boolean,
	which is useful for chaining calls.
- deprecated SoundInstance pause/resume methods, please use SoundInstance.paused property instead.
- renamed FlashPlugin to FlashAudioPlugin, deprecated FlashPlugin for next release, including the VERSION file.
- removed deprecated code and cleaned up supporting code for deprecated "|" loading approach
- re-architected the class and inheritance model
	- initialize methods removed, use MySuperClass_constructor instead
	- helper methods: extend & promote (see the "Utility Methods" docs)
	- property definitions are now instance level, and in the constructor (performance gains)
	- the .constructor is now set correctly on all classes (thanks kaesve)

*****
- Added constructors to all non-static classes (Thanks kaesve)
- fixed an issue that caused interrupt early/late to pick a playing sound over an finished sound when all instances are used
- added new event methods on and off to defaultSoundInstance to prevent errors
- fixed issue with windows phone reporting as iPhone
- fixed an issue with WebAudioPlugin that was not passing the correct parameter for disconnecting nodes
- added audio sprite support and documentation
- added AudioSprite.html to examples
- fixed an issue with HTMLAudioPlugin that was not removing tags from DOM when removing src from SoundJS
- altered HTMLAudioPlugin so that SoundInstance will have duration immediately on creation
- updated removeAllSounds to check for activePlugin before calling to prevent errors
- corrected error display wording in MusicVisualizer example
- fixed HTMLAudioPlugin typo on SoundInstance.src declaration
- fixed WebAudioPlugin bug, sourceNode was not being properly set to null on pause and setPosition
- added readonly paused property to SoundInstance
- Added Bower support, including Grunt task for automatically updating the bower.json
- Added .gitignore to subfolders under /docs (thanks mcfarljw)
- Improved EventDispatcher's handling of redispatched event objects
- Changed behavior of SoundInstance.play to be consistent across all plugins.
  The new behavior is the following:
    if playing, keep playing (aka do nothing)
    if paused, resume
    if stopped, start
  Note this will still accept and apply play call arguments, so you can change offset, volume, etc
- Changed SoundInstance.play to handle all arguments on playing, paused, and stopped instances
- added public loop property to SoundInstance
- fixed an issue with FlashAudioPlugin that would set position to an incorrect value when pausing
- changed FlashAudioPlugin to grab the duration of audio as soon as a SoundInstance is created
- fixed progress event of WebAudioPlugin Loader, for use with PreloadJS
- Implemented new base classes for Plugin, SoundInstance, and SoundLoader.
- SoundInstance added properties duration, position, loop, mute, pause (with backup methods for browser that do not support getter/setters)
- SoundInstance added method destroy
- deprecated registerManifest and removeManifest in favor of registerSounds and removeSounds
- moved BrowserDetect into a util and changed namespace to createjs.BrowserDetect
- Updated documentation to include abstract classes and all plugin classes.
- Added support for setting WebAudioPlugin.context.  Note that it needs to be set before plugins are instantiated.
- Added fileerror event, dispatched when internal loading fails.
- registerSounds & removeSounds now handles a path property in the passed in manifest of sounds.


Version 0.5.2 [December 12, 2013]
************************************************************************************************************************
- updated tutorials for changes in this build
- updates and fixes to all docs
- added {"AllowScriptAccess" : "always"} to swfObject for FlashPlugin
- all Sound, WebAudioPlugin, HTMLAudioPlugin, FlashPlugin, and SoundInstance internal properties and methods renamed to
	start with _ (underscore)
- fixed a bug with default SoundInstance, it did not have playFailed function that is called by Sound
- fixed a bug that prevented interrupt value from being read in play call if it was passed in an object
- changed SoundInstance to extend createjs.EventDispatcher rather than mix in
- alterations to basePath approach that require full src (basePath + src) in create and play calls
- include basePath in removeSound and removeManifest, which is now required if it was included in loading
- introduced createjs.Sound.alternateExtensions, which is replacing a delimited list as a means to load alternate
	file types
- deprecated "|" approach to alternate files, in favor of class level alternateExtensions approach
- deprecated registerPlugin in favor of registerPlugins with a single argument
- deprecated FlashPlugin BASE_PATH in favor swfPath
- added console logs deprecated calls above are used
- added willTrigger() method to EventDispatcher


Version 0.5.1 [November 15, 2013]
************************************************************************************************************************
- suppressing errors in WebAudioPlugin and HTMLAudioPlugin in old browsers that do not properly support
	object.defineProperty
- changes to WebAudioPlugin to allow it to work with latest working draft of Web Audio API
- WebAudioPlugin changed SoundInstance node order to SourceNode -> PanNode -> GainNode --> context.destination to get
  around firefox bug https://bugzilla.mozilla.org/show_bug.cgi?id=933304


Version 0.5.0 [September 25, 2013]
************************************************************************************************************************
CRITICAL (may break existing content):
- removed all onEvent handlers (ex. onClick, onTick, onAnimationEnd, etc)
- updated EventDispatcher with latest bubbling model, and the Event class

*****
- altered all libraries to use defined object properties instead of object literal notation.
- namespaced all sub apis to related plugin, ie createjs.WebAudioPlugin.SoundInstance
- implemented createjs Utils
- implemented "use strict" mode
- removed deprecated methods and properties, doc'd as removed.
- updated WebAudioPlugin to handle new calls and deprecated calls (http://www.w3.org/TR/webaudio/#DeprecationNotes).
- added enableIOS property to HTMLAudioPlugin,allowing advanced users to enable HTMLAudioPlugin on iOS (not recommended).
- Overloaded play call in Sound and SoundInstance to allow options to be passed in as an object,
	ie play("music", {loop: -1, volume: 0.5})
- Changed WebAudioPlugin to test if XHR is available for local files rather than assuming it is not.
- implement basePath support for local loading and with PreloadJS
- updated registerSound and registerManifest to return true if a source has already been loaded.
- added getter/setter to volume and pan of SoundInstance, to allow tweening.
- added polyfil for Array.indexOf to allow IE8 support
- fixed an issue with Sound.removeSound not stopping audio with that src.
- fixed an issue with pause and setPosition on audio files that are not looping, which would generate an error in
	WebAudioPlugin.
- fixed a bug with WebAudioPlugin that stopped SoundInstances from being reusable.
- fixed an issue with EventDispatcher when adding the same listener to an event twice
- Updated the build process to use NodeJS & Grunt.js. Please refer to the readme in the build folder.


Version 0.4.1 [May 10, 2013]
************************************************************************************************************************
- Added removeSound, removeManifest, and removeAllSounds functions to Sound, to enable unloading of sounds.
- Added MobileSafe demo to show launching an "app" inside a touch event, enabling audio playback on mobile devices
- Added playEmptySound() method, which facilitates playback on mobile devices without user interaction
- HTMLAudioPlugin now using tag loop property to provide more reliable looping
- WebAudioPlugin added a look ahead approach to enable smooth looping
- Updated WebAudioPlugin to use a specific panning model (equal power). Matches the sound quality of the other plugins
- Fixed an issue that stopped WebAudioPlugin from loading sound files other than ogg, mp3, and wav with PreloadJS
- Fixed playback for secondary sounds in HTMLAudio Plugin that affected Firefox
- Fixed an issue with duration for secondary sounds in HTMLAudioPlugin in Firefox
- Fixed issue where failed or interrupted sound channels could not be used, resulting in less instances available then
	expected.
- Updated file validation RegExp. Supports double-byte characters, prevents partial matches, better
	support for relative paths, improved matching of domains, and modified the "file name" match to
	include the extension (file.mp3 instead of file). The match arguments have not changed otherwise.
- Added support for PhoneGap in WebAudioPlugin that allows it to be used on mobile devices
- Fixed naming of the fileload event (used to be "loadComplete"). The old event is still dispatched, but is deprecated
- Renamed the internal "sendLoadComplete" method to "sendFileLoadEvent"
- Fixed cleanup routine to happen before the Sound and instance events are dispatched, which caused issues if affecting
	the sound immediately after receiving the event.
- Corrected missing namespaces in SoundInstance overview
- Fixed playing sounds by ID that are preloaded using the Sound.registerSound() method
- Fixed path parsing in the createInstance method (thanks maljub01)
- Moved embedded SWF into a container, and positioned it off-screen
- Fixed documentation:
	* FlashPlugin: Main description caused FlashPlugin to not export correct documentation
	* SoundInstance/setMute was documented as a duplicate of mute
	* SoundInstance main example had incorrect event for "failed"
	* Added code samples throughout
	* Minor updates throughout documentation to formatting, wording, parameters, and private/protected
- Updated browser limitations:
	* iOS6: include info on web audio distortion bug when video element is present
	* Android: issues with HTML audio in Android Chrome
	* Flash: Audio delays when using the FlashPlugin
	* IE9: Information on the audio tag limit.
	* Safari: added info about requiring Quicktime for audio playback.


Version 0.4.0 [Feb 12, 2013]
************************************************************************************************************************
**   Please note PreloadJS 0.3.0 requires SoundJS 0.4.0 to preload audio. Earlier versions are incompatible. ***********
************************************************************************************************************************
- Class name change to createjs.Sound from createjs.SoundJS
- Added versions file that is automatically updated via the build process, which provides run-time
	version information on the new SoundJS object
- A few major performance updates
- Added default support for M4A, MP4, aiff, wma, and mid audio formats
- Changed how file extension support is determined so changes only need to be made to SoundJS
- Revised path parsing to support a larger range of file path formats
- Added sound registration and manifest registration allowing simple internal preloading, so Sounds can preload and play
	without PreloadJS.  This includes callback and EventDispatch as files load.
- Added default behavior to load src when play is called if src has not been registered or preloaded
- Removed global pause/resume
- Removed global setMasterVolume, in place of SoundJS.setVolume(), which is now global volume
- Added global volume/mute methods on plugins, can be used in place of setting properties of all instances and exist
	independent of those same properties on instances
- Added proper global mute, which affects sounds globally, instead of just applying mute to sounds
- Changed mute() to getMute() and setMute() on SoundJS and SoundInstances
- Removed id-based lookup
- Revised plugin approach, and simplified internal APIs
- Added EventDispatcher functionality to SoundJS and SoundInstance
- Added onSuccess callback and success event to SoundInstance to report successful play.
- Official WebAudio support via the new WebAudioPlugin, which is now the default audio handler
- Added create() method on SoundJS, which can be used to create a stopped sound
- Changed setPosition() method on SoundInstance so it is available on stopped instances
- Changed getDuration() method on SoundInstance so it returns the duration of stopped instances, instead of 0
- Changed default values set when SoundJS.play is called so instances retain position, volume, and pan unless explicitly
	changed
- Replaced proxy on Sound with a proxy on createjs namespace, createjs.proxy(method, scope, args*);
- Fixed issue to how delay was handled in SoundInstance so it will not fire if pause() or stop() is called before
	playback begins
- Fixed issues with indexOf that were sometimes preventing stop/mute, etc.
- Fixed issue with initial mute state in FlashPlugin
- Fixed an issue in FlashPlugin that caused getDuration to always return 0
- Fixed an issue in FlashPlugin that would cause a looping sound to loop from the same point it was paused from or set
	position to
- Fixed loop callback in FlashPlugin SoundInstance (previously it would not be called).
- Fixed an issue with FlashPlugin in IE that caused a race condition due to caching, which would stop it from working
	sometimes
- Fixed an issue with FlashPlugin that would cause a paused instance, once resumed, to not fire onComplete callback.
- Fixed an issue in HTMLAudioPlugin that caused it to incorrectly return isSupported as true when it should be false
- Better documentation throughout
- Improved examples in documentation
- Added tutorials: Basics, Mobile-safe approach, and SoundJS & PreloadJS.


Version 0.3.0 [Aug 24, 2012]
****************************************************************************************************
- moved all classes into a configurable createjs namespace
- Added better support for missing sounds. SoundJS returns a lightweight instance that won't fail
	when calls are made on it.
- Added static mute/unmute methods to independently control a global mute property.
- Added support for preloading WAV files
- Fixed flash preload support when in tag mode
- Added lightweight flash instance, which is code only
- Added a debug flag [showOutput] to FlashPlugin, which will log Flash Activity
- Fixed issue with canPlayType throwing runtime in non-supported browsers.


Version 0.2.0
****************************************************************************************************
Second release, corresponding with the release of the CreateJS suite of tools (createjs.com).
This version includes a target plugin model that abstracts audio playback to various plugins, which
can be prioritized. Other updates include controllable sound instances, which are returned when a
sound is played, providing a much easier way to control audio once it has started playback.


Version 0.1.0
****************************************************************************************************
Initial release.******************************************************************
Initial release.
