The system you linked works, yes, albeit it's a bit overengineered for such a simple task (for example, it is completely beyond me why you must run a 32 fps timer for something like starting a new track).
Basicly, playing music from a local folder is as easy as getting the GetSoundFileDuration
from the path, storing the currently playing sound in a variable and using GetSoundIsLoading
and GetSoundIsPlaying
to find out if the currently running track finished or not. This will also get rid of any problems when the player minimizes the game or a player lags (which creates a gap in the music [player drop dialog stops timers] after the current track finishes or makes them overlap [minimizing pauses music, but not timers in multiplayer]).
And yes, you can increment the music tracks by counting up an integer locally. But you can also just do it globally with an array. It doesn't matter in this case. I'd go local for simplicity (and, you know, saves you an array in that case).