I want to trigger a sound module to play based on a parameter, but only if the cursor hits the very beginning of the module. In other words, I do not want the sound to start playing halfway through if the parameter changes. How to accomplish this?
I’ve created a video and an example document to illustrate this issue.
Here’s the video: https://youtu.be/v7YAMFDlYuo
And the example document: https://www.dropbox.com/s/hreou7p9wpxsrbq/TriggerTest.zip?dl=0
- You must login to post comments
There is a simple way to get the behaviour you’re looking for – and you actually came quite close to discovering it yourself.
Rather than setting the quantization of your kick sound module low, set it high. (Looking at your video, one or two bars should do it.) This ensures that the sound module can only starts playing when the cursor is over the exact start of a bar – and since the only bar start it overlaps is the one at 00:00:000 on your timeline, this trigger region will only play if the parameter is at the right value at that specific point.
Once a sound module is quantized to the beat or bar, it will only begin playing at the points it’s quantized to, even if all its parameter conditions are met. As a result, if you want it to only start playing at one specific point on the timeline, you should quantize it to that point and make sure it doesn’t overlap any other point it’s quantized to.
Incidentally, FMOD Studio version 1.09 will include some improvements to the way we handle waveform display and the behaviour of sound modules that are exited by the cursor, both of which will make this particular situation easier to deal with.
Thanks, Joseph. I can’t use multi-sounds though because I am procedurally selecting which sounds to play via a parameter. You can see from the video that the game has chosen notes E, G#, B and D#. There is no way for a multi-sound to select which sound plays via a parameter so I am using nested events (http://www.fmod.org/questions/question/select-a-sound-within-a-multisound-to-play-via-a-parameter/). The nested event has twelve different samples for each note and is selected via one of the note parameters. This is done for both long samples like pads and short samples like kicks and snares. I really hope 1.09 has a way to trigger a sound module (and allow it to fully play) only when the cursor crosses the very beginning of the module.
I can send you guys the project files I’m working on if that helps.
Also I should mention programmer sounds are something I’m going to try for selecting a note / sample at runtime. This seems like it would be much more efficient memory-wise than having 12 big samples loaded per track.
@NathanielWeiss The method that uses multi sound modules will also work when using event sound modules. (I used multi sound modules in my comment because they were the closest thing to the single sound modules used in your question, but event sound modules have behaviour almost identical to multi sound modules for your purposes, and so work just as well.)
One solution to your problem maybe to add a single sound container and inside this container you drop the distorted kick sound.
You can make the container small enough just to trigger the audio event at the start of the beat and if the parameter changes after the first beat, the event won’t be under the cursor and won’t be triggered.
I changed your example to do this.
Take a look and let me know if that helped!
For this to work, the sound module would need to continue playing when exited by the cursor, and in 1.08 it’s not possible to create a single sound module that continues playing when exited by the cursor on the timeline without using an AHDSR modulator. This solution could work if you used a multi sound module instead of a single sound module, but then you’d lose the timelocked behaviour (and the waveform graphic, which is useful when designing music events). That said, the core of this answer – making the length of the trigger region shorter than the quantization interval – is correct, and I’ve written an answer to that effect.
Thank you. This is an acceptable workaround and it solves both ends of the issue (a sound should never be played only halfway from the start or the middle). While this is an acceptable workaround, it is not ideal. As Joseph points out, you can no longer see the waveform and in general it makes for cumbersome musical projects, especially if you have tens or hundreds of sound modules to convert. It would be so much better if FMOD created a simple checkbox under the trigger conditions that made it so a sound module would only trigger if the conditions are met exactly when the cursor intersects with the very start of the module.
- You must login to post comments
Please login first to submit.