
I present to you, Audio Manager Pro! (AMP for short)
AMP is now nearing completion, and I aim to make it the ultimate audio solution for all of your needs! The aim of AMP is to be a fairly inexpensive, easy to use plugin. Everything to do with setting up assets will be done through custom editors, and the vast majority of this assets functionality only requires single line C# calls to be used (e.g. MusicManager.Main.Play(myTrack)![]()
The current features include:
Music Manager

AMP provides an extensive and highly featured Track system. For each Track, you can set up multiple Editions as well as an intro segment. This allows you to do a variety of different things, including having a seamlessly looping song that has an intro segment that only plays once, as well seamlessly transitioning between multiple variants of the song, say when you transition to the final phase of a boss, your music can change seamlessly too.
The MusicManager is also feature rich and very easy to use. It automatically keeps track of everything thatās playing, all scheduled fades, delays etc. This means that if you want to play a new song, you just call a single line of code, with optional fade and delay parameters and it will handle the rest. say goodbye to tracking everything yourself and managing when to fade out and stop previous songs, jobs etc. It does that all for you. In addition to global pausing, volume changes (both instant and fade) and much more, MusicManager also provides PlayFromLibrary functionality, so that you can set up your Track library once and play your songs from anywhere, without needing a reference to the Track.
Playlist Manager

AMP allows you create Playlists with ease. Once a playlist is setup in the editor, and the fade and shuffle modes have been selected, playing a Playlist is as easy as a simple line of code using the Playlist manager. Once you do this, the Playlist will automatically schedule each song transition for you, so that you can have it play from a predefined choice of Tracks without worrying about when to switch Tracks and what crossfading to do. It also automatically ends itself whenever a Track is manually started or stopped by you, so you donāt have to ever worry about what the playlist is currently doing. Just like the MusicManager, the PlaylistManager also provides a PlayFromLibrary feature.
SFX Manager
AMP uses a layer system for SFX. This means you can set up various different layers of your SFXObject, each with their own individual static/randomized volume, pitch and delay, amongst a host of other features. The SFXObject itself also contains global multipliers. To play an SFXObject, you simply just need to call SFXManager.Main.Play(mySFX), and it handles all of the individual layers for you.

The SFXManager also provides SFXGroups, in a similar fashion to the MusicManagers playlists. This feature allows you to create a group of different sound effects, and have the manager automatically play different SFXObjects from the group at random, saving you from the hassle. Just like the MusicManager, SFXManager provides library playback features for both SFXObjects and SFXGroups, in addition to allowing you to override the pitch, volume and delay of the SFXObject at runtime.
The code has been thoroughly tested and the entirety of it has been documented through XML. An informative readme instruction manual will be written, as well as a full documentation generated from the XML documentation. The code has been designed first and foremost for ease of use, so that you never have to do anything but call a single line from the Managers; all inspectors are fully tooltipped for ease of use. All objects created by the managers are automatically pooled.
The current features are also planned for completion before the initial release:
- Full 3D sound support, including custom positions and parents of played sounds
- Improved inspector colouring to aid in trouble shooting
- Various different scripting free event triggers (Auto playing Tracks on scene load, play SFXObject OnEnable etc)
What other features do you want to see? Let me know, and Iāll make sure to make it happen!
