Hi, I’m having problems making a crossfade when doing an audio track transition using a discrete parameter. Three tracks are running simultaneously, which one you hear is based on a volume automation linked to a discrete parameter. When shifting from one to the other the automation functions correctly though I can’t find a way to smooth out the transition. Neither setting a seek speed nor adding an AHDSR modulation on each track’s volume dial work. Am I missing something ?
What you want is possible, but requires a little work to set-up.
AHDSR modulators are not the right tool for this task. On event properties, they act only in response to the event being started and stopped. Changing an event’s parameters does not start or stop that event, and so does not cause the AHDSR modulators on that event’s properties to do anything.
Seek speed is the right tool for the job, but it only directly affects the value of the parameter. It does not directly affect other properties, and so will not cause those values to change value gradually unless their automation curves have smooth slopes. In your screenshot, the automation curves have vertical “cliffs” at which the automated property’s values instantly change from one value to another, so the volume will change instantly at those points no matter how gradually the parameter playback position moves over them.
If I’m not mistaken, you want the automated properties’ values to change gradually when the parameter is set. To do this, you must automate those properties on continuous parameters rather than discrete parameters, and design the automation curves such that their values ramp smoothly from one value to another when the parameter’s value smoothly ramps from one value to another - and then you need to put seek speed on the parameter. This will result in the properties’ values changing gradually as the parameter value does.
However, it will also mean that when your parameter’s value changes from zero to two, your “Audio 2” audio track will fade into audibility and then fade out again. This is because if you are using parameter seek speed to cause a parameter’s value to ramp gradually from zero to two, it will naturally have to pass through all the values in-between to get there. If you want your event to instead go from playing track one to playing track three without briefly playing track two, you will need to automate each track’s volume on a different continuous parameter, and either set those parameters’ values separately in your game’s code, or automate them all on another parameter that you set in your game’s code.
A large number of users have rightly pointed out that setting up this behavior is a somewhat cumbersome process, and have requested a feature that would make it easier. I’ll add your name to the list of people interested in that feature.