static void __fastcall SetMusicPlayList(int numSongs, int repeatStartIndex, enum SongIds *songIdList);
The first parameter is the number of songs in your playlist. This is used to bounds check the array, so make sure this is set right or you can get crashes. The last parameter is a pointer to an array of song indexes. This is the actual playlist. The second parameter is where to continue from once the playlist has reached the end. It doesn't have to start again at the first song. It might loop back to halfway through the playlist if you wanted. Thus, there is certain songs that might only be heard at the beginning of the level.
You can check Enums.h for a list of song names (based on filenames).
Example:
SongIds newPlaylist[] = { songEden11, songEden12, songEden13 };
TethysGame::SetMusicPlayList(3, 0, newPlayList);
This would play those 3 songs over and over.
SongIds newPlaylist[] = { songEden11, songEden12, songEden13 };
TethysGame::SetMusicPlayList(3, 1, newPlayList);
This would play the first song once, and then play the second two oevr and over.