BASS_MIDI_StreamGetPreset
Retrieves the preset currently in use on a channel of a MIDI stream.
BOOL BASS_MIDI_StreamGetPreset(
HSTREAM handle,
DWORD chan,
BASS_MIDI_FONT *font
);
Parameters
| handle | The MIDI stream to retrieve the soundfont configuration of... 0 = get default soundfont configuration. |
| chan | The MIDI channel... 0 = channel 1. |
| fonts | Pointer to a structure to receive the preset information. |
Return value
If successful, TRUE is returned, else FALSE is returned. Use BASS_ErrorGetCode to get the error code.Error codes
| BASS_ERROR_HANDLE | handle is not valid. |
| BASS_ERROR_ILLPARAM | chan is not valid. |
| BASS_ERROR_NOTAVAIL | No preset is currently in use on the specified MIDI channel. |
Remarks
This function tells what preset from what soundfont is currently being used on a particular MIDI channel. That information can be used to get the preset's name from BASS_MIDI_FontGetPreset.No preset information will be available for a MIDI channel until a note is played in that channel. The present and bank numbers will not necessarily match the channel's current MIDI_EVENT_PROGRAM and MIDI_EVENT_BANK event values, but rather what the MIDI stream's soundfont configuration maps those event values to.
Example
List the presets in use on all 16 MIDI channels.BASS_MIDI_FONT font;
int ch;
for (ch=0; ch<16; ch++) {
if (BASS_MIDI_StreamGetPreset(handle, ch, &font;)) // get preset information for the MIDI channel
printf("%d: %s\n", ch+1, BASS_MIDI_FontGetPreset(font.font, font.preset, font.bank)); // display the preset name
}