Specifying fade duration in Game_Music_Emu

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Specifying fade duration in Game_Music_Emu
by on (#199639)
This question is a cross-post of a question about Ubuntu's package of Game_Music_Emu:

I'm writing a C program that wraps Game_Music_Emu to produce wave files that I can later encode with oggenc or LAME, sort of a more fleshed-out version of demo.c from the source distribution. But I want to specify the duration of the fade rather than using the default of 8 seconds.

From gme.h:

Code:
void gme_set_fade( Music_Emu*, int start_msec );


From gme.cpp in the source code:

Code:
BLARGG_EXPORT void      gme_set_fade       ( Music_Emu* me, int start_msec )      { me->set_fade( start_msec ); }


This uses the default value of the second argument of this method in Music_Emu.h:

Code:
// Set start time and length of track fade out. Once fade ends track_ended() returns
// true. Fade time can be changed while track is playing.
void set_fade( long start_msec, long length_msec = 8000 );


Is there a public function similar to gme_set_fade() that allows additionally specifying length_msec? Or does the choice of 8000 milliseconds follow some standard? I expected there to be something along the following lines:

Code:
BLARGG_EXPORT void      gme_set_fade_ex    ( Music_Emu* me, int start_msec, int length_msec )      { me->set_fade( start_msec, length_msec ); }


Otherwise, I'll have to do the fading within the wrapper.