I’m having fun with forcing the speaker mixes on some of the sounds in my system.
I do have a question about priorities though..
if I set a channel group to have a speaker mix of front only using
and then override the channel directly and send it to the back speakers..
which one takes priority..
does it play in the back, front, or do the two multiply each other out and produce no sound?
- ToneDef asked 10 years ago
I’m finding that I can call overrideSpeakerMix on a channel group, then later assign a channel to that channelgroup and not have the override take effect.
Is this normal behavior? Do I need to call ChannelGroup::overrideSpeakerMix every time I add or remove a channel from a channel group?
Yes, as I said – All override functions do are loop through the channels and call the corresponding function on each channel. It overrides whatever is there, as the name says."
I’m not sure else how I can explain it, It loops through the channels when you call it. It doesnt scale or remember the values afterwards.
It would be a bit pointless to override existing channels that have already been overridden. You should probably just use Channel::setSpeakerMix.
[quote="brett":3qbqojdk]Yes, as I said – All override functions do are loop through the channels and call the corresponding function on each channel. It overrides whatever is there, as the name says."
I’m not sure else how I can explain it, It loops through the channels when you call it. It doesnt scale or remember the values afterwards.[/quote:3qbqojdk]
I understand, I’ve fixed my code, but I was definitely still a little confused.
It was my understanding that one of the purposes of a hierarchical channel group was to set different types of settings on different groups, and just worry about classifying each sound into the group you want.
In my example, I want all the player-spoken dialog (and player sound effects) to play through the center channel only. I allow my audio designers to configure the channel groups in a script file that gets loaded when the game starts. They set "center-channel-only" for just the Dialogue_Player and FX_Player groups.
I thought that, especially since the function starts with "override" that it all channels added to this group (or any of its subgroups, if they don’t have their own specific setting) would have their speaker mixes "overridden" with whatever the group specifies.
What I’m describing makes more sense If I use "volume" instead of "speaker mix" in my example. I add sounds to the proper groups, and then I can just adjust the entire group’s volume by adjusting faders like "Dialogue", "Master", etc. If I set the dialogue fader to a low number I thought the expected behavior was for all sounds (present and future) in that group to be soft.
brett: I’ve had the same confusion in the past, I think it’s simply a matter of updating a tutorial or making a more advanced version of example and updating the documentation. One of the things we tend to think of using when we see channelgroups is to have prearranged setups ready for new playing sounds to hook into, this applies to dsp chains etc, and so quite often when we say override everything on this channelgroup we literally do mean to apply it to any future attachments, just as setVolume on a channelgroup is actually kept separately.
- mac_bug answered 10 years ago
Please login first to submit.