Search Unity

[RELEASED] WingroveAudio - full audio toolkit

Discussion in 'Assets and Asset Store' started by wickedworx, Mar 13, 2013.

  1. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    ****NEW - parameters, see new video showing off how easily car engines/dynamic music can be done! <-- v1.07 which has all of this in is OUT NOW

    Hello!

    WingroveAudio is now available on the AssetStore. The main goal of WingroveAudio is to make a great audio implementation as easy as possible to create within Unity - moving as much as possible out of code and into the editor.

    Less mess, better results! WingroveAudio gives you an easy to use framework to take the work away from an excellent audio implementation in your game! Create groups, fades, random variation and more in the editor with rarely more than a line of code!
    NGUI and Playmaker compatible.


    The current version has the following features:
    • Audio hierarchy, and hierarchy based mixing
    • Event driven audio triggering
    • Live mixer window
    • Quick event testing panel window
    • Audio source pooling, virtualized sounds
    • Automatic ducking and event based ducking
    • Configurable fading on all play/stop events
    • Instance limiting
    • Load dynamically from Resources
    • Easy hierarchy based pause/resume
    • Automatic placement of 3D sounds
    • Lifetime event triggers (possible to trigger/stop/fade/etc.. audio with no code)
    • Object linked events
    • NGUI event triggers and PlayMaker compatible actions
    • Multiple listener (e.g. split screen) support (video below)!
    • Parameters curves for response - do engines/dynamic music/more very easily!

    GETTING STARTED VIDEO

    MULTIPLE LISTENERS (split screen)

    DYNAMIC PARAMETERS (vehicle engines, dynamic music)


    Screenshot:
    $BigView.png
    New parameter curve window:
    $ParamEdit.png
    Asset store:
    http://u3d.as/4hq
    Website here:
    http://wickedworx.net/wingroveaudio/

    I've still got several features planned - but if anyone has any good suggestions of what they might think most important, then that'd be great to know!
     
    Last edited: Apr 23, 2013
  2. SimtropBuggi

    SimtropBuggi

    Joined:
    Feb 15, 2013
    Posts:
    98
    What audio files does it support? Just wav? Any plans to load and pool MP3's?
     
  3. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    It supports everything Unity supports, as it works "on top" of Unity's audio - which is platform dependent. So on PC/Standalone that's ogg, and iPhone/Android mp3 - Unity will convert for you, if you select "Compressed" on the audio clip.

    WingroveAudio has some stuff for transparently dynamically loading and unloading audio assets, using Resources.Load which you can use to further manage memory usage. I've got some more plans for further loading methods (AssetBundle support, etc..).
     
  4. SimtropBuggi

    SimtropBuggi

    Joined:
    Feb 15, 2013
    Posts:
    98
    So mp3 support is andriod iphone only? oO
    I need mp3 support in a pc/mac/linux standalone. >.<
     
  5. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    If you bring an .mp3 in to Unity, it'll convert it to .ogg (similar compression size) for pc/mac/linux standalone, if you set it as "compressed" :)
     
  6. SimtropBuggi

    SimtropBuggi

    Joined:
    Feb 15, 2013
    Posts:
    98
    I need to load the mp3's at runtime. What I was wanting to do is tap into a players own music library while they play. I keep hitting walls in my research in how to accomplish this feature though.
     
  7. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    What does "multiple listener support" mean? I thought you could only have one audio listener in a scene...or did they change that in Unity 4?
     
  8. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    Unity only allows one listener, yes. WingroveAudio supplies its own listener. You can add multiple WingroveListeners {e.g. for split screen), and WingroveAudio will do the adjustments required to take them all in to account appropriately!
     
  9. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Interesting. Thanks for the info.
     
  10. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    I've made a short video showing off some more features - including split screen (multiple listeners), but it also shows how you can have sound events triggered without any code.

     
  11. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    I've been working on some new features which will be going in to the next build:
    • Real-time parameters can be sent in to modify sounds - great for dynamic music, car engines, helicopters, or anything else you can think of. (parameters can be per-object instance or global)
    • Automation tools - set up your hierarchy faster, tools for multi-editing import settings
     
  12. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    v1.06 is out which has real time parameters in!
    I'll be making a tutorial/video showing this off shortly.

    The quick explanation - you can now create cool engine/dynamic music/etc.. set-ups in the hierarchy using curves, then send over your parameter (e.g. vehicle speed, or music intensity) and have it update on the fly!
     
  13. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    I'm dropping the price a little bit for a while - 1.07 coming soon, and will have many new features!

    I'm also going to do a couple more videos and tutorials, as well as an example project - to show how simple it makes the code side of the audio.

    Edit/Update - preview of the dynamic parameter response editor coming in 1.07 - here's my simple car engine set-up. The white line shows what the ENGINE_SPEED parameter is currently at, and the curves show how the layers of audio are set up to respond to it.
    $ParamEdit.png
     
    Last edited: Apr 19, 2013
  14. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    I've made a video showing off the new parameter editing window / dynamic audio parameters / curves.
    It first demonstrates some car audio, then some dynamic music:
     
  15. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    v1.07 is now available on the asset store, which has all the features shown in the video in the post above. Other new changes:
    • More 3D position settings and defaults
    • Paramter response editing window
    • New example scenes, showing all features
     
  16. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    here are some of the features I'm planning for v1.08:
    • Extensions to time handling (using double precision dspTime)
    • Switches
    • Adding components to Add Component menu
    • New log window

    If anyone has any suggestions for other features, it would be great to hear them! :)
     
  17. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    v1.08 is in submission now - it has a new 'delay' option, more accurate timing using dspTime (optional), and support for custom roll-off curves (which can be edited as 'normalized against a maximum'), and all the components are now nicely organised under the Add Component menu.

    The example scenes have been updated to demonstrate custom roll-off curves.
     
  18. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    v1.08 is available in the asset store now!

    I have updated the videos and tutorials index on the website, and there will be more coming soon!
     
  19. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    v1.09 is in submission now, which contains the new "event log window". see exactly what events have been fired (and when) - very useful!
     
  20. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    OK, the 1.09 update is now available on the asset store! Enjoy :)

    Taking requests for new features. One feature I am considering adding for v1.1 is a smart bank loading system (which will allow you to break up your hierarchy further between scenes).
    I'm also going to further extend some of the inspectors to add more ease of use functionality - quick-launch buttons for loading up the parameter response window, version info, also adding an audio parameter monitoring window.
     
  21. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    Short update - I expect to be adding these features over the bank holiday weekend. With the news of mobile licenses now going free, I'm going to put extra emphasis on features that may be important for audio in mobile games.
     
  22. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Good idea. I'm wondering about your Wingrove listeners. Do they only work for audio being produced by your plugin? Or for all audio?
     
  23. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    Hello! Good question - so, my plugin extends on top of Unity's existing audio implementation - so essentially they work as a positional translation layer for the audio sources managed by my plugin...

    The WingroveListeners are just one component of the overall audio management and playback system provided, and they are used by other (playback) components within the game's audio hierarchy to ensure that sounds are correctly positioned, mixed, etc... So, yes, they only work for audio that is managed/driven by WingroveAudio. Within a project using WingroveAudio, it should be the case that all audio is managed this way, however! :)
     
  24. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Naturally! Thank you for the explanation.
     
  25. Play_Edu

    Play_Edu

    Joined:
    Jun 10, 2012
    Posts:
    722
    hi,

    can it's work with 5.1 or 7.1.
     
  26. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    hello - yes :) it supports all the surround modes that Unity supports, which will include stereo, 5.1 and 7.1 (depending on your target platform, obviously).
     
  27. NioFox

    NioFox

    Joined:
    Dec 28, 2012
    Posts:
    65
    So I've got an android game in the making here and when I start to pile on the sound effects, especially numerous hit effects, even with object pooling the performance takes a serious hit.

    1. Does this package have options to optimize this?
    2. Are there setting to have the manager persist through scene changes?
     
  28. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    Hello - yes, WingroveAudio has support for virtual voices, audio source pooling, and instance limiting- which should all help with increasing your performance. On top of this, I'd recommend checking that for any short, frequently played sounds, you are not using "stream from disc" or "compressed in memory".

    Yes - the manager can persist over scene changes, meaning your music, fades, etc.. will not be interrupted on scene change :)
     
  29. NioFox

    NioFox

    Joined:
    Dec 28, 2012
    Posts:
    65
    Welp, I'm sold!
    Great work :)
     
  30. NioFox

    NioFox

    Joined:
    Dec 28, 2012
    Posts:
    65
    Following the "Getting Started" video, I created an EventGroup and added some events, then dragged it into the object with the Wingrove Root script.
    But the "Event Receive Action" says that "WingroveRoot does not have any event groups!" :(

    *UPDATE*
    I had to switch scenes to get it to recognize the event group :/
     
  31. bitbutter

    bitbutter

    Joined:
    Jul 19, 2012
    Posts:
    60
    A feature request:

    New playback mode:
    'Play Random Without Repeat': Like play random, but doesn't play the same sample twice in a row.

    Also has a 'memory' parameter, which is an integer. Memory specifies how many of the previous play instructions are 'remembered'. The next time the group is told to play, none of the remembered samples will play, but a random sample will be chosen from the remaining samples in the group.
     
  32. NioFox

    NioFox

    Joined:
    Dec 28, 2012
    Posts:
    65
    Is there a way to limit the instances per object playing them?

    I have a voiced character, but there are other characters sharing the same voice set.
    If I limit the instance for the voice group, it limits across all spawned characters, if I remove the limiter, the same character can play its own voices more than once simultaneously. Which is all wrong :(
     
    Last edited: Jun 16, 2013
  33. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    Hello - sorry for the lack of replies the last couple of days - I've just got back from a festival. Once I've got things sorted here, I'll answer all these recent posts!
     
  34. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    Hello - yes, I can add this for the next version. I will also add a "shuffled random", which won't require the memory parameter.

    Yes, you're right, this is how it's currently working. For the time being - you could always just put a "stop" event on your voices group, and send this event before you send any speech events?

    In the next update, I will make a clarification between group-based instance limiting, and object/voice based instance limiting so that both ways are supported!
     
  35. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    I have just finished working on this - you can now select "per GameObject" on the instance limiter, and it will limit in this way.
    I have also added a drop down option on the WingroveAudioSource to determine how to handle what happens when a source is played on a gameobject which is already playing that source (restart, play another, do nothing). This will be going in to Asset Store submission in the next 30 minutes! :)
     
  36. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    Update is live on the AssetStore now :)
     
  37. NioFox

    NioFox

    Joined:
    Dec 28, 2012
    Posts:
    65
    Perfect!
     
  38. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    v1.11 in submission now - has Random with No Repeats! :) enjoy. will post again once it's live!
    if anyone needs it sooner, let me know!
     
  39. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    v1.11 is live in the asset store now! changes since v1.09
    -- Random with No Repeats
    -- Per GameObject Instance Limiting
     
  40. BTStone

    BTStone

    Joined:
    Mar 10, 2012
    Posts:
    1,422
    So, I'm interested in this, but before buying I would like to know some things first:

    - is this Plugin mobile-friendly (iOS/Android) ?
    - has it FULL PlayMaker-Support?

    I just want to have some "small" audio-task within in my game, but want to have the option to "mess" around with some functions, so I hope this small tasks are possible with your plugin AND in combination with PlayMaker:

    - playing a Background-Song for a Level
    - repeating Sounds (for example when an Enemy is attacking the whole time)
    - changing Song or Sound on demand

    Thanks in Advance for the answer :)
     
  41. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    Yes, supports all platforms that Unity supports, including iOS and Android!

    Yes - There is a PlayMaker action for sending events to WingroveAudio - this is all you should need for playing music, stopping and starting sounds, and changing a song or sound - as everything in WingroveAudio is event based.
    There isn't a PlayMaker action for changing real-time parameters, or for checking if a clip has reached its end - but if you require these, I will add them for the next version :) For the tasks you describe, it doesn't sound like you will need this anyway..

    Yes - you will be able to do all of this! :)
     
  42. BTStone

    BTStone

    Joined:
    Mar 10, 2012
    Posts:
    1,422
    In Fact, this would be something I'll need in near future :D
     
  43. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    OK, great! I'll get it put in asap! :)
     
  44. OhiraKyou

    OhiraKyou

    Joined:
    Mar 27, 2012
    Posts:
    259
    When multiple listeners pick up the same sound, is a single audio source used or one per listener? Is the Doppler effect considered? In my racing game, many vehicles are making noise constantly, without stopping. How does WingroveAudio handle limiters in such a scenario? For example, if a limit of three sources was set in a 16-vehicle game, would the closest source play or the first to start? What if three separate split screen players are each surrounded by three separate AI-controlled vehicles at varying distances?
     
  45. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    Hello! - lots of questions!
    Currently the multiple listener algorithm uses a weighted/biased distance/position average on a single audio source - so, in all likelyhood, you will get some interesting inaccurate doppler effects coming through, if you have it switched on. Currently I would not recommend mixing doppler with multiple listeners in WingroveAudio.

    Currently instance limiting allows you to specify oldest, or newest that is kept. To do what you suggest, we'd have to use virtual voices (which I support, but I don't support limiting this per-group, only overall).

    I would recommend you make clever use of distance rolloff curves, which will virtualise the voices when they reach silence anyway.

    So, on my todo list (with a few other things, unrelated to your question - but just so you know) is :
    • Multiple selectable algorithms for multiple listener (e.g. duplicating audio sources, as you have asked about, and I'll probably add a 'nearest listener only', with some hysteresis) - this wouldn't affect limiting, but could have its own internal limit. Limiting on top of that would work as normal.
    • Virtual voices limit specifiable per hierarchy group
    • Beat-sync stuff for music
    • More complex playmaker actions

    Hope this helps. I'll be working on these features this weekend!
    Cheers!
     
  46. OhiraKyou

    OhiraKyou

    Joined:
    Mar 27, 2012
    Posts:
    259
    Thanks. I'll keep an eye on this.
     
  47. wickedworx

    wickedworx

    Joined:
    Mar 13, 2013
    Posts:
    54
    v1.15 is in asset store submission now. v1.15 includes new beat sync settings options, and extra playmaker support.
     
  48. hunz

    hunz

    Joined:
    Oct 16, 2012
    Posts:
    29
    Hey,

    I just wanted to ask you some questions about the plug.

    I'm currently putting together a rhythm based game for Android using playmaker (I'm a graphics/music guy and not really a real coder). I have a loop (4 beats in the bar) that I trigger off in code every 4 beats. When I play this on my PC or Android it fluctuates around sometimes landing right other times not landing correctly at all.

    It's even worse if I play a 16 beat bar sample loop, and then trigger this 4 bar loop over the top. It lands and then fluctuates in and out of time.

    Is that something your plug addresses for a noob like me? Does the extra playmaker support allow access to do this?

    Thanks so much in advance, really appreciate it.
     
  49. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    great asset, too bad the author is not minding the store :(
     
  50. MarioRuiz

    MarioRuiz

    Joined:
    Nov 7, 2009
    Posts:
    161
    Is this an abandoned asset or is the author just taking a long break? This plugin has a couple strong things the other audio plugins lack, it would be a shame.