Ha, wouldn't you know, that seems to have done it.
As it is now
Start of frame - Play intro on channel 32
sample position of intro is 3510 - play and loop main on channel 31
Seamless transition to the looping part!



Ha, wouldn't you know, that seems to have done it.
As it is now
Start of frame - Play intro on channel 32
sample position of intro is 3510 - play and loop main on channel 31
Seamless transition to the looping part!


The gap is partly because of the condition you're using: "sample is not playing" has to wait for the sound to end before it becomes true, which is why there's a gap. Also, despite being able to preload samples in the Data Elements, that option has never worked flawlessly for me in this situation.
Anyway, I had to figure out how to do this in my own game so here's how it works for me. Play BOTH samples on Start of Frame and pause the looping one, then resume the Looping sample when a counter reaches a certain value. Basically, you have to force Fusion to load the samples into memory.
Start of frame:
. Play "intro" on channel 1.
. Play and loop "mainloop" on channel 2.
. Pause channel 2.
Always:
. Add 1 to "Counter"
"Counter" = 289
. Resume channel 2.












Nice tip Nim!
I know this is a MAJOR necrobump lol, but i've found another alternative that works as well and is pretty easy to code too.
Here it is:
Start of Frame:
- Play "sample" (whichever name you choose for the sample)
Create a new event for "Compare Two General Values", right click the speaker icon and select "Sample Position", type in the name of your sample, set the compare to "greater or equal to" and type in the sample position of the end of the track (in milliseconds).
You'll get:
SamplePosition("Sample")>=107900 (the 107900 is just an example time)
- Play sample
- Set position of sample "Sample" to 5602" (another number just for an example)
To recap lol -
Start of Frame:
- Play "sample"
SamplePosition("Sample")>=107900
- Play sample
- Set position of sample "Sample" to 5602"
This lets you use the same track and loop it seamlessly at the end point of the track to the desired loop point towards the beginning. Hope this helps someone out!![]()
Wouldnt it be possible then to create an Event starting with a GREEN condition that is allways true ( GREEN conditions triggering independantly of the Event List sequence ) and add the 'sample is not playng' Codition to the same event?
Would this be able to solve the gap issue maybe?






Hi there, I'm finding this problem too.
The method above works in Windows when I test it, but in Android "SamplePosition" doesn't work.
ChannelPosition instead works, which does register in Android... but when trying to use it to loop a sound as in the above example, it still introduces a gap once exported to Android.
Anyone have a solution?