Изменение внутреннего тома синтезатора MIDI

Windows предоставляет следующие функции для получения и настройки уровня громкости внутренних устройств синтезатора MIDI:

Значение Значение
midiOutGetVolume Извлекает уровень громкости указанного внутреннего синтезатора MIDI.
midiOutSetVolume Задает уровень громкости указанного внутреннего синтезатора MIDI.

 

Не все устройства вывода MIDI поддерживают изменение тома. Некоторые устройства могут поддерживать отдельные изменения тома как в левом, так и в правом каналах. Сведения о том, как определить, поддерживает ли конкретное устройство изменение тома, см. в разделе Запросы устройств вывода MIDI.

Если приложение не предназначено для master приложения для управления громкости (предоставляет пользователю управление громкости для всех звуковых устройств в системе), необходимо открыть звуковое устройство перед изменением его громкости. Необходимо также проверка уровень тома перед его изменением и как можно скорее восстановить уровень тома до предыдущего уровня.

Volume указывается как значение двойного слова. Верхние 16 бит указывают относительный объем правого канала, а нижние 16 бит — относительный объем левого канала.

Для устройств, которые не поддерживают отдельные изменения тома в левом и правом каналах, нижние 16 бит указывают уровень громкости, а верхние 16 бит игнорируются. Значения уровня громкости варьируются от 0x0 (тишина) до 0xFFFF (максимальный объем) и интерпретируются логарифмически. Предполагаемое увеличение объема одинаково при увеличении уровня громкости с 0x5000 до 0x6000, как и с 0x4000 до 0x5000.