Search Unity

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. I am da bawss

    I am da bawss

    Joined:
    Jun 2, 2011
    Posts:
    2,574
    Awesome! Thanks for keep supporting 3.5.7!! :)
     
  2. LoftyTheMetroid

    LoftyTheMetroid

    Joined:
    Oct 26, 2012
    Posts:
    57
    I've been playing around with the free version (v2.7) of Master Audio and I love it! I'm just on the verge of purchasing it (whenever my team starts its next project, probably in the next month or so), but I have a couple quick questions.

    One thing we do with a lot of our levels is layer music based on certain conditions. When entering another area or when triggering a certain event, some of these layers will fade out while other layers will fade in at the same synchronized time. For example, there might be a base percussion track that is constantly playing, but there might also be woodwinds playing as a separate track on top of that while inside a library. When stepping outside, the woodwinds might fade out and a layer of strings will fade in. Or, maybe during a battle sequence, a few more "action-y" layers will be added on top of the current music layers.

    Is this possible to do in Master Audio? I couldn't figure out how to do it since there can only be one PlaylistController. The only thing I could think of is using Sound Groups, but those couldn't be synchronized. If this isn't possible... maybe this could be considered a request? To be able to play multiple, concurrent playlists or tracks? :p

    The other concern I have is with voice acting. We have a lot of short dialogue clips in our projects, and it would seem best to integrate it with Master Audio to take advantage of automatic ducking and whatnot. Is there a recommended means of approaching voice dialogue with Master Audio? It would seem cumbersome to add dozens and dozens of Sound Groups, one for each individual dialogue clip, so I was thinking to just generate Sound Groups programmatically from NPCs and their given dialogue clips. Does that sound like a decent approach, or is there a better solution?

    Thanks!
     
  3. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Regarding the multiple syncronized musics tracks, currently the only way to get that effect is to make every single combination of instruments its own mp3 and use a syncrhonized playlist. Of course this ends up requiring a large download size for all those files, but not a large memory footprint, because you can still stream the one mp3 no problem.

    There have been many requests for this feature. I doubt it would be a very usable feature on mobile (which most of you develop for) since you could no longer stream the music with 3~5 different music tracks playing (1-2 is the advised limit for streams) and would therefore be taking up a lot of memory for music - which is usually unacceptable. I can tell you that none of the audio plugins on the Asset Store have this feature.

    Having said that, we do actually have plans to develop this feature on the roadmap. It might take another ~2 months though. There's a lot to it to make it the way we all want it.

    If you don't need cross-fading, you can code your own behavior for this right now though. You would handle "track 1" and all variants of that instrument with the Playlist Controller, then put the other instruments' variants each in their own SoundGroup. When you want to add an instrument to the mix, you would play the specific named Variation of that instrument, then set ActingVariation.audio.time to match the PlaylistController.CurrentPlaylistSource.time. That will syncrhonize it with the Playlist. You can then call FadeToVolume to fade in or out the instrument. Rinse and repeat.

    However, I hear there's a bug where Unity 4.2 no longer keeps things syncrhonized like it used to in 4.1. We may need to end up using "PlayScheduled" to these scenarios when available (not for v3.5.7) if this is the case.

    For the voice acting, I would set up a single Sound Group for each character, store all their clips in Resource files to avoid memory usage for longer than is neccessary, and play the specific line (Variation) by name. That's how we do it in our game. Also create a bus for Dialogue to control the relative volume of all talking.

    Our first game had 120 SoundGroups. It is manageable if you have a bunch of buses. You can also set up per-scene temporary Groups with the Dynamic Sound Group Creator prefab, and that requires zero coding on your part.
     
    Last edited: Nov 21, 2013
  4. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    If you're using the Audio Manager window to create a new Master Audio prefab, you can skip this section. You don't need it.

    To get the new V3.0 Jukebox and LED strip to work, if you are upgrading your project and already have the Master Audio prefab in some scenes, you will need to do the following for each scene that Master Audio prefab is in if you don't want to destroy it and rebuild from scratch.

    1) Click the dropdown next to the lock in the upper-right of the Inspector. Change it to from normal to debug.
    2) Expand LedTextures and make the array size 6.
    3) Drag the correct textures shown in the screen shot into the Inspector from the MasterAudio/Sources/Textures folder. That's 6 LED textures, Next Track, Play Track, Pause Track and Random Track.
    4) Click the dropdown from step 1 and put it back to "normal".

    $upgrade3.png
     
    Last edited: Nov 21, 2013
  5. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    I can't forget my roots! We love 3.5.7 also.
     
  6. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Criminy that was fast! V3.0 is live, grab your updates!
     
  7. I am da bawss

    I am da bawss

    Joined:
    Jun 2, 2011
    Posts:
    2,574
    Do we need to delete the old Master Audio v2.x before updating to v.3.0? Is there any big architectural change?
     
  8. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    No you shouldn't need to do that :)
     
  9. LoftyTheMetroid

    LoftyTheMetroid

    Joined:
    Oct 26, 2012
    Posts:
    57
    Thanks for the quick and informative reply!

    Yeah, that layer solution is similar to what I was thinking. Although, I think we might be able to get away with compressing multiple layers into single tracks that represent just the combination of instruments the player will actually hear, which is actually not all that many combinations during actual play. If you add the multiple track feature in the future, though, I'll let our composer know and I'm sure he'll put it to good use!

    And that's great advice with the voice acting, I think we'll take that approach.

    Part of the reason I was so keen on Master Audio is that I see you're very helpful and responsive and constantly improving the product. That's a huge plus in my book, so I'm pretty confident we'll be investing in Master Audio in the near future.
     
  10. Etrain

    Etrain

    Joined:
    Nov 3, 2013
    Posts:
    11
    Loving the new updates! This is easily the most actively developed plugin we own, which is great.

    Three feature requests we'd love to see:

    - Using the Event Sounds script, be able to trigger an individual variation.
    - A 3D gizmo (perhaps an "M"?) on objects with the Event Sounds script placed on them in the scene view.
    - Would be good if buses were game objects, like variations, that functioned like master groups. For example we have buses like: "ambient", "voice over", "sound fx" and "music". It would be great, from an organisational and time saving standpoint, if they appeared in the hierarchy as parents to the current sound groups.

    For example, the hierarchy would look like this:

    MasterAudio
    - Sound FX (Bus)
    -- Explosions (Group)
    --- Explosion 1 (Variation)
    --- Explosion 2 (Variation)
    --- Explosion 3 (Variation)
    - Ambient (Bus)
    -- Forest (Group)
    --- Forest Ambient 1 (Variation)
    --- Forest Ambient 2 (Variation)
    -- Warehouse (Group)
    -- Village (Group)


    Thank you!
     
  11. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Mutiple Playlist controller support is definitely on the roadmap. I don't want to do it quickly but make sure it's done very well so yes this one won't be a quick add. Thank you for the support!
     
  12. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    First one is easy, will do.
    What would the 3d gizmo actually do? I don't understand.
    The bus one I agree would be nice. Unfortunately that's a pretty big (and potentially bug-inducing) refactoring job to get that to work. So I'll jot it down for future consideration.
     
  13. Etrain

    Etrain

    Joined:
    Nov 3, 2013
    Posts:
    11
    The gizmo lets you know, at a glance, what game objects have Event Sound trigger scripts on them. Since I'm not a programmer and use Event Sounds to trigger 3D audio a lot, it's nice to know exactly where that audio is being triggered from whilst flying around the scene view. It helps, at a glance, to know where sound is coming from, or being initiated from, which is helpful in tracking down rogue sounds, or slightly misplaced sounds.

    Here's another few feature requests, having played with it extensively today:
    - In Event Sounds Script, an [ALL] option in the Bus/Sound Group drop down selector that applies the trigger event to all sounds.
    - In Event Sounds, ability to alter pitch over time, like the fade options. (For example, I have a rotor on a helicopter I want to dip the pitch of as though it's slowing down).
    - In Event Sounds, ability to apply the trigger to more than one sound group or bus at a time. For example, I want to fade out two sound groups (belonging to different buses) at Trigger Enter, but currently I have to do that with two Event Sound Scripts instead of one.

    Thanks jerotas for considering these! Most of these changes are merely for convenience and aren't necessary, but I'd love to see this plugin become the best it can be.
     
  14. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Oh, right. I know gizmos. These are all excellent ideas! Keep a lookout on the next couple versions for some of this stuff.

    As for right now in lieu of the gizmos, you can try using the particle emitter option on Event Sounds. You'll see where the particles are coming from so you know that's where the sound is. Better than nothing!
     
  15. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    V 3.0.1 has been submitted. A bunch of prerequisites have been done to make way for multiple Playlist Controllers (not done yet), among other requested features. Changes are:

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

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Update to let you all know that multiple Playlist Controller coding is going extremely well! I'm about 30% of the way done, no hitches so far. Update you guys soon!
     
  17. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    V 3.0.1 is live. Get your Master Audio gizmos going! If you notice any issues of course let me know and I'll get them sorted out.
     
  18. gibbed

    gibbed

    Joined:
    Nov 25, 2013
    Posts:
    9
    Getting an exception with 3.0 on scene change, probably caused by a group played through MasterAudio.PlaySound3D() attached to a transform:
     
  19. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    I thought I had squashed that one. I wasn't able to reproduce it anymore. What version of Unity are you on? Is it possible you could send me a small project that reprodces the bug?
     
  20. gibbed

    gibbed

    Joined:
    Nov 25, 2013
    Posts:
    9
    4.3.0f4, will try to create a small project that can reproduce the problem.
     
  21. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    That would be great. Side question - are you not using a Pooling plugin such as Pool Manager? Mobile platforms pretty much require that for performance reasons. If you use that you can avoid destroying objects and just spawn and despawn them. Unfortunately Unity 4 no longer allows us to "rescue" a child of an object that is destroyed, so we have to record the entire object properties, let it die and then make a new one and copy all properties back in. Very annoying and troublesome.
     
    Last edited: Nov 25, 2013
  22. gibbed

    gibbed

    Joined:
    Nov 25, 2013
    Posts:
    9
    Not using any pooling currently, though it is on the roadmap. This is specifically an issue with scene changes, where objects are being destroyed because of that, which is expected.

    (unrelated to my problem!) Additionally we're not (currently?) doing mobile deployment.
     
    Last edited: Nov 26, 2013
  23. gibbed

    gibbed

    Joined:
    Nov 25, 2013
    Posts:
    9
    Two more things:

    First, exception when trying to use "Persist Across Scenes":
    Seems like PlaylistController is intended to be initialized before MasterAudio, but this isn't guaranteed.

    Second, I would suggest exposing PlayNextOrRandom() on PlaylistController, perhaps as PlayNextOrRandomSong(), as it doesn't seem to be a way to interrogate PlaylistController if the current playlist is shuffle-enabled.
     
  24. nilton_felicio

    nilton_felicio

    Joined:
    May 17, 2012
    Posts:
    66
    Firstly I would say that I am very happy with your product, got it some time inlcusive also have Killer Waves also. Keep your great work. Need a little help. I did the last update in store and I'm getting the following error "Assets / MasterAudio / PlaymakerCustomActions / MasterAudioPlaylistSetVolume.cs (13,36): error CS0117:` PlaylistController 'does not contain a definition for `MasterVolume'"

    Could you help me? Was I doing something wrong?
     
  25. gibbed

    gibbed

    Joined:
    Nov 25, 2013
    Posts:
    9
    Look at the changelog for 3.1.
     
  26. Lostlogic

    Lostlogic

    Joined:
    Sep 6, 2009
    Posts:
    693
    Wait, the system doesn't work with mobile?
     
  27. gibbed

    gibbed

    Joined:
    Nov 25, 2013
    Posts:
    9
    I don't see any reason for it not to work on mobile? Have not used it on mobile.

    There is a rare exception occuring on scene unloads with regard to attached transforms.
     
    Last edited: Nov 26, 2013
  28. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Yeah. In my scene-changing tests, the Variations that were destroyed by this were recreated about .1 - .2 seconds after they were marked for destruction. If you look in the Master Audio hierarchy under that Sound Group, do you see them re-appear in the new Scene? Possibly if you were trying to use them during that very small window you might get this error...

    That's the only thing I can think of, but I did a lot of testing on this bug fix. As I said, if you figure out a reliable way to reproduce this, please send me something and I'll fix it.
     
  29. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572

    I'm currently revamping Playlist Controllers because the next version will allow you to have multiple of them. No, Master Audio inializes during Awake and the Playlist Controller(s) initialize during Start. It's not a race condition. I fixed this awhile ago :|
    So I have no idea how you're getting that error...bizarre! Oh...did your Playlist Controller make it to the next scene or not? I assume you got that error after the Scene change? Master Audio is supposed to *persist* the Playlist Controller as well and does so fine on my machine.

    The other code you mentioned is different now that Playlist Controller pull their data differently in the new code (not done yet). All the methods will be callable per Playlist Controller, with an easy method to grab one by name. Here's a pic of the multi-ready Jukebox.

    $multi.png
     
    Last edited: Nov 26, 2013
  30. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    edit: fixed custom action and attached a few posts down to fix this.
     
    Last edited: Nov 26, 2013
  31. gibbed

    gibbed

    Joined:
    Nov 25, 2013
    Posts:
    9
    This would be the first load of the scene. The problem is MasterAudio's Awake() calls PlaylistController's SceneHasPlaylistController() which relies on the two references to the AudioSource children (activeAudio, transitioningAudio), which are initialized in PlaylistController's Awake().
     
  32. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Interesting. It never happened on either of my builds. I just looked at the newest code (which you don't have) and Master Audio no longer reads anything from Playlist Controllers in that way during awake. This problem will go away in the next version. I will make sure and get it up very soon. I'm going to post a fix for you in a minute though.
     
  33. gibbed

    gibbed

    Joined:
    Nov 25, 2013
    Posts:
    9
    It's appreciated, thanks.
     
  34. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Here, replace this method in Playlist Controller to get that race condition to go away, quick fix. It's not the fastest code, but it will work until I get the next version out.

    Code (csharp):
    1.     public static bool SceneHasPlaylistController() {
    2.         if (MasterAudio.AppIsShuttingDown) {
    3.             return false;
    4.         }
    5.        
    6.         var controller = GameObject.FindObjectOfType(typeof(PlaylistController));
    7.        
    8.         if (controller == null) {  
    9.             Debug.LogError("PlaylistController script is not in the scene.");
    10.             return false;
    11.         }
    12.        
    13.         return true;
    14.     }
    Also, see my note a few posts up about the .1 - .2 second window when the destroyed Variations are unavailable. That may be what you're seeing?
     
    Last edited: Nov 26, 2013
  35. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    No, no, absolutely it does! This system was designed primary for mobile. Everything was written to be as performance as possible for mobile. Which really just means the code is highly optimized (mainly), with a few other mobile trade secrets :)

    I think you mistakenly thought that gibbed is the author of this plugin.
     
  36. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    hey jerotas happy holidays!

    1:23 am pst and your still slaving away...
     
  37. Casta_Rasa

    Casta_Rasa

    Joined:
    Oct 14, 2013
    Posts:
    2
    Hey jerotas,

    I recently updated from 2.7 to the latest, 3.1

    I am also getting this error, however for some reason, deleting the folder and then re-importing the custom actions package still doesn't seem to make the error disappear?

    I have also noticed that when I go via the Audio Manager window and add the MasterAudio Prefab, it adds it as an object and not as an actual Prefab. It does this with the Playlist Controller and the DynamicSoundCreator too. All three prefabs do exist in the MasterAudio?Prefabs folder though.

    Am I missing something that I should've done when I updated to 3.1? Im fairly new to Unity, so im sorry if I missed something that i was supposed to due during the update process.

    Thanks
     
  38. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    haha thanks man! Happy holidays yourself.
     
    Last edited: Nov 26, 2013
  39. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    I just checked and you're right, I forgot to update the custom actions package. Here's the fixed custom action attached.
    View attachment $MasterAudioPlaylistSetVolume.cs

    Yes, the Audio Manager creates them as objects, not prefabs. My thinking is that you wouldn't want them to be prefabs because that would modify the prefab in the plugin folder itself. You can make your own empty prefab in your game's folder and drag it into there to have your own prefab-able settings that you like if that helps you.

    Alternatively, if you want to affect the prefabs in the Master Audio folder, you can simply not use Audio Manager and drag them into the scene from the MA folder.

    Let me know if you have any other questions!
     
  40. Casta_Rasa

    Casta_Rasa

    Joined:
    Oct 14, 2013
    Posts:
    2
    Great, that works now thanks.
     
  41. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    No problem, let me know if you need or see anything else weird.
     
  42. dark_tonic

    dark_tonic

    Joined:
    Mar 23, 2011
    Posts:
    138
    Master Audio will be featured in a HUGE sale December 4th, and massively discounted, so mark your calendars!

    If you've been on the fence about picking up an audio system, or wanting to upgrade from the one you have been using, make sure to check back next Tuesday to grab this for an insane deal. Get yourself a Ferrari at a VW price.
     
  43. blueivy

    blueivy

    Joined:
    Mar 4, 2013
    Posts:
    633
    So with this I can create the quality of audio that you would find in something like bf4? I think thy call it hdr audio, does this feature that?
     
  44. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    HDR audio is a highly complex set of techniques, it depends which ones you are after. Could you narrow it down and let us know which specific things you're looking for? This is currently the most "deep" and flexible audio plugin on the Asset Store, but there are bigger fish out there with more expensive (and ongoing) licensing options that indeed have more features. However those aren't very easy to use comparitively.
     
  45. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    We have removed the free version of Master Audio from the Asset Store. We have enough 5-star reviews and credibility at this point that it's no longer necessary to offer two versions. I still have the free version and anyone can request a copy via email if they would like to try before buying.
     
  46. dark_tonic

    dark_tonic

    Joined:
    Mar 23, 2011
    Posts:
    138
    Multiple Playlist Controller support is finished! You can now have any number of Playlist Controllers, each with cross-fading! Layered music is now possible with more granular control than any Asset Store audio plugin.

    The updated example scene now contains 3 Playlist Controllers and the runtime Jukebox looks like this.
    $Capture.PNG

    Give us a few days to get the documentation together and then we'll submit it! Also we will be making a new video for this new feature.
     
    Last edited: Dec 1, 2013
  47. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Probably more like a Ferrari at a....Yugo price? :p
     
  48. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    hey happy thanksgiving/holiday to you both. i see even during holidays and the dead of night you all working your whatevers off to make the assets better. i wish all asset authors were as hardworking and dedicated as you both...

    ah u let the cat out of the bag... im so happy to hear about the huge sale :), but now its like not a surprised :( shame on you! also unity lawyers will want to talk to you for breaking nda ;) actually cause of your unfortunately slip / disclosure ive suffered irrefutable irreparable harm you cant just destroy/ruin someone christmas like that, now every chrismas going foreword i will be distraught over the memory of this day, i will need lifetime of therapy and lots of money to make up for it. now where is my lawyers/therapists number... and just so that you dont think its about the money i will demand from unity forums as part of the settlement that next to your usernames they put this smiley :oops: to remind you of what youve done, now let me take a screenshot / flag your posts before you delete / edit it... :rolleyes:
     
    Last edited: Dec 1, 2013
  49. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    lol, there is no NDA about announcing the sale early. But yeah we did let the cat out a few days earlier than is ideal.

    We are really digging the new multi-playlist feature. I'm sure there will be a round of new feature requests that come from using this. We are ready to implement them! And we still have other really great features planned for real soon as well.

    Thanks im :)
     
  50. dark_tonic

    dark_tonic

    Joined:
    Mar 23, 2011
    Posts:
    138
    Here's a video showing how to set up the new layered music feature. Check it out, it's real easy to use!

     
    Last edited: Dec 2, 2013