Fade in when a region is triggered

Hello,

I have an event with 4 audio tracks in a loop region. The idea is that the first track is always playing and the 3 other tracks are added depending on a parameter value. To do so I have set up the 3 other tracks regions with trigger conditions. I also wanted the triggers to be quantized and to fade in smoothly. So I added quantization and AHDSR Modulation. Everything works as intended but when the loop happens the AHDSR modulation effect happens too so the others active tracks stop and fade in which is not what I wanted to do.

Is there any way to make the tracks triggers quantized and to fade in when triggered without stoping and fading in again when looping ?

It sounds like you’re using asynchronous instruments. If this is the case, you could potentially use a sustain point instead of a loop region and thus prevent the AHDSR modulator’s release/attack from restarting every loop.

If your event depends on using synchronous instruments, the above solution will not work. An alternative is to remove the AHDSR modulators from your instruments and instead automate the volumes of your tracks (or of the instruments on those tracks) on parameters in a manner similar to the “Music/Level 02” event in the “examples.fspro” project that’s distributed with FMOD Studio, and then add a seek speed to those parameters to ensure smooth ramping.

1 Like

I’m also having trouble with this. Let me get this straight:

I have a piece of music with different layers on different audio tracks. Depending on the parameter value, some layers should be activated with a smooth fade in or deactivated with a smooth fade out. The whole music should be looped.

  • Using AHDSR modulation on the volume of the individual audio tracks doesn’t work, as it will retrigger the fade in on every loop cycle
  • Automating the volume of each audio track depending on the parameter value also doesn’t work, as my parameter will jump from value to value. There will be no smooth transition between parameter values.

So how do I do that? I’m not quite sure what you mean with the seek speed of the parameter. Of course I can set a seek speed for the whole parameter within the parameter settings, but wouldn’t that have an impact on the whole parameter behavior? Like transitions and so on? Won’t they be delayed too?

I have a piece of music with different layers on different audio tracks. Depending on the parameter value, some layers should be activated with a smooth fade in or deactivated with a smooth fade out. The whole music should be looped.

  • Using AHDSR modulation on the volume of the individual audio tracks doesn’t work, as it will retrigger the fade in on every loop cycle

AHDSR modulation will trigger each loop if your instruments are synchronous, but if you toggle them to asynchronous it will only trigger when the playback position enters or leaves the instrument trigger region.

I’m not quite sure what you mean with the seek speed of the parameter. Of course I can set a seek speed for the whole parameter within the parameter settings, but wouldn’t that have an impact on the whole parameter behavior? Like transitions and so on? Won’t they be delayed too?

Yes, applying seek speed to a parameter affects the final value of that parameter, and so indirectly affects everything whose behavior depends on the value of that parameter.

If you want only some of the things in an event to be controlled by a particular parameter’s value, you should use that parameter to control only those things, and use different parameters to control all other things. In the context of the event you described, if you want to use a parameter with seek speed to automate the volume of specific instruments to ensure they fade in and out smoothly, use a different parameter as a trigger condition for your instruments and transitions.

Thanks for your help joseph. Unfortunately I still don’t get this to work. Here is a screenshot of my session:

I’ve got a loop section with different layers. Layer 1 is always active. As the player looses health (= parameter) first layer 2 should become active and later on layer 3 to make the music more dramatic. Both layers should fade in smoothly in addition to the already playing layer 1.

  • Setting up the instruments as asynchronous doesn’t work, as layer 2 and 3 are also being triggered when layer 1 starts. Furthermore they need to be in sync with layer 1.
  • Using a seek speed for the parameter is not an option, as it also triggers transitions and they shouldn’t be delayed
  • Right now I automated the volume of layer 2 and 3 depending on the parameter value. But as the health can jump quite quickly within its values, there won’t be any smooth fade in.

I can’t believe I need an extra parameter for every layer and need to sync this new parameters to the health parameter the game engine is already giving me, just to get a fade in. So how do I set up this vertical layering? It’s a very common technique for game music to work with layers and add or remove them during the gameplay to change the musical experience without playing a new music track.

I can’t believe I need an extra parameter for every layer and need to sync this new parameters to the health parameter the game engine is already giving me, just to get a fade in.

Believe it.

You won’t necessarily need an additional parameter for every layer in your event, but you’ll definitely need to add at least one new parameter. There is no way to meet all your requirements, otherwise.

  • Because your event requires synchronous instruments and loop regions, you cannot use AHDSR modulators on those instruments.
  • Because you want to smoothly ramp the volumes of your instruments but cannot use AHDSR modulators on those instruments, you must use another method of ramping their volumes. The only other method of smoothly ramping volumes in FMOD Studio is automation.
  • Because you want your ramping due to automation to be smooth, you must ensure your automating parameters’ values are themselves smoothly ramped, either by applying seek speed or by ramping them in your game’s code.
  • Because you need parameters whose values are smoothly ramped, and none of the existing parameters in your event can be smoothly ramped without changing their behavior in a way you consider undesirable, you must add one or more new parameters to your event for that purpose.

You may be able to reduce the number of automation curves you need by using track volume automation instead of instrument volume automation, though I don’t know enough about your event’s requirements to be sure.

Again, thank you very much joseph for all the clarifications. I think I got a better understanding now of automation and modulation and when to use them. This will help me set up the system that I want. Thanks for your time and your patience.