Playing Multisound to the end in loop

I’m trying to create a tail for a sound so the transition to the beginning of the loop is smoother. Here is a image of what I want to do:

Sadly the last part of the sound is not played when reaching the end of the loop, it is a hard cut. I don’t understand why this is happening, because it seems like the standard behavior should be that the multisound container plays its files to the end like in this video:

What am I missing? (Fmod Studio 1.09.04, Windows 10 64bit)

Hello Johannes,

Am I right in thinking you wish to play the multi sound module’s assets in their entirety on each loop?

If that is the case you can click on the “Async” button just above the Playlist section in the deck. This will play each asset in the playlist from beginning to the end (unless you turn on Cut, which will cut the asset once the cursor leaves the trigger region). Please note that if you are using async then you will need the loop region to extend ever so slightly beyond the length of the multi sound in order for it to be re-triggered.

If you wish to not use async then you can right click on the multi sound and choose “Resize to Contents Length” which will resize the multi sound to match the longest asset in the playlist at that time.

I hope this helped.

Thanks,
Richard

Hi Richard,

Thanks for the answer, I tried using async (which feels a little bit dirty to use), but then the loop somewhat doesn’t work anymore/behaves strangely. It only plays the file once as seen here: https://gfycat.com/BadValuableBeauceron

I’m also irritated that in the video I linked to, the behavior is exactly as I would like it to be, but I can’t reproduce it.

Hi Johannes,

This is happening because the playback cursor doesn’t leave the trigger region (multi sound) so it never gets retriggered to play again. To do this, please zoom in as close as you can to the very beginning of the multi sound and extend the loop region to have a little bit of gap. See my screenshot below for a demonstration.

Sorry about the frustration, we are working on some new documentation that should help with searching for this kind of information in the future.

Thanks,
Richard

Hi again Richard!

Thanks a lot for your answer, this solution indeed is working. The retriggering logic seems a bit counter intuitive to me, can you explain why you made the decision that hitting the exact start does not count for retriggering? In my case I just want to play the end of a looping sound and with this limitation I now have to move everything marginally and if I want to be really precise I would need to a little bit from the start of each file so it stays in the rhythm. Additionally, if somebody else opens the file, they might break everything when they snap the loop region.

Also out of curiosity, can you tell me why it is working the way I want it to in that tutorial of yours which I linked in the first post (https://youtu.be/GSRpgLTBn9Y?t=4m16s)?

Thanks again for your time and I’m looking forward to be enlightened :slight_smile:

Hello Johannes,

I’m happy to hear it’s working now.

The reasoning behind it is that an asynchronous module won’t play until they are triggered, and they won’t retrigger unless the playback cursor exits and re-enters the trigger region (the multi sound module in this instance).

The version of FMOD Studio used in the Viking Village had a feature that if a “New Loop Region” was created on an asynchronous module it would automatically at a tiny gap the size of 1 sample at the end. This would ensure that the loop region allowed the playback cursor to exit and re-enter the trigger region. This was taken out of future releases by user requests so now creating loop regions will match 1:1 the size of the module it was created on.

I have added a suggestion into our track to improve the usability of loop regions in this situation. Hopefully this will be looked at for a future release.

Please let me know if you need more information.

Thanks,
Richard

Hey Richard,

Thanks for all the valuable information and still sticking with me on this! I think I found a feasible solution without creating this small gap in the beginning due to the information of your last post:

When resizing the size of the multisound container, it won’t be cut off, so the sound always plays no matter how long the container. So my solution is to let the loop and the container start at the same time, but just scaling the multisound end part to be completely inside the loop region. This way I don’t have to do slight offsets, and everything will stay in sync the way I want it to :slight_smile:

€dit: Oh no, sadly this also isn’t the final solution for my problem, because I just noticed that jump marker won’t work with async sounds the way I want them to. Here is the setup I have right now: https://i.imgur.com/zUQtCVa.png.
I’m not sure if I can build this in any way with async sounds…

I also thought about using transition markers with their awesome functionality to define how the transition should happen. Sadly I can’t overlap the sound containers there (https://i.imgur.com/14WvLbr.png).

In the end I want to do something like that, https://i.imgur.com/JUl4y6F.png, but just for a loop (Or transition with which I then kind of create a loop). Is there anything I’m missing? Feels like I’m a bit out of options even though I feel like what I’m asking for isn’t that much of an edge case.

Hi Johannes,

You are correct, your current set up will not work with async sounds.

An asynchronous sound module acts more like an on/off switch - you can’t seek within the sound file(s) playing when using it. You will need to set the multi sound to be synchronous.

If you set the multi sound to be synchronous (turn off async) then you will need to resize your multi sound to match the size of the file it is playing. The easiest way to do this is to right click on it and choose “Resize to Content’s Length”.

Alternatively you could split all these regions (easy0, easy1, etc.) into their own mini segments. That way you can keep the async setting and still use transitions. This would require you to split the music track(s) outside of FMOD Studio and reimport them.

Could you please let me know what it is you wish to achieve with your event (such as a randomized music event)? This might help in giving you a better solution.

You can see some examples of music and transitions in the example project bundled with your FMOD Studio install if it helps.

Thanks,
Richard

Hi Richard,

The file I’m working on is for adaptive music. I want to switch between themes (different audio tracks), intensity (other multisound containers with a different set of sounds) and variations of the music (multisound container with different 16 bar tracks). The first two changes can happen every four bars, the multisound changes happen every 16 bars. Everything works quite well, but now the music designer wants to add tails to the bounced tracks. So as I showed in my initial post, I want to play that tail (that is connected to the file played in the multisound container) when the music loops.

Your suggestion with splitted multisound containers for each 4 bars should work I guess, but we will have quite a lot of variations and I think the overhead for that solution is quite high.

So my dream solution would be to just have a ruler which controls how much longer the file is played after a transition (Including the loop) and maybe a curve how the volume fades away. As I pointed out in my last point, I want something like that for the loop: https://i.imgur.com/JUl4y6F.png

I see, thank you for the extra information.

Probably the best set up in that case is a synchronous multisound along with manually importing the tails needed and placed in the transition region timeline. Be sure to use tempo markers in order to snap to the beat of the songs used.