Since FMOD runs its own thread or does updating through regular calls to an update function, I was thinking… FMOD already does volume ramping. So it shouldn’t be hard to have setVolume take an extra parameter (or have another function that takes it, like setVolumeEx, to keep compatibility) that specifies how long it should take to fade from the current volume to the new volume. This would make it very easy to implement basic crossfading, which currently has to be done manually.

Fading / Crossfading included in fmod would be somehow nice, of course, at least when only fading out and unloading songs…
However, it gets some complex when fading in/out/cross and pausing/unpausing/unloading… afterwards, while still allowing the user to interact with the player. For a open source (VB6/PureBasic) player that uses fadings, see http://www.ctuser.net/products/qplayer (especially the modul_Qplayer.bas, TEAR… stuff)

For stopping the clickings, just set volume to 0 before stopping/seeking/pausing/…