BASS_ATTRIB_MIDI_TRACK_VOL attribute

The volume level of a track in a MIDI stream.

BASS_ChannelSetAttribute(
    HSTREAM handle,
    BASS_ATTRIB_MIDI_TRACK_VOL + track,
    float volume
);

Parameters

handleThe MIDI stream handle.
trackThe track to set the volume of... 0 = first track.
volumeThe volume level... 0 = silent, 1.0 = normal/default.

Remarks

The volume curve used by this attribute is always linear, eg. 0.5 = 50%. The BASS_CONFIG_CURVE_VOL config option setting has no effect on this.

During playback, the effect of changes to this attribute are not heard instantaneously, due to buffering. This latency can be reduced via the BASS_ATTRIB_BUFFER attribute.

This attribute can also be used to count the number of tracks in a MIDI file stream. MIDI streams created via BASS_MIDI_StreamCreate do not have any tracks.

Example

Count the number of tracks in a MIDI stream.
int tracks = 0;
float dummy;
while (BASS_ChannelGetAttribute(handle, BASS_ATTRIB_MIDI_TRACK_VOL + tracks, &dummy))
    tracks++;

See also

BASS_MIDI_StreamEvent, BASS_ATTRIB_MIDI_VOL

BASS_ChannelGetAttribute, BASS_ChannelSetAttribute, BASS_ChannelSlideAttribute