I typically use grain players with short snippets of audio for looping sounds where I do not want an audible loop point.

Imagine a rolling sound, scraping concrete, water running, wind, fire… you get the idea.
My initial approach yielded a gap in the audio playback of fmod. After contacting Brett from Firelight and trying a few things, I found the solution. It’s not the most intuitive solution, so it was worth noting it down for future use. As a matter of fact I came across the same issue a few months after the fact, and I could not remember how to do it !

In a Complex / Multitrack event, create 1 sound definition with all your grains.
Then set it to random/sequential etc playback mode, with max spawn time of [0,1] and a Maximum Polyphony of 2,

… then in the event editor right click on the sound def instance, and bring up sound instance properties (right click on the sound def in the layer. Change mode to ‘wait for previous’.

Wait for previous is set up for gapless joining so you can do granular synthesis this way.


That’s all there is to it ! I’ve added a few real time parameters for scraping to modulate the event for fun.

The project files also contains an event called Tones. This contains 3 different pure tones stitched together the same way. This is to ensure there is zero overlap between grains when using this technique.

Check it out by downloading the fmod test project here: [url:2z5jpyp6]http://hybridsoundworks.com/?p=2069[/url:2z5jpyp6]

  • You must to post comments

I really like this technique too. Good idea to post it! I think I first learned of it in the manual, but maybe it got removed/changed? If it’s not there, then it would be good for them to add this.

I tend to use it for surround ambiances. I cut a seamless loop into two parts (A & B) and have the front speakers play the parts in the order ABAB etc., and have the rears play the parts in the order BABA etc. (using "Sequential" as the sound def "Play Mode"). I find it’s a quick way to get ‘unique’ content for the rear speakers without having to bloat the game game size.

However, I find that the seamless’ness of this technique is imperfect. I get small, but noticeable, click/pops/gaps on certain spawns (say 20-50% of the time). Do you not get this? Firelight’s aware of this issue, so I’m hoping they’re able to solve it (at least in Studio). I haven’t tried this technique in Studio yet. I’m holding off switching over until it’s more complete and stable.

What I’d prefer to do for the above usage is to have the parts cross-fade with each other, so that I can chop up the ambiance loop into more chunks and have them randomized. I’ve requested that Firelight put in the ability to have a cross-fade when looping around on a "Timeline" in Studio. Hopefully that will happen in some form.


  • You must to post comments
Showing 1 result
Your Answer

Please first to submit.