I understand that you maintain FMOD for many platforms and therefore, feature requests are not always easy.

However, I am after a MOD library that I can mix two modules together, much like a DJ mixes two tracks together. If a name the track that is ending track ‘A’ and the new track that is just about to play track ‘B’. The idea was that I made track ‘A’ match the tempo, and speed of track B, by gradually shifting the tempo towards the start tempo of track ‘B’. Tempo changes shifts would be gradually done at the start of each bar. When the tempo in ‘A’ matches track ‘B’, I would gradually let channels interpolnate, by different means, such as crossfading background instruments, and cutting the bassline on track ‘A’, and letting the bassline of ‘B’ play when the pattern changes etc.

However, looking at Fmod, there seems to be a lack of volume control for set channels, and a way of setting the BPM of a track explictly, without putting the data in the module file. I would like this mixing to be dynamic (so I can load any two tracks and the CPU would automaticly mix them). If could develop methods for this, I would be grateful, and I would guess it would be used by others too. Even better still, if it was possible to directly read/modify the pattern data of a loaded module, by a set of functions that return/accept structures representing the data for a specific row of data. This would allow the programmer to set the BPM directly by editing the pattern data (I understand this would need to be done several rows in advance due to the mixer routines)

Would these features be considered for the next version of FMod ? I understand that it’s not easy as code needs to be tested on all of these platforms. However, these features are pretty high level features, so shouldn’t be too hard to code. If you could put this into the next release, I would be grateful, if so, what sort of time scale are you talking about.

Thanks for the best MOD library on the net. Keep up the the excellent work. :)

  • You must to post comments

volume control would be good. I think other people would use it if it was added, as it could be used for quite a few situations. Also, I wouldn’t guess it would be too hard to add that. At the worst, you could at least have functions to disable the playback of specific channels. Again, I was aware, if I was to directly set the channel volume it would reset back on a Cxx effect in a MOD/XM file, as the channel volume would have to work as a multipier for the Cxx commands.

I saw the FMUSIC_SetMasterSpeed function, I didn’t know if it was like the speed thing in Protracker (where speed is a default value of 6, and has to be an interger number, thus not letting me do accurate BPM adjustments). anyway, that’s good that it does what you said, and not what I thought. I haven’t studied the manual closely, but from an overall glance, it does more things that I want than other Mod Players.

I understand your point with the editing of Mod data, that isn’t too much of a problem for me if I could control channel volumes, although it would have been nice if it was easy to add.

If other developers would make use of a channel volume multipler (master channel volume control), would it be possible to add ? It would save me using something like MikMod, which needs a lot of changing of the source to get what I want it to do, as it can only play one module at a time (of course it’s not too hard to use multiple threads, it’s just another silly thing that I wouldn’t need to consider if I could use FMod 😉 ). It has no callbacks for when a new row is played either. The source code isn’t exactly neat, though I guess it’s not difficult to understand.

Basicly I begging for a …

void FMUSIC_SetMasterSpeed(MODULE* module, unsigned char channel, unsigned char volume);

type function to be added. Pretty Pretty please ? (Personally I would do it myself if the library was totally open source)


  • You must to post comments
Showing 1 result
Your Answer

Please first to submit.