MASTER AUDIO PLUGIN - By DarkTonic, Inc. (c) 2012-2014

- Code by Brian Hunsaker

-V 3.5.6.9 - Fixed FX Tail time to work again (broke on last version due to another bug fix).
		   - Fixed bug where music did not ever unduck during Time scale of zero. Now it works the same regardless of Time scale.
		   - Updated Unity 5 beta integration to have uGUI support.

-V 3.5.6.8 - Fixed problem where lowering the pitch of a Variation after it has started playing would end the sound early based on it's calculated end time when it started playing.
		   - Now allowing longer Group names on Mixer and Dynamic Mixer sections. They got cut off before.
		   - Reduced audio latency by 90%! Since V 3.5.5 we've had a 1 frame delay in sound playing! That is now gone.
		   - Fixed previewing of Playlist songs that were Resource files. That hasn't worked for some time.
		   - Added all Unity 4.6 UI events to EventSounds script: Slider.onValueChanged, Button.onClick, PointerEnter, PointerExit, PointerDown, PointerUp, Drag, Scroll, UpdateSelected, Select, Deselect, Move, InitializePotentialDrag, BeginDrag, EndDrag, Submit, Cancel
		   - Removed minimal mode choice from EventSounds. Always minimal mode now.
		   - Added a dropdown in EventSounds to select between Legacy and uGUI events if you're on Unity 4.6. Then the other won't be shown or work (so many options in the dropdown now!) Note that any Unity 4.6+ users will now default to uGUI, so if you want to use Legacy events, you will have to switch this dropdown back on each component that uses it.
   		   - DF-GUI users will need to re-install the latest Master Audio DF-GUI package to get the Unity 4.6 UI features in the DF-GUI version of Event Sounds.

-V 3.5.6.7 - (Unity 5 feature only) Added a field to specify a Unity Mixer Group for each Master Audio Bus. All Variations in all Sound Groups assigned to that Bus will be routed to the Unity Mixer Group when the Scene starts. If you change the bus the Sound Group is assigned to or change the Unity Mixer Group the Bus is assigned to at runtime, it will switch over instantly to the new Unity Mixer Group. It is recommended that you now name your buses identically to the Unity Mixer Groups to avoid confusion.
		   - (Unity 5 feature only) Added a field to specify a Unity Mixer Group for each Playlist Controller. If you change the Mixer Group assignment during runtime, it will instantly switch over to that Group.
		   - (Unity 5 feature only) Added "Music Spatial Blend Rule" dropdown to the Playlist Controller section in the Master Audio prefab. Choices are: Force All To 2D (default), Force All To 3D, For All To Custom, and Allow Different Per Controller. If you choose the last one, there will be a similar dropdown on each Playlist Controller with the first 3 choices. Changing these at runtime instantly switches the Spatial Blend of both Audio Sources on the Controller(s).
		   - (Unity 5 feature only) Added "Group Spatial Blend Rule" dropdown to the mixer section in the Master Audio prefab. Choices are the same as the Playlist Controller dropdown. Works the same. If you choose the last option, you can choose the Spatial Blend for the Group on the Group's settings.
		   - (Unity 5 feature only) Added ability for EventSounds to do "Transition to Snapshot" in the Unity Audio Mixer.
		   - (Unity 5 feature only) Added ability for EventSounds to do "Transition to Snapshot Blend" in the Unity Audio Mixer.
		   - (Unity 5 only) - Using the pitch field on a Unity Mixer Group to a value less than 100%: It doesn't change the pitch of the Audio Source(s) feeding it, so as soon as the Audio Clip is done playing (and stops), the slowed down one in the mixer will stop even if it's in the middle of the clip. 
   		   - DF-GUI users will need to re-install the latest Master Audio DF-GUI package to get the Unity 5 features in the DF-GUI version of Event Sounds.
   		   - Fixed bug: Creating a Dynamic Sound Group assigned to a muted bus didn't mute the Group.

-V 3.5.6.6 - Added Retrigger Limit controls to Footstep Sounds script. Applies to all tag / layer triggers at once.
		   - Added an optional "fire 'Items Created' Custom Event" section in Dynamic Sound Group Creators, so you can be notified that the sounds are created and ready.
		   - Removed Master Audio Clip Manager from Master Audio for Unity 5+. Certain parts of the Audio Importer API has been closed off by Unity so this code won't work anymore. It's fine though because Unity 5 has the ability to bulk change Audio Clip import settings (which is exactly what Clip Manager did).

-V 3.5.6.5 - Fixed bug of stack overflow caused by SoundFinishedEvent that calls stop on the same Variation that's playing, directly or indirectly.
		   - Fixed bug: The 2 Audio Sources on Playlist Controller didn't have the same custom rolloff. Note that this will only fix Playlist Controllers you haven't created yet. To fix already created ones, delete them and recreate from Master Audio Manager window.
		   - Fixed bug: calling MasterAudio.SetBusVolumeByName sometimes had out of index error.
		   - Fixed bug: Dynamic Sound Group Creator would log an error if you call RemoveItems more than once.
		   - Fixed bug: One clone of the first Variation in the first Group didn't had its pitch reverted to 1.
		   - Added button for "wide mode" between the mixer and buses. Makes the faders 3 times as wide for fine tuning levels.
		   - Attention: Users of the DF-GUI Master Audio package will need to install the new version of the package to compile again.
		   - Added MasterAudio.UnsubscribeFromAllVariations method to unsubscribe from all SoundFinished events in every single Variations in the entire MA Hierarchy.
		   - Added Custom Event import/export ability to the Organizer.
		   - Added new option to Dynamic SGC to choose whether the items get created on 2nd+ Enables or not (defaults to not). Turning this on means you can repeatedly disable and enable DSGC's to add and remove audio items from Master Audio.
		   - Added new method: MasterAudio.MasterAudio.GetAllPlayingVariations(). Returns a list of all SoundGroupVariations that are still playing.
		   - Now the yellow voice count numbers next to each mixer row and bus are buttons that can be clicked on to select all X of the Variations that make up that voice count.
		   - Chained Loop Groups can now cross-fade! Just set up each Variation with Custom Fading. Any Variation with Custom Fade Out time will trigger the next clip in the chain when the fade out starts instead of when the clip ends.
		
-V 3.5.6.4 - Removed accidental log statement in ResourceOptimizer.
		   - Fixed bug where turning on Clip Age Priority would cause Null Exception  error to be logged in Console if playing a sound in "Caller Location".
		   - Fixed bug where the PlaylistVolume property of Playlist Controller didn't update the volume of the currently playing clip.
		   - Fixed almost invisible Delete icon for Event Sounds listening to Custom  Events.
		   - Added Footstep Sounds script, which is a much simpler and focused version of EventSounds. You select trigger or collision event (once only), then tell it what Sound Groups to play to which layer / tags.
		   - Added button "Alpha Sort Custom Event Triggers" to Event Sounds in the top section. It will make all Custom Event Triggers sorted A-Z by Custom Event name.
		   - Added ability to save all changes made during runtime! New checkbox in Advanced Settings section defaults to off: "Save Runtime Changes". Saves all changes to Master Audio prefab (mixer too), Groups, and Playlist Controllers.
		   - Added "Expand / Collapse Group Creation" button in the mixer section, to give you more screen real estate at time you don't need that part.
		   - Added "Bulk Group Changes" checkbox above the mixer. Turning this on puts a checkbox at the left of each Group in the mixer. There are select / deselect all buttons next to that. You can select X Groups in the mixer, then mute / solo / adjust volume or change bus in bulk for the selected Groups only.

-V 3.5.6.3 - Fixed bug where negative random volume wasn't allowed after we added the dB scale option.
	   	   - Fixed Unity 4.6 compile errors.
	       - Fixed occasional bug on PlaylistController scheduling.

-V 3.5.6.2 - Added Sort Alpha, Expand / Collapse All buttons to Custom Events section.
		   - Changed function of Expand and Collapse buttons above list of Playlists. Now it only collapses or expands the Playlist itself, not the songs in it.
		   - Added Sort Alpha, Expand / Collapse All button for songs in each Playlist.
		   - Added Song Started and Song Changed custom event dropdowns to each song in each Playlist. Now you can configure stingers per song. Song Changed does not work with gapless transitions, the UI says this clearly.
		   - Added missing (normal) "Default Single" Sound Group Template and selected it as the default.
		   - Added Sound Group Organizer prefab (create one from the Master Audio Manager window). This is like a "Super" Master Audio prefab that you should only ever keep in a Sandbox Scene (not ever played) because of audio memory usage considerations. You can use it to import Sound Groups to and from Master Audio and Dynamic Sound Group Creator game objects in the current Scene. This allows you to keep a master list of all Sound Groups and quickly copy them to Scenes you need them in. You can also use it to transfer Groups from MA to Dynamic SGC objects and vice versa. To use it, you will need to make your own prefab (drag into Project View) out of the one created from the Master Audio Manager window. To import Groups, you have to put it in the Scene you're importing from (Unity limitation). Then you can apply changes to the prefab and remove it from the Scene. Bus settings are not copied into Organizer.
		   - Added settings icon for MA and Organizer prefab into Master Audio Manager window to quickly go to them.
		   - Fixed bug: The previewer Audio Sources that appear for DGSC, MA and Organizer prefabs are now pulled from the template Audio Source so volumes are the same. Problem was with custom rolloff not being script accessible. Now we "copy / paste component" via script.
		   - Fixed problem (not really bug, we had to go around Unity API limitation): Audio Source copying between DSGC / MA / Sound Group Organizer didn't copy custom rolloff curve.
		   - Made bus voice "Dialog Mode" setting now work for any voice limit, not just 1 voice. The checkbox on the bus has been renamed to "Stop Oldest", and it now stops the oldest playing sound when you play a new one and the bus voice limit has been reached. Now much more flexible!
		   - Note: please re-set your "Dialog Mode" checkbox on any buses. The change above will not keep any settings you had for this. The checkbox is now called "Stop Oldest".

-V 3.5.6.1 - Updated DF-GUI package. It didn't compile after Custom Events upgrade.
		   - Fixed bug where playing many of the same Resource file at the same time would log an error in the console.
		   - Fixed ducking error with Resource clips that are stopping.
		   - Fixed bug where playing more than one of a single Resource file when all Variations are already busy would cut off the rest except one.
		   - Now works properly in Unity 4.5.5, 2 features didn't. (I hate that I have to keep adding these versions inside, but I do until we get to Unity 5, because we support 4.3 with some optional features).

-V 3.5.6   - Fixed bug where after adjusting a bus volume, AdjustVolume (on the Variation) would pretend bus volume was at full.
		   - Fixed bug where Master Audio Inspector would break on newest Unity.
		   - Fixed some things in UI to make it less confusing. Since "Loop Clip" in each Variation isn't used (loop not allowed) for Chained Loop Groups, there's no checkbox there, but a message instead explaining why it isn't.
		   - With Synchronized Playlists, the Loop Clip setting is also not shown because every song must loop. A message explaining is there instead.

-V 3.5.5.9 - Added gapless song transitions for Unity 4+ users. You enable it from the Advanced Settings of the MA prefab. It is off by default because it generally will not be needed for users who use crossfading. If you turn it on, with Resource files, audio memory usage will be more as most amount of the time there will be 2 Resource files in memory simultaneously. Known issue: If you change (jump via code) the position of the current song into the cross-fading portion at the end, the next song will arrive after the cross fade is complete. This should be ok since usually you will not use crossfading and gapless at the same time.
		   - Added Random Start Position (min/max) option & controls to each Variation. This lets you randomly start playing the audio clip at a random position at X% of its length if enabled.
		   - Added MasterAudioSoundUpgrader, a window that helps you prepare a project that has existing audio for switching over to Master Audio. It has buttons to find all existing Audio Sources in a Scene and then delete them so there won't be any audio not controller by Master Audio. It should be used in each Scene. You can also use it even after configuring Master Audio in your Scene, to find any forgotten Audio Sources not controlled by Master Audio. It will safely ignore the ones that are controlled by Master Audio.
		   - Added a Hierarchy icon for Playlist Controllers. It's 2 blue eighth notes.
		   - Added Group Templates feature. We have started with 18 in the MasterAudio/Sources/Prefabs/GroupTemplates folder. You can create more of your own (please send them to me for consideration if so). Bulk Creation Mode is disabled when using Group Templates because Group Templates take a single audio file and create 1 or more Variations of it based on the template). Some of the Group Template are: Random Volume Extreme, Single Variation 5 Voices, Pitch Rising Chromatic, Dialog With 1 Second Fade, 25 Percent Chance Play, etc. Be extra careful that you don't put any Audio Clips or filter FX into the templates themselves as they will take up audio memory even if you haven't created any Groups with the templates! We check that both of those aren't in the template up front, but if you add them to the template prefab later, we cannot catch that.
		   - Playing a Variation with no audio assigned now doesn't take any voices up. This is good to use for a type of "% chance to play" on a Dialog Sound Group, so a silent clip won't shut off the currently playing non-silent one.
		   - Fixed bogus Jukebox warning when starting the same Playlist again with the Play button.
		   - Fixed Inspector bug for Dynamic SGC where after the 1st Variation in a Group, the rest were greyed out and disabled.
		   - Fixed bug: Variation's priority (AudioSource component) wouldn't be reset back to normal on each play.
		   - Fixed bug: Null reference error when you only have a single Looped Chain Sound Group and press play.
		   - Fixed bug: First Sound Group shows on LED meter on mixer after 1 second sometimes.
		   - Fixed bug: Dialog and Chained Loop groups didn't show on LED meter on mixer.
		   - Fixed bug: The sound played silently during warming (silent) should not log anything to Console regardless of MA logging settings selected.
		   - Fixed bug: The variation played for warming (silent) shouldn't be removed from the randomizer so you can play it for real before waiting for the randomizer to refill.
		   - Fixed bug: The variation played for warmup (silent) should not trigger any linked Groups.
		   - Fixed bug: Retrigger Limit Mode on Event Sounds was shown for each action when it is not a per-action setting. It's per event (group of actions).

-V 3.5.5.8 - Fixed bug where Distance Priority caused console errors for Groups with Variations of weight > 1.
	   	   - Fixed intermittent bug on GetVariationLength.
		   - Fixed bug where playing more than 1 of the same Variation by name wouldn't actually play 2, but only 1.
	   	   - Fixed bug where Playlist songs wouldn't load on Unity 4.5.4
		   - Fixed bug: Removed alpha-sorting of Variations on Group Inspector. Now they appear in the same order as Hierarchy.
	   	   - Changed dB setting to use PlayerPrefs instead of EditorPrefs because you couldn't make a build with EditorPrefs unfortunately.
	   	   - Added arrow and buttons to expand / collapse Variations in the Group's Inspector. This lets you preview / view all Variations without having to scroll up & down.
	   	   - Added "Clone Variation" icon button in Sound Group's Inspector to quickly create multiple copies of a Variation with all settings cloned, including adding a number to the end of the name of the clone.
	   	   - Added checkboxes to each Variation in Sound Group's Inspector when Copy Settings is expanded so you can choose which target Variations to copy to, instead of copying to all. Checked rows turn blue and the source Variation row has a yellow "SOURCE" label so you know why there isn't a checkbox.
	   	   - Added buttons for Check All and Uncheck All in Sound Group's Inspector Copy Settings section.
	   	   - Changed the default Sound Spawn Mode of EventSounds to Attach To Caller instead of Caller Location. This shouldn't change any already existing EventSounds components, only new ones.
	   	   - Added a section in Playlist Controller's Inspector for you to specify an optional Custom Event to fire whenever a Song Changes or Ends. This allows you to set up a custom event receiver to play a "stinger" sound when the music changes or anything else you want to do, without writing any code.
	   	   - Added a checkbox in Advanced Settings of Master Audio to Log Custom Events. This will log to the console whenever a Custom Event is fired. This can help you figure out what script is firing the custom event if you don't know.
	   	   	   	                   
-V 3.5.5.7 - Removed option "Fast GUI  Refresh" since it's not needed anymore after some changes we made recently to make the refresh more consistent.
		   - Bug fixed: Chain Loop mode wasn't working at all, only played one sound and stopped.
		   - Bug fixed: Top-to-bottom should play in the same order they show in Hierarchy (not auto-alphabetize).
		   - Bug fixed: Load Resources Async controls weren't showing up for Unity 4.5.4.
		   - Bug fixed: Calling MasterAudio.StartPlaylist with a single parameter caused a StackOverflow error. 
		   - Added Global Settings section in Master Audio Manager window. Its only option is "Display dB For Volumes". By default that setting is off. If you turn it on, all volume sliders in Master Audio will be displayed as decibels instead of between 0 and 1.
		   - Removed AudioUpdater.cs from the plugin. It's no longer needed since 3.5.5.

-V 3.5.5.6 - Fixed bug where SoundGroupVariationUpdater would in some situations have a Null Reference error.
		   - Fixed bug where TriggerPlaylistClip will play the same song twice in a row with auto-advance on before changing to the next song if that song is not looped.
		   - Fixed bug where deleting a Playlist that's a starting playlist for any Playlist Controller will cause a startup error saying the Playlist can't be found.
		   - Fixed bug where fading in a Sound Group right after playing a silent sound wouldn't play the sound audibly.
   		   - Moved the following methods in MasterAudioManager into MasterAudio class, and marked as public static, in case you want to do these from script for some reason: CreateMasterAudio, CreatePlaylistController & CreateDynamicSoundGroupCreator.
		   - Added "Refill Sound Group Pool" to the Group Command dropdown on Event Sounds. This refills the random pool or sets a top-to-bottom Group back to top.
		   - Added "Error on Duplicate Items" checkbox to Dynamic Sound Group Creator Inspector. Defaults to checked. If you turn it off, no errors will be logged for Groups, Playlists, Custom Events and Buses that already exist. They still won't be created. This is useful if you have more than one of the same Dynamic Sound Group Creator but don't want to see all the errors when you already created the items with the first one that spawned.
		   - Added "Always Highest Priority" checkbox to Sound Group Inspector. This is only visible and working when you have Distance Priority turned on in the MA prefab. Checking it makes the priority of that Sound Group always highest priority (not calculated based on distance or clip age).
		   - Eliminated warnings about mouse events for iOS and Android export.
		   - Add songName parameter to ChangePlaylistPitch method, so you can change just one song's pitch if you like.
		   - FadeOutEarly method of Variation no longer stops the audio automatically when the fade out is complete. 
		   - Added a set of checkboxes in a new Fading Settings section in Advanced Settings in the Master Audio prefab. There's a checkbox for each type: Variations, Groups, Buses and Playlists. Checking the box for that type means that audio in that type will be stopped if you have a fade that reaches zero volume (excluding automatic cross-fading of playlists). For example if you do a Fade on a Sound Group to zero volume, when complete, the Variations on that Sound Group will not be stopped unless you check this box. They will continue to play silently instead.

-V 3.5.5.5 - Added a "Fire!" button during runtime in the Custom Events section for each event so you can fire it at any time.
		   - Fixed bug: Caller Despawned Mode didn't work when the caller became inactive and not destroyed.
		   - Fixed missing null check in ducking code due to recent bug fix.
		   - Fixed bug where pausing a playlist would actually cause the song to advance to the next in some situations.
		   - Added StartPlaylist method to PlaylistController, MasterAudio and EventSounds, which can be used to either change the playlist or restart it (it will figure out which one it needs to do).
		   - Modified Behavior Designer task for StartPlaylistByName (and the Playmaker one too) to use the StartPlaylist method instead of ChangePlaylist so it works in every case.
		   - Fixed bug where Unity 3.5.7 didn't compile with a recent change.
		   - Changed UI, eliminated confusing icons and replaced with words (Add, Expand, Collapse).
		   - Added 3 more Custom Event receive modes: never, within distance, beyond distance. Always is the old "existing" option and the default. This means you can make it so only receivers within a certain distance will actually receive. 
		   - FireCustomEvent method now takes an extra parameter of Vector3 (originPoint). You will need to provide this to compile again if you're calling the method.
		   - Modified Behavior Designer "FireCustomEvent" task. Please re-import the BD package to get latest and compile again if you're using BD.
		   - Modified Playmaker Custom Event "FireCustomEvent". Please re-import the PM package to get latest and compile again if you're using PM.

-V 3.5.5.4 - Fixed fake warning in Playlist Controller when you change Playlists and there's no Playlist assigned.
		   - Fixed bug where putting bus or group volume at zero would still play audible sounds from random volume settings on the group's Variations.
		   - Added validation checks to all Fade commands so that volume can't end up at NaN or infinite. If you send a volume other than between 0 and 1, an error will be logged and the command ignored.
		   - Made the SoundGroupAttribute sort the Sound Groups alphabetically.
		   - Fixed bug where PersistentAudioSettings initialization happened in Start instead of Awake, so Playlist volume would be non-persistent for 1 frame.
		   - Fixed bug where a Playlist would not auto-advance if the 2 frames early check was missing due to excessive lag or a blocked thread.

-V 3.5.5.3 - Deleted unused clip in Example Scenes that was causing a warning when imported.
		   - Removed a Playlist restriction. Now it will no longer ignore a request for the currently playing song and say it's invalid. This now works whether it's a Resource file or not. This also means you can put the same song into a Playlist twice or more in a row.
		   - You can now crossfade into the same song as well.
		   - Vastly improved Resource file tracking for Playlists. The lack of this before was causing intermittent bugs.
		   - Added Restart Playlist command to Playlist Controllers, Master Audio static method & Event Sounds.

-V 3.5.5.2 - Fixed empty song bug.
		   - Removed "Add empty song" button.
		   - Fixed bug where Equalize Song Volumes button would assign zero or infinite volume to songs when one of the songs could not be scanned (compressed and streaming files can't be scanned).
		   - Equalize Song Volumes button previously skipped Resource file songs. Now they work the same as Audio Clips.
		   - Calling "Change Playlist" requests will now be denied if you try to change to the same Playlist that's already loaded in a Playlist Controller.
		   - Added advanced setting "Always Load Resources Async" in Master Audio's Inspector. Defaults to true. Only appears if you have Unity 4.5.3+ pro license. If unchecked, you will see a "Load Resources Async" checkbox in every Sound Group and Playlist that has a Resource file. This lets you choose between Async and traditional thread-blocking Resource loading.
		   - Added 3 collapsible categorized sections in Advanced Settings since it was getting a little long.

-V 3.5.5.1 - Refactored Event Sounds and Event Calc Sounds script to use zero bytes allocation in 97% of cases (Start & Mouse Drag events need it).
		   - Moved fading functions of SoundGroupVariation into SoundGroupVariationUpdater script, eliminating all 3 remaining CoRoutines there.
		   - Fixed allocations in Master Audio main loop, down from 20 bytes to 0.
		   - Added ability for Sound Groups to trigger other Sound Groups that you specify, in a new "Linked Group Mode" section in the Sound Group's Inspector. Now you can set it up so that whenever the Group "Explosion" is played, Master Audio will also trigger "DeathScream" Group and any number of others you specify. To prevent an endless loop, none of DeathScream's Triggered Groups will be called when it's played as a side effect of another Group. There's an option to play the Linked Groups when the Group is requested or when it's actually Played (not failed to play).
		   - Added automatic asynchronous (non-blocking) load of Resource files for SFX and Playlists! Requires Unity 4.5.3 and Pro license. Otherwise it defaults back to non-async.
		   - Fixed bug where the next song would be requested multiple times when cross-fading is enabled, resulting in multiple error messages if a Resource filename was entered incorrectly.

-V 3.5.5   - Added Change Bus Pitch to Event Sounds.
		   - Added ability to remove last song in any Playlist. There's now an "Add Empty Song" button above that to get it back without dragging a song in.
		   - New Playlists no longer get created with an empty first song. Zero songs instead.
		   - Added ability to remove last Playlist in Master Audio prefab.
		   - Changed a bunch of green notes in Inspectors to the red error bar and yellow attention bar when better suited.
		   - Added a section in the Sound Group's Inspector to copy various settings from one Variation to all others to save time (custom fade, random delay, random pitch, random volume, etc);
		   - Added a section in the Dynamic Sound Group's Inspector to copy various settings from one Variation to all others to save time (custom fade, random delay, random pitch, random volume, etc);
		   - Fixed bug: playing the same song as is already playing will stop it playing after shortly after loading if it's a resource. Now we ignore requests to play the currently playing songs and log a warning so you know it happened.
		   - Fixed bug: Clip Age Prioritization was not checking whether you turned it on or not, assumed on always.
		   - Added new script SoundGroupVariationUpdater to all Variations (disabled for now). When I'm done with it, it will be activated when you need follow code or other CPU-intensive code, but will be disabled any other time. This should allow me to get rid of most or all of the CoRoutines.
		   - Note: For the above bullet, to upgrade your Master Audio prefabs, you will need to open the Master Audio Manager window and click "Upgrade MA Prefab" for each Scene with a MA prefab. It will fix the Variations. If you forget, the Console will tell you this info.
		   - Moved following and priority updating code into SoundGroupVariationUpdater script, eliminating one CoRoutine.
		   - Moved DetectedSoundEnd code into SoundGroupVariationUpdater script, eliminating another CoRoutine. Allocations now down to 60 bytes per sound play!
		   - Added ClearQueue method to PlaylistController.
		   - In play mode, each bus now has a stop button which stops all actively playing audio that's going through that bus.
		   - Added pre-warming code to each in-Scene Audio Clip to prevent lags when using them for the first time.
		   - Added pre-warming code to EventSounds which works if you have any object that start in the Scene with that component, to prevent lags when using them for the first time.
		   - Refactored SoundGroupVariation to reuse its object to take Allocation from 60 bytes down to an insanely low 16 bytes per sound play!

-V 3.5.4.9 - Overhauled performance of Button Clicker script, Master Audio script and several others. Now have 80-90% less Garbage Collection allocation throughout and much faster performance.
		   - Added Behavior Designer task package so you can add these if you already own Behavior Designer.

-V 3.5.4.8 - Fixed bug where previewing in edit mode on the Master Audio prefab, Groups, and Variations (as well as the Dynamic Group Creator) wouldn't always play the sound until you clicked something else.
		   - Made previewing respect the Group's volume in edit mode on the Master Audio prefab, Groups, and Variations (as well as the Dynamic Group Creator).
		   - Fixed bug where selecting GroupVariation in Project View would log bogus errors.

-V 3.5.4.7 - Added Caller Despawned Mode setting to Sound Groups. The options are: None (default and old behavior), Stop and Fade Out. This allows you to control what happens to a Variation that is still playing when the object that "made the sound" is destroyed or despawned. Previously it would continue to play until the clip was over (or forever if looped).
		   - Fixed localization bug where you could only switch languages once. 
		   - Fixed Playlist Controller bug where there was a race condition starting the playlist via API and letting it initialize itself in the Start event.
		   - Added Behavior Designer demo version (includes full conversion of all Master Audio Playmaker custom actions!) as an optional package in the 3rd party folder.

-V 3.5.4.6 - Added PersistentAudioSettings class. This allows you to set Master Mixer Volume and Master Playlist Volume and have all Master Audio prefabs in all Scenes use those settings on startup. This is good for the standard "set SFX / music volumes" options screen. It also sets the current Scene's master volumes, if there's a Master Audio prefab in the Scene.
	   	   - Added Sound Group volume settings to PersistentAudioSettings class.
		   - Added Bus volume settings to PersistentAudioSettings class.
		   - Got rid of warning when temp playlist is deleted while being played. Now it stops the playlist and deletes it if this occurs.

-V 3.5.4.5 - Fixed bug where first Sound Group's loop checkbox would get turned off by the pre-warming code.
		   - Fixed bug where pre-warming code would break if the first Sound Group contains a localized audio clip.
		   - Make sure to re-set your Language Mode under Languages if you're using it. The variable was changed and you will lose that setting. 
		   - Added 3rd Language Mode "Dynamically Set", which lets you set the language with code: "MasterAudio.DynamicLanguage = SystemLanguage.German" for example. The limitation is that this code must be called in a previous Scene that doesn't share the same Master Audio prefab (like a main menu) as Master Audio needs to keep track of a map of AudioSources per resource during the Awake event to correctly unload Resource files.
		   - Added "IsFading" property to Playlist Controller. It will return true if it's crossfading or doing another fade. You can check this before doing any volume-setting (including fading) code so you don't interfer with a current fade.

-V 3.5.4.4 - Added localization features for Resource file SFX. In the Master Audio prefab's Advanced section, you set the default language, supported languages and optionally Specific Language. Master Audio will append the name of the "user current language" folder in front of the Resource File Name. If the user has a language that isn't supported, the your selected Default Language folder will be used (i.e. "English"). You should create a folder for each of the chosen Supported Languages (i.e. English / German / French) and place identically named sound files in each folder for sounds that use localization. Master Audio will detect if you drag in a resource file that comes from a folder starting with a language name (English / German / etc) and will check the "use Localized folders" checkbox for you.			  
		   - Added "Resize all siblings" checkbox to Button Clicker script. Now it can shrink or expand the button you're clicking and all the other related GUI elements at the same level (button text, other button graphics, etc).
		   - Created custom Inspector for the Daikon Forge version of Button Clicker as well and added Resize all siblings to that. Please re-import that MA_DFGUI to get the changes.
		   - Changed follow Variation CoRoutine to update position every frame instead of every 0.1 seconds. It will now sound much better with fast moving objects.

-V 3.5.4.3 - Fixed the Playlist Controller's Song Changed event. It was being assigned a bit too early which led to the wrong song returned on ActiveAudioSource if you called that immediately.
		   - Update V 3.5.4.2 broke the refresh on the Master Audio Inspector when "Fast Refresh" option turned off. Now fixed again.
		   - Added Playmaker custom action MasterAudioStopTransformSound, for stopping all or one Sound Group worth of sounds triggered by a particular transform.

-V 3.5.4.2 - Redid Inspectors so they don't modify objects unless they are changed. 
		   - Redid the 2D Toolkit package. If you're using this, you will need to install the newest package from Master Audio to get it to compile again.
		   - Redid the Daikon Forge package. If you're using this, you will need to install the newest package from Master Audio to get it to compile again.
	   - Note: you will need to install the latest Core GameKit plugin as well if you use that to get it to compile again.

-V 3.5.4.1 - Fixed bug where Sync Group was ignored on a Playlist Controller for the first song played in a playlist. Layered music didn't always line up correctly.
		   - Fixed bug where voice limit and voice count wasn't working properly on some dynamic buses.
		   - Fixed bug where FX Tail Time wasn't used from temporary Sound Groups.
		   - Made Fx Tail Time field for Variations always visible and usable. This can let you fix the problem where a Variation gets cut off sometimes when you change the pitch of an already playing Variation to a lower pitch. Just increase the FX Tail time to accomodate your longest play.
		
-V 3.5.4.0 - Please delete and re-add any playlist songs that have Resource files. Fixed bug where creating Resource file playlist songs keeps the clip reference. This would use extra memory unneccessarily. 
		   - Fixed bug where selecting folder filter in Clip Manager showed items in subfolders.
		   - Fixed bug where dragging Resource clips into playlist makes you do it twice for each song. 
		   - Fixed bug where dragging multiple Resource clips misses adding some to the playlist.
		   - Added ChangeVariationVolume method to compliment the existing ChangeVariationPitch method.

-V 3.5.3.9 - Fixed inconsistency with time retrigger limit in Sound Groups. It was using different time variables. Now they're all the same.
		   - Huge increases to performance of AudioUpdater (optional component).

-V 3.5.3.8 - Note: this setting will need to be turned on if you require Timescale zero code to work. Added "ignore time scale" option in Master Audio advanced section. Defaults to off. Performance and garbage collection on lower-end devices can suffer some for turning this on, so only use it if you need to.
		   - Added "start time (seconds) to Playlist songs. Defaults to zero. Only available in Song Transition Mode "new song from beginning".

-V 3.5.3.7 - Fixed bug where a warning would be shown every 2 seconds if you have no playlist assigned to a Playlist Controller.
		   - Made ActiveAudioSource property in PlaylistController a public property.
		   - Fixed Clip Manager window to work with thousands of clips. Added paging.

-V 3.5.3.6 - Fixed bug where short Playlist songs of "from beginning of new song" Song Transition Type would sometimes not start at the beginning.
		   - Fixed bug where playing a queued song in a Playlist would lose track of which songs were played and cause the wrong song to play afterward.
		   - Fixed bug where triggering a song in a Playlist would lose track of which songs were played and cause the wrong song to play afterward.
		   - Fixed bug where top-to-bottom setting with "refill after inactive time" could cause erorrs and sounds not playing if any Variations weren't played when it refilled.

-V 3.5.3.5 - Fixed bug where having an ampersand (&) in your folder name would make Clip Manager scans fail.
	    - Fixed bug where a queued clip for Playlist Controller couldn't be looped.
		- Fixed Dyanamic Sound Group Creator. V3.5.3.4 fixed some and broke others. Now it should work with both persistant and non-persistant Master Audio prefabs.

-V 3.5.3.4 - Fixed bug where losing focus on the Application would sometimes cause Playlists to stop playing their songs.
		   - Fixed bug in Dynamic Sound Group Creator, it now uses OnEnable to create items instead of OnStart. This fixes some Dynamic playlist bugs.
		   - Added free version of Audial Manipulators to the plugin. This package gives you many FX filter scripts to use on AudioSources, even in Unity Free!

-V 3.5.3.3 - Fixed bug where trying to preview a new Sound Group in Master Audio prefab generated an error.
		   - Fixed bug where having a custom fade in or fade out time for a Variation would ignore the Sound Group Volume and use full volume.

-V 3.5.3.2 - Performance increase of about 94% on the very first sound effect played!
	   - Fixed bug in Sound Group Variation with lazy load parameter.

-V 3.5.3.1 - Performance increases by about 40% on playing sound effects.

-V 3.5.3 - Added code to delete "duplicate" Master Audio and Playlist Controller prefabs that may exist when changing Scenes when you don't use a Bootstrapper Scene. A white "info" is logged when this happens to tell the user in case they didn't plan for that to happen.
	 	 - Added methods to Master Audio: PlaySoundAndWaitUntilFinished, PlaySound3DAtTransformAndWaitUntilFinished, & PlaySound3DFollowTransformAndWaitUntilFinished. These need to be called with StartCoroutine and will wait until a sound finishes playing (or can't play), before continuing. This way you can chain any number of sounds together.
	 	 - Added a checkbox for "Bus Dialog Mode", only visible and available if you have bus voice limit set to 1. If you check the box, the bus will now behave like a Dialog Sound Group. In other words, every time a sound is about to be played through the bus, all sounds already being played by the bus will be stopped.
	 	 - Changed colors of buses so they're distinct from Sound Groups on the mixer.
		 - Mixer's Group active voice count now shows red any time all Variations are busy, not just when the optional Polyphony limit has been reached.
		
-V 3.5.2 - Put Master Audio Manager object creation back to "not hooked to the prefab" so that updating the plugin doesn't delete your settings. A couple customers reported this happening.
		 - Fixed SoundGroupAttribute so it works even in a Scene with no Master Audio prefab.
		 - In Clip Manager, changed filter text field to filter on full path (folder name as well as file name).
		 - In Clip Manager, added a folder dropdown filter to select a single folder to view, or view all.
		 - Added Mechanim State Entered Event to EventSounds. You can add any number to a single component. Only works on layer 0, you specify the state name.
		 - Fixed bug where disabled Custom Events in EventSounds would still show expanded.

-V 3.5.1 - Fixed memory leak error on Clip Manager. Now it's been tested with over 4Gb of audio files, and no crash in Unity. Previously I couldn't even import 1Gb.
		 - Fixed bug with Playlist Controller sometimes not starting a song at beginning when changing Playlists.
		 - Added retrigger limit modes to EventSounds. You can choose X frames or X seconds (or neither - the default) which is the minimum amount of frames or time that must pass before the event will be allowed to execute the actions you specified.

-V 3.5   - Added checkbox to disable Variation gizmos in Scene view, located in Master Audio Inspector under Fast GUI Refresh setting.
		 - Added "Show Advanced" section in Master Audio Inspector, which contains everything above the Mixer except for the 3 Master sliders. Defaults to "Show".
		 - V3.4.9 had an error. The Mouse Click event in EventSounds is not for NGUI, it's for Unity GUI. Renaming it to "Mouse Down".
		 - Renamed Collision event in EventSounds to "Collision Enter".
		 - Renamed Collision 2D event in EventSounds to "Collision Enter 2D".
		 - Added Collision Exit, Collision Exit 2D, Mouse Exit, Mouse Up & Mouse Drag events to EventSounds.
		 - Added UnpauseAllSoundsOfTransform and UnpauseSoundGroupOfTransform methods to MasterAudio.
		 - For Mouse Up event in Event Sounds, added controls to stop or fade the Mouse Drag event if you also used it. That way you make the Mouse Drag sound seamless into the Mouse Up sound, even when looping the former.
		 - Added NGUI events to EventSounds: NGUI Mouse Click, NGUI Mouse Down, NGUI Mouse Up, NGUI Mouse Enter, NGUI Mouse Exit. There's a checkbox to hide all NGUI events as well.
		 - Added to EventSounds: StopAllSoundsOfTransform, StopSoundGroupOfTransform, PauseAllSoundsOfTransform, PauseSoundGroupOfTransform, UnpauseAllSoundsOfTransform, UnpauseSoundGroupOfTransform, FadeOutSoundGroupOfTransform. 
		 - Fixed Start event in EventSounds for Playlist Control commands: PlayClip, PlayRandomSong, PlayNextSong, Pause, Stop. They didn't work with non-persistant Master Audio prefab.
		 - Fixed bug: Sync Group code to align layered Playlist Controllers got overwritten by song transition code - didn't syncrhonize layers properly.
		 - Fixed bug: At zero time scale and zero crossfade, Playlist Controller wouldn't advance to the next song.					
																																
-V 3.4.9 - Added optional package MA_DFGUI for Daikon Forge GUI integration. Created DF_ButtonClicker script. It works exactly the same as the included ButtonClicker, but is for DF-GUI instead of NGUI.
		 - Made a new version of EventSounds for DFGUI users. It's in the MA_DFGUI package. It adds the following events: DFGUI Click, DFGUI Double Click, DFGUI Mouse Down, DFGUI Mouse Up, DFGUI Mouse Enter, DFGUI Mouse Leave, DFGUI Drag Start, DFGUI Drag End.
		 - Turned off "log everything" and Fast GUI Refresh in Master Audio for default settings.
		 - Renamed "Mouse Click" event in EventSounds to "NGUI Mouse Click".
		 - Fade Group To Volume now works with zero time scale.
		 - Fade Bus To Volume now works with zero time scale.
		 - Fade Playlist To Volume now works with zero time scale.
		 - PlaySound commands now work with all options at zero time scale.
		 - LED's on mixer now work with zero time scale.
		 - Made Master Mixer Volume, Master Playlist Volume and Master Crossfade Time controls in Master Audio Inspector able to accept typing in the value.
		 - Fixed bug: Fading a playlist with less then full Master Playlist Volume doesn't hit the right target volume on the individual playlist.

-V 3.4.8 - Greatly improved all other Inspectors performance (unnecessary "repaint" was there).
		 - Fixed the performance hiccup on streaming songs when changing songs on PlaylistController (CoRoutine now used).
		 - Improved performance hiccup on Resource loading.
		 - Added "Fire Custom Event" Playmaker Custom Action (the EventSounds no code action already existed but not Playmaker).
		 - Fixed bug where pausing a SFX would not let it resume when unpausing the Sound Group.
		 - Added PauseMixer, UnpauseMixer, StopMixer, StopEverything, PauseEverything, UnpauseEverything, MuteEverything, & UnmuteEverything methods. The "Everything" methods affect all Sound Groups and Playlists as well.
		 - Added Playmaker Custom Actions: MasterAudioMixerPause, MasterAudioMixerStop, MasterAudioMixerUnpause, MasterAudioEverythingMute, MasterAudioEverythingPause, MasterAudioEverythingStop, MasterAudioEverythingUnmute, MasterAudioEverythingUnpause
		 - Added Global Command action type to EventSounds. Global Command types are: PauseMixer, UnpauseMixer, StopMixer, StopEverything, PauseEverything, UnpauseEverything, MuteEverything, UnmuteEverything 
		 - Now showing the full path and file extension for all clips in the Clip Manager window when you hover over the Clip Name column.
		 - Now in the Clip Manager window, auto-selecting the audio clip when you modify any field, and showing the clip properties in the Inspector.
		 - Deleted upgrade wizard and deprecated classes in Dynamic Sound Group Creator.
		 - Upgrade note: Please check your settings for random pitch in all Variations and take note of what they are before upgrading - they will be lost. Now there are 4 settings: Use random pitch, random pitch min, random pitch max, and Pitch compute mode: choices are Add to clip pitch (default) and Ignore clip pitch.
		 - Upgrade note: Please check your settings for random volume in all Variations and take note of what they are before upgrading - they will be lost. Now there are 4 settings: Use random volume, random volume min, random volume max, and Pitch compute mode: choices are Add to clip volume (default) and Ignore clip volume.

-V 3.4.7 - Removed the 2 methods in MasterAudio.cs that have been deprecated for a few months now.
		 - Added a new Master Audio Clip Manager tool under the Window menu. This lets you see all your project's Audio Clips, and do bulk operations on them like change sample rate, load type, etc.

-V 3.4.6 - Note: Please delete the Master Audio folder before upgrading to this version or some files may not be in the right place.
		 - Breaking change: Added the ability to specify multiple actions to trigger in Event Sounds script for each event, which get executed in order when the event occurs. By "breaking change" I mean that any EventSounds settings you had set up before will be lost after upgrading. You'll need to set them up again. This was unavoidable. So take note of what you have before upgrading.
		 - Fixed bug: SoundFinished callback in Variation didn't clear the subscription when calling it. This caused bugs when loading a Scene after the sound is finished (3 callbacks occurred).
		 - Added MutePlaylist, UnmutePlaylist and ToggleMutePlaylist methods to PlaylistController and MasterAudio.
		 - Added Playlist Mute, Playlist Unmute and Playlist Toggle Mute Playmaker Custom Actions.
		 - Added Playlist Mute, Playlist Unmute and Playlist Toggle Mute to EventSounds.
		 - Changed normal logging of sounds (diagnostics) to info instead of warnings (white text).
		 - Moved icon back to top-level Gizmos folder because it wasn't working for the EventSounds components.

-V 3.4.5 - Fixed bug: Removal of a new bus Dynamic SGC threw an error. 
		 - Fixed bug: When changing to a different Playlist, the first song should always start at the beginning. It did not, depending on Song Transition Type.
	 	 - Added temporary / dynamic Playlist creation to Dynamic Sound Group Creator prefab. You cannot add to an existing Playlist though.

-V 3.4.4 - Added RemoveItems method to Dynamic Sound Group Creator script. You can manually call this if you don't want to wait before the end of the Scene (or when the Dynamic SGC is disabled) to remove all the temporary items.
	 - Fixed bug: Dragging songs into playlist clip section in Resource File mode didn't populate their folder name.
	 - Fixed bug: Dragging clips into Variation Inspector in Resource File mode didn't populate their folder name.
	 - Fixed bug: Dragging clips into Sound Group Inspector in Resource File mode didn't populate their folder name.
	 - Fixed bug: An all resource file Playlist gives errors when playing tracks from it.
	 - Fixed bug: Playlist fading had divide by zero error if already at zero volume.
	 - Redid Hierarchy "M" renderer for much better performance. Thanks to user Bryan Wilkins for sending me the fix!
	 - Updated 2D Toolkit integration package to work with latest 2DTK. It was broken.
	 - Made resource file playlist clip "names" able to play them without specifying the resource folder name. Just the clip name. 
	 
-V 3.4.3 - Add optional fade out time for dialog variation mode. Now you can have the previous dialog clip fade out while the new one starts.
	 - Fixed bug where a Variation's FadeOutNow command wouldn't work if it was already fading (called twice quickly).
	 - Made a friendlier error when you have a custom property drawer with no MA in the scene. No Null Exception.
	 - Added MasterAudio.CreateGroupVariationFromClip method to create additional variations at runtime.

-V 3.4.2 - Changed Master Audio logging info to warnings instead of errors.
		- Added MasterAudio.ChangeBusPitch method, which changes the pitch of all Variations in all Sound Groups in a bus.
		- Added MasterAudio.ChangePlaylistPitch method, which changes the pitch of all songs in a Playlist. This does not affect any already playing clips however.
		- Bug fix: Retrigger Percentage should be ignored for Chained Loop Sound Groups. Made this work properly and hid the Retrigger Percentage for Chained Loop types.
		- Bug fix: made Replay Limit Mode ignored when not in normal Variation Mode, where it's not visible.
		- Bug fix: made Limit Polyphony ignored when not in in normal Variation Mode, where it's not visible.
		- Added 3rd Variation Mode to Sound Groups: "Dialog". This stops all other Variations in the Sound Group whenever you play one. This is very useful for a single character's dialog and makes sure they're only saying one thing at a time. Normal mode doesn't work properly for this without calling StopAllOfSound every time you play the Sound Group to be sure.

-V 3.4.1.9 - Added option to Master Audio Inspector "fast GUI refresh" which defaults to on. You can uncheck it for less intensive CPU usage.
		   - Fixed icons. Play icon was in place of speaker icon for previews.

-V 3.4.1.8 - Attention: Please delete the following folder: MasterAudio/Sources/Textures. They have been moved to Editor Default Resources so they won't take up room in builds.
		   - Added method: FadeOutSoundGroupOfTransform to MasterAudio. This operates on all sounds following or triggered at the location of a given Transform.
		   - Revised WasTriggeredFromTransform method to include embedded Audio Listener objects as well for that scenario.
		   - Fixed a bug to allow playing of samples backward, using negative pitch. Note that this only works when loop is turned on for the clip, otherwise nothing is heard. Unity only allows it when that's on. I have no idea why.
		   - Fixed bug where dragging Resource files into a Playlist wouldn't use the folder name, so the song wouldn't load at runtime.

-V 3.4.1.7 - Optimized CoRoutine speed by creating the yield instruction up front.
		   - Fixed bug where ducking did not work when playing Resource file clips.
		   - Added MasterAudio methods StopAllSoundsOfTransform and StopSoundGroupOfTransform. These stop all sounds following or triggered at the location of a given Transform.
		   - Added MasterAudio methods PauseAllSoundsOfTransform and PauseSoundGroupOfTransform. These pause all sounds following or triggered at the location of a given Transform.

-V 3.4.1.6 - Breaking Change: Make sure you delete your "MasterAudio Icon" in the top-level Gizmos folder before updating. It has been moved to an inner folder.
		   - Breaking Change: Makre sure to delete GUIHelper.cs from the MasterAudio/Editor folder. It has been renamed to DTGUIHelper.cs for a naming conflict with another plugin.
   		   - Fixed bug where AudioResourceOptimizer would lose track of where resource files were located when populating.
		   - Added SongEnded event you can subscribe to in PlaylistController. 
		   - Added a DelayBetweenSongs script you can use to have a random delay between songs in a PlaylistController. You must turn auto-advance off for the controller for this to work properly.
		   - Changed MasterAudioManager window to use PrefabUtility.Instantiate so that prefabs created will be linked to the Master Audio source prefabs.
		   - Performance increase for Resource files! Asyncronous loading of resource clip so it doesn't cause as much frame rate drop while loading (sometimes none now).

-V 3.4.1.5 - Fixed bug where songs in a playlist not set to auto-advance would not fade out when "fade out last song" was checked.
	   - Fixed bug where the pitch of already playing Variations was not affects by ChangeVariationPitch Playmaker Custom Action (or calling it from code).
		   - Auto "Fade out last song" in Playlist Controller now puts the volume of the Controller back to pre-fade volume after the fade.
		
-V 3.4.1.4 - Fixed bug where a single bus on a Dynamic SGC sound would cause an error when the scene changed.
		- Breaking Change (only if you're calling it from your code) 
		- changed MasterAudio.CrossfadeTime property to MasterAudio.MasterCrossfadeTime
		- Relabeled Crossfade time on Master Audio Inspector to Master Crossfade Time.
		- Added "every frame" to all Playmaker custom actions where it makes sense (only about 5).
		- Added controls to override the Master Crossfade Time on each playlist (or not).
		- Added checkbox to each playlist for "fade in first song" and "fade out last song".
		- Functionality change: you now must have the "fade out last song" checkbox checked for the last song to fade out. Before it always did.
		
-V 3.4.1.3 - Changed the default 3D settings of SoundGroupVariations to match the other Audio Sources used by Master Audio for consistency.
	   - Fixed bug with CoRoutine never ending with custom fade times and FadeOutAllOfSoundGroup called.
	   - Fixed C# comments and intellisense for deprecated PlaySound3D methods.
	   - Fixed bug where Auto-advance with 1 clip in a playlist tries to crossfade same song.
	   - Fixed bug where resource clips in a playlist were not released auto-advance is turned off.
	   - Fixed caching problem with Playlist Controller Inspector. It wouldn't always show the latest Playlists in the dropdown.
	   - Fixed bug where extra Audio Manager RAM was used when MasterAudio Inspector is selected in Hierarchy (jukebox section).
	   - Fixed bug where deleting a Sound Group from the Master Audio Inspector wouldn't remove the duck group.
	   - Major performance increase in the code that makes the AudioUpdater follow (embedded AudioListener on caller triggers this).
       - Changed list of sound sources back to Dictionary (performance increase).
	   - As a side effect of the item above, all PlaySoundByIndex methods are removed.
	   - Made EventSounds playlist controller functions with no Playlist Controller name specified "just work" if there's only one Controller, in a Boostrapper Scene configuration.
	   - For Unity 4 users, we have added a CustomPropertyDrawer attribute of "SoundGroupAttribute", so you can decorate public strings that are Sound Groups in your Inspectors like this: [SoundGroupAttribute] public string laserSound;
	   - Added "Controller Sync Group" field to Playlist Controllers. It's optional and is a number 1-4. If you assign a number, then whenever a new song is played, it's time will be set to the first matching Playlist Controller's (with the same Sync Group and a clip playing) time marker. This will also help align layered Resource clips more precisely.

-V 3.4.1.2 - Added a "loop playlists" checkbox to Playlist Controllers, defaults to on. If you turn it off, the Playlist will crossfade out the last song and stop.
		   - Fixed bug: FadePlaylistToVolume doesn't use the right time when Master Playlist Volume is < 1.
		   - Added new Playmaker Custom Action "MasterAudioPlaylistGetCurrentClipName", which stores the result in a string variable for your use.

-V 3.4.1.1 - Added a method to get the length in seconds of a Variation, taking pitch into account. MasterAudio.GetVariationLength(string soundGroupName, string variationName);
	   - Fixed compile error from missing AudioUpdate file.

-V 3.4.1 - Added controls to specify number of loops for chained loop Groups instead of only endlessly looping.

-V 3.4 - Added a random delay min and max fields to each Variation. If you use these, an additional random delay will be used before the sound is heard. I say additional becuase this is on top of any random chained loop delays or delay times you pass into PlaySound methods or specify with EventSounds.
	- Added Bootstrapper Scene / Game Scene to the example scenes folder. This shows you how to set up per-scene sounds and music that can play across scenes!

-V 3.3.9 - Updated ButtonClicker (NGUI event script) to include OnHover and OnClick events as well. Thanks to Mike Breitkreutz for providing this update!
	 - Added QueuePlaylistClip method to MasterAudio and PlaylistController. This allows you to play a song after the current song reaches the end. Loop is turned off for current song. Requires auto-advance to be on. You can add as many songs as you like to the queue and they will be played in order. Queued clips are all cleared when you change Playlists.
	 - Made playing a variation by name find a non-busy Variation before giving up. Before it only looked at the first one it found.
	 - Added display of active playing voices to each SoundGroup in the mixer, and a total at the bottom. When polyphony limit is reached, number is red.
	 - Fixed Bus voice limit feature. It didn't work properly if you had more than one Group assigned to that bus.
	 - Added display of bus active voices. When bus voice limit is reached, number is red.

-V 3.3.8 - Fixed bug where PlaySound "AndForget" methods would not take a played Variation out of the randomizer. Not as random as it should be!
	 - Fixed PlaySound "AndForget" methods to try all remaining Variations when the first one tried is busy.
	 - Fixed ducking to work with "AndForget" methods.
	 - Fixed Equalize Clip Volumes function to not assign zero volume and NaN volumes when one of the clips was streaming or compressed.
	 - Added missing Resource folder detection to Group Variation and Dynamic SGC Variation Inspectors when in Resource folder mode.
	 - Made random Variation pool refilling work by adding items back to random pool by ascending last played date. This way the when the first chosen is busy, the others will be tried in last played order. Most likely to work on second try.
	 - Updated Playmaker Custom Actions to inclide a TooltipAttribute so they will still work on Unity 4.5.
	 - Added a patch to update location more frequently when the Variation is following a prefab with the Audio Listener in it.

-V 3.3.7 - Fixed bug where calling a PlaySound "AndForget" method would play all Variations!
	 - Fixed mislabeled "Hierarchy View" warnings that were actually Project View.
	 - Fixed "Windows App Store" compilation error hopefully.

-V 3.3.6 - Fixed bug (again) where Calling MasterAudio.StopAllOfSound would not cancel scheduled sounds that haven't started playing (delay parameter > 0).
	 - Fixed it so that when you change playlists on a Playlist Controller, cross-fading still works.
	 - Fixed Dynamic SGC so that in Project view you cannot click "Upgrade data" or drag-create groups, since those don't work there. It tells you to drag the prefab into the scene instead, when selected.
	 - Fixed MasterAudio prefabs so that in Project view you cannot click "Upgrade data" or drag-create groups, since those don't work there. It tells you to drag the prefab into the scene instead, when selected.

-V 3.3.5 - Fixed bug where Chained Loop Groups no longer worked properly after V 3.3.4
	 - Added Clip change delay min & max for Chained Loop groups. This will specify a range for random pausing between the chained clips. 

-V 3.3.4 - Upgraded the optional AudioSource prioritizer to include clip age (time since clip started) in priority calculation. This is all optional, and settable per Sound Group.
	 - Added an optional callback method to MasterAudio.FadeSoundGroupToVolume so you can execute code when the fade is finished.
	 - Added an optional callback method to MasterAudio.FadeBusToVolume so you can execute code when the fade is finished.
	 - Added a Text Group Filter field to the mixer section so you can type a wildcard part of a Sound Group name and filter all results to only those that match.
	 - Added many new PlaySound methods: PlaySoundAndForget, PlaySound3DAndForget, PlaySoundAtTransform, PlaySoundAtTransformAndForget, PlaySoundFollowTransform, PlaySoundFollowTransformAndForget. The "AndForget" methods don't create a PlaySoundResult (return type is void). Marked PlaySound3D methods as deprecated. You will need to change those to PlaySoundAtTransform or PlaySoundFollowTransform to be able to compile.
	 - Updated EventSounds and Playmaker Custom Actions to use the new PlaySound methods.
	 - Performance upgrade, got rid of repeatedly called CoRoutine in PlaylistController. Now there are no more of these in MA.
	 - Added checkbox for "Log Missing Events" on EventSounds. Defaults to on. If you are creating Custom Events during, turn this off if you want to use them in that EventSounds script.
	 - Fixed bug where manually calling CreateItems on Dynamic SGC would not do anything in certain cases.
	 - Fixed example scene so that the Dynamic Sound Group Creator clip is not missing.
	 - Added Disable Logging checkbox for release builds.
	 - Calling MasterAudio.StopAllOfSound now will cancel scheduled sounds that haven't started playing as well (delay parameter > 0).

-V 3.3.3 - Added numerous performance upgrades. Note: you now need to check if PlaySoundResult is not null before checking it's SoundPlayed, SoundScheduled and ActingVariation properties or you will get a null reference error.

-V 3.3.2 - Added button at top of Dynamic SGC Group to go back to Dynamic SGC (quick navigation).

-V 3.3.1 - Breaking Change: If you don't want to start from scratch with your Dynamic SGCS by deleting them and recreating from Master Audio Manager window, switch to debug mode in the upper right of the Inspector, then drag the 2 "Dymamic" templates from Sources/Prefab into the debug mode of Dynamic Sound Group Creator prefabs you are using. While you're at it, drag the 4 new icons to their places. Delete Texture field = Sources/Textures/deleteIcon, Settings Texture field = Sources/Textures/gearIcon, Play Texture field = Sources/Textures/speakerIcon, Stop Track Texture = Sources/Textures/stopIcon, Group Template field = Sources/Prefabs/DynamicSoundGroup, Variation Template field = Sources/Prefabs/DynamicGroupVariation. Then switch back to normal mode and you're good without losing your work.
	 - Added full bus controls to Dynamic Sound Group Creator.
 	 - Added full 3-level hierarchy to Dynamic Sound Group Creator, just like the Master Audio prefab. Now you can specify filter FX per Variation. 
	 - Old configuration for Dynamic Sound Group Creator is no longer shown or used. However there is a "Upgrade Data" button to migrate it into the new format.
	 - Also logging a red error in the console if you attempt to run with "old data" Dynamic SGC telling you to click "Upgrade Data" to fix it.
	 - Fixed Dynamic Sound Group Creator and Sound Group Variations so that custom rolloff curves work with the weight property. Previously this was broken.
	 - Made all "previewing-only audio sources" lowest priority always.

-V 3.3 - Cranked up AudioSource priority of PlaylistController's 2 to the max. Music should never be muted by SFX. Ducking can handle "soft muting".
       - Added Experimental feature "auto-prioritize by distance" added. It defaults to off. Turning it on means sounds played 2D and PlaylistController Audio is top priority. Everything else (3D SFX) is given a sliding priority based on distance from AudioListener so Unity can decide to mute the lower-priority sounds when more than 32 voices are playing (Unity limit). 
       - Added a control for how often sounds that are following a "sound-maker" are re-evaluated for priority. That defaults to 0.1 seconds and can go up to 1 second.

-V 3.2 - Added Custom Events to MasterAudio. You can receive or send the events with EventSounds or any other script, any number of receivers. No coding required if using EventSounds!
       - Fixed incorrectly pathed images in Master Audio Manager window.
       - Fixed bug where EventSounds didn't allow Unity 3 users to use delay sound.
       - Fixed bug where cross-fade "fading clip" would jump down in level suddenly if Master Playlist Volume or Playlist Controller volume were not full.
       - Added per-Scene Custom Events to Dynamic Sound Group Creator.
       - Added missing pan level 3D setting into Dynamic Sound Group Creator.
       - Added constant variable for path to MasterAudio folder for people who move it around. Changing this in one place (MasterAudioManager.cs) will ensure everything works fine.
       - Added MasterAudio icon to the Hierarchy to find MasterAudio prefab quickly.
       - Changed color of collapsible section and made it different colors when expanded or collapsed. More intuitive.

-V 3.1.9 - Fixed broken Add Duck Group Playmaker Custom Action.
	 - Fixed bug where playing the same clip in a Playlist Controller would cause the Playlist to stop after cross-fading.
	 - Fixed bug where crossfading wouldn't work right after a couple crossfades. This was introduced in V3.1.8 accidentally.
	 - Fixed bug where changing synchronized Playlist clip during a cross-fade wouldn't keep the time in the new clip.
	 - Added JumpToTime method to SoundGroupVariation to jump to a specific time in an already playing Audio Clip.

-V 3.1.8 - Fixed bug where Playlist auto-advance to the next song didn't work when timeScale is set to zero.
	 - Added setting for default begin ducking percentage, which will be used for any new groups you add to Ducking.
	 - Added configurable begin ducking time in Dynamic Sound Group Creator groups, defaults to the default begin unduck percentage if MA prefab can be located in the Scene.

-V 3.1.7 - Added Resource file support to Playlists! Automatic memory management, same as Sound Groups. Drag and drop!
	 - Fixed unneccessary error in Playlist Controller when no Playlist is set up.
	 - Fixed bug where a looped Sound Group Variation would fade out before looping. Looped clips should ignore fade out time. Also put a note in the UI so the user knows this.
	 - Added Variation Sequence to Dynamic Sound Group Creator inspector, same as Sound Group.
	 - Added Variation Mode to Dynamic Sound Group Creator inspector, same as Sound Group.
	 - Removed all 6 Filter FX from SoundGroupVariation template. They take up memory even when not used.
	 - Added a button in Master Audio Manager window to delete all unused Filter FX Components from the MasterAudio hierarchy.
	 - Added a dropdown in Variation's Inspectors to quickly add any of the 6 Filter FX Components to the Variation.
	 - Added more obvious red highlighted rows to differentiate setup errors from the green notes that tell you non-error helpful hints.

-V 3.1.6 - Added GetSoundGroupIndex method to MasterAudio.
	 - Fixed Start event sound triggering. This broke when I added bus voice limit controls.
	 - Fixed bug where Variation following of the "sound maker" didn't continue after the clip looped.

-V 3.1.5 - Fixed bug where prefabs for Master Audio Manager window weren't found.
	 - Made SoundFinished event for Variations only trigger when the clip has stopped. Before it would trigger when the clip had re-looped as well.
	 - Moved preview buttons in Variation up to a bar up top. Added a button there to go "back to group".
	 - Removed rename Variation controls in Group Inspector. Moved other controls up to the title of the Variation to match Variation Inspector.
	 - Fixed Win8 phone compilation bug with platform-specific compilation.
	 - Fixed bug when clicking Equalize Volume where having more than one clip with the same average volume would cause an error in the console.

-V 3.1.4 - Fixed bug with bus voice-limiting code.
	 - Fixed bug where PauseSoundGroup and UnpauseSoundGroup didn't work with Dynamic Sound Group Creator sounds.
	 - Made a setting to allow unpausing paused Resource file clips. Defaults to off and will unload a Resource file that's paused.
	 - Added a method to add songs to a Playlist through code.
	 - Added bus filter dropdown to Group mixer section to only show Groups in the selected bus from a dropdown.
	 - Added overloaded methods of PlaySound and PlaySound3D, which will take soundGroupIndex (int) instead of string sType - only advised if you have an enum defined in your code, can convert it to an int and keep track of the numbers when orders change (it's alpha sorted).
	 - Added new Playlist Song Transition Type of "New Clip From Last Known Position", which will start a song from the place it last cross-faded from if it's been previously played. If not, it does new clip from beginning on that song. Note that your previous settings of "Synchronize Clips" will turn into this new option, so go re-select Synchronize Clips again after updating.

-V 3.1.3 - Made the Variations show up in the Group Inspector in alphabetical order, same as Hierarchy.
	 - Added Variation Sequence dropdown to the Group Inspector. Choices are Randomized (default), and Top To Bottom.
	 - Added a "Refill Variation Pool after inactive time" optional field that shows up when you choose Top To Bottom for Variation Sequence. This will automatically refill the Sound Group Variation Pool after not playing the Sound Group for X seconds.
	 - Added a RefillSoundGroupPool method to MasterAudio. This method allow you to refill the pool of the Variation sounds for a Sound Group. That way you don't have to wait for all remaining random (or top to bottom) sounds to be played before it refills.
	 - Added StopBus command to MasterAudio, a Playmaker custom action for it, and to Event Sounds.

-V 3.1.2 - Breaking change: Added a container folder "DarkTonic" for the top-level Master Audio folder. This way we're able to avoid duplicate class errors from UndoHelper if you use more than one of our products. When upgrading to this version, please delete the Master Audio folder first or create a "DarkTonic" folder in Assets and move the Master Audio folder into it before upgrading.
	 - Added an "Equalize Song Volumes" button in the Playlist section that you can click to mathematically even the volume of all songs in a Playlist.
	 - Added an "Equalize Variation Volumes" button in the Playlist section that you can click to mathematically even the volume of all Variations in a Sound Group (from the Sound Group Inspector).
	 - Changed the color of the Playlist divider so it looks different than the song divider and users don't get confused what they're editing.
	 - Changed the color of the Group divider in Dynamic Sound Group Creator so it looks different than the Variation divider and users don't get confused what they're editing.
	 - Added a very simple Playmaker Scene into the optional Playmaker package.
	 - Bug fixed: FX Filter tails were cut off promptly when non-looping sample ended. Now you have an optional field "FX Tail Time" that you can set to allow for as long as you like. This only shows up and does anything when you have one or more FX Filters active on the Variation. Defaults to zero.
	 - Added Particle Collision event to Event Sounds.
	 - Added a voice limit field for buses. It default to unlimited, but you can set it to any number from 1-32.

-V 3.1.1 - At the end of Playlist gradual fade, made an optional callback method you can pass a delegate to.
	 - Added a PlaySound3D method that takes a Vector3 and plays the sound from that location.
	 - Clicking on the MasterAudio + Synkro header image in all Inspectors will take you to the Master Audio prefab in the scene.
	 - We no longer show a "no Master Audio" error in the Console when in edit mode, only while Playing.
	 - Fixed bug where "StopPlaylist" would actually fade it out. Stop Playlist now stops the Playlist instantly.
	 - Fixed bug in calculation of crossfade start time when pitch not equal to 1.
	 - Fixed bug where if a random variation is "busy", it didn't pick a different one instead of failing.
	 - Clicking Play button on Jukebox will start the playlist over if it's stopped. Before it only worked for unpause.
	 - Added "Log Sound" checkbox to Sound Groups. You can now log a single Sound Group's events if that's the one you're troubleshooting.
	 - Added a preview sound icon (and stop preview icon) to Playlist setup section. Works in edit mode.
	 - Added a preview sound icon (and stop preview icon) to Mixer section. Works in edit mode.
	 - Added a preview sound icon (and stop preview icon) to Group Inspector. Works in edit mode.
	 - Added a preview sound icon (and stop preview icon) to Variation Inspector. Works in edit mode.
	 - Added a preview sound icon (and stop preview icon) to clips in Dynamic Sound Group Creator. Works in edit mode.
	 - The preview sound buttons work in edit mode even when using Resource file clips!
	 - Fixed a bug where going to a scene with no Playlist Controller gave an ugly error if you had one in the previous scene. Now it's a useful error if that happens.
	 - Please delete AudioManager.cs in the MasterAudio/Editor folder when upgrading to this version as this file has been renamed. There was a bug on Mac with a name conflict.
	 - Made audio previewing respect the Variation or Playlist song volume.
	 - Added PlaylistState property to PlaylistController. Return values are: NotInScene, Stopped, Playing, Paused, Crossfading. Also now displaying this in the Jukebox.

-V 3.1 	 - Added multiple Playlist Controller support. Auto-advance, repeat playlist, shuffle & start on awake have been moved into each Playlist Controller. You will lose those global settings.
         - Added 2D collision, 2D Trigger Enter & 2D Trigger Exit events to Event Sounds script. 
	 - Fixed "attach to caller" bugs by not really attaching as a child. We just follow its location.
	 - Added 2D Tookit support to Master Audio. It will update tk2dUISoundItem, its Inspector so you can select Sound Groups, and tk2dUIAudioManager in place if you haven't moved the default folders.
	 - Reverb and other FX trails will not get cut off anymore when caller despawns or gets destroyed.
	 - Added optional minimal mode to Event Sounds, so it only shows the events you're using, then you can add an event by choosing from the dropdown.
	 - Added a checkbox to EventSounds to show PoolManager events or not. Defaults to off.
	 - Added code to get the full Resource path including folder when creating Variations in Resource file mode.
	 - Added checkbox in Event Sounds to do selected Group or Bus command to All Groups or All Buses.
	 - Each Playlist Controller now has its own master volume as well, which works to lower against the Master Playlist volume in the MA prefab.
	 - You also select the initial playlist to play in each Playlist Controller.
	 - Playlist Start By Index, NextPlaylist and PreviousPlaylist commands and Playmaker Custom Actions are removed. They don't make sense in the multiple Playlist controller paradigm. Please delete the Master Audio Playmaker Custom Actions folder and re-import the new package, which doesn't have those.
	 - Added slider for time-jumping on the Jukebox. 
	 - Jukebox now shows one jukebox for each Playlist Controller.
	 - EventSounds Playlist UI updated to support multiple Playlist Controllers.
	 - Playmaker Playlist custom actions updated to support multiple Playlist Controllers.
	 - Added "all Playlist Controllers" checkbox to Event Sounds Inspector Playlist applicable actions.
	 - Added Music Ducking Toggle Playmaker custom action.
	 - Added "all buses" checkbox for Bus Playmaker Custom Actions.
	 - Added "all groups" checkbox for Sound Group Playmaker Custom Actions.
	 - Added "all playlist controllers" checkbox for Playlist Playmaker Custom Actions.
	 - Added volume of Playlist Controller to Jukebox.
	 - Added song drop-down to Jukebox instead of text display of active clip so you can change to the clip you want during runtime.
	 - Moved cross-fade time up to the top section next to the Jukeboxes.
	 - Added stop icon to Jukebox.
	 - Added Playlist Controller setup section in Playlist settings section in MA prefab. You can set initial playlists and volume there, also has a gear icon to go to the Controller prefab for the rest of the settings.
	 - Synchronized playlists now means auto-advance not allowed, and all tracks in that Playlist will loop. This fixes numerous bugs.
	 - Added a checkbox for Button Clicker NGUI script to choose "resize on click" or not.
	 - Added a mute button for each Playlist Controller and a "Master Playlist Controller Mute" up top by the Master Playlist Volume slider.
	 - Added an event you can subscribe to in each Playlist Controller to be notified when the song changes to a new one.

-V 3.0.1 - Added Master Audio 3D Gizmo (M icon) to all Variations. 
	 - Added toggle-able 3D Gizmo for Event Sounds component as well. Defaults to on.
	 - Added Variation Mode and Variation Name so you can play a specific Variation by name with Event Sounds.
	 - Fixed bug where adjusting Group, Bus or Mixer volume would give you warnings about null Audio Sources.
	 - Made all Playlist Controllers static - first step toward multiple Playlist Controllers.
	 - Removed support for non-Playlist Controller simple music ducker (sorry to the one person who is using this).
	 - Moved Ducked Volume Multiplier property into Master Audio prefab. You will lose your value for this when you update, so take note of it.
	 - Moved Cross-fade Time (playlist) into Master Audio prefab. You will lose your value for this when you update, so take note of it.
	 - Moved Master Playlist Volume into Master Audio prefab. You will lose your value for this when you update, so take note of it.
	 - Removed all unnecessary static variables - this is a code optimization and will improve memory usage!

-V 3.0.0 - Added playlist "Jukebox" up top on Master Audio prefab at runtime only, with pause, next, play, random, and playlist selection buttons. Also shows what's playing and cross-fading.
	 - Added LED's that light up briefly on the mixer for each Sound Group each time a Variation in that Group starts playing.
	 - Added full undo support to every Inspector action (Unity 4.3+ only).
	 - Fixed bug where some Audio Source properties of extra pooled Variations were not copied at runtime.
	 - Fixed bug where delayed sounds wouldn't report sound completed.
	 - Fixed bug where moving a Group slider when not Playing would log an error.
	 - Fixed bug where Audio Filter FX would be disabled permanently after attaching a Variation to an object that got disabled.
	 - Fixed bug where Variations would be destroyed after attaching to an object that was destroyed by Unity when the Scene changed.
	 - Changed delay sound code so it works on Unity V3.5.7 as well!
	 - You can now turn on debug logs during play.
	 - When bus is muted, don't allow muting or soloing of any of the those sound groups. That way the bus mute status and bus solo status are preserved and not partially muted or soloed. Logs a warning so you know what's happening.
	 - When putting a group into a muted or soloed bus, the group gets soloed or muted automatically as appropriate via the bus.
	 - Changed Master Audio Volume label to Master Mixer Volume.
	 - Added playlist volume to MA prefab at top under Master Mixer Volume. 
	 - Added Playlist Cross-fade time to Playlist settings on MA prefab.
	 - Can now adjust ducking volume multiplier in real-time.
	 - Added ducked vol multiplier to ducking section on MA prefab.
	 - Now no reason to ever have to go to the Playist Controller prefab! Its controls are on MA prefab.
	 - Made section up at top with Mute Mixer button (all Sound Groups).
	 - Added commands for Solo Bus, Unsolo Bus, Mute Bus and Unmute Bus.
	 - Added new bus commands to Event Sounds for no-code triggering.
	 - Added new bus commands to Playmaker Custom Actions for no-code triggering.
	 - Variations now automatically re-parent back to the Sound Group when finished playing or stopped (if not looped).
	 - Added AdjustVolume method to Variations which can be used to adjust the volume of a sound already playing, taking into account the bus, group and mixer volume.
	 - Added convenience "lazy load" properties for the 6 Unity Filter SFX to the Variation object. You can access them after playing a sound.

-V 2.9   - Fixed bug where Audio FX Filters weren't duplicated to the other pooled instances at runtime.
	 - Now including all 6 FX Filters by default (turned off) in each Variation for your convenience.
	 - Added all Playlist functions to EventSounds for no-code control of Playlist!
	 - Added all Sound Group functions to EventSounds for no-code control of Sound Group as well (solo, fade, mute, etc)!
	 - Added all Bus functions to EventSounds for no-code control of Buses as well (fade, pause, unpause)!
	 - Added "Looped Chain" variation mode to Sound Groups. It will act as a mini-playlist and randomly play all clips in a looped fashion if selected.

-V 2.8.8 - Fixed warning for Start sound in Event Sounds when playing a sound from DSGC.
	 - Fixed bug where Dynamic Sound Groups would throw an error on non-Resource clips being removed on Scene change.
 	 - Fixed bug where Dynamic Sound Group Resource clips would not be loaded the 2nd time you visit the same scene.
 	 - Added SoundGroupExists method to check for completion of Dynamic SGC groups. Used by Event Sounds script.
	 - Now removing reference to Audio Clip from Inspector when using Resource file clips to eliminate unnecessary memory usage.

-V 2.8.7 - Fixed bug where playing a Resource sound file caused error when clip (for non-Resource) wasn't empty.
	 - Fixed bug where playing the same Resource file again before it unloaded caused an error.
	 - Removed the warning for "busy cross-fading" when playing a new song during that time and now allow it to happen.
	 - Re-enabled Resource file support for Dynamic Sound Group Creator.
	 - Added Bulk Variation Mode to choose between Resource file and audio clip mode when dragging clips into Master Audio.
	 - Added Bulk Variation Mode to Master Audio Group as well.
	 - Added Variation Mode (same as Bulk Var Mode but global there) to Dynamic Sound Group Creator.
	 - Added drag area for Resource files when in Resource file mode for Variations. It will take the filename.
	 - Added "Song Transition Type" for Playlists. Choices are "new song from beginning" and "Synchronize clips". If you choose Synchronize clips, going to next or random song will start the new clip at the same position (time) the previous clip was at.

-V 2.8.6 - Memory usage improvements!
	   1) Audio played from Resource files is now loaded only when played in the Variation, simultaneously into all Variations that reference it. When none are using it anymore, it is unloaded from memory.
	   2) Variations are now stopped after completion (they were showing up as playing still in the 3.5.7 Profiler. Weird I know).
	 - Removed auto-capitalization of Sound Groups and Variations.
	 - Fixed bug where Destroying an object with a Variation childed under it would destroy the Variation.
	 - Small breaking change: Changed DetectSoundFinished delegate notification. Check the documentation for new way.
	 - Removed resource file support for Dynamic Sound Group Creators. Now that they are loaded and unloaded automatically, it doesn't matter if you include them in the main Master Audio Sounds Groups in every scene.

-V 2.8.5 - Added Stop method to SoundGroupVariation to stop a specific looped variation. Also made fade out code stop clips when zero volume is reached.

-V 2.8.4 - Added code to automatically add variations added in bulk in Dynamic Sound Group Creator in alphabetic clip name order.
		- Added a button to Dynamic Sound Group Creator to alpha sort the variations under a Group.
		- Added up and down arrows to variations in Dynamic Sound Group Creator so you can rearrange them in whatever order you like.

-V 2.8.3 - Added "Owner" field to PlaySound custom action.
	 - Removed Retrigger Percentage from Master Audio prefab. 
	 - Added Retrigger Percentage to each Sound Group's Inspector for that Sound Group only. Removed "never interrupt" setting as this is more flexible.

-V 2.8.2 - Breaking change: please delete all Sound Groups from Music Ducking section in Master Audio prefab before upgrading. New ducking features added!
	 - Removed "Rise Vol. After %" from Playlist Controller ducking section - replaced with a per group setting in sound ducking section in Master Audio prefab.
	 - Fixed bug: you could not type in a Sound Group name for Event Sounds after choosing one from the dropdown. This was not good for dynamically created Groups.
	 - Fixed bug: OnStart EventSounds can't play a "dynamic" created sound sometimes.
	 - Fixed bug: custom ducking percentage didn't work.
	 - Fixed bug: Play Delayed wouldn't actually delay the sound.
	 - Added "bulk creation mode" dropdown to Dynamic Sound Group Creator.
	 - Added "show group settings" checkbox to Dynamic Sound Group Creator.
	 - Added optional "3D settings" section to Dynamic Sound Group Creator variations. There are buttons to copy them to and from the single Audio Source in the DSGC prefab to use the Unity audio widgets for visualization.
	 - PlaySound methods changes order of parameters to put "sound location" and "attach to source" up near the front, 2nd and 3rd position. Moved variation name to the end.
	 - Added sound preview buttons to Group and Variations. These work in edit mode also, but fading and random settings are ignored in edit mode.

-V 2.8.1 - Added Start event to EventSounds.
	 - Added Trigger Exit event to EventSounds. Renamed Trigger event to Trigger Enter.
	 - Added the rest of the Group controls to Dynamic Sound Group Creator (limits / volume / equalize, etc).
	 - Added "bulk creation mode" dropdown for Master Audio prefab. Choices are "One Group per clip" and "One Group with variations". This lets you can choose what happens when you lock and drag multiple clips into the mixer section.

-V 2.8   - Fixed bug with changing playlist when not playing first clip.
	 - Fixed bug with bus deletion messing up other bus assignments.
	 - Fixed Group and Bus sliders. They weren't modifying already playing clips' volumes.
	 - Fixed bug where changing Playlist volume during ducking would return to wrong volume.
	 - Fixed bug where changing Playlist volume during cross fading would ignore volume change until next song.
	 - Added methods to add and remove Groups from the music "duck list". Added Playmaker Custom Action for this too.
	 - Added methods to create buses at runtime.
	 - Added an "auto-remove sound groups" option to Dynamic sound group creator so that at the end of the Scene the Groups will be destroyed. 
	 - Added variation support to Dynamic sound group creator, including fade in / out times for each variation.
	 - Added bus support to Dynamic sound group creator.
	 - Added music ducking support to Dynamic sound group creator.
	 - Added method to Fade a bus to target volume over X seconds. Added Playmaker Custom Action for this too.
	 - Added method to Fade a Sound Group to target volume over X seconds. Added Playmaker Custom Action for this too.
	 - Added method to Fade playlist master volume to target volume over X seconds. Added Playmaker Custom Action for this too.
	 - Added method to Fade a variation to target volume over X seconds. 
	 - Made real-time adjustments to Master Audio volume affect already playing clips in every Sound Group.
	 - Changed all Pitch inspector sliders to range from -3 to +3, like normal Audio Sources.
	 - Added a Playmaker Custom Action to set playlist master volume.
	 - Added a Playmaker Custom Action to "fade all of sound group".
	 - Added methods to pause and unpause all audio in a Sound Group. Added Playmaker Custom Action for this too.
	 - Added methods to pause and unpause all audio in a bus. Added Playmaker Custom Action for this too.
	 - Added methods to pause and unpause audio in a variation.
	 - Added methods to pause and unpause the Playlist. Added Playmaker Custom Action for this too.
	 - Added method to change 1 or all variation pitches of a Sound Group. Added Playmaker Custom Action for this too.
	 - Removed PlaySoundVariable methods and added the missing volumePercentage field to PlaySound. 
  	 - Renamed PlaySound method with Transform parameter for attaching to "PlaySound3D".
	 - Changed order of a couple parameters in PlaySound methods because the grouping makes more sense.
	 - Added "fixed pitch value" field to PlaySound and PlaySound3D to ignore randompitch and use the pitch passed in. Added this field to Playmaker Play Sound action too.


-V 2.7.7 - Added new Playlist read-only methods:
	1) CurrentPlaylistClip
	2) CurrentPlaylistClipName
	3) CurrentPlaylistFadingClipName
	4) CurrentPlaylist
	5) CurrentPlaylistName
	6) PlaylistIsCrossFading

-V 2.7.6 - Added "Loop Clip" setting to each song in the playlist. Removed global loop clip setting.
	 - Made mute and solo buttons work on currently playing clips at runtime.
	 - Added fade in / fade out settings (seconds) for each group variation.
	 - Added 2 "fade out now" methods to variations. You can use the existing fade time or specify your own. Usable from PlaySoundResult
	 - Added a "FadeOutAllOfSound" method with a time length.
	 - Fixed many missing clone properties of weighted variation clones.
	 - Added clip loop checkbox for variations.

-V 2.7.5 - Added warning instead of crashing MA on init when you have more than 1 Sound Group with the same name.

-V 2.7.4 - Added "delay sound" field to Playmaker action and all API PlaySound methods, so you can schedule a sound to be played.

-V 2.7.3 - Added the ability to be notified when a sound is done playing, so you can stop an animation or things like that.
	- Added MasterAudio.GetGroupVolume to read the volume before modifying it.
	- Adjusting bus volume will now immediately change volume of clips playing in that bus.
	- Adjusting group volume will now immediately change volume of clips playing in that bus.
	- Removed SetBusVolumeByIndex and GrabBusByIndex methods. They were not useful. Use the "by name" ones instead please.
	- Fixed bug with positioning sounds.

-V 2.7.2 - Added the ability to specify a clip in a Resource file for a Sound Group variation.
	- Added methods to replace variation clips at runtime:
		1.ChangeVariationClipFromResources
		2.ChangeVariationClip
	- Added methods to create new Sound Groups on the fly, from Resource Files as well.
		1. CreateNewSoundGroup
		2. CreateNewSoundGroupFromResources
	- Added DynamicSoundGroupCreator prefab to specify any number of Sound Groups to create on the fly. It can load sounds from Resources as well.



-V 2.7 	- Added 19 Playmaker custom actions in a Playmaker optional package included in the plugin.
	- Dragging songs to a playlist now uses the first song for one if it has no clip.
	- Master Audio now complains if "play sound" methods are called and there is no MasterAudio prefab in the scene.
	- Now sorting Sound Groups alphabetically in each bus and in "no bus".
	- MasterAudio.PlaySound now also supports "attach to caller".
	- Added warnings about Playlist methods being disabled if you use "single audio source" instead of PlaylistController.
	- Audio Event script now labels dropdowns correctly as "Sound Group", not "Sound Type".
	- Added settings for "missing sound log mode", which defaults to logging errors, but you can switch to log warnings instead.
	- Added optional child name parameter to PlaySoundVariable as well.
	- Removed useless "attach to source" parameter from 2D version of PlaySound method.
	- Added StopPlaylist method.
	- Bus volume command changed name. Also added "SetBusVolumeByName".
	- Fixed bug: attaching sound to prefab didn't play the sound from the correct location the first time.
	- Fixed Bug: when attached to prefab, calling setActiveRecursively (Player dies in demo scene), the Audio can no longer be played the next time.

-V 2.6  - Added custom "AudioManager" Editor Window under Window menu to explain and create Master Audio & Playlist Controller Prefabs for you.
	- Added multiple playlist support in the Master Audio Inspector.
	- Streamlined group, variation and playlist creation. Drag & drop multiple clips now and it's done!

-V 2.5  - Made PlaylistController volume slider work at runtime in the editor.
	- Added "play sound" speaker icon in the mixer section for runtime "audition" purposes so you don't have to code things to hear the sounds when you want.
	- Added checkbox to "not destroy on load" Master Audio and Playlist Controller. Music playlist can now continue from scene to scene.
	- Added Checkbox to repeat playlist from beginning or not. Previously always did.
	- Made Event Scripts able to selectably reparent variation onto a prefab. It goes back into the Master Audio prefab when caller prefab is disabled.

-V 2.4.4 - Added empty defaults always to New SoundGroup section.
	- Added random volume slider to each SoundGroup variation.
	- Made Master Audio volume work in realtime during Editor play.
	- Removed "SoundType" enum. Now play sounds with strings. No more editing code files!
	- Added an alert in the Master Audio prefab if you have no Playlist Controller in the scene and a button to create from there.
	- Added "group by bus" checkbox so you can choose to see your Sound Groups in sections.

-V 2.4.2 - Fixed bug with Awake event on Playlist Controller
	- Fixed inspector bug for Playlist Controller section in Master Audio prefab.
	- Added separate "show music ducking" checkbox to Master Audio prefab to minimize it without disabling.
	- Added command "Stop Playlist" to fade out the current music playing and not advance to a new track.

-V 2.4.1 - Add bussing section to groups. Allows you to route each group to a bus, which allows you to control the volume of all groups assigned to that bus with a single fader. 
	- Added Solo and mute switches to bus section. They will solo or mute all matching groups.
	- Made all mixer and bus controls work while playing the game in the editor.
	- Fixed false warning about PlaylistController that occurs in Unity 4.2

-V 2.4  - (breaking change) Added a SoundGroupVariations script to each Sound Group Variation. Please delete all Sound Groups and recreate them from the MasterAudio prefab so the script will be in place.
	- Added random pitch to Sound Group variations. It will add a randomly negative or positive number up to the number you specify to the original pitch.
	- Fixed bug with zero variations for a SoundGroup at runtime.
	- Add an extra optional parameter play a variation of a Sound Group specifically by name.
	- Added other parameters of Audio Source to Sound Group and Variation Inspectors for easy access.
	- Fixed bug where cloned instances (using Weight) didn't copy the pitch of the audio source from the original.

-V 2.3.1  - Added polyphony limits for each Group. i.e. 10 variations, but only 3 can play at once.
	- Add a single audio source ducker as well as an alternative for those who can't use Playlist Controller

-V 2.3  - Fixed bug where auto advance won't take cross fade time into account, producing an artifact.
	- Renamed all example scripts to avoid name collision.
	- Moved MusicDucker.cs code into PlaylistController.cs 
	- Added Master volume slider for PlaylistController
	- Now logging an error if Playlist contains any songs and there's no PlaylistController in the scene. 
	- Now logging an error if you call PlaylistController methods without one in the scene.
	- Added methods to modify master volume, group volume, PlaylistController volume, mute & solo switches via script at runtime.

-V 2.2 	- Added volume sliders for each Sound group's variations all on the Group inspector for quick adjustment.
	- Added playlist functionality to Master Audio, with random, auto advance, loop, cross-fading and the ability to call them from code.

-V 2.1.1 - Added more ducking controls. Ability to set the % of clip at which the volume starting unducking (returning to normal volume).

-V 2.1  - Fixed bug with mixer controls.

-V 2.0  - Major UI overhaul. Added creation controls into MasterAudio and SoundGroups so you don't have to duplicate sounds and variations manually.
	- Added weighting for variations.
	- Added replay limit controls (by time or frame count) of each sound group to prevent artifacts on extremely fast sound triggering.
	- Added group virtual mixer with sliders, mute and solo switches.

-V 1.5  - Fixed delay bug with AudioSourceEnded and moved it into a new EventCalcSounds script.
	- Fixed multiple sounds sometimes for OnBecameVisible (Unity bug).
	- Added MouseClick event.
	- Added layer and tag filter for Collision and Trigger events to selectively play sounds.

-V 1.4  - Added AudioSourceEnded event and improved custom inspectors to be more collapsable. 
	- Added "Never Interrupt Sound" to each Sound group. This will override the Retrigger Played Percentage if checked for that sound group. 
	- Submitted to Asset Store 1/26/2013

-V 1.1  - 1.3, Added more documentation and improvements to custom inspectors. Released 1/2012

-V 1.0  - Released 12/22/2012







