Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Master Audio - AAA Sound Solution. #1 audio plugin on Asset Store!

Discussion in 'Assets and Asset Store' started by dark_tonic, Jan 28, 2013.

  1. dark_tonic

    dark_tonic

    Joined:
    Mar 23, 2011
    Posts:
    138
    Master Audio Multiplayer and Master Audio plugins are deprecated as of the release of Master Audio 2022, which includes all multiplayer functionality, the ability to loop a section of a song, and more. Find Master Audio 2022 here on the Asset Store.

    It's a major version, and a paid upgrade. Don't worry, it's only $30 for existing Master Audio users and FREE for users of Master Audio Multiplayer.

    Unity 5 audio is awesome. Why do I need Master Audio? FOR MUCH MORE POWER! Read more here.


    Master Audio 2022 is the premier - and by far the most popular - audio plugin on the Asset Store and also audio plugin of choice for high-profile shops Zynga, KingsIsle and many more!

    Contact us about discounted team, site or student licenses (support@darktonic.com).

    Dark Tonic is also available to provide training in our plugins Master Audio & Core GameKit. Contact us at support@darktonic.com for more details!


    Simply drag and drop to set up your core audio in minutes! Master Audio gives you tremendous ease of use, speed, power and flexibility far beyond any contender. Why use another underpowered solution and waste your time writing code? We've coded every scenario from easy to complex so you don't have to! We even have our own ultra-flexible "no coding" event-based script to hook things up if you don't have Playmaker.

    Supports all platforms!
    5 Stars and 600+ reviews on the Unity Asset Store! Over 23,000 satisfied users!

    Purchase now at: https://assetstore.unity.com/packages/tools/audio/master-audio-2022-aaa-sound-212962

    Third Party Integrations:
    - Ultimate Character Controller
    - First Person Controller
    - Third Person Controller
    - UFPS
    - UFPM
    - UTPS
    - UTPM
    - Ultimate Inventory System
    - Resonance Audio
    - DoozyUI
    - Atavism
    - Koreographer
    - Playmaker
    - Behavior Designer
    - NodeCanvas
    - ICode
    - Dialogue System
    - Salsa LipSync Suite
    - NGUI
    - UFPS
    - RelationsInspector

    Sure, you may get by with a competitor plugin, but Master Audio has tons of extras that none of them have. You simply can't outgrow our comprehensive solution and will eventually want these features!
    • Ability to loop a section of a song.
    • Full multiplayer integration with FishNet, Photon, Photon 2, Mirror and UNET. Over 100 RPC's and multiplayer code built for you.
    • Optional & tweakable audio occlusion! Adds that air of realism with a few mouse clicks!
    • Ambient Sound script will control playing ambient sounds only when they're in audible range. Greatly improves performance in Scenes with lots of ambient sources.
    • Ability to control the volume of Unity Mixer Groups independently without stepping on snapshot settings.
    • Mesh / spline audio - position audio source at the closest part of your collider(s) - perfect for rivers and other ambient audio!
    • True no-repeat *weighted* randomized sound variations, manual and automatic sound triggering - no more annoying repetitiveness.
    • Many advanced category features, such as voice limiting and time-based retrigger limits.
    • Automatic memory management for Resource files (including multi-language support!) - loaded and unloaded for you when you need them! Or use the Unity 5 "Preload Audio Data" switch and turn it off for a similar memory saving! Addressables now supported too!
    • Super flexible event script for no-code audio solutions! Control groups, buses, playlist and sounds from uGUI, NGUI, Pooling and dozens of other events!
    • User definable custom events and custom event receivers help make your game reactive and empowers sound designers to not lean on programmers very much, if at all.
    • Support for layered music - each layer can cross-fade between clips or use gapless transitions!
    • Per-scene sound FX, playlists and "audio skins" - set them up without writing any code!
    • Optional automatic distance-based priority assignment to Audio Sources (helps with Unity's 32 voice limit)!
    • Full Playmaker support - includes 50 custom actions!
    • Ability to persist changes in mixing and options made during Play!
    • Option to show all volume controls in dB (decibels)!
    • Option to show all pitches as semitones / cents!
    • Ultra Low Garbage Collection allocation (most calls are 0 bytes), which means super solid performance on mobile where you need it!
    • Jukebox - lets you try out your Playlists at runtime before hooking it up.
    • LED strips - light up and show you when each sound plays so you don't have to dig through logs!
    • Nothing Instantiated or Destroyed during Scene play - ultra high performance!
    • Full control over 3D parameters, per sound!
    • Pro mixer control, including buses for categories, mute / solo switches / active voice count and LED indicators!
    • Instant music integration. Takes about 30 seconds to set up!
    • Play sounds and music across Scene changes!
    • Master level slider to control all sound effects at once - total control, super easy to use.
    • Integrated Audio Clip Manager window lets you can change sample rates and other properties in bulk!
    • Superb performance for mobile games, supports all export platforms.
    • Full source code provided in C#, and compatible with JS as well.
    • Extremely responsive support, open to all feature requests.
    • Built in simple music ducking - let those big hits and explosions really stand out.
    • Support for Unity Filter audio FX - another Master Audio exclusive!
    • Extensive video tutorials and thorough documentation.
    • Many, many more features - too many to list!






















    If the videos below are broken due to a forum issue, click here to view our tutorials on Youtube!


    Want to see Master Audio being set up in real time? It's quite a quick study!


    Here is a video showing per-Scene sound setup and other workflow tools!


    Here's a video showing how to use Master Audio from a Playmaker FSM!


    Here's a video showing how to trigger audio from Unity 4.6 GUI objects (no code needed)!


    Here's a video showing how to hook up Master Audio to Unity 5 Audio Mixer!


    Another video showing how to set up layered music, which can be interactive!

    Click here for the documentation website.

    Click here for the complete code API - be aware that in most cases you do not actually have to use it because of the multiple ways to control things without writing any code.

    Get better audio, faster, with Master Audio 2022.

    Purchase now at: https://assetstore.unity.com/packages/tools/audio/master-audio-2022-aaa-sound-212962

    Compatible with Unity Free and Pro, V2019.4+, all export platforms.

    For support email support@darktonic.com or use the official Dark Tonic forums here: http://darktonic.freeforums.net/
     
    Last edited: Nov 24, 2023
  2. dark_tonic

    dark_tonic

    Joined:
    Mar 23, 2011
    Posts:
    138
    Master Audio 2022 is released! It's a major version, paid upgrade. Don't worry, it's only $30 for existing Master Audio users and free for users of Master Audio Multiplayer. We had it at $20 for over 18 months.

    Major features include the ability to loop a section of a song and multiplayer functionality previously only included in the Master Audio Multiplayer plugin.

    V 1.0.6 changelog:
    • Fixed warning in optional Mirror package.
    • Fixed error where fades of Variations would not take Master Mixer volume, Bus volume or Group volume into account.
    • Fixed dupe lookup in Sound Group Attribute that could lead to slowness in Inspector with multiple fields.
    • Fixed bug where unpausing a paused Variation in the AudioTransformTracker script didn't change the pause status of the Variation, although it started playing again.
    • Fixed bug where Type In for Sound Group on Footstep Sounds didn't have a field appear.
    • Fixed bug where Playlist Controller and Sound Group Variation generated a warnings Unity 2023.
    • Fixed bug where renaming a Sound Group in Hierarchy wouldn't reflect on Master Audio Mixer section.
    • Fixed previewing on Songs in a Playlist so they now respect pitch.
    • Fixed bug where "last" song would not fade properly if it was set up as a section.
    • Fixed bug where Section song would not schedule correctly when already playing and RestartPlaylist was called.
    • Added missing Start and End time in Dynamic Sound Group Creator Inspector for "section" songs.
    • Breaking change: Removed "Master Audio Location" choice from Sound Spawn Mode dropdown for FootstepSounds & Event Sounds scripts. Likely not used by anyone.

    V 1.0.5 changelog:
    • Fixed compile warnings in Unity 2023.

    V 1.0.4 changelog:
    • Added ability to duck Buses from a sound. Section renamed from "Music Ducking" to "Audio Ducking".
    • Added preview button at runtime for each sound in Music Ducking.
    • Added "Duck Mode" dropdown to each sound in Music Ducking. Choices are "Music" (default), "Buses" and "Both". If you choose Buses or Both, Buses will also be ducked when the chosen sound is played, except the bus the sound is on (if any). Any other separate change in Bus volume or fade started will abort the ducking of the Bus.
    • Changed visual for Duck Groups to be vertical, can't fit the controls horizontally anymore.
    • Added check for Duck Groups called "Use Distance Ratio (%)", which defaults to off. If you check it, it will calculate the percentage of the actor's distance away from Listener compared to the Max Distance, and use a percentage of the specified Duck Volume Cut instead of the whole one. In other words, a further away sound will duck less than a closer one.
    • Fixed ability of Addressables to start as the first song when song name is specified.

    V 1.0.3 changelog:
    • Fixed CreateGroupVariationFromClip method so it adds the new Variation to the Group's list for programmatic access.
    • Fixed bug where GlideSoundGroupByPitch wasn't working.
    • Fixed bug where Sound Groups would not keep their mute status when muted by the Mixer Mute button.
    • Fixed bug where Sound Groups wouldn't mute themselves on startup when Mixer Mute was on.
    • Fixed bug where on Mirror sometimes sounds would be hear twice on the host if also a client.
    • Fixed bug where newly created Playlist Controllers would be destroyed when entering play mode after a compile if Enter Play Mode Options was checked.
    • Fixed bug where PlaylistEnded delegate for Playlist Controller didn't always get executed.
    • Fixed compile errors in Bulk Audio Importer for Unity 2022.2.
    • Caching AudioSettings.dspTime for less bugs with scheduling songs.
    • Added Playmaker action: Master Audio Fade Out Sound Group Of Transform
    • Added checkbox to EventSounds when firing a Custom Event, you can disable the logging of duplicate firing per frame.
    V 1.0.2 is released! Changlog (FishNet integration is here!):
    • Added Playmaker Custom Action MasterAudioFadeSoundGroupOfTransform.
    • Added Multiplayer integration with FishNet.
    • Fixed previewing so it works in newer versions of Unity despite the PlayOneShot Unity bug.
    • Fixed Sound Group Inspector so during runtime, moving the Group Master Volume slider adjusts the volume of any playing Variations in the Group.
    • Fixed "All Groups" checkbox functionality for Event Sounds.
    • Fixed bugs in Mirror Multiplayer package. Some sounds were playing twice. Others not firing sometimes.
    • Fixed occasional wrong lookup of briefly named (clone) variations.
    • Reverted AsmDef packages, they must be ""all platform" or the Inspectors don't show in Unity.
    • Added Fade Sound Group Of Transform To Volume to Event Sounds.
    • All links to documentation website and API website are now HTTPS in case your browser doesn't auto-redirect.

    V 2022 1.0 Full changelog:

    • Fixed bug where Variations were not found because of name containing "Clone" for Variations with Weight > 1.
    • Fixed bug in Unity 2021 where domain not reloading settings broke outside the editor.
    • Fixed bug with calculation of "is too far away to play" Audio.
    • Fixed bug where Group Polyphony Limit didn't work properly on certain settings.
    • Fixed bug where after a Variation fade, changing the Master Mixer Volume would set the volume to a percentage of the original pre-fade volume.
    • Fixed bug: Sound Group Organizer didn't copy Voices field.
    • Fixed bug: Turning on both "Use Closest Collider Position" and "Follow Caller" for Ambient Sound would make the collider positioning not work.
    • Fixed bug: Warming sound, if Resource File, would not disable itself after playing during warm up.
    • Fixed bug: Previewing in edit mode would randomly stop working after 1 minute of inactivity.
    • Fixed bug: Sound Group Organizer didn't copy any Variations past the first.
    • Fixed bug: Occlusion would stop raycasting if occluded for more than a couple seconds. Couldn't restore non-occluded sound.
    • Fixed allocations in Chained Loop code.
    • Fixed warning with Multiplayer Mirror integration.
    • Fixed bug with StreamAssets and Bulk Audio Importer (crash).
    • Fixed bug where EventSounds OnEnable event wouldn't play a sound on first frame.
    • Fixed bug where SongEnded event would no longer fire on PlaylistController.
    • Fixed obscure bug with unpause on PlaylistController causing the music to stop.
    • Fixed bug in Unity 2021 where Bulk Audio Importer spammed errors on scanning.
    • Fixed bug in EventSounds where Playlist events wouldn't play during OnEnable. Now they play during "Start" instead if so configured, since PlaylistController is ready by then.
    • Fixed bug where Playmaker Custom Actions would spam the Console when editor stopped or Scene unloaded sometimes.
    • Fixed asmdef files package so that they only work in the editor.
    • Added integration with all Opsive plugins!
    • Changed Voices / Weight label to have a slash instead of parentheses. Clearer purpose.
    • Changed "Song Start Time Mode" on songs in a Playlist to "Begin Song Time Mode".
    • Added "Multiplayer Capability" checkbox to the Welcome Window, off by default. Check the box to get multiplayer versions of Event Sounds, and the MechanimState scripts.
    • Added new asmdef packages for users using Addressables and asmdefs. The existing ones didn't compile if you turned on Addressable support.
    • Added ability to specify a Custom Event to fire at the end of fades/pitch glides in Event Sounds for: Pitch Glide in "Play Sound", Sound Group Fade To Volume, Sound Group Glide By Pitch, Bus Fade To Volume, Bus Glide By Pitch.
    • Added missing "Use Clip Age Priority" checkbox to Dynamic Sound Groups.
    • Added "Section" option for "Begin Song Time Mode" for Songs in Playlist Controller. This allows you to set a loopable section of a song. You set the start and end time in seconds.

    V 2020.3.8 changelog:
    • Fixed a bunch of unintentional allocations for zero Garbage Collection.
    • Fixed Bus Solo logic, it was adding the same Bus without checking if it was in the list. Could result in weird behavior.
    • Fixed Bug: Warming Group would not disable after the warming play if it's a normal Audio Clip and not Addressables / Resource.
    • Fixed Bug: duplicate named Ambient Sound game objects would sometimes delete 1 or more of the followers and Ambient Sound script wouldn't work as a result.
    • Moved all Master Audio custom actions for Playmaker into the Master Audio category.

    V 2020.3.7 changelog:
    • Fixed bug: Refactored log code in Master Audio that finds no voices to play returned only conditionally.
    • Fixed bug: Allocation fixed for Addressable delayed cleanup.
    • Fixed bug: Jukebox display would not select Resource File from a list of Resource files in the Playlist when it was playing. It always appeared blank.
    • Fixed bug: Long Playlist names would not get truncated and mess up the Inspector.
    • Fixed bug: Not-loaded Resource file played by name would cause endless loop.
    • Fixed bug: Hitting Play with a Playlist Controller selected would cause an error when trying to display the Jukebox.
    • Fixed bug: Telling additional synced layers of music would sometimes be off by fractions of a second. We now schedule the audio change slightly ahead which minimizes this greatly. Usually eliminates it.
    • Fixed bug: Auto-advanced crossfade wouldn't work on WebGL when in background and frame rate goes to 1.
    • Added "Jukebox Filter" dropdown up top in the Master Audio Inspector. The choices are "Display All" (default) and "Display Active" which only shows Playlist Controllers that are playing songs.
    • Added a new checkbox on Welcome Window to enable Video player feature. Now turned off by default. Enable it if you want the Video Players feature and have Video package installed from Package Manager.
    • Added a gear icon in each Jukebox to select the Playlist Controller in Project View for editing.
    • Added "Sort Alpha" button for the Playlists section.
    • Added "Playlist Text Filter" to filter out Playlists whose name doesn't match.
    • Added "Pause Audio Listener" and "Unpause Audio Listener" to Global Control under Event Sounds.
    • Added "Ignore Listener Pause" checkbox (defaults to unchecked) to Playlist Controllers and Sound Groups. They will play if checked even if the Audio Listener is paused. The rest will not.
    • Added CurrentFadeStatus property to PlaylistController, to tell you the current fading status of a FadeToVolume, if one is running (FadingIn, FadingOut, NotFading).
    • Change to Singleton Scriptable for obscure "load all resources" code in other plugins.

    V 2020.3.6 changelog:
    • 2nd Fix for 2D spatialize bug, for Playlist Controller as well.
    • Bug Fix: Adding more than 1 song at a time to a Playlist and immediately pressing play, they would vanish and not be saved.
    • Fix: Having multiple of the same Dynamic Sound Group Creator would delete groups / playlists and other items and some of the DSGC's were still active, breaking sounds and causing errors.
    • Relations Inspector now shows and finds Footstep Sounds - it was omitted by accident.
    • Added Mixer Settings under Advanced Settings. There's a setting for Mixer Update Mode, and it's set to ignore time scale as default. You can change it to respect time scale. This setting is used when transitioning to snapshots through Master Audio.
    • Added new checkbox "Disable 3D Sound" on Welcome Window which removes all Spatial Blend controls from the Inspectors. Everything will be 2D Audio Sources if you check this.
    V 2020.3.5 changelog:
    • Fixed 2D spatialize bug.
    • Fixed bug with Dynamic SGC non-random sound "randomizer".
    • Fixed bug: When using an existing bus from DSGC but you specified "new bus", it no longer deletes the Bus when you disable the DSGC.
    • Removed unnecessary code in Silence / UnsilenceGroup methods in MasterAudio.cs
    • Fixed Unity 2017.1 compile error with Spatializer.
    • Removed Unity 5 support.
    • Added asmdef files for Core GameKit and a separate one if you have both Core GameKit and Master Audio in your project, should you need them. Install the package from the Assets/Plugins/DarkTonic/CoreGameKit/AssemblyDefinitions folder.
    • Added an option to *not* delete the Audio Source on the Audio Listener Game Object if you have one there you need. Master Audio creates one there for previewing in edit mode.

    V 2020.3.4 changelog:
    • Fixed bug: changing bus doesn't automatically fix order when using Group By Bus.
    • Fixed bug: changing the bus in Bulk Edit mode didn't work for more than 1 Group.
    • Fixed bug: unducking no longer stopped at previous volume for Playlist Controller after previous version related ducking fix.
    • Fixed bug: Addressables package broke its usage so code has been modified to work with the latest version.
    • Added 'Clip id' optional field for Variations. This allows you to now use Variations in Dialog Groups so you don't have to create so many Dialog Group. You can give multiple Variations the same Clip id and it will choose one at random when you specify that Clip id as the VariationName to play. Clip id is searched first, and then the name of the Variation Game Object after that. You can still use the Clip id in non-Dialog groups as well if you like, but it's not really necessary.

    V 2020.3.3 changelog:
    • Changed the major version number to the year.
    • Fixed bug: Max Pos. Recalcs Per Frame setting in Advanced Settings for Ambient Sound didn't respect your setting.
    • Added display of Active Ambient Sound Scripts at runtime under Ambient Sound Settings in Advanced Settings.
    V 4.3.2 changelog. HUGE update!
    • Breaking Change: Removed "Stop Oldest" checkbox for the Bus. Instead there is a "Voices Exceeded Behavior" dropdown there to choose "Do Not Play New Sound" or "Stop Oldest Sound". This dropdown appears when you set a voice limit for the Bus. If you had previously set "Stop Oldest" checkbox, you will need to select "Stop Oldest Sound" from the dropdown now to get it to work the same as before.
    • Breaking change: FadeOutNow method on SoundGroupVariation is renamed to FadeOutNowAndStop, because it does stop at the end, always has. If your scripts call this, you will need to update your call to the new method name.
    • Fixed bug: Single song playlist that loops with Preload Audio Data turned off would loop just the crossfade section endlessly.
    • Fixed bug: Sound Groups limited by "Limit Polyphony" option can now find a Variation to play using Retrigger Percentage, if one exists that satisfies that.
    • Fixed bug: Bus "stop oldest / farthest" sometimes stopped a voice and not end up playing a new one.
    • Fixed bug: Bus "stop oldest / farthest" sometimes wouldn't play a new one when maxed out on voices.
    • Fixed bug: Playing a voice with Retrigger Percentage would also stop the oldest voice when not necessary.
    • Fixed bug: Bus voice limit requires an additional variation to exist for the group to play a new voice even when Bus Stop Voice Fade Time is 0 (i.e. you had to have 3 group voices with bus voice limit 2).
    • Fixed bug: AudioScriptOrderManager was executing every time you press play. Now it only executes when you open Unity.
    • Fixed bug: A a song that was fast-forwarded by code would then start that song next time in the fast-forwarded spot. Now goes back to zero.
    • Made music unducking start instantly if the Variation that triggered the music ducking gets paused or stopped.
    • Added help text to property drawers to let you know if Master Audio game object is not in the Scene.
    • Added new option for Voices Exceeded Behavior for the Bus: Stop Farthest Sound. If you select that, the sound playing the furthest away from the Audio Listener will be stopped to play the new sound.
    • Added new option for Voices Exceeded Behavior for the Bus: Stop Least Important Sound. If you select that, each Sound Group will have an Importance and Uninterruptible control. The Importance control you can see on the mixer if you turn it on with "Show Group Importance" and you can also see both on the Sound Group's Inspector. Importance and Uninterruptible work the same here as on Variations. If your bus is at max voices and you try to play a new sound, Master Audio will try and locate a sound that's not Uninterruptible and of lesser or equal Importance to stop. If it can't find one, the new sound won't play.
    • Added "Group Play Rule" to Mixer section. Choices are "Always" (default), "When Actor In Audible Range", and "Allow Different Per Group". This is only visible if your Group Spatial Blend Rule is not "Force All to 2D" because the audible range part requires 3D Audio Sources to pull the Max Distance value from. If you choose "When Actor In Audible Range", the Sound Group will only play if the Actor is within audible range, based on the Max Distance of the Audio Source.
    • Added a red error box if you haven't made a prefab out of the Master Audio prefabs. To tell you what to do so you don't get your settings overridden (make your own prefab).
    • Added an overload to AddSongToPlaylist that takes a MusicSetting object, so you can use that with all the properties you want.
    • Added StartPlaylistOnClip method to load a playlist and start playing a certain song.
    • Added optional callback arguments to the Fade methods on SoundGroupVariation.
    • Added "ClipLength" variable to Playmaker Custom Action "Playlist Controller Get Props".
    • Adding a song to a Playlist via code now populates the default song metadata into the song.
    • Added an option under Gapless Music Switching for "Auto-Reschedule". It will fix gapless even if you skip around in the track. It only works perfectly with pitch of 1 and sample rate of 48,000 or above. You can override your sample rate to 48,000 for it to work, and that even works on compressed files.
    • Added 2 new events to Event Sounds script: Code-Triggered Event 1 & 2. These can be called from code or used in events in the Animation Window by entering the method name (ActivateCodeTriggeredEvent1, ActivateCodeTriggeredEvent2).
    • Renamed "Show Range Gizmo" in Event Sounds to "Adjust Audio Range". Now only shows if you have a Sound Group selected to play.
    • Changed "Bus Stop Oldest Fade Time" in Advanced Settings to "Bus Stop Voice Fade Time".
    • Added Min Distance to range adjustment for Event Sounds, shown by toggling on "Adjust Audio Range".
    • Added new controls for Dialog Sound Groups: Importance slider (0-10), which you can set importance for Variations. Only Variations of equal or higher importance than the current playing Variation can interrupt it.
    • Added new controls for Dialog Sound Groups: Is Uninterruptible. Check this to hide the Importance slider and this Variation can never be interrupted by another.
    • Added Video Player support for Master Audio. Video Players have their own special Sound Group created when you drag them into the Video Players section in Master Audio. Requires Unity 2019.3+.

    V 4.3.0 changelog:
    • Added support for experimental Fast Play Mode in Unity 2019.3 - it works by default it you turn on Fast Play Mode on the Unity menu as shown on this page: https://blogs.unity3d.com/2019/11/05/enter-play-mode-faster-in-unity-2019-3/
    • Fixed bug where Persistent Playlist Volume wouldn't work properly with persistent Master Audio game objects.
    • Moved Show Welcome Window preference to scriptable asset so it's only for current project, not all.
    • Added Min Distance field to Ambient Sound so you can adjust that, which also affects the low slider value of Max Distance.
    • Added namespaces to all example and editor scripts so they don't show up in Intelli-sense.

    V 4.2.9 changelog:
    • Bug fix for Ambient Sound in 4.2.6 broke other things. Now fixed in a better way that doesn't cause other issues.
    • Fixed bug: Dragging more than 1 Variation only created 1 Variation.
    • Fixed compile error when either Physics2D or Physics3D aren't installed. Now there's a Welcome Window where you must check those boxes to enable 2d and 3d features.
    • Ambient Sound now disables the creation of its tracker triggers by 1 frame so it won't cause audio glitches such as when the script is on a Game Object being instantiated and instantly disabled for pooling purposes.
    • Removed option for "Load Resources Async" under Resource File / Audio Clip settings because now it is always async.
    • Added Performance Settings section in Advanced Settings. Has an option to "Perform Code Warming" which defaults to on. It shows the Warm Sound Group there if enabled. Now defaults to the first Sound Group with an Audio Clip Variation.
    • Added support for Addressables for Sound Groups and Playlists. 3rd Audio Origin of "Addressable" now exists if you enable Addressables support on the new Welcome Window and have Addressables package installed.
    • Note: Dragging a non-Addressable into a Master Audio Addressable field may make the Audio Clip an Addressable if it isn't already.
    • Removed "File On Internet" option. It could never unload anyway.
    • Renamed Resource File / Audio Clip Settings to Audio Clip Settings. Now we will have Addressable settings there too if you have the feature enabled.
    • Added "Unused Addressable Life (seconds)" field to each Sound Group. This lets you specify to keep the Addressables in your Variations around for an extra X seconds after it's no longer used. This will avoid having to load it again in that time frame since we cache the loaded Addressables on our side.
    • Re-ordered the sections of Advanced Settings. There are a lot now so I put them in alphabetical order.
    • Fixed the deletion of game object (Sound Groups and Variations) in Unity 2018.2+ when they're part of a prefab. It was logging an error to the Console and not deleting.
    • Put back the "Clone" icon and made it work in Unity 2018.2+.
    V 4.2.7 changelog:
    • Fixed bug: Song Alias field was not used for IsSongPlaying or QueuePlaylistClip methods.
    • Fixed many Inspector problems in Unity 2019.3 (beta).
    • Now disabling all Sound Group Variation Game Objects not playing audio for increased performance!
    • Removed the ability to Clone a variation from the Inspector, because Unity doesn't allow you to reparent it so it would be in the wrong location. You will need to clone Variations from the Hierarchy now.
    V 4.2.6 changelog:
    • Added a toggle for "Remove Probability-Unplayed Variations" on the Master Audio Manager screen. Defaults to "on". If you turn it off, Variations that aren't played due to failing the Probability To Play check will not be removed from the pool, so they may be played again later through another probability check.
    • Fixed bug where a despawned or destroyed Game Object with Ambient Sound script would stop all playing instances of the Sound Group instead of just the single voice.
    V 4.2.5 Changelog:
    • Made compilation possible without having Physics3D and/or Physics2D installed. You will lose Occlusion / AmbientSound functionality and corresponding events on EventSounds depending on which you remove, but everything else will work. Check the Physics page on the documentation on how to get it compiling since you have to add a define for each missing package. Link here: http://www.dtdevtools.com/docs/masteraudio/Physics.htm

    V 4.2.4 changelog:
    • Fixed warning: Script execution order thing with DGSC and Ambient Sound would log "missing sound group". Added a check so the warning doesn't happen. Fixed a similar bug last update but it was only half the problem.
    • Fixed bug where re-enter mode of Ambient Sound wouldn't play anything after the first trigger enter if set to "fade in same sound".
    • Fixed bug where adding a new song after song metadata is created in a Playlist won't add the required metadata properties, with no way to add them.
    • Added MasterAudioPlaylistChange Playmaker Custom Action.
    • Fixed invisible control headers on Unity 2019.

    V 4.2.3 changelog:
    • Removed Upgrade to 3.5.5 button on Master Audio Manager since it's been over 4 years since that update. No longer needed.
    • Fixed bug: TriggerExit doesn't fire when an object is disabled right after Instantiating and TriggerEnter instantly fires. This led to problems with sounds playing that should not be with AmbientSounds on pooled Game Objects (with Pool Boss or Core GameKit).
    • Fixed bug: Ambient Sounds had a problem with "Use Closest Collider Position" where it didn't place the collider in the correct position initially.
    • Fixed bug: Disabling the Audio Listener and enabling a different one would make Ambient Sound scripts stop working. Now I've added a method: MasterAudio.AudioListenerChanged, that you can call when the Listener changes to a differnet game object to fix it.
    • Fixed compile error when using in conjuction with SteamVR due to their lack of namespacing their classes.
    • Fixed warning: Script execution order thing with DGSC and Ambient Sound would log "missing sound group". Added a check so the warning doesn't happen. It was working properly aside from the warning.
    • Added a warning to the Console telling you that Ambient Sound script won't work if you have disabled collisions between Ignore Raycast layer and itself.
    • Added FadeOutOldBusVoices, StopOldBusVoices, FadeOutOldSoundGroupVoices, StopOldSoundGroupVoices commands, where you define how many seconds "old" is.
    • Added the above 4 new commands to Event Sounds.
    • Added Comments field to Sound Groups (for your use only).
    • Added "Sort Alpha" checkbox (defaults to true) in the Mixer section. If you uncheck it, things will appear in the same order as Hierarchy, otherwise sorted (works within bus filter as well).
    • Added "Show Bus Colors" checkbox in mixer section (defaults to off). If you turn it on, you can select a color for each bus. Each Sound Group will have a small square of that color at the left of the mixer row.
    • Added PlaylistAttribute, which you can decorate your public string variables in your scripts with. It will show a dropdown of all the Playlists in the Scene that you can select from.
    • Added PlaylistEnded event to PlaylistController, so you can get subscribe and know when the last song is done playing (if the Playlist doesn't loop).
    V 4.2.2 changelog:
    • Fixed bug: With gapless song transitions on, if you queued a song after a song already looped, it would start immediately. Now it wait until the end of the current loop.
    • Fixed bug: With gapless song transitions on, if you play a song after one is already scheduled, it plays the same song twice in a row.
    • Disabled prefab checking in Unity 2018.3+.

    V 4.2.1 changelog:
    • Fixed bug: Ambient Sound Collider was wrong size sometimes.
    • Fixed bug: Ambient Sound "follow nearest collider" setting didn't process as many per frame as you selected.
    • Fixed bug: Unity 2018.3 beta will strip away most of the Audio Source Templates and Group Templates so you can't create Sound Groups. Added buttons to recognize missing templates and a button to add all.
    • No PlaySound methods return a null PlaySoundResult object now, so no need to check for that.
    • Added "Trigger Re-Enter Fade In Time" to Ambient Sounds, and a volume field as well.
    • You can now use loop with custom start position, as long as the custom end position is 100%. Looping will go back to the beginning of the clip.
    • We no longer try and detect if you're in Project View mode for sub-game objects, because it leads to extra workflow in Unity 2018.3.
    • Resonance Audio buttons to add Resonance Audio Sources to all Variations is now a checkbox, and it now adds them to Groups created later and by DGSC's.
    • Added integration for "Oculus Integration" plugin on Unity Asset Store. ONSP Audio Sources can now be added automatically to every Variation by clicking a checkbox in Advanced Settings / VR. You must install optional package "MA_Oculus" to get this. Move Oculus folder from Assets to Assets/Plugins, then move all files in any Editor folders inside that to Assets/Plugins/Editor/Oculus (create the folder).
    • Fixed warning in Unity 2018.3 about deprecated WWW object.
    • Fixed 2018.3 Inspectors - could not be used at runtime.
    V 4.2.0 changelog:
    • Fixed bug: music was ducking if SFX silent (muted, 0 volume etc).
    • Fixed bug: DGSC Sound Group with same name but different casing would cause error.
    • Fixed bug: Sometimes on Scene load, a persistent MA game object would log an error with Ambient Sounds script.
    • Fixed Inspector bug in Unity 2018.3.
    • Fixed bug: Ambient Sound - created scripts were not updating at Fixed Update when that was selected in Advanced Settings.
    • Breaking change: SongChanged event for PlaylistController now passes an additional parameter, which is the MusicSetting object. You will need to add it to your method signature if you are subscribing to that event. This new parameter lets you grab song metadata and other values from it.
    • Changed minimum Sound retrigger time interval to 0.05 seconds.
    • Added song metadata section for Playlists. Each Playlist can now have its own metadata properties you define. Each property has a name, data type, "is required", and "can have multiple per song" fields. Each song then lets you put values on each metadata property you use.
    • Added "specific variation" textbox to Ambient Sounds so you don't have to play a random one, although you still can.
    • Added mesh sphere gizmo for Ambient Sounds so you can see the audible distance of the Sound Group, and know how close you need to be in Scene view.
    • Added ability to configure Ambient Sound to fade the sound when it's out of range instead of stop abruptly. Useful for 2D sounds only really since you probably wouldn't hear it at the end of its max distance.
    • Added ability to adjust the Max Distance of the Ambient Sound script while seeing the sphere gizmo to represent its size.
    • Fixed bug in vp_Effect (UFPS integration package).
    • Bulk changes for Variations now work differently. No bunch of copy buttons. You just select the Variations you want, change a field and it affects all checked Variations the same.
    • Bulk changes for Songs in a single Playlist now added. You just select the Songs you want, change a field and it affects all checked Songs the same.
    • Removed "Show Variation Gizmos" in Advanced Options. No more 'M' Gizmos. Removed "Show Gizmo" in Event Sounds as well.
    • Added more Visual Settings options in Advanced Options. Show All Range Gizmos, Show Select Range Gizmos, and a color field for each. These control whether you see mesh sphere gizmos for Event Sounds and Ambient Sound showing the max distance of the selected audio.
    • Added "Show Range Gizmo" checkbox in Event Sounds for Play Sound action, and Max Distance slider.

    V 4.1.9 changelog:
    • Fixed compile error in Resonance Audio package.
    • Fixed warning on Unity 2018.2
    • Now compatible with Bolt Visual Scripting.
    V 4.1.8 changelog:
    • Changed the default to not log to the Console when a same-named Master Audio or Playlist Controller is destroyed when you load a new Scene because you already had a persistent one. Also added a new setting to turn this back on for troubleshooting under Persist Between Scenes in Advanced Settings.
    • Fixed compile errors on UFPS integration.
    • Fixed AmbientSounds, the Audio Source was not moving to closest collider point if you had that selected.
    • Fixed bug with Ambient Sounds. Using "child colliders" did not follow the Audio Source.
    • Fixed bug where Master Audio Inspector would show no indication of what error was (duplicate Sound Group name) after the initial popup.
    • Added method MasterAudio.GetNextVariationForSoundGroup that only works for top-to-bottom Variation Sequence. It returns the AudioSource for the next Variation to be played.
    • Moved "Use Spatialize" Advanced Setting under a new heading "VR Settings", that now indicates the chosen Spatializer Plugin in the header.
    • Added support for Resonance Audio in Unity 2018+. Besides "Use Spatializer", there's now a new checkbox in VR Settings for "Spatialize Post FX" which will turn that checkbox on for all Sound Group Audio Sources at runtime. And there are buttons there to add Resonance Audio Source components to every Variation's or remove them, if you install the package mentioned next. Additionally, there's an optional package to install "MA_ResonanceAudio" that will make sure ResonanceAudioSource components get copied back and forth when using DGSC and Sound Group Organizers. Note that you will need to move the ResonanceAudio folder into Assets/Plugins to get this to compile though.
    V 4.1.7 changelog:
    • Fixed compile error on Unity 2017.1.
    • Fixed unpause mixer bug with Null Exception.
    • Fixed bug: MasterAudio.TriggerNextPlaylistClip did not do SynchronizeClips correctly for non-layered music with 0 Crossfade. It should work like the Next button in Jukebox. It should keep the position, not start at beginning.
    • Fixed bug: Variation pitch would not always reset to original pitch on subsequent plays after GlideByPitch was used.
    • Added "FadeOutAllSoundsOfTransform" to Master Audio API and to EventSounds script.
    • Added "SoundLooped" delegate callback to Variations so you can get notified each time the audio loops back to the beginning.
    • Added "Use Finite Looping" section to Variations so you can loop X times, then it will stop. Also has a Min / Max Loops field to choose a random number within the range.
    • Added Master Audio Clip Manager for Unity 5+! Now you can bulk change import settings for all your audio clips, with file name / path filters and paging.
    V 4.1.6 changelog:
    • Fixed bug: Occlusion hit triggers for raycasts code was incomplete.
    • Fixed bug: RelationsInspector code would throw errors in Unity Cloud.
    • Fixed bug: EventSounds logs errors to Console if listening to Custom Events.
    • Fixed bug: MasterAudio.IsTransformPlayingSoundGroup returned wrong results most of the time.
    • Fixed bug: Reloading the current Scene would log errors to Console.
    • Fixed bug: Deleting a Sound Trigger event in Event Sounds was not undo-able.
    • Fixed bug: Duck Groups were not removed from MasterAudio game object when DGSC disabled. Instead they were still there but for "[None]" Sound Group.
    • Fixed bug: Doing a Playlist Controller fade while the music is ducked would first reset the volume back to the pre-ducked volume (louder).
    • Fixed bug: Linked Groups did not show Sound Groups from Dynamic Sound Group Creator game objects in the Scene.
    • Fixed bug: Could not preview any Sound Group in a Dynamic Sound Group Creator if no MasterAudio game object is in the current Scene.
    • Added "Trigger Stay" & "Trigger Stay 2D" event to Event Sounds, with an amount of seconds to wait before performing the audio events.
    • Added "Add Song To Queue" to Event Sounds for Playlist Controllers.
    • Added "GlideByPitch" API to Variation. You specify target pitch and how long the glide takes, with optional callback.
    • Added "GlideByPitch" option to to Sound Group, with optional callback.
    • Added "GlideByPitch" option to to Bus, with optional callback.
    • Added "Glide By Pitch" option to EventSounds script in the Inspector for Play Sound, and to Group Command, and to Bus Command with Raise Pitch and Lower Pitch options.
    • Added "ToggleSoundGroup" and "ToggleSoundGroupOfTransform" API's. They will play the sound if it's not playing and fade/stop it out if it is playing. Also added these options to Event Sounds - Sound Group Command.
    • Fixed compile errors for Unity 2018 and possibly 2017 certain versions?
    • "Use Random Start Position" on each Variation has been renamed to "Use Custom Start/End Position" and now contains another field for "End %" so you can end the clip on a certain percentage.
    • Disabled "loop clip" when using Random Start/End Position, because it wouldn't loop with the clip portion anyway, although we'll try to add this feature later.
    • Looped Chain transitions from one Variation to another are now seamless!
    • End Linked Group transitions are now seamless!
    • Removed "FX Tail Time" and "Add Filter FX" dropdown from Sound Groups. FX Tails and effects should be done on the Unity mixer.
    • Added API to cancel the auto-unsubscribe SoundFinished delegate (if any) on a Variation. To use it, call the following: MasterAudio.GrabGroup("SoundGroupName").WillCleanUpDelegatesAfterStop = false;


    V 4.1.5 Changelog:

    • Fixed issue: When "save runtime changes" is on, Custom Events, Playlists, Duck Groups and Buses in DGSC's no longer stay in the Master Audio game object after hitting stop.
    • Fixed bug: Relations Inspector didn't show linked groups of linked groups.
    • Fixed warning on Unity_2017 having to do with "Save Runtime Changes".
    • Fixed bug where Mechanim Timed Custom Event wouldn't play timed event unless other unrelated checkbox was checked.
    • Fixed bug where only 1 of an Audio Clip with "Preload Audio Data" could be played inside a single Sound Group at once.
    • Added MasterAudio.DeleteGroupVariation to API.
    • Added "Max Pos. Recalcs / Frame" for Ambient Sounds under Advanced Settings, for use with the new Use Closest Collider Position option.
    • Added a setting in Advanced Settings to turn off the non-gravity RigidBody on ListenerFollower if you don't use Ambient Sounds script.
    • Added logic to not rescan Groups in Master Audio Inspector unless the list of groups has changed.
    • Updated Playmaker Custom Action "Master Audio Play Sound With Event" to have all the options that the Play Sound action has.
    • Added "Use Closest Collider Position" checkbox to Ambient Sound script (Unity 5.6 and up only). This will reposition the Audio Source for the caller every frame to the closest point on the collider of the caller, if one exists. This overrides the "Follow Caller" option.
    • Added the ability to choose top collider, child colliders or both with the Use Closest Collider Position option.
    • Added the alternate "File Player Prefs" for XBox and made it the default for XBox platform. So now you can do Persistent Settings and other Player Pref dependent code on XBox as well.
    • Add a new setting under Audio Listener Settings on Advanced Settings, called Variation Update Method. Defaults to Late Update, but you can change it to Fixed Update if your Audio Listener is on a Physics (gravity rigidbody) object, so audio glitches will be eliminated.

    V 4.1.4 Changelog:
    • Fixed bug: Firing a Custom Event from a DynamicSoundGroupCreator didn't work when changing to a new Scene where that DGSC lives.
    • Potential breaking change: Updated Playmaker Custom Action "Fire Custom Event" to allow use of a variable for the Game Object. If you were using this action, your previous "origin" will be lost since the variable type is now different. You will need to set it again.
    • Added ability to MechanimStateSounds to be able to retrigger the "timed to animation sounds" every time the animation loops but the Mechanim State is not exited.
    • Added all the timed to animation functionality of MechanimStateSounds to MechanimStateCustomEvents script.


    V 4.1.3 Changelog:
    • Fixed bug: with Loop Playlist off, last Resource file doesn't get unloaded at end. No code to detect this.
    • You now can drag a folder containing 1 or more Audio Clips into the "Drag Audio Clips here" boxes. It can contain other things too - only the Audio Clips will be processed in bulkAdded code to restore a slider's value during Awake if it has been used in Event Sounds to set Persistent volumes (music / mixer / group / bus). Now you don't have to write that code.
    • Added new Log field of "Log Out Of Voices" in Advanced Settings. This is on by default. Will tell you when you run out of voices for the Bus / Sound Group / polyphony limits and other limits if turned on.
    • Made "Disable Logging" shut off the non-important (info) logging as well.
    • Removed "Variation Fading" option in Advanced Settings. Always does a stop if you "Fade Early" a Variation.
    • Added a configurable fade time when stopping Variations from Stop Oldest option on the Bus. Default is 0.3 seconds. Settable from 0 - 1 second under Advanced Settings / Fading.
    • Random volume and pitch settings are now heard through preview in edit mode.
    • Added UFPS integration package.
    • Added SongLooped event to PlaylistController.
    • Added ability to play a Custom Event from Crossfade Start, Playlist Started, Playlist Ended & Song Looped on Playlist Controller.
    • Updated all Inspector links to new domain (Dropbox is gone).


    V 4.1.2 Changelog:
    • Fixed compile errors for Unity 2017 beta.
    • Fixed compile error in Unity 4.7.
    • Fixed bug: Silent Variations would stop a Chained Loop when "played". No longer.
    • Fixed bug: Occlusion didn't work outside of editor.
    • Fixed bug: Ambient Sound script was not able to play a "file on internet" if it was not finished loading by the time Ambient Sound told it to play.
    • Fixed bug: Playing an asyncronously loaded Resource file and then immediately telling it to FadeToVolume caused a Null Reference Exception.
    • Fixed bug: Pausing a Playlist Controller without auto-advanced on would stop the song.
    • Fixed bug: Occlusion didn't work if you started your Scene without an Audio Listener.
    • Added missing "Sound Spawn Mode" dropdown to Footstep Sounds script.
    • Added "timed to animation % complete" Sound Group + Custom Event firing for the 2 MechanimEvent scripts.
    • Added multi-timed Sound Groups and "stop sound on state exit" checkboxes to MechanimStateSounds script.
    • Added commands PauseBusOfTransform / UnpauseBusOfTransform / StopBusOfTransform. Added these to the Bus Commands on Event Sounds script as well.
    • Song Transition Type "New Clip From Last Known Position" now does not hide the Song Start Position fields, but they are only used the first time each song is played.
    • Added extension methods for all Master Audio methods that take a Transform object so now you can do the MA methods from the Transform itself. i.e. TransformVariable.StopSoundGroupOfTransform("SoundGroupName");
    • Added new method: MasterAudio.IsTransformPlayingSoundGroup(string soundGroupName) - returns boolean
    • Added new method: MasterAudio.GetAllPlayingVariationsOfTransform() - returns a list.
    • Added "Probability to Play %" field to Variations. Defaults to 100%. If you select something less than 100%, it will calculate a random number (0-99) whenever it is selected to play and if the random number is less than the field, it will not play.
    • Added 2-way tracking (added a component to caller game object shows all SFX playing from transform, with pause/stop/unpause buttons, and also has those buttons for each Sound Group and for all Sound Groups. This code only happens in the editor since it causes slight garbage collection.
    • Added new options of willStopAfterFade and willResetVolumeAfterFade to MasterAudio.FadeSoundGroupToVolume and MasterAudio.FadeBusToVolume. Added checkboxes to EventSounds with these options.
    • Added checkboxes for the new fade options to all the optional integration packages with other plugins.
    • Added new method: MasterAudio.IsSoundGroupPlaying(string soundGroupName); returns true if any voices are playing or paused.
    • Added play / stop / pause / unpause buttons in Group inspector.
    • Added Custom Event Categories for visual organization.
    • Upped Max Delay Between Looped Chain sounds from 20 seconds to 300.
    • Added IsSongPlaying(songName) API method to PlaylistController.
    V 4.1.1 changelog:
    • Fixed compile errors for Unity 2017 beta.


    V 4.1.0 changelog:
    • Fixed bug: Scene reloading would cause Custom Event Listeners to be shown increasingly more times as Listeners in the Inspectors
    • Fixed bug: If LowPassFilter already exists on Variation, Occlusion will log error when trying to add the Component.
    • Fixed bug: Dynamic Sound Groups with "Use Localized Folder" would not correctly unload Resource files when the DGSC was disabled.
    • Added "Add to Ducking" button to Bulk Group Changes section on Group Mixer. Will add all selected Groups to Music Ducking.
    • Added "Use Spatializer" checkbox on Advanced Settings for Unity 5.4 and up. If checked, and you have selected "OculusSpatializer" from the Spatializer Plugin dropdown on AudioManager screen, then "Spatialize" checkbox on all Audio Sources for Sound Groups will be checked when you click enter Play mode.
    • Added Audio Source Template of "Max Distance 10" and tweaked all Audio Source Templates so 0 is reached at max distance.
    • Added option for Occlusion to choose whether "Ray Casts Hit Triggers". Defaults to true as that's the normal Unity option.
    • Fixed Unity 5.6 compilation error.


    Changelog for V 4.0.9:
    • Changes to Linked Groups (on Sound Group Inspectors). There is no longer the option of "Play when Requested", only "play when played". Now there are separate sections for "Start Linked Groups" and "Stop Linked Groups". The "Start" ones are as before. The "Stop" ones enable chaining of Sound Groups, and play when the Sound Group's Variations stop playing. This lets you set up chains of FX.Added "Linked Groups To Play" dropdown for both Linked Group types (start and stop). Choices are "All" (default) and One At Random.
    • SoundGroupAttribute now has a gear icon to edit the chosen Sound Group, and preview / stop icons.
    • Added preview and stop buttons to Sound Group settings on Event Sounds.
    • Master Audio game object is now in the Ignore Raycasts layer.
    • All children of Master Audio game object (followers / variations / etc) now take the layer of the MA game object once the Scene starts. This will help make the triggers used by Audio Listener Follower not interfere with raycasts.
    • Now having more than one of the same Sound Group set up in Music Ducking will log a warning to the Console and show you a red error box in the Inspector.
    • Added a button to Copy Settings in Sound Group's Inspector so that you can bulk copy the Voices / Weight field from one Variation to any/all others. This field was strangely missing from that section.

    Changelog for V 4.0.8

    • Bug fix: Occlusion code no longer causes any Garbage Collection when occlusion is turned off (or on), except possibly during the frame that you turn it on during runtime (which wouldn't happen in normal game play I think).


    Changelog for V 4.0.7
    • Important change: Changed "Occlusion Check Time Gap" setting to "Max Ray Casts Per Frame". Defaults to 4. The other setting wasn't distributing the load correctly on slow devices (mobile mostly). You may need to adjust this new setting to your liking.
    • Fixed bug about stuttering gap on "Gapless" setting when using Song Transition Type of "New Song From Beginning".
    • Fixed warnings in Unity 5 that happen when using "Save Runtime Changes" option.
    • Fixed bug with volume jump during gapless transitions while setting PlaylistVolume from code.
    • Fixed bug: during edit mode, could not change a Sound Group assigned to a bus back to [No Bus].
    • Fixed bug: after unpausing a Sound Group, any playing Variations would not re-enabled the "Updater" script so fades wouldn't work.
    • Fixed issue where a disabled AudioListener would still be used for Occlusion ray casts sometimes. Now it will find the first enabled one.
    • Fixed bug: Audio Clips with Preload Audio Data = true would stop when told to pause.
    • Fixed bug: Relations Inspector showed "MechanimState" settings set to "None". Now hidden.
    • Fixed bug: Relations Inspector did not show Linked groups for some actions.
    • Fixed bug: Doing a bus fade after using AdjustVolume on a Variation would lose the adjusted volume.
    • Added AmbientSound script. There's a control for Sound Group and one for "follow caller" or not. This is the new best way to play ambient sounds, NOT using Event Sounds with Start event.
    • Relations Inspector now shows Ambient scripts as well!
    • Added 2 more smaller range Audio Source Templates. For any Master Audio and Dynamic Sound Group Creator prefabs you are already using, you will need to drag in the 2 new Audio Source Templates to make the red alert boxes telling you about them to disappear.
    • Added Ray Cast Origin Offset slider to Occlusion settings. Also added a way to override that global setting on each Sound Group.
    • Added Ray Cast Frequencies to each Sound Group so you can override the main settings per group.
    • Added "Frequency Change Time (sec)" field on Occlusion Settings. Defaults to 0. This controls how long the new target frequency from the occlusion ray cast will take to transition. During this amount of time, there will be no further ray casts or occlusion calculations.

    Changelog for V 4.0.6

    • Breaking change: MasterAudio.FireCustomEvent now requires a Transform to be passed in instead of a Vector3. The Transform's position will be used as the Vector3 was. Please change any of your own code calling this or you will not be able to compile. This is necessary for the new "Send To Receiver" modes coming of "same game object", "children" and "parents".
    • Possible breaking change: Added "Song Start Time Mode" dropdown in each song. Choices are "Beginning", "Specific Time", and "Random Time". The default is Beginning so if you previously had set a Start Time of non-zero, you will need to select either Specific Time or Random Time. Random Time gives you 2 fields for min and max seconds.
    • Fixed bug: Deleting a bus with a sound playing would not adjust the volume of the sound in Unity 4.
    • Fixed bug: Adjusting more than one bus volume during play would incorrectly re-max sound effects on the first lowered volume bus.
    • Fixed bug: Sometimes the "save changes" feature would log an error about duplicate key.
    • Fixed bug: Master Audio would fail to play a sound when the only variation left in the random leftover pool was already playing before the pool refilled.
    • Fixed bug: Immediately trying to call AdjustVolume on a sound that you just started playing would not work.
    • Fixed bug: Calling AdjustVolume on a sound that you just started playing at zero volumePercentage would not adjust and not be audible.
    • Fixed bug: Changing to another Scene with a non-persistent Master Audio game object and occlusion enabled would sometimes log errors to the Console.
    • Fixed bug: Auto-advance Playlists with short clips would not be truly gapless on some songs when Gapless was enabled.
    • Fixed bug: Pausing and unpausing a gapless Playlist would not always restart the scheduled song at the right time.
    • Fixed bug: Fading code so that it still fades for the proper amount of time even if you don't have a stable frame rate.
    • Fixed bug: All Group Templates so Retrigger Percentage is set to 100% (uninterruptible).
    • Fixed bug: Gapless song transition occasional bug with single playlist.
    • Fixed bug: Start on Awake with gapless combo for Playlists that would schedule multiple songs instead of one, creating weird overlapping audio.
    • Fixed bug: Muted Sound Groups will now play silently instead of not at all.
    • Fixed bug: When there is a Soloed Sound Group or Bus, non-soloed Sound Groups will now play silently instead of not at all.
    • Fixed bug: Mute / Solo switches now work at runtime on already playing Sound Groups.
    • Fixed bug: Numerous display bugs with mute/solo reset & mixer mute coordination.
    • Fixed bug: Deleting then undeleting a Sound Group (pressing undo) at runtime would break that Sound Group (can't play). Now it works.
    • Made MasterAudio.GetCustomEventByName public.
    • Updated Playmaker, NodeCanvas & Behavior Designer optional packages to compile with the breaking change above. You will need to reinstall the latest version of these if you are using them.
    • Added new Send To Receivers modes to Custom Events: OnSameGameObject, OnChildGameObjects, OnParentGameObjects, OnSameOrChildGameObject, and OnSameOrParentGameObject. These work as expected. A good way to limit recipients when you can't depend on position.
    • Added new Random and Distance criteria to Custom Events. Field: "Valid Receivers". Options: All (default), Random and Closest. For the latter 2 options you specify a number. That means you can have only the 3 closest receivers receive the event, or 2 random receivers.
    • Changed default "Retrigger Percentage" on Sound Groups to 100, so they are uninterruptible and can't be stolen while playing.
    • Changed last remaining "Resume" API's to "Unpause" instead. If you are using these from your own code, please update their usage.
    • Jukebox control now appears on each Playlist Controller's Inspector at runtime.
    • Variation and Group Inspectors now show "paused" indicator instead of "playing X%" when it's paused.
    • Added "StopPlaylistAfterCurrentSong" to EventSounds, MasterAudio and PlaylistController. It cancels all queued / scheduled songs, stops looping the current song and disables auto-advance for the Playlist Controller.
    • Added a way to specify code to execute for "LastVariationInSoundGroupFinishedPlaying" for a Sound Group. Call MasterAudio.SubscribeToLastVariationPlayed and add your code there.

    Changelog for V 4.0.5

    • Fixed bug: Audio Clips with Preload Audio Data = false would unload when pausing. Now it uses the same checkbox in Advanced Settings "Keep Paused Resources" to decide whether to unload or not.
    • Now "File on Internet" Audio Clips show with a name instead of blank on the Audio Source.
    • Fixed illegal seek position for PlaylistControllers under uncommon scenario.
    • Added "Collapse All Events" button in EventSounds Inspector.
    • Added "Fire!" button in Event Sounds Inspector at runtime for Custom Events, Mechanim State Changed and all other events so you can test the audio configured in the event without making it actually happen.
    • Removed MasterAudio.PlaySound3DAndForget method. It was the same as PlaySoundAndForget and the documentation was wrong.
    • Fixed bug: "Follow Audio Listener" would move already playing Variations that didn't follow their caller when the MA game object moved. Removed option for "Follow Audio Listener" and now play audio for previewing directly on the AudioListener game object.
    Changelog for V 4.0.4

    • Added MasterAudio.RouteGroupToBus method to reassign Sound Group to a different bus at runtime.
    • Fixed compile error for Playmaker actions that were broken in 4.0.3 update.
    • Added gear icon next to Linked Groups so you can edit them if desired.
    • Jukebox time remaining for song now accounts for pitch other than 1 and shows actual real time remaining.
    • Now the Delete icon for Sound Groups is available at runtime.
    • API renaming for more consistency. MasterAudio.CreateNewSoundGroup is now CreateSoundGroup, RemoveSoundGroup is now DeleteSoundGroup, DeleteBus is now DeleteBusByIndex.
    • More API renaming for more consistency. MasterAudio.ResumeAllPlaylists is now UnpauseAllPlaylists.
    • Bug fixed: Deleting a bus will reassign all Groups on that bus to "no bus" and recalculate all Groups that were assigned to it (spatial blend / volumes).
    • Bug fixed: "type in" now allows type in for all Event Sounds dropdowns (sorting previously added made it not work in some places).
    • Bug fixed: "Start" Playlist functions would not work when you enter a new Scene with a persistent and same clone of the Playlist Controller (which gets destroyed automatically).
    • Bug fixed: Unpausing a stopped Playlist Controller was clicking "play", so it started songs over.
    • Bug fixed: When using gapless transitions was not auto-advancing songs when you had multiple Synced Playlist Controllers.
    • Bug fixed: When adding 2nd Playlist layer (Cynced) not even playing, layer 1 repeats 2nd song.
    • Bug fixed: Updated Behavior Designer compile errors from changes.
    • Updated Node Canvas compile errors from changes.
    • Added "Route To Bus" to Event Sounds, under Group Control type.
    • Added optional System.Action completedAction to all PlaySoundXAndWaitUntilFinished methods, to execute code when completed.
    • Added a boolean return value for the MasterAudio.PlaySoundXAndForget methods, so you at least know if the sound was played or scheduled (both return true, false otherwise).
    • Now not logging the warning about next gapless song rescheduled if you are paused.
    • Added new code to make layered gapless music always accurate on next song transition.
    • Added "Initialized Custom Event" to each Playlist Controller, which fires if you select one in the Inspector after the Controller is done initializing and is ready.
    • Added buttons in the top section of Master Audio game object to pause/unpause/stop the mixer and all Playlists at once. Only visible at runtime.
    • Custom Events in Dynamic SGC's now show up in the dropdown in the Inspector created by MasterCustomEvent Attribute decorated fields.
    • Sound Groups in Dynamic SGC's now show up in the dropdown in the Inspector created by SoundGroup Attribute decorated fields.

    Changelog for V 4.0.3
    • Fixed bug where Retrigger Limit using frames caused errors.
    • Fixed bug where Occlusion check after loading a Dynamic SGC on a new Scene would log errorsChanged Occlusion option "Turn on per group" to "Turn on per bus or group".
    • Added "Use Occlusion" option to Buses when "Turn on per bus or group" is on in Occlusion settings.
    • Added option "Include Ray Cast Origin Collider" for Occlusion. Only visible and available on Unity 5.2+. This is for 2D ray casts only, and controls whether the collider you start the ray cast from is considered a hit or not.
    • Removed Transform and followTransform parameters from MasterAudio.PlaySound3DAndForget, since only "Transform" methods should take those.


    Changelog for V 4.0

    • Added Occlusion settings (for Unity 5 only). Must enable Occlusion in Advanced Settings, then turn on Occlusion per Group you want. Just like auto-prioritization, you choose how often to check for occlusion (raycast), a time interval of .1 - 1 second is possible. The raycast checks if something blocks the AudioSource in a straight line to the AudioListener. If so, a Low Pass filter is applied based on the distance from AudioSource to the blocker (You will not be able to use a Low Pass filter setting of your own when using occlusion because the setting is constantly hijacked by occlusion code). The further from the Audio Listener when blocked, the more frequencies will be filtered out. 2D sounds will not run occlusion code and do not show the option in the Inspector.
    • Occlusion settings now have an optional LayerMask for the RayCast, so you can choose which layers to consider a hit, just like the field on a Camera.
    • Added Occlusion setting to Sound Group's Inspector, choices are "All Groups" and "Turn on per Group".
    • Occlusion setting has runtime display of buckets: # of in-range, out-of-range and occluded Audio Sources. Each of these can be clicked on to select all in that bucket in the Hierarchy.
    • Occlusion has "show ray casts" checkbox (default to true), which shows green lines for unblocked and red for occluded lines. Helps when troubleshooting problems with occlusion.
    • Occlusion has "RaycastMode", settable to Physics3D (default) or Physics2D. With the former, the raycast can only hit 3D colliders. With the latter, only 2D colliders.
    • Occlusion has "Show Diagnostic Buckets" setting (defaults to false since it takes performance) to show the categories of: InRange / Out of Range / Occluded and the counts of each that you can click on to select the objects.
    • Auto-prioritization code now looks at Spatial Blend (bus and rule), since 2D stuff always should have highest priority.
    • Renamed "Apply Distance Priority" to "Use Distance Priority" to be consistent.
    • Added "Select Caller" button at the top of Variation Inspectors at runtime so you can click it to find the object in the Hierarchy that played it.
    • Moved "Buses Shown in Narrow" Advanced Setting to be stored in scriptable object MasterAudioSettings, since it's unlikely you would set it different per Master Audio prefab. Your previous setting will be reset to "on" so if you want it off, you must turn it off again.
    • Moved "Show Variation Gizmos" Advanced Setting to be stored in scriptable object MasterAudioSettings, since it's unlikely you would set it different per Master Audio prefab. Your previous setting will be reset to "on" so if you want it off, you must turn it off again.
    • Moved all Fading settings in Advanced Settings to be stored in scriptable object MasterAudioSettings, since it's unlikely you would set it different per Master Audio prefab. Your previous setting will be reset to "on" so if you want these on, you must turn it on again.
    • Moved all Resource file settings in Advanced Settings to be stored in scriptable object MasterAudioSettings, since it's unlikely you would set it different per Master Audio prefab. Your previous setting will be reset, so doublecheck your settings here.
    • Fixed bug where sometimes assigning something to a Unity Mixer Group at edit time would log an error in Console.
    • Moved icons in Gizmos folder under Gizmos/MasterAudio so it's obvious what they are for.


    Changelog for V 3.5.9:
    • Changed max crossfade time from 10 seconds to 120 seconds.
    • Fixed bugs with some music ducking scenarios.
    • Fixed bug: "type in" on EventSounds for Sound Groups wasn't letting you type in.
    • Fixed bug where "Create" button for Master Audio prefab on Master Audio Manager window didn't work.
    • Fixed bug with gapless where re-scheduling an already scheduled song could sometimes result in slight gaps or too early transitions. Now it only reschedules if the track is off its original schedule by more than 1 second, which will never happen unless you change pitch of the song while it's playing or change the position of the song, in which case a warning in logged to the Console to tell you of those possible causes and that gapless might not be so in these cases.
    • Changed "Volume Multiplier" on each Duck Group to "Volume Cut (db)" so it will work more uniformly at any music volume. You will lose all Volume Multiplier settings so check all your Duck Groups! Default Volume Cut is -6db.
    • Added method MasterAudio.ListOfAudioClipsInGroupsEditTime, which gives you a list of audio clip filenames. Only use from edit mode for any custom code you may have there.
    • Added new Playmaker Custom Action MasterAudioGroupIsPlaying.
    • Added new Playmaker Custom Action MasterAudioPlaySoundWithEvent.
    • Added new PropertyDrawer for CustomEvents. Use it by adding the [MasterCustomEvent] Attribute to a public string variable in your custom scripts.
    • Added "MechanimStateCustomEvents" script. You can add this to a state in Mechanim to fire a Custom Event on enter and exit state.
    • Added a property that keeps an up to date list of all Audio Source used by Master Audio (MasterAudio.MasterAudioSources).
    • Added an event you can listen to that notifies if the list of all Audio Sources changes (MasterAudio.NumberOfAudioSourcesChanged += delegate {})
    • Integration with RelationsInspector. New icon on mixer rows and bus rows to show all usages of Sound Group / Bus in Scene in a graph. Finds only references in EventSounds and "MechanimState" scripts in Master Audio.

    Changelog for V 3.5.8.9:
    • Fixed bug where changing bus volume of a delayed sound would not respect the new bus volume
    • Fixed bug where Song Started Custom Event would fire repeatedly in rare edge case.
    • Fixed bug in SoundGroupOrganizer where wrong source object's Sound Groups would be displayed sometimes.
    • Fixed PlaymodeStateChanged delegate so it doesn't block other plugins from using it.
    • Fixed bug where a Chained Loop group with only 1 Variation would loop forever regardless of how many times you told it to loop.
    • Fixed bug where ending the looping of a Playlist song would not advance to the next song unless it was queued, when using Gapless.
    • Fixed bug where calling RemoveSoundGroup would not unload Resource files.
    • Fixed bug where a "typed in" Initial Playlist of a Playlist Controller would be lost when you selected the Master Audio game object.
    • Added an option to disable "no-repeat Variations" for a Sound Group whe you have 3 or more Variations.
    • Added an API button on each Inspector to take you to the coding API, for the same class where applicable. Same row as the Help icon under the logo.
    • Bus settings (just bus name) are now copied to / from SoundGroupOrganizer, so that if you import and export a Sound Group, it will still point to the same bus on the export target when done. In cases where this is a "new bus", one will be created for you. No other settings except the bus name will be copied for the new bus though.
    • Moved all Master Audio preferences into a Scriptable Object instead of PlayerPrefs. You can move the Scriptable object to a different Resources folder if you like. Contains settings like Use Db, Use Cents for Pitch, Narrow vs Normal mode, installation path, etc. Note that these settings will be reverted to their default so you will need to change any you were using.
    • Changed RemoveSoundGroup method to accept a string (Sound Group Name) instead of Transform. This way it can easily be used by coders.
    • Made it so "no-repeat Variations" does not happen when you have 2 or less Variations (because that would make it always the same).

    Changelog for V 3.5.8.8:
    • Fixed bug where songs added to a Playlist Controller's queue sometimes would not play when Gapless Song Transitions is turned on.
    • Fixed compile error with optional Playmaker Custom Actions.
    • Added new property OriginalVolume to MasterAudioGroup class.
    • Added new property OriginalVolume to GroupBus class.
    • Fixed Unity 5.3 warnings.
    • Fixed bug with GetVariationLength with Dynamic SGC's
    • Fixed Bug when dragging in special language folder located Audio Cips into Playlists. Should not ignore the special folder name when populating Resource filename.
    • Added "Group by bus" option to Dynamic SGC.
    • Fixed compile errors for Unity 4.7

    Changelog for V 3.5.8.7:
    • Fixed bug: Localized Resource Files didn't work properly when added in Dynamic Sound Group Creators.
    • Fixed bug with "playing / not playing" indicator when using Resource files.
    • Fixed bug with "input stealing" in EventSounds.
    • Fixed bug where Duck Groups set up in Dynamic SGC's would not show in the Master Audio Inspector at runtime.
    • Fixed bug where Custom Events configured in the individual songs in a Playlist would fire even when disabled in the UI.
    • Fixed bug where next song would be scheduled even when current song is set to loop, when Gapless Song Transitions is turned on.
    • Fixed excessive logging to the Console window when no Master Audio game object exists in the Scene and Dynamic Sound Group Creator or Playlist Controller game objects try to initialize. Now there's a single error logged to the Console.
    • AudioUndoHelper moved into the DarkTonic.MasterAudio namespace.
    • Added "unduck time" (seconds) to each Duck Group. The default is 1 second. This controls how long it takes the music to completely unduck after unducking begins. Note that it used to always take until the clip finished playing to finish unducking, so you may need to adjust the new setting in Duck Groups if you don't like the default of 1 second.
    • Added "volume multiplier" to each Duck Group. The default is .5. This allows you to have a different multiplier for each Sound Group.
    • Added OriginalVolume property to Variations. Retains the volume you set in the editor before hitting play.
    • Added SoundGroupName property to Variations.
    • Added "Force to 2D" checkbox for buses. This is useful because now you can make a "2D / UI bus" for all 2D sounds and leave the Mixer's Spatial Blend Rule at "Force to 3D". So whenever you create new UI sounds, just assign them to your 2D bus!
    • Added button to clone a song in a Playlist, including all settings.

    Changelog for V 3.5.8.6:
    • Fixed compile problem: Moved editor folder to Plugins/Editor/DarkTonic/MasterAudio
    • Fixed bug: Resource files were not unloaded from Playlist Controllers when the game object was destroyed by a Scene changing
    • Fixed bug: Footstep Sounds script logged errors to Console when no Master Audio prefab in Scene.
    • Added new API methods for "StopLoopingCurrentSong". This does the same as QueuePlaylistClip, but without having to queue a clip. So it will turn loop off for the current playing song and play the next song in the Playlist when done.
    • Added StopLoopingCurrentSong to EventSounds Playlist control so you can do it without writing any code.
    • Anywhere a Sound Group dropdown appears, added a button to go to that Sound Group and edit it.
    • Gizmos now default to off for EventSounds and only show for actively playing Variations instead of all.
    • Added "Filter Out Inactive" checkbox during Runtime on the mixer. Enabling this will hide all Sound Groups with zero voices playing. Good for investigative audio work.

    Changelog for V 3.5.8.5:
    • Upgrade note: Moving our plugins into Plugins folder to help speed up compile times in your projects! Make sure and move the entire Assets/DarkTonic folder into Assets/Plugins before upgrading to this version! Then update the Installation Path to Assets/Plugins/DarkTonic/MasterAudio on the Master Audio Manager screen by clicking "revert". Good to go
    • Now allowing Async loading of Resources to all Unity 5 users, even free version.
    • Added MechanimStateSounds script. This can be added with the "Add Behavior" button on a Mechanim state, and can play a Sound Group of your choice during state enter and/or exit.
    • Fixed MasterAudio.GetAllPlayingVariationsInBus to return a list of Variation objects, not game objects. That is far more useful.
    • 0-1 to Decibels conversion was incorrect! Fixed formulas.
    • Made Sound Groups with zero voices playing a different color for the voice count on the Mixer (dark gray) to stand out better.
    • Now all Sound Group Variations go back to position 0,0,0 (relative to Master Audio game object) after stopping. So if you see a Gizmo for a Variation at a different location, it is playing something.
    • Changed default behavior of Caller Despawned Mode for each Sound Group. Now it defaults to a fade of 0.3 seconds. This will affect only projects that haven't imported Master Audio before.
    • Added option "Follow Audio Listener" on Advanced Settings. Defaults to on. This aids previewing, and will move the Master Audio game object to Audio Listener's location every frame, including at edit time. This will enable previewing of sounds from the Master Audio game object at all times. Before it was based on distance from the Audio Listener.
    • Sound Group's Inspector now has mute and solo button like its Mixer row.
    • Playlist Controller's Inspector now has mute button like its section in the Master Audio game object.
    • Now showing indicator of playing / not playing and “time” on Group & Variation Inspectors so you can see which Variations are playing.

    Changelog for V 3.5.8.4:

    • Fixed bug: ButtonClicker script spams Console when no Master Audio game object in Scene.
      Fixed bug: Hitting stop in the Jukebox with Song Ended Custom Event set up on Playlist Controller logs "Duplicate Custom Event fired"
    • Fixed bug: Song Ended Custom Event on Playlist Controller fires SongEnded when starting first song.
    • Fixed bug: Song Ended Custom Event & Song Changed Custom Event on Playlist Controller both fire even when collapsed & unchecked.
    • Fixed bug: When encountering a busy Variation, other available Variations were not used in some cases.
    • Now logging a warning to the Console if you're using Resource files that have "preload audio data" unchecked, since that causes audio glitches sometimes. Turning Preload Audio Data off is an alternative to using Resources files, you should never do both on the same file.
    • Removed Particle Emission controls from EventSounds. This is an old weird feature that doesn't belong in an audio plugin.
    • Deleted "Master Audio Set Variation Pitch" Playmaker Custom Action as it was a duplicate of Master Audio Group Set Pitch.

    Changelog for V 3.5.8.3:
    • Added fix for NGUI OnDrag and other events
    • Added ability for Synchronized Playlists to use auto-advance if Crossfade is set to zero.
    • Narrow / Normal mode is now stored in Player Prefs so you don't have to make the change on each Master Audio prefab if you have many.
    • Fixed bug: In Narrow Mode on some Inspector widths, can't type in top 3 boxes (Master Playlist Volume etc).
    • Added ability to automatically unload Audio Clips marked with "Preload Audio Data" off (default is on) used in Playlists. Saves a ton on memory usage without having to use Resource Files!
    • Added ability to automatically unload Audio Clips used in Sound Groups. Saves a ton on memory usage without having to use Resource Files!
    • Added property ClipsRemainingInCurrentPlaylist to PlaylistController for reading the number of songs not yet played.

    Changelog for V 3.5.8.1:
    • Added a button on Master Audio Manager window to delete all persistent settings and other settings stored in PlayerPrefs.
    • Added a Song Id field to each song in a Playlist. This allows you to play songs in different Playlists by a common alias like "Intro", "Battle Music" etc when you use different music for audio skins or levels.Removed preview buttons for all audio in Master Audio prefabs viewed in Project viewed because they can't work there anyway.
    • Added ability to have Sound Groups to trigger a Custom Events when played.
    • Added option in Visual Settings to show buses (bus dropdowns) in narrow mode. Defaults to on.
    • Added NodeCanvas integration package.
    • Added true no-repeat functionality (by default) to Sound Groups with randomized Variation Sequence.
    • Fixed bug: previewing of Internet Files didn't do anything.
    • Fixed performance bug: Playlist clip would be scheduled even when current clip is looping (not necessary).
    • Fixed compilation errors on Unity 5.1

    Changelog for V 3.5.8:
    • Moved "Inspector Width" control from under the Group Mixer to Advanced / Visual Settings where it belongsChanged the default of Inspector Width to "narrow" so it's usable by default with a normal width Inspector. Change it to "normal" if you like the old wider setting.
    • Fixed Languages section to fit on "narrow" width.
    • Added Playmaker custom action "MasterAudioPlaylistControllerGetProps", to get Playlist Controller's volume, current audio clip pitch, current audio clip volume and store them in variables.
    • Added Playmaker custom action "MasterAudioVariationGetProps", to get a specific variation's audio source pitch and volume and store them in variables.
    • Fixed bug with spamming of Console window when you have no Audio Listener in the Scene.
    • Fixed bug: Couldn't click 2 mute buttons up top in the MA Inspector when on narrow mode at runtime.
    • Fixed rare bug with Event Sounds not displaying anything.
    • Added 3rd Audio Origin type of "File on Internet" for Sound Groups only, not Playlists. Allows you to specify a URL for an audio file. During the Awake event, Master Audio will start downloading the audio for any Variations set up like this. The mixer now has an icon next the yellow voice count showing the ready status of each Group (loading / ready / failed).
    • Added method "ReDownloadAllInternetFiles" to unload all Internet audio files from memory, then redownload them in case they have changed since downloading. Good to call every week or so if you want to do holiday sound skins and things like that!

    Changelog for V 3.5.7.9:
    • Added MusicMuted and SfxMuted properties to PersistentAudioSettings. Added these to EventSounds for no-code activation from various events.
    • Fixed bug where Event Sounds Inspector would log errors in Console when Master Audio prefab not in the Scene
    • Made "Spatial Blend Rule" changes switch all Audio Sources when you select it at edit time too, so you can preview better. Does not do anything on Dynamic SGC's though.
    • Added option in Master Audio Manager window to update the installation folder. This setting uses PlayerPrefs so it won't need to be changed again every time you download an update to Master Audio.
    • Updated API Website to Doxygen!
    • Added code to put Script Execution Order of PlaylistController, MasterAudio and EventSounds scripts in the right order automatically.
    • Eliminated CoRoutine from EventSounds. Now Start events all fire correctly no matter what, due to the Script Execution item above.
    • Added MasterAudioBusGetProps Playmaker custom action to get voice limit, volume, etc of a bus and store them in variables.
    • Added MasterAudioGroupSetPitch Playmaker custom action.
    • Fixed bug with TriggerNextPlaylistClip that happened with auto-start in some cases.

    Changelog for V 3.5.7.8:
    • Now Sound Groups from any Dynamic Sound Group Creator game objects in the Scene appear in the dropdown list in our custom Inspectors for Event Sounds, Button Clicker and other scripts!
    • Renamed UndoHelper to AudioUndoHelper to match the code class
    • Fixed bug: Fire Items Created Event in Dynamic SGC would hide the rest of Inspector below that when Master Audio not in Scene.
    • Fixed bug with manual Master Audio prefab creation and order of scripts not allowing Playlist to play.
    • Fixed compile error for Windows Store platform.
    • Fixed a bug with FadeOutNow not working when called immediately after PlaySound.
    • Updated BehaviorDesigner package with their latest updates.
    • Moved AudioUndoHelper into main Editor folder. No need for extra folder when it can't be shared with our other plugins. Please delete the old one in DarkTonic\Editor folder when updating.
    • Fixed compilation for all versions of Unity 5, future, beta and present.
    • Added 4th Spatial Blend Rule to Sound Groups: "Use Curve From Audio Source". This allows you set to a graph (green line) for Spatial Blend based on distance in the Audio Source. Choices are only visible when Spatial Blend Rule is set to "Allow Different Per Group" on mixer.

    Changelog for V 3.5.7.7:
    • BREAKING CHANGE (if you have written code): All classes are now in the DarkTonic.MasterAudio namespace. You will need to add "using DarkTonic.MasterAudio;" at the top of all scripts you've written that use the Master Audio API.
      Changed label of Weight (Instances) to "Voices (Weight)" for less confusion
    • Changed UndoHelper to AudioUndoHelper to avoid conflicts with our other plugins.
    • Fixed compile errors in optional DF-GUI package.
    • Fixed volume level bug when using "fade in first song" with zero crossfade.
    • Fixed fade in bug where it set volume to zero with no fade in (makes FadeOutNow inaudible).
    • Fixed preview of Sound Group in Dynamic Sound Group Creator. It didn't respect the Group's volume fader.
    • Fixed bug: FadeSoundGroupToVolume and FadeBusToVolume did not execute their callback if you had it fade faster than 0.1 seconds.
    • Fixed bug: Caller Despawned Fade stops suddenly instead of fading when TimeScale is zero.
    • Consolidated all Master Audio menu items under "Window" into a new parent "Master Audio" menu item.
    • Fixed 2D Toolkit package compile errors due to recent changes in main Master Audio code.
    • Updated Behavior Designer packages to use the new namespace.
    • Updated DF-GUI package to use the new namespace.
    • Updated Playmaker package to use the new namespace.
    • Updated 2D Toolkit package to use the new namespace.
    • Eliminated CoRoutines in MasterAudio and PlaylistController classes. Ignore Time Scale now only used for "DelayBetweenSongs" script and EventSounds Start event.

    Changelog for V 3.5.7.6:
    • Added namespace to all System.Action usages in case you have another Action class.
    • Fixed bug where Dynamic Sound Group Creator no longer removed temporary items on Unity 5
    • Fixed bug where Event Sounds' Inspector didnt' line up multiple actions in the UI correctly.
    • Fixed bug where Footsteps script only played sound for the first footstep group.
    • Fixed Persistent Group & Bus volume to use Player Prefs (more permanent and works in multiple sessions).
    • Fixed bug where shuffle mode Playlists would log an error to Console on startup.
    • Now Custom Events that are created Dynamically can still be subscribed to.
    • Added "toggle mute bus" command to API and to Event Sounds script.

    Changelog for V 3.5.7.5:
    • Master Audio Clip Manager now shows .aiff files as well.
    • Fixed bug when the first Sound Group if configured as a ducking sound would log an error in the console
    • Fixed bug with PersistenAudioSettings.MusicVolume getting set would fail on Scene restarts.
    • Fixed bug where multiple Syncrhonized Playlists starting in a Scene would sometimes log an error in the Console.
    • Added Toggle (uGUI) to EventSounds.

    Changelog for V 3.5.7.4:
    • Fixed bug with SoundGroupAttribute when no Master Audio prefab is in the Scene and you hit Play
    • Fixed bug with Playlist Controller that's muted playing audio when the Scene changes.
    • Fixed bug where "Mechanim State Changed" sound wouldn't work after you disabled the Game object and enabled it again.
    • Fixed bug with Dynamic SGC existing bus, when the bus is missing.
    • Fixed bug with EventSounds component unable to unregister itself from Custom Event Listeners when the Master Audio game object gets destroyed by a Scene change.
    • Fixed bug where negative volume settings (Variation random volume) would display NaN for volume when using "display dB for volumes" option.
    • Fixed more scene changing bugs with Dynamic SGC's.
    • Added ability to turn off Master Audio logo at top of Inspectors. It does function as a navigation back to the Master Audio prefab in the Scene, but some people don't use it.
    • Added separate UI colors for light and dark Unity skin.
    • Added narrow mode as a toggle under the Mixer section. This hides some less important controls and makes Master Audio workable with a "normal width" Inspector.
    • Fixed scene changing bug with DelayBetweenSongs script.
    • Fixed bug where Custom Fading on a Variation would act as if in Chained Loop mode even if it wasn't.
    • Added a red error in the Console if you try to call any Playlist Controller method before it has initialized itself. The message will explain how to get it to work properly.

    Changelog for V 3.5.7.3:
    • Fixed Resource.Load command for Unity 5 beta 22. It wouldn't export as a standalone.
    • Added warning to Console if you checked Play on Awake on the Playlist Controller's Audio Sources. Those have no function in Master Audio and can lead to buggy behavior.
    • Added warning to Console if you checked Play on Awake on any Variation's Audio Source. Those have no function in Master Audio and can lead to buggy behavior.
    • Now Unity 5 users can load Resources asynchronously again on Unity 5 beta 22!
    • Fixed bug where when using Save Runtime Changes, Custom Events wouldn't fire sometimes because lastFrameFired didn't reset.
    • Fixed bug where immediately calling JumpToTime after playing a Variation would not work.
    • Fixed bug where Fade to Volume action on Playlists for Event Sounds always faded to 0 regardless of slider volume for non-uGUI events.
    • Fixed bug where Gapless song transitions didn't work any more.
    • Removed EventCalcSounds.cs from plugin. Should no longer be needed.
    • UI overhaul. Now it's much more intuitive and related controls are grouped into bordered boxes. It shouldn't confuse anyone who used it before.
    • Updated DF-GUI optional package.
    Changelog for V 3.5.7.2:
    • Refactored Custom Event tracker code to handle scale much better.
    • Added option in Master Audio Manager window to display all pitch settings as semitones instead of Unity -3 to 3 ranges.
    • Minor refactoring of all code with ReSharper. Code is cleaner to read now but should not break anything you've already set up.
    • Added option to EventSounds script to use the UI Slider value from a UI Slider Changed event to set any volume (this is the new default). The old behavior made you specify a volume. Volume Mode dropdown now appears for Slider Changed event only.
    • Added new Global Command options to EventSounds: Set Master Mixer Volume, Set Master Playlist Volume. All can use slider value.
    • Added new Persistent Settings Command options to EventSounds: Set Group Volume, Set Bus Volume, Set Mixer Volume, Set Music Volume. All can use slider value.

    Changelog for V 3.5.7.1:
    • Added Audio Source Templates feature. There's now a folder at DarkTonic\MasterAudio\Sources\Prefabs\AudioSourceTemplates which holds 4 Audio Source Templates. You can create more if you like. When you turn on Bulk Group Changes for the mixer, there's a button "Apply Audio Source Template" that will do it for all selected Groups.
    • All Variations created in the Master Audio prefab now use the selected Audio Source Template if you have any.Added Audio Source Templates feature to Dynamic SGC prefab as well. It affects all Variations created after you select one.
    • Added "Apply Audio Source Template to All" button on Dynamic SGC and Master Audio. That way you can do it without going into bulk mode.
    • Updated Playmaker example Scene, it had a bug.

    Changelog for V 3.5.7.0:
    • Some variable names were too close to property names, so had to be changed. These will reset to 1 so your volumes will be lost (next 3 items)
      • Playlist Volume on Playlist Controller (will revert to 1 so please re-set your Playilst Controller volumes).
      • Master Mixer Volume on Master Audio (will revert to 1 so please re-set it on the Master Audio prefab).
      • Master Playlist Volume on Master Audio (will revert to 1 so please re-set it on the Master Audio prefab).
    • Fixed some weird caching bugs when using persistent MA prefab with a non-persistent Playlist Controller.
    • Fixed bug: If you had another class called Button or Slider (besides Unity GUI ones), EventSounds script wouldn't compile.

    Changelog for 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.

    Changelog for 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.

    Changelog for 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.

    Changelog for 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).

    Changelog for 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.
    Changelog for 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.

    Changelog for 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.

    Changelog for 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".


    Changelog for 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).

    Changelog for 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.
    Changelog for 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).

    Changelog for 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.

    Changelog for 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.
    Changelog for 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.
    • Added 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.

    Changelog for 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.
    Changelog for 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.
    Changelog for 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.
    Changelog for 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.
    Changelog for 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.
    Changelog for 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!

    Changelog for 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.

    Changelog for 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.
    Changelog for 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.
    Changelog for 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. Check the new section "Persistent Settings" in the Readme for usage. It's quite short.
    • 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.
    Changelog for 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 interfere with a current fade.
    Changelog for V 3.5.4.4
    • Added localization features for Resource file SFX. In the Master Audio prefab's Languages section (up top), 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. Read section 18 in the Readme for full details, it's 2 pages long.
    • 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.
    Changelog for 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.
    Changelog for 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.
    Changelog for 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.

    Changelog for V 3.5.4
    • 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.
    Changelog for 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).

    Changelog for 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".

    Changelog for 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.

    Changelog for 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.

    Changelog for 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 persistent and non-persistent Master Audio prefabs.

    Changelog for 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 an optional package to try the free version of Audial Manipulators. This package gives you many FX filter scripts to use on AudioSources, even in Unity Free! Requires Unity V4+.

    Changelog for 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.

    Changelog for V 3.5.3.2
    • Performance increase of about 94% on the very first sound effect played!
    • Huge Performance increase when refilling randomized pools.
    • Fixed bug in Sound Group Variation with lazy load parameter.

    Changelog for V 3.5.3.1
    • Performance increases for playing sound effects, by ~40% on my computer.

    Changelog for 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. Playing sounds with these methods always plays the Variation non-looped, so that you don't get into a situation where your CoRoutine might never end.
    • 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.

    Changelog for 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.

    Changelog for 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. Memory usage doesn't change on repeated usage.
    • 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. Useful on collision and trigger events among others.

    Changelog for 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-persistent 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.
     
    Last edited: Mar 25, 2024 at 8:10 PM
  3. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    This looks great Eric, definitely pulling the trigger on this.

    Quick question, and not to defocus this thread, but are you talking about Killer Waves yet or is there a thread I may have missed? :D

    Thank you!
     
  4. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Here's the documentation if anyone wishes to read about how it all works before buying.

    Stangely, I've only had a single request for features to add to Master Audio (and it's done). We currently have no planned updates, so speak up and let us know what you'd like to see :)
     
    Last edited: Feb 7, 2013
  5. I am da bawss

    I am da bawss

    Joined:
    Jun 2, 2011
    Posts:
    2,574
  6. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Procedural audio looks cool, thanks! Yes this supports all of those fx. You actually have Audio Source components in the prefabs under MasterAudio, so you can add whatever you like as far as FX under some/all of the child nodes for each sound group.
     
  7. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    The documentation is now a PDF (a few posts up).
     
  8. I am da bawss

    I am da bawss

    Joined:
    Jun 2, 2011
    Posts:
    2,574
    Hey Brian, I got a little suggestion. Does the Master Audio REALLY need a menu item at the top of Unity menu bar? I currently have more than a dozen extensions installed and the menu bar space is very very precious...(and I am on 13" Macbook Pro).....and I see "Dark Tonic" on the menu bar with no other function except "support" under its sub menu. I am wondering if it doesn't serve any other function can you remove it?


    BTW, PDF manual is a great addition! But I think including some screenshots in the PDF would be nice touch too. :)
     
  9. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    bawss, we'll consider removing the menu bar. In the meantime, you can remove it from your build by deleting the file "DTSupportMenu.cs" under MasterAudio/Editor. I hope that helps. I'll see if I can add some screenshots in later manuals. Thank you for the suggestions :)
     
  10. I am da bawss

    I am da bawss

    Joined:
    Jun 2, 2011
    Posts:
    2,574
    Thanks Brian! :)
    I just thought that top menu item is kinda arkwardly implemented......its serves almost no function, and also instead of being name "Master Audio" it is named "Dark Tonic" (which at first thought, doesn't sound like its related to Master Audio - the said product). I think keeping product recognition and brand consistency is important in my humble opinion (and from usability standpoint too). So Master Audio at the menu bar would be consistent with the imported package, making it easier for user to identify as oppose to make user puzzle by the new item.

    And secondly, I think you could have make the menu item to serve a more useful function - use it to INSERT Master Audio Prefab directly from there. It would be an easy and intuitive way for an users to initiate the prefab that way. I personally think the menu item is probably not needed, its easy enough to just drag the prefab into the scene yourself, and save the precious menu space. But from usability standpoint - if someone is completely new to Unity (or didn't bother reading the manual/pdf/readme file) - this would be the way to go.
     
  11. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Definitely some good feedback there bawss. The reason I didn't put a "MasterAudio" menu in was because we currently have another plugin as well (Killer Waves) and I didn't want there be two separate top-level menus for us. The DarkTonic one would show up only once if even if you have both plugins. I agree with everything else you said. I'm actually not sure how to do the menu-item-instantiating-prefab-thing, but yes it's easy enough to drag the prefab in. As far as Dark Tonic not sounding related to Master Audio, after you have inserted a couple Master Audio scripts from the Components/DarkTonic menu (or watched a video tutorial or two) the association should be obvious. Before you have done that, yeah not so much. We will give your feedback some serious thought. Thanks!
     
  12. I am da bawss

    I am da bawss

    Joined:
    Jun 2, 2011
    Posts:
    2,574
    Hmmm. I just noticed, the latest update changed the directory of the package path in Asset Store directory - from

    DarkTonic Inc/Editor ExtensionsAudio/Master Audio.unitypackage
    to
    Dark Tonic Inc/Editor ExtensionsAudio/Master Audio.unitypackage
    (notice the extra space between "Dark" and "Tonic")

    Now there are 2 packages in the Asset Store directory - resulting in 2 identical packages when starting a new project.
     
  13. dark_tonic

    dark_tonic

    Joined:
    Mar 23, 2011
    Posts:
    138
    Thanks, Bawss, we'll sort that with the next update, sorry about that.
     
  14. dark_tonic

    dark_tonic

    Joined:
    Mar 23, 2011
    Posts:
    138
    We've had some questions about this, and just want to leave a quick note that Master Audio (and Killer Waves) are compatible with Unity Free or Pro, and work on both 3.xx and 4.xx versions.
     
  15. SimtropBuggi

    SimtropBuggi

    Joined:
    Feb 15, 2013
    Posts:
    98
    1. I can't view the pdf as my xbox won't allow it (my vid card died on me)
    2. Can this package load MP3's from disk (I would like to pull music from a players own music collection)
    3. Can it load music dynamically at runtime?
     
  16. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Bawss, we are not sure how that happened and have emailed Caitlyn. If you (or anyone else) need the single package so you can compile, email me at jerotas2005@yahoo.com please with your Asset Store receipt. I will respond the same day. Thanks for the heads up!
     
  17. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Hi Simtrop, I can email you a MS Word readMe file if that works any better for you? Send me an email at jerotas2005@yahoo.com.

    It currently cannot load mp3's from disk or load music dynamically at runtime. I am curious what the application of that would be in a game? If you don't want to spill the beans publicly we can discuss in email as well.

    Thanks!
     
  18. I am da bawss

    I am da bawss

    Joined:
    Jun 2, 2011
    Posts:
    2,574
    Its no biggy really. I am just wondering if I can delete one of them. I am guessing you changed your company name in some field before submitting to Asset store and this automatically changed the directory where Master Audio installs in under. So now instead of updating it (and replacing the older package) it created a new one under the new directory.

    You can find the unity package under :

    Macintosh HD/Users/User Name/Library/Unity/Asset Store/DarkTonic Inc/Editor ExtensionsAudio/Master Audio.unitypackage
    Again, as I was saying before, now there are TWO DarkTonic Inc (and Dark Tonic Inc) under the Asset Store directory which cause TWO Master Audio packages to show up at the New Project Window.
     
  19. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Yes, we did change the company name (actually I had it wrong initially). The one with the space between the two words is correct. You can delete the other. However, when updating I recommend you delete all MasterAudio files first and hopefully that avoids this problem. I know that is not ideal when you may lose some prefabs, but it should work. Sorry about that and let me know if that fixes it for you!
     
  20. I am da bawss

    I am da bawss

    Joined:
    Jun 2, 2011
    Posts:
    2,574
    Cool! Yeh, its no problem. This problem will only affect people when you starting a new project.
     
  21. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    This week we are submitting a massive update to our Master Audio plugin for Unity. Version 2.0 is all but here.

    The UI has been seriously streamlined to keep your workflow at top speed. Sound groups now have weighting so you can keep your favorite effects triggering most frequently without overplaying them, new controls have been added to keep rapid fire effects from generating audio artifacts, and more.

    Upgrades have also been made under the hood to keep Master Audio the top audio plugin for Unity 3.xx and 4.xx. Details coming very soon! And a video of course.
     
  22. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    I got a reply from the Asset Store and they said it's only a single directory now, so the problems da bawss experienced should not happen. If you are upgrading from V1.4 or older you may see the problem if you do not first delete the MA files before importing. So I recommend everyone do that. Thank you!
     
  23. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Just submitted V2.0 to the Asset Store! The price will be going up so anyone on the fence can get a bargain by purchasing before that version goes live. As normal, I will make a new video but can't promise that it will be finished before the new version is available. I'll do my best.

    I also added a "pro audio mixer" to the main prefab. Here's a preview:
     

    Attached Files:

    Last edited: Aug 30, 2013
  24. I am da bawss

    I am da bawss

    Joined:
    Jun 2, 2011
    Posts:
    2,574
    Awesome! Looking very nice Jerotas!
     
  25. dark_tonic

    dark_tonic

    Joined:
    Mar 23, 2011
    Posts:
    138
    Version 2.0 just went live. Grab the update and check out all the new goodies!

    $8538108416_2c063dfffa.jpg
     
  26. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Thanks bawss! I like it a lot better now.
     
  27. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    I got 1.4 when it went free for a while. One thing I feel that I didn't like was I need to define enum by modifying the source. It would be better if you can use int and don't enforce enum, and let my app define the enums. Is that improved in 2.0?
     
  28. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Edit: enums no longer exist.
     
    Last edited: Aug 30, 2013
  29. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    Ah no.. no strings. They are not good for mobile. What I meant is instead using enum, the library can use ints internally. I can cast my enum to an int when calling your API.
     
  30. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    What do you mean strings are not good for mobile? This is new information for me. I have had a couple people ask for the ability to use strings because they don't want their sound designers digging around in code. I am not sure how we could do integers and not make it more confusing to the users.
     
  31. dark_tonic

    dark_tonic

    Joined:
    Mar 23, 2011
    Posts:
    138
    Last chance to get a killer deal on the most badass audio plugin available for Unity.

    https://www.assetstore.unity3d.com/#/content/5607

    Grab Master Audio before the full price goes into effect.

    Version 2.0 was a major update to an already full featured and robust tool, and now is streamlined and easier than ever to use.

    Get better audio, faster, with Master Audio.

    \m/


     
    Last edited: Mar 13, 2013
  32. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    Strings in C# generate garbage. This was my experience with c# in XNA projects. I assume it would be similar. Actually you can do int, just have an API to index by array, and let application define the enums if they want. If the user wants string, they can use a dictionary to map (slower than int of course).

    The last chance offer was a short window, didn't get to it.
     
  33. dark_tonic

    dark_tonic

    Joined:
    Mar 23, 2011
    Posts:
    138
    Luckily you can just update your older version. :)
     
  34. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    The only thing I've read is that it's super slow to use GameObject.Find(string) on mobile. True, strings are objects unlike ints and generate garbage to be collected eventually, although it is a relatively small object in the size of strings Master Audio is using. Unfortunately for non-programmers (which includes most sound designers), the only easily understandable options are string and enum. I must have the Inspectors and Audio Groups continue to have readable and understandable names when possible.

    I appreciate your experience with XNA, however I also believe it will be a non-issue for this particular application. Thanks for sharing your findings, I will keep an eye on it.
     
    subho0406 likes this.
  35. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    On PC, it is not much an issue but on mobile, garbage collection is quite a big problem, especially on a bigger game.
     
  36. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Indeed, I've been following the lengthy threads. We are 100% mobile in our studio so we don't want sizeable problems like that. It has to be weighed with alienating non-programmers though in design considerations. I'll see if I can come up with a way to do it to satisfy both parties.
     
    Last edited: Mar 17, 2013
  37. dark_tonic

    dark_tonic

    Joined:
    Mar 23, 2011
    Posts:
    138
    Who else is loving using the new mixing controls? :eek:

    $Mixer.PNG
     
  38. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Just a bump to say Master Audio is now on sale for a reduced price. It is temporary so be sure to check it out for your audio needs!
     
  39. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Master Audio 2.1 has been been submitted to the Asset Store.
    - Fixed a bug in the inspector (mixer section).
    - Added more control to the music ducking script.
     
  40. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    V 2.1 has been approved and is now live in the Asset Store!
     
  41. dark_tonic

    dark_tonic

    Joined:
    Mar 23, 2011
    Posts:
    138
    Unity is featuring another Dark Tonic plugin in a 24 hour sale!

    This time Master Audio is 50% off - today only!

    $8538108416_2c063dfffa.jpg
     
  42. ProjectOne

    ProjectOne

    Joined:
    Aug 9, 2010
    Posts:
    442
    yep bought it a couple of hours ago with the 50% discount, thanks
     
  43. SketchWork

    SketchWork

    Joined:
    Jul 6, 2012
    Posts:
    254
    Purchased along with your Killer Waves component too. I'll let you know how I get on with them :)
     
  44. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Many thanks guys!
     
  45. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Just a quick note to say that we now have a sale on Master Audio for $30 off for a limited time! Good chance to save some money.
     
  46. Adancin

    Adancin

    Joined:
    Apr 15, 2013
    Posts:
    7
    Hello Jerotas,
    I have some background loops that would play at random, is it possible with Masteraudio?

    That would be great in the game depending on the intensity of the game, change the background loops groups about more intense or soft.
     
  47. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    MA doesn't have much in the way of Music features yet (taking requests though), that sounds like what you're talking about. You mentioned random and change based on intensity - those seem at odds with each other. What would you like to see and how would you like to call it from code?
     
  48. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    I'm currently working on some playlist and cross-fading features to beef up the music part of Master Audio. Thanks for the feedback and stay tuned!
     
  49. Adancin

    Adancin

    Joined:
    Apr 15, 2013
    Posts:
    7
    Imagine I have 5 loops, all of them are a part of a background track, I whish to play them randomly instead join in a single track. I whish the code were like: MasterAudio.PlayBackground(track1),,,, track1 is a group of clips that plays randomly.

    When the game become more intensive, I wish to change the audio, something like:
    MasterAudio.PlayBackground(track2, fadeOutIn),,, perhaps three modes:
    + fadeOutIn: change the tracks with a fade out with the current background music and a fade in with new background music
    + hard: stops the current background music and plays the new one.
    + endStart: when the current clip ends (current group background music ), starts the new one (new group background music)

    It would be great!
     
    Last edited: Apr 20, 2013
  50. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Ok Advancin, I see what you mean. I'm working on something like that right now.