0
0

Hey guys. I’m currently working on a music game using FMOD, and having a bunch of trouble. This trouble includes FMOD Ex and FMOD 3.75, so i’ll try and explain it in 2 parts.

Ok so, I started my project a week and a bit ago. I used FMOD 3.75, because thats what I had installed on Microsoft Visual C++ at the time. The problems I ran into here were quite simple. I set the BPM and Starting offset of a song, and everything was fine. It was timed perfectly. But then, when I clicked anywhere on my progress bar to change the position of a song, the timing accuracy changed, probably by like, an eighth of a beat or so, but it was noticible, and I didn’t like it. This has happened on numerous projects so I kind of thought it was FMOD. Another small problem I ran into is that FMOD misjudged the length of some MP3 files, but I didn’t do enough research into it to see if that was me at fault.

Anyway, So I updated to FMOD 4 Ex, got it all up and running. Replaced code in only one class, which was the only one required, and went ahead and ran the project. My game doesnt misjudge the duration of MP3’s anymore, thats fixed atleast, but timing seems to be way off. The timing inbetween beats is OK, so now im wondering if FMOD is returning the wrong value of milliseconds, or if theres something im unaware of causing some sort of delay.

Any info much appreciated. Cheers.

EDIT: After picking a song, setting the correct BPM and Offset, I altered the MS being returned by FMOD. After a bit of messing around I found that subtracting 500ms fixed the incorrect timing. That allowed me to discover that the mistiming I was getting from setting the position when using the progress bar seems to be fixed. Still looking for a proper fix though :s

Thanks

fmod related code:

float BPM;
float Offset;
float MSBB;
float Milliseconds;
float Duration;
unsigned int DurationInt;
unsigned int MillisecondsInt;
int Divider;
bool Loaded;
std::string Mp3Path;

FMOD::System *MusicPlay;
FMOD::Sound *Track;
FMOD::Channel *Chan;

FMOD::System_Create(&MusicPlay);
MusicPlay->init(32,FMOD_INIT_NORMAL,0);
Chan = 0;

//Mp3Path = Path from here on
MusicPlay->createSound(Mp3Path.c_str(),FMOD_DEFAULT,0,&Track);

MusicPlay->playSound(FMOD_CHANNEL_FREE,Track,false,&Chan);

void Update() {
Milliseconds = 0;
Duration = 0;
MusicPlay->update();
Chan->getPosition(&MillisecondsInt,FMOD_TIMEUNIT_MS);
Track->getLength(&DurationInt,FMOD_TIMEUNIT_MS);
Milliseconds = MillisecondsInt;
Duration = DurationInt;
}

  • You must to post comments
0
0

Downgraded FMOD to version 4.02.10 – Stable, after trying the latest stable and beta releases.
Fixed the problem, and the setPosition problem didn’t come back either so thats cool 😛

I guess it’s a bug in FMOD then? Thoughts? :)

Cheers

  • You must to post comments
0
0

If you could send a reproduction case to support@fmod.org demonstrating the bug you are getting we can take a look into this issue further.

  • You must to post comments
Showing 2 results
Your Answer

Please first to submit.