musHandle MusStartSongFromMarker(void *addr, int marker);


the address of binary song data
the marker number to start from


It starts the binary song located at the specified address from the specified marker. The song data must be 32-bit aligned to allow for the pointers within the data to be accessed. The song started will use the default sample bank unless an override has been set with the MusPtrBankSetSingle() function. If a sample bank override has been specified, this function will use it and then clear the override.

The address of the song supplied in addr must be 32-bit aligned.

The marker value must be in the range 0 to 255 and be located in the specified song. If the marker is not found in the specified song, this function may not return a value , and will have unpredictable results.

When this function is called for a new song, the song data is modified to reflect the song's base address (a list of offsets inside the song data are converted to pointers), Therefore to move this song to a new address, the original data must be reacquired.

Return Value

Sound handle value.


void GameSongCallback(musHandle handle, int marker)
  if (handle==gamesong_handle)
    gamesong_position = marker;

void GameSongStart(void)
  gamesong_position = 0;
  gamesong_handle = MusStartSongFromMarker(&song_data, 1);

See Also

MusSetMarkerCallback(), MusStartSong(), MusHandleAsk(), MusHandleSetFreqOffset(), MusHandleSetPan(), MusHandleSetVolume(), MusHandleStop(), MusSetMasterVolume(), MusAsk(), MusStop()