0
0

It’s taking about 1/3 of a second to seek to 2 minutes, 0 seconds in an .IT file. I’m using FMODEX 4.02.03 from C#.

The file was opened like this:

.createSound(soundName, FMOD.MODE.HARDWARE | FMOD.MODE.CREATESTREAM | FMOD.MODE.ACCURATETIME, ref sound.Sound);

And position set like this:

.setPosition((uint)value, FMOD.TIMEUNIT.MS);

Any way to speed this up? I don’t mind if FMOD builds an index when the sound is loaded, but this far is too slow for my application.

Thanks,

Jeremy

  • You must to post comments
0
0

That’s not going to work for my application.

May I suggest adding a “getPositionMark” and “setPositionMark” (or something like that) so I can save my current position, and get back to it quickly? Then I could build an index in 10 second intervals and search quickly within that. Either that, or have a BUILD_INDEX flag?

-Jeremy

  • You must to post comments
0
0

… Or, shouldn’t FMOD be able to scan through an XM (or IT) file a lot faster than that? It shouldn’t need to generate the actual sound, just fast forward through all the notes. That should be pretty quick. Right?

-Jeremy

  • You must to post comments
0
0

That would work if I could set order and row, then seek forward to the exact millisecond. Unfortunately, FMOD appears to loose the time and still seeks from the beginning. How about adding a command like this:

.setPosition(order, pattern, row, timeMs)

Where I am telling FMOD what time to use for the order pattern, and row. Then I could quickly seek forward the exact time I want. Or… do you have a suggestion for something else I could try?

I really do need fast random access seeking to make my application work.

-Jeremy

  • You must to post comments
0
0

Hm, that doesn’t appear to be the case, unless I’m doing something wrong:

mChannel.setPosition(pattern, FMOD.TIMEUNIT.MODPATTERN);
mChannel.setPosition(row, FMOD.TIMEUNIT.MODROW);
mChannel.setPosition(order, FMOD.TIMEUNIT.MODORDER);

uint tt = 0;
mChannel.getPosition(ref tt, FMOD.TIMEUNIT.MS);
mChannel.setPosition(time, FMOD.TIMEUNIT.MS);

Pattern, row, and order, ( 28, 111, 28 ) were saved from a seek one second before time. After I run this code, tt is zero and it takes about 1/2 second to do the last command.

-Jeremy

  • You must to post comments
Showing 4 results
Your Answer

Please first to submit.