Automation on global parameters

I’ve just checked the dropdown for a global parameter and it has an option for automation:

but when I click this, I see no others options anywhere to see an automation lane to write into.

Is it possible to add this automation to the param?

1 Like

If you click the parameter the parameter options will pop up down in the deck (bottom of window). There you will see a new automation pop-out where you can apply automation based on any other parameter.

image

Thanks!

The only parameter accepted by a global parameter is another global parameter. Regardless, that still requires a manual change of that new parameter instead of the original one. It leaves me back where I started in that I still can’t automate that parameter value on events.

As it stands, Global Parameters can only be automated by other Global Parameters, because params with a local scope, can have different values across multiple instances of the same event (e.g. More than one enemies of the same type, each with a different state/hp/whatever). The whole point of locality in params is that you are able to attach the same event to different objects, and parameterize the event in order to have different audio outputs depending on each object’s param value. So a local parameter can have many different values at any given time, depending on the instance in question. Another event cannot know beforehand which event instance’s param value you want it to track, because instance initiation and attachment happen at runtime. Maybe you could get the param value of the very event instance you are interested in through your game’s code, and set a global parameter to constantly mirror that value on update, again, through code. Then, in FMOD studio, you can connect your global param with the global param that tracks your initial param in code, and automate it to your heart’s content.

Hope this helped. :slight_smile:

Just seems like recursion to me. If a global parameter can only be automated by another global parameter, then how do you automate that second global parameter. Doesn’t seem like automation, just stacking a parameter on a parameter.

The global affects ~72 separate events. Their values don’t need to differ and shouldn’t. That’s why I chose a global parameter. The only reason the parameter should change is depending on if a music event is playing, only one of which plays at any one time. Instead of grabbing that in the game engine, it would make more sense if this was able to be done in FMOD Studio alone.

So there isn’t automation for parameters like there is for any other value? No automation lane on an event. Nothing like this mockup?:

Pardon me, there’s something I didn’t get right at first. I thought you wanted to automate your global parameter based on another parameter, but one that was local. But if I understand correctly now, you would like to automate it based on which one of the three nested “zzz” events is playing at the time.

Unfortunately, the only way I can think of doing this inside studio, is to add a global parameter, modulated by a sidechain, to each of the three events, then automate you Music Scale parameter based on those three parameters. First you add a global parameter to one of the three events (named, say, zzz01Playing). Then you add a sidechain modulation to that param’s value. You proceed by inserting a sidechain on the master bus (or elsewhere), and connecting it to zzz01Playing’s modulator. After some tweaking, you should have a parameter that stays at 0 normally, and above zero when the event is playing (assuming it’s not playing back silence). Repeat this with the other two events, adding separate parameters for each (zzz02Playing, zzz03Playing), and then you can automate Music Scale based on the values of those other three parameters. Sidechaining can be a bit expensive though and I do not know if it is something you can afford in your project.

Maybe getting the playback state of the events in code and setting your global param accordingly could have been a simpler solution, but, if I am not mistaken, directly getting the playback state of nested events is not possible.

No sorry, it’s not based on the playback state of the nested events. The parameter change determines which nested event would play. The parameter would be changed by another different event.

It is not recursion (it is not possible to automate a parameter on itself, even indirectly), and it is automation. Automating a parameter on another parameter allows you to map the values of the parameter that is automated to the values of the parameter that’s automating it in a non-linear fashion, which has a number of uses. For example, you could use it to simulate a bell curve, such that the the automated parameter has low values at both low and high values of the automating parameter, but high values at middling values of the automating parameter.

There is automation for both global and local parameters, as there is for other properties throughout FMOD Studio.

Automation tracks are just one way of viewing automation curves; They can also be viewed, created, and edited in the deck.

It is not possible for an event to set the value of a global parameter. This is because events are inherently instanced, and global parameters are by definition never instanced.

There are two ways in which the value of a global parameter can be set. It can be done from code (see https://www.fmod.com/resources/documentation-api?version=2.0&page=studio-api-system.html#studio_system_setparameterbyid), and a sidechain modulator on a global parameter can receive input from any sidechain in the mixer.

Is there some particular reason why you want to use an event to set the value of this parameter, instead of just setting it via code like other parameters in your project?