You know what I'm talking about. Right now in MMF2, its idea of looping audio is just... not. It inserts a 1/4th second pause inbetween playbacks. It's very inconvenient and I'm wondering if a fix is ever going to be in the works.
Printable View
You know what I'm talking about. Right now in MMF2, its idea of looping audio is just... not. It inserts a 1/4th second pause inbetween playbacks. It's very inconvenient and I'm wondering if a fix is ever going to be in the works.
Even in the built in sound engine using OGG or Wav files?
Yes, and using either format. There's a definite pause inbetween samples. If you calculate how long a sample is and have it play for every however long it is, there is no pause.
So, it has to be the looping engine inside MMF2.
I can confirm this and it's very annoying.
What about also adding support for the position jump command in sequenced music files (.MOD/.IT/.XM)? That's another way to add in looping audio.
I've never experienced pausing for any sound formats in MMF.
It's not a pause, it's a short delay.
I haven't had the pause in a long, long time... But I used to get it on some older machines (probably due to the OS.
Any pause I ever experienced was far, far less then that found in Microsoft's Media player...
What are your system and OS specs?
The audio part of MMF just needs a total and complete overhaul to modernize it and make it more feature rich imo. Hopefully for MMF3 everything will be beyond our expectations! :o
I dont have pause issues with .ogg - when i did, it was the .OGG ITSELF that had a tiny pause at the beginning, actually. I removed it with Audacity an boom. No pause in MMF.
Try making a sound that just is one cuntinuous note that you aren't supposed to be able to tell where it ends. You'll se there is a clear pause in MMF2 whereas it play perfectly in other sound playing objects like Onu or ModFusion.
I've used looping audio in Knytt, Knytt Stories, Night Game, hundreds of files alltogether, and never have I once experienced glitches when the sample loops unless it was my own fault.
I have no idea why you're having a problem getting it to work. Perhaps it's because MMF2 loops from the end of the sample to the beginning, rather than follow loop points specified in the audio file? If this is the case, you should trim the sample. Perhaps there is a bug, but it only happens on some machines?
In either case, check these two files - if these doesn't loop seamlessly for you, then something is different about your MMF2 build.
ogg
wav
It happens mostly with larger files and longer music, shorter music the delay isn't very noticable.
I'll give it a try later!
try triggering the loop by checking if a sample isn't playing instead of designating a number of loops, that creates the weird delay for anything.
seems like an order of operations error in mmf's code.
That's not a bug or an error. That's just logical and makes sense. Loading a sample is not instant, and MMF2's events are executed once every frame rather than magically perform the "play sample" action out of place exactly when the previous sample stop. Then, there's the soundcard latency too. If CT included the feature to play separate samples after each other without a delay in between, you'd have to specify what sound to play next before the previous sound has stopped playing, so the program can pre-load the sample and take all the things above into account too. Having an event doing it triggered by a sample's end is not possible by plain logical reasons.
Oh, so I guess all those other programs that do it perfectly are hacked to make it sound good. :)
[size:8pt]This post was checked for sarcasm and irony by SarcIron v 2.3.4 - No sarcasm or irony detected.[/size]
What, LB?
That was hilarious! :)Quote:
Originally Posted by LB
[size:8pt]This post was checked for sarcasm and irony by SarcIron v 2.3.4 - No sarcasm or irony detected.[/size]
Other games and programs can loop large music files with no delay between end and start, does that mean that they used an alternative method or is MMF2 really bugged?Quote:
Originally Posted by Jamie
That doesn't even make sense, given what people say. Apparently the gap is when you set a sample to loop, which means the sound is already in memory and essentially MMF knows exactly what's going to come.Quote:
Originally Posted by Nifflas
And the workaround seems to be to use a "every x seconds" event to start the next sound after the duration of the previous, in which case MMF does not know what's going to come, and yet it's fine.
Why other games and programs can do it fine is because they precache the sounds / music. And so does MMF.
You're taking my post out of it's context. I was not responding to a post concerning the use of sample loops, I was responding to one about triggering a sample using an event that checks if a previous one has stopped playing. "Is sample/channel playing" are false events and are triggered once every frame, and not the instant when the sound has actually stopped playing, and the small pause in between would produce a small pause (or more an instant pop). An audio playback needs to know what's comming on it's own, an event system that runs in a separate thread triggering a sample when a previous one has stopped doesn't count as that.
Sample loops are different, of course MMF should see what's comming there (and to me they have always worked fine, I've not yet experienced what people are explaining here).
Oh sorry, must have missed that. You're right then. Using regular conditions wouldn't work. Don't we have something like "sample stopped" or so that gets triggered exactly when the sound is done playing?
We do, but there's always going to be a little bit of latency between the sound stopping, that condition firing, and the subsequent action to play the sample again.
Uh, I've been looping music for ages, and the way I do it is - when the sample reaches a certain position, it jumps to an earlier position (my music has an intro and then loops from, say, 00:10 - 2:00)
It probably works well, but if you're using an event to set the sample position, it can't be sample accurate by technical reasons (event system that runs in another thread taking care of looping the song). However, if you're lucky, it's close enough to sound good!
True, but yeah, it always worked for me. :) Isn't the position unit milliseconds?
Yeah, but even if you specified the exact sample point to loop back to, you'd get a small offset just because the event engine runs in another thread. However, if it's close enough there's no reason to complain :)
The best way do it from a technical point of view if the sound engine itself knows what's comming in advance, so that the beginning of the loop is already pre-buffered with sample accurate precision in the actual audio buffer (not just the RAM) before the end point has been reached.
Don't get me wrong though, I'm not complaining really. I'm just describing the most optimal and streamlined way to handle it.