BASS_ATTRIB_MIDI_STATE attribute
The current state of a MIDI stream.
BASS_ChannelSetAttributeEx( DWORD handle, BASS_ATTRIB_MIDI_STATE, void *state, DWORD size );
Parameters
handle | The MIDI stream handle. |
state | The state data. |
size | The size of the state data. |
Remarks
This attribute includes the state of all events in all MIDI channels, except for MIDI_EVENT_NOTE (playing notes are not preserved) and MIDI_EVENT_TEMPO. BASS_MIDI_StreamGetEvent can be used to get the MIDI_EVENT_TEMPO event state.The structure of the MIDI state data may change in future versions, so if the data is stored, be prepared for BASS_ChannelSetAttributeEx to fail when trying to apply it.
Example
Transfer the state from one MIDI stream to another.DWORD size=BASS_ChannelGetAttributeEx(stream1, BASS_ATTRIB_MIDI_STATE, NULL, 0); // get the size void *state=malloc(size); // allocate a buffer for the data BASS_ChannelGetAttributeEx(stream1, BASS_ATTRIB_MIDI_STATE, state, size); // get the data BASS_ChannelSetAttributeEx(stream2, BASS_ATTRIB_MIDI_STATE, state, size); // apply it to the other stream free(state);