I’m currently trying to scope out ways to give our sound dept. volume headroom, when working with FMOD Designer (specifically with sound categories).
For example I have my sound event category hierarchy
By default all volume levels go to 0 (max volume). If I attenuate the master category volume down to -6db I was hoping that the music and sfx categories would then have +6db headroom available – because they could deduce, by looking at the parent category(s), there is +6db of headroom available, so the slider would go between [-60..+6]db, instead of [-60..0]db. Unfortunately in FMOD Designer has the sliders fixed between [-60..0] so there is no convenient way to specify a global level of headroom, and allow volume boost to be applied to select child categories. One cannot define a ‘baseline’ attenuation of -6db across the board and then increase as required, because the compounding nature of attenuation levels means the attenuation would be added together (and become -12db in the example above).
So my question is what is the best way to configure FMOD such that there is some headroom available, so down the track if the volume of a sound needs to be boosted, this can be done without a big ordeal?
I’ve noted if I programmatically set the volume attenuation (EventCategory::setVolume) to a value > 1, it does not seem to correctly compound the value (it clamps the individual category at 1, and returns FMOD_OK). For example, I set the master category to 0.7 (-3db), then set one child category to 1.41 (+3db) – all categories remain very quiet (the child category doesn’t reverb to 0db, expected: -3db+3db=0db).
Should I add an additional layer where I handle fully managed sound attenuation levels, to support volume boost (meaning manually feed through volume levels to leaf sound event categories, and manage the compounding volume levels myself). Or is there a better way to go about this?
Would be great to hear how other people have tackled this issue.
- Jade_Lee asked 11 years ago
Yes you can set the volume of the master category, and bring it down to give headroom for general mixing.
If you want to boost certain sounds, you cannot bring them to greater than 0db right now, mainly because hardware voices don’t allow it. (fmod’s software mixer handles it no problem).
The reason your category volume didnt come back to normal volume, is because you cannot actually set a category volume greater than 1.0. It is clamped between 0.0 and 1.0. We could look into this but the hardware issue might come up again if you go over 1.0 (0db) total.
So in theory for console development purposes (x360/ps3), since we should be using software mixer anyway, we could do a build of FMOD Ex without these clamps – and provided we we careful not to exceed 0db (compounded) it all should be fine?
I’m happy to do a manual solution like this for now, but I think clamping the final result (of the compounded category volumes) instead of each category level would be a nice long term solution. Then FMOD designer could be configured to have a user defined headroom on sound categories (or in general for volume), so can set level to 2 (+6db) – but would remain responsibility of user to not have final compounded volume exceeding power of 1 (as anything above this would be clamped). Haven’t given the UI side a lot of thought; others might have better ideas on how best to configure volume boost.
- Jade_Lee answered 11 years ago
I’ve noticed there is very little headroom as well. What I’ve done to tackle this is create an Audio System Interface that takes in a FMOD::EventProject and loads/plays all the events accordingly, and give each system a volume attribute. Then it’s just a matter of cycling through all the events that are playing and setting their volume to the value of this attribute. You still don’t get much headroom with this technique though.
What I would like to see is the ability to modify the volume of an entire category of events and an easier way modify attributes of all playing instances of an event in a particular category. (i.e. updating the 3d position of a looping event or in this case volume)
- micken answered 11 years ago
Please login first to submit.