Hi guys,

I have some difficulty understanding the best way to setup sounds that need multiple parameters and need to loop with one-shots that play at the beginning and end of the sound. Best I can do is give an example to help describe what I’m trying to do.

Let’s say in my game I have a stretchy bungee cord. I want it to cross-fade between a couple of sounds and pitch up and down based on how stretched it is. I make a multi-track event and drop in "low tension" and "high tension" looping sounds, then I add a new parameter and name it "stretch". Then I crossfade the sounds over each other on the track. Next I adjust the pitching so that when I grab the stretch parameter controller and slide it back and forth the sound crossfades and pitches as I expect it to. So far, so good…

Now I want a short one-shot sound to play whenever the event plays, and then another one-shot sound to play whenever the event is stopped (key off in this case). I add a new parameter and call it "cycle", and set velocity in it to 1 so that the slider essentially behaves like a timeline on that parameter. Then I add a sustain point somewhere on the new cycle parameter line. Now things start getting confusing…

My stretch parameter is setup to go from 0 to 1. In order for the behavior of cross-fading and pitching to work properly, I need the loops to cover the entire length of the layer – all the way from 0 to 1. If they don’t reach the extreme edges of the layer, when I move the stretch parameter slider to the edges the loops stop playing.

1) In this situation, where do I place the one-shots that I want to start off the sound and play when it is keyed off?
2) When I key off the sound, it’s like both loops are playing now instead of stopping because the slider has reached the end of the parameter and the loop is there. As I said before, I can’t move the loop sound away from the ending of the timeline because it affects the stretch parameter.
3) If I ask the programmers to key off a sound, does the sound still also need to be stopped afterwards? In FMod, if I key off a sound the play button is still highlighted and it still plays until I press the stop button.

  • You must to post comments

The best possible way to set up an event that needs multiple parameters and loops with one-shots that play at the beginning and end of the sound is to do it in Studio. However, as you’re posting this in the Designer forum, I assume that that’s not an option for you. Instead, what you need to do is:
1. Put your ‘high tension’ and ‘low tension’ sounds on your ‘stretch’ track so that they’re crossfaded and reach right to the ends of the parameter, as you have done.
2. Put your ‘start’ and ‘end’ sounds on a different track to your ‘high tension’ and ‘low tension’ sounds. This will allow you to have them playing at the same time without having to worry about crossfading. (Note that tracks are sometimes called ‘layers’ in Designer.)
3. Set the control parameter of the track with the high and low tension sounds to be your stretch parameter, and set the control parameter of the other track to be your ‘cycle’ parameter. Because a track’s control parameter is the parameter that causes the sounds on it to be triggered, this will prevent your cycle parameter from affecting your high and low tension sounds, and stop your stretch parameter from affecting your start and end sounds. (I strongly suspect you’ve already done this, but we’ve had a few users who didn’t realize that control parameters were a thing.)
4. On the cycle parameter, create a volume effect on the track that contains your high tension and low tension sounds. (Remember how I said your cycle parameter wouldn’t affect your start and end sounds? That’s about to change.) Use the automation curve of this effect to make the track be silent at the beginning and end of the cycle, so that you don’t have ‘already stretching’ sounds playing at the beginning and ends of the event where the ‘start’ and ‘end’ sounds are supposed to be the only things playing.
5. Set a parameter velocity for the cycle parameter and add your sustain point.

That should take care of your first and second questions. As for the third, yes, you do need to stop the event in this instance; The sounds on the stretch parameter will still count as playing in this kind of event, even if the volume is attenuated to zero.

Any questions?

  • Beatrix Moersch
    Hello Joseph, would you care to detail how this is best done in Studio? I would most appreciate it!
  • Joseph Harvey
    @BeatrixMoersch In Studio, you'd put the start and end sounds on the timeline and use a short loop region or sustain point to keep the timeline cursor where you want it. You'd then put your loops on a game parameter (and probably on a separate track), and automate their volume (or the volume of the track they're on) on the timeline.
  • You must to post comments

Thanks for the detailed answer, Joseph, it solved the issue for me. 😀


  • You must to post comments
Showing 2 results
Your Answer

Please first to submit.