Hey everyone.
I've been pretty caught up in the world lately, so my apologies for staying away from this community for the past year or so.
First, Please login to see this link.!
I've been moving toward actual programming and working on various projects when I have time, but that's basically meant that I haven't used Fusion very much recently. With the impending release of the next version of Fusion, I've realized that keeping some of my more interesting Fusion projects to myself isn't going to matter since they're about to get superseded anyway.
The Please login to see this link. is the best handler/processor of audio at runtime in Fusion because it has full support for object-oriented programming, dynamic control of audio objects, generators, multi-scene support if you need that (not recommended!), internal/external audio directories, and hierarchy of channel importance (default is 0 = auto-dropped, 1 = locked, but you can set the auto-drop cutoff higher and implement importance levels). This is not an extension in and of itself but it will work seamlessly for handling all audio-related tasks, including ones that go through DSP or OpenAL extensions. I can't put myself through working in the Clickteam Windows SDK, so a few things are missing that I would've liked: an OpenAL extension, a custom extension for the minimal audio tokens, and some more efficient processing of audio channels through a central handler extension. Without a custom extension, this is the most efficient way that Fusion can process audio at runtime if you need control over every channel.
This version of the Fusion Audio Handler is a variation of the one that I'm using, which does not inherently support multi-scene audio, so it's possible there are some features or functions that won't work correctly yet (especially with multiple scenes). If you find anything like that, definitely let me know and I'll post an updated version of it.
Making this handler, I discovered a couple of weird little inconsistencies in the way Fusion processes audio-related events, so I implemented workarounds already in the Audio Handler group. The biggest feature that I wish I could've added to this handler was on-call audio dropping--that is, dropping channels as soon as they've ended--but Please login to see this link., and since none of their audio functions are open-source, there's no way to get around that without an extension. To illustrate this:
Create token for channel 1
>Channel 1 plays
>Channel 1 finishes
Token for channel 1 still exists
How do I notify the token for channel 1 that the channel's ended? It was a simple request for Clickteam but that's how stuff goes sometimes. In most cases, the workarounds I have should work sufficiently well by removing all objects that are no longer playing when a new audio object starts. The obvious case where this isn't ideal is when there's already a large workload because this is basically forcing Fusion to perform garbage collection in the middle of that workload. You can also manually call a function that drops all ended channels or you can call another function that drops the oldest unlocked channel that hasn't ended. Again, ordinarily you won't have a reason to call either of these functions (they're called automatically in the handler when needed), but they're definitely available if you'd like to call them yourself.
I believe I added a function to the [Resume on scene start] group that can, if enabled, restore each audio object's position from when the previous frame ended. You most likely don't want to enable this function, but if you have some audio-synchronized events (I highly recommend never switching scenes if you do), you can enable this function to keep everything synchronized. There will be an audible jump (a slight "skip" backwards) when the new scene starts depending how long it takes for Fusion to clear the old scene and start the new scene if you enable this function. Keeping this function disabled, the Fusion Audio Handler will automatically carry over all non-ended audio objects and they'll then continue to affect their original channels when the new scene starts. If you don't have multiple scenes, remove these two groups and then remove the array object from your frame because I personally don't like Fusion's array object and this is the only reason I have it in the Fusion Audio Handler.
The only extension that the Fusion Audio Handler uses is the Internal List Object because of its amazing performance. I was going to finish porting this extension to Android but I haven't gotten around to it. If you need to use the Fusion Audio Handler on Android, switching all of the events from Internal List to an invisible List should give you about the same level of performance that a ported Internal List object would give you.
To add audio to the handler: Create an audio token, assign the necessary values to it (definition type, token type, linked object if applicable, and linked object values if the definition may or may not have a linked object), then call its definition. The definition fills in the repetitive values and then calls the audio handler to add it. You'll want to have as many values in the definition as you can get so that you won't need to change very many values in the game engine.
Second, like I said, I don't see a scenario where my appearances are going to increase; rather, I'm going to be around here less and less. Depending on my availability, I'll have a few other resources to share before I vanish entirely. I haven't had an internet connection at home for the better part of this year so that's been a major roadblock for getting new videos up on YouTube. My goal with that is to start rebranding and changing the direction a little bit coming up. Leave the "snail" stuff behind--I'm thinking just shorten it from "Snail On" to "On". Realistically, I'm not sure what I want to start using for a brand/identity and that's been something else that I've been pondering this year.
I'll post a video up here tomorrow with the link to the Fusion Audio Handler and I'll go into more details in the video. One thing that I do want to say is that I'm not going to charge money for downloading the Fusion Audio Handler or any of my other soon-to-be-released resources. I've been critical of Clickteam in the past for their closed business model, so it'd be fairly hypocritical of me to do the same. Quite bit of work and my time went into creating the Fusion Audio Handler, so I'll be happy if you'd like to donate what you feel it's worth, but I'm not going to ask for anything or put a price on it to download it. I created it for my own projects, first and foremost, and anyone's use of it certainly won't decrease its value to me--in fact, the opposite's true! If you feel it's valuable to you and it offers features or convenience you wouldn't have had otherwise, definitely let me know. I've already made arrangements with people behind some highly professional projects, so keep me in the loop if you'd like to use it or distribute it. Regarding giving me credit: Let me know first since, again, I'm not going to be using the "snail" brand anymore and I haven't decided yet how I want to rebrand.
The other resources that I have are going to be available to the community soon and they're at least as useful as the Fusion Audio Handler is. Not sure yet when I'm releasing those but all of these are pretty related.
As always, I'm happy to hear from people via private message, Steam, YouTube when I check my messages there, and email even if I'm not around here very much. Say hello or ask questions!