|
Post by DarkTonic Dev on Aug 29, 2014 6:57:34 GMT
1) Photon Fusion integration. 2) Unity NetCode integration. 3) Auto-download of bundles with Addressables with a checkbox to disable. Make an API method with a callback to fire Custom Event or other System.Action when finished. 4) Add an option to DSGC to only move X Sound Groups per frame to avoid chunking. 5) Add "QueueSoundGroup", NextQueuedSound, ClearQueue, GroupQueueSize. Should skip a queued sound if it is supposed to play on a Transform and the Transform is disabled. 6) Script for collisions that will allow you to play different sounds depending on the force of collision. 7) Add a "repeat count" for Playlist songs. Should respect the count and let the song loop X times even if shuffle is on. Should allow random range. 8) Min/max loops for Sound Groups. Min/Max Loops should work for Looped Chain & custom start/end positions, which currently can't loop. 9) Add a way to break out of loop for Looped Chain or other SFX, which will do so at the end of current play of clip? Parameter range, API or Custom Event. 10a) Can sliders always be set to the current value of the bus / group automatically and continuously? Or would SliderChanged code screw that up in an endless loop? 10b) Any other similar settings for buttons / radios that can be used / updated automatically? 11) Make a script, a "sound box", where sounds are spawned randomly within the box. This is good for things like dripping sounds that randomly occur at different points. This could happen with "random following distance" settings. May have option for looped sounds to re-randomize following distance every time loop restarts. 12) Add ability to trigger Playmaker events from: Playlist Begins, Playlist song changed, Song Ended, Playlist Crossfade begins, playlist over (last song ended) etc. 13) RelationsInspector stuff: 13a) Add Custom Event filter for RI. 13b) Add button to use Custom Event filter in Inspector (magnify glass icon).
This is the entire up-to-date to do list for Master Audio. These are currently in the order I'm planning on doing them. Feel free to vote and it may lead to moving the order around. Also, if you have anything you'd like that isn't on the list, go ahead and suggest it!
I remove items from the list as they are completed.
-Brian
|
|
|
Post by DarkTonic Dev on Aug 29, 2014 6:59:46 GMT
Things we're not planning on doing ever:
1) Anything having to do with microphone input or recording. 2) Beat / tempo detection. 3) Support for split screen apps, binaural audio, surround sound or multiple Audio Listeners (unless Unity adds it natively, in which case we will automatically support it). 4) Creating additional Filter FX with C# or native code. 5) Anything with a node-based UI (like Shader Forge or Playmaker use). 6) Moving the main workflow out of the Inspector into a larger area. We don't like the idea of that. That's actually one of the reasons Master Audio was built, so we didn't have to use 2 monitors to run sound, because no large windows are used. 7) Ability to play a song stored on the user's phone or device. 8) MIDI support of any kind unless Unity includes it by default in the future.
|
|
|
Post by ForrestX on Sept 4, 2014 12:42:30 GMT
11) Ability to play part of a sound for SFX (eg: The sound is 2 min long and when it reaches the end it should always restart looping from 1 min)
-SoundGroups Rename feature (strange it is missing) -Organize SoundGroups under folders (when there are too many SoundGroups it starts being a bit tedious, considering you cannot even rename them)
|
|
|
Post by DarkTonic Dev on Sept 4, 2014 23:10:33 GMT
You can rename Sound Groups in the Hierarchy just like any other prefab in Unity. We don't need to build an actual functionality into our Inspectors for this.
You can also filter Sound Groups down by using the bus filter in the Inspector. We do not plan on adding folders for them as it would mess up the code that makes them work at runtime. However I'll put it on the list anyway, in case something changes.
Noted your vote on #11.
|
|
|
Post by Laeus on Sept 10, 2014 16:15:24 GMT
This looks pretty good. I can't think of any obvious reordering. There are a couple of things I've encountered that might be nice (or I don't know how to do them yet) : -Support starting a playlist whether or not it's the currently loaded one. Example: I have playlists "A" and "B". A is initially loaded, but not set to auto-start because I trigger it when the player hits a button. When the player wins, I change to playlist B, and then back to playlist A when the player hits Retry. So playlist A can either start loaded or start after coming from B. If I try to use ChangePlaylist, it fails in the first case. I can't use RestartPlaylist, because I don't know whether it's the first attempt (A already loaded) or the player has run through the level already (B is now loaded). -Support automatically killing a looping event sound when its owner dies, like a looping car engine sound. Very minor thing, and I'm probably missing something, but right now I think I have to use two sound events every time -- one to start and one to stop. -Maybe more aliases for the playlist API. Playing sounds is pretty straightforward from code, whereas playing playlists requires a lot of intellisense and looking at MA's source files . It's related to the first bullet point I mentioned above. If at some point I want to play the level music, I should be able to do it as simply as possible, in all cases, ideally with one line of code. I posted about 4 and 4a on the Unity forums so I already think you've bumped it up -- thanks!
|
|
|
Post by DarkTonic Dev on Sept 11, 2014 11:17:00 GMT
I'm sorry, I don't understand what fails with the playlist thing. Please give me exact steps and I'll take a look at it. Might be some easy bug. I'm not sure what you want though.
You can already stop a looping sound automatically (or fade it out). To do it, change the Caller Despawned Mode for the Sound Group to something other than "None". Then it will work for sounds that you "attach to caller" only.
Let me know what you aren't able to do with one line of code with playlists and I'll see if I can add them.
Thank you for the suggestions!
|
|
|
Post by Laeus on Sept 11, 2014 19:49:30 GMT
I'm sorry, I don't understand what fails with the playlist thing. Please give me exact steps and I'll take a look at it. Might be some easy bug. I'm not sure what you want though. You can already stop a looping sound automatically (or fade it out). To do it, change the Caller Despawned Mode for the Sound Group to something other than "None". Then it will work for sounds that you "attach to caller" only. Let me know what you aren't able to do with one line of code with playlists and I'll see if I can add them. Thank you for the suggestions! Ah, great info about the Caller Despawned Mode thing, I'll wire that up. And sure, to give more specifics on the other part: I have "music" and "won" playlists in a single playlist controller. "music" is the initially loaded one, not set to auto play. When the player presses Play and the game goes into the "running" state, I want to play the "music" playlist. I could do this with TriggerNextPlaylistClip. However, when the player wins the map, I switch to the "won" playlist using an event sound on my victory fanfare effect object. That works. But now when the player presses the Restart button, my map goes into the "running" state again. I want to start playing my "music" playlist again, but I can't use TriggerNextPlaylistClip in this case because I'm in the "won" playlist. So instead I need to switch to "music" using ChangePlaylistByName, leaving playFirstClip set to true. This works after a restart. But if I try to use this the first time the player pressed Play, it fails because the "music" playlist is loaded already. So, the short version is that there are multiple paths to get into the map running state, and when that state activates, I want to play the "music" playlist. Right now, the way I have it working is as follows: MasterAudio.Playlist currentPlaylist = PlaylistController.Instances[0].CurrentPlaylist; if (currentPlaylist.playlistName.CompareTo("music") == 0)
MasterAudio.RestartPlaylist();
else
MasterAudio.ChangePlaylistByName("music"); And it would be great if instead I could use a single line of code to start "music" no matter what. Maybe if ChangePlaylistByName still played the first song, even if the playlist is already the loaded one? Any help would be awesome, I'm probably just missing something in the API. Thanks!
|
|
|
Post by DarkTonic Dev on Sept 12, 2014 16:15:50 GMT
Ok I'll take a look at getting rid of that problem. I might end up renaming ChangePlaylist to something else, we'll see.
Edit: we added StartPlaylist method which has that logic built in.
|
|
|
Post by Matt on Sept 16, 2014 3:51:22 GMT
Using Master Audio. It's very cool. Glad to hear Gapless audio is coming. That's our only issue with it at the moment. Keep up the good work!
|
|
|
Post by DarkTonic Dev on Sept 16, 2014 17:33:45 GMT
Edit: We now have gapless song transitions!
|
|
Nicolas SIGNAT
Guest
Posts: 0
|
Post by Nicolas SIGNAT on Sept 19, 2014 12:15:41 GMT
Hi !
It would be nice to have a checkbox "always highest priority" on each group, in order to bypass the age and distance priority, which are applied on everything.
That would be perfect for speeches in our project, because when there are too many sounds they are cut.
Thanks !
|
|
|
Post by DarkTonic Dev on Sept 20, 2014 7:51:27 GMT
Thanks Nicolas, I will add that to the list.
|
|
ViRiX Dreamcore
Guest
Posts: 0
|
Post by ViRiX Dreamcore on Sept 21, 2014 16:04:39 GMT
It'd be cool if there were either a "at end of clip" action or a way to reveal a clip's time and time remaining so that i f something triggers a clip, the other clip must finish first. Playmaker actions would be cool too.
Just some suggestions.
|
|
|
Post by DarkTonic Dev on Sept 21, 2014 16:09:30 GMT
It'd be cool if there were either a "at end of clip" action or a way to reveal a clip's time and time remaining so that i f something triggers a clip, the other clip must finish first. Playmaker actions would be cool too. Just some suggestions. There is a SoundFinished callback if you use code to play a sound. Is that what you're looking for? I can't really think of an automated way to do it. But you can possibly use a Chained Loop or a Playlist for that.
|
|
|
Post by ViRiX on Sept 21, 2014 17:29:42 GMT
It'd be cool if there were either a "at end of clip" action or a way to reveal a clip's time and time remaining so that i f something triggers a clip, the other clip must finish first. Playmaker actions would be cool too. Just some suggestions. There is a SoundFinished callback if you use code to play a sound. Is that what you're looking for? I can't really think of an automated way to do it. But you can possibly use a Chained Loop or a Playlist for that. Hmm been using playmaker to do everything so far but ill look into that. Chained loop? Not familier with that one. Ill look into it.
|
|