Иногда нужно быстро убрать громкость не применяя пульт от колонок, иногда лень тянуться к крутилке для убавления громкости ради лишь одного сверхгромкого трека. А бывает хочется выставить громкость между двумя положениями громкости на крутилке.
Понятное дело, хочется, чтобы громкость регулировалась везде, а не только в foobar или яндекс музыке, к которой я немного пристрастился.
Я очень долго искал способ программной регулировки громкости. И нашел два способа.
СПОСОБ 1 (обнаружился совершенно случайно)
http://eazydb.blogspot.in/2015/03/viper ... ws-81.html - это инструкция для установки ViPER's Audio For Windows.
Делаем всё полностью по этой инструкции, но с поправочкой: в программе Configurator.exe мы ставим галочки напротив DAC X6 и CABLE. Далее всё по инструкции.
У меня Viper не заработал через устройство воспроизведения CABLE. Идём в "Устройства воспроизведения" и отключаем там устройство "CABLE Input", во вкладке "Запись" отключаем "CABLE Output". Может надо перезагрузиться, не помню. Всё! Звук регулируется в винде, причём устройством по-умолчанию является "Интерфейс SPDIF" (FX-AUDIO-DAC-X6).
Я пробовал потом удалять драйвер CABLE, но после этого регулировка испортилась. Поэтому просто оставил этот CABLE отключенным. Магия какая-то, но я рад что хоть так... Кстати, при всём этом Viper заработал, но если он не нужен - его можно просто выключить.
СПОСОБ 2
Устанавливаем Equalizer APO (
https://sourceforge.net/projects/equalizerapo/)
Запускаем Configurator.exe, отмечаем галочкой наш DAC X6, перезагружаемся.
В графическом интерфейсе APO можно увидеть параметр Preamlification, им и будем изменять громкость. Но делать это не удобно, поэтому нам понадобится создать пару скриптов для управлением APO через командную строку:
vol_plus.vbsConst ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Program Files\EqualizerAPO\config\config.txt", ForReading)
strText = objFile.ReadAll
objFile.Close
strText = Replace(strText, "Preamp: -1 dB", "Preamp: 0 dB")
strText = Replace(strText, "Preamp: -2 dB", "Preamp: -1 dB")
strText = Replace(strText, "Preamp: -3 dB", "Preamp: -2 dB")
strText = Replace(strText, "Preamp: -4 dB", "Preamp: -3 dB")
strText = Replace(strText, "Preamp: -5 dB", "Preamp: -4 dB")
strText = Replace(strText, "Preamp: -6 dB", "Preamp: -5 dB")
strText = Replace(strText, "Preamp: -7 dB", "Preamp: -6 dB")
strText = Replace(strText, "Preamp: -8 dB", "Preamp: -7 dB")
strText = Replace(strText, "Preamp: -9 dB", "Preamp: -8 dB")
strText = Replace(strText, "Preamp: -10 dB", "Preamp: -9 dB")
strText = Replace(strText, "Preamp: -11 dB", "Preamp: -10 dB")
strText = Replace(strText, "Preamp: -13 dB", "Preamp: -11 dB")
strText = Replace(strText, "Preamp: -15 dB", "Preamp: -13 dB")
strText = Replace(strText, "Preamp: -18 dB", "Preamp: -15 dB")
strText = Replace(strText, "Preamp: -21 dB", "Preamp: -18 dB")
strText = Replace(strText, "Preamp: -24 dB", "Preamp: -21 dB")
strText = Replace(strText, "Preamp: -28 dB", "Preamp: -24 dB")
strText = Replace(strText, "Preamp: -35 dB", "Preamp: -28 dB")
strText = Replace(strText, "Preamp: -100 dB", "Preamp: -35 dB")
Set objFile = objFSO.OpenTextFile("C:\Program Files\EqualizerAPO\config\config.txt", ForWriting)
objFile.WriteLine strText
objFile.Closevol_minus.vbsConst ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Program Files\EqualizerAPO\config\config.txt", ForReading)
strText = objFile.ReadAll
objFile.Close
strText = Replace(strText, "Preamp: -35 dB", "Preamp: -100 dB")
strText = Replace(strText, "Preamp: -28 dB", "Preamp: -35 dB")
strText = Replace(strText, "Preamp: -24 dB", "Preamp: -28 dB")
strText = Replace(strText, "Preamp: -21 dB", "Preamp: -24 dB")
strText = Replace(strText, "Preamp: -18 dB", "Preamp: -21 dB")
strText = Replace(strText, "Preamp: -15 dB", "Preamp: -18 dB")
strText = Replace(strText, "Preamp: -13 dB", "Preamp: -15 dB")
strText = Replace(strText, "Preamp: -11 dB", "Preamp: -13 dB")
strText = Replace(strText, "Preamp: -10 dB", "Preamp: -11 dB")
strText = Replace(strText, "Preamp: -9 dB", "Preamp: -10 dB")
strText = Replace(strText, "Preamp: -8 dB", "Preamp: -9 dB")
strText = Replace(strText, "Preamp: -7 dB", "Preamp: -8 dB")
strText = Replace(strText, "Preamp: -6 dB", "Preamp: -7 dB")
strText = Replace(strText, "Preamp: -5 dB", "Preamp: -6 dB")
strText = Replace(strText, "Preamp: -4 dB", "Preamp: -5 dB")
strText = Replace(strText, "Preamp: -3 dB", "Preamp: -4 dB")
strText = Replace(strText, "Preamp: -2 dB", "Preamp: -3 dB")
strText = Replace(strText, "Preamp: -1 dB", "Preamp: -2 dB")
strText = Replace(strText, "Preamp: 0 dB", "Preamp: -1 dB")
Set objFile = objFSO.OpenTextFile("C:\Program Files\EqualizerAPO\config\config.txt", ForWriting)
objFile.WriteLine strText
objFile.CloseПрограммист из меня не очень, прошу не ругать.
В итоге получаем два макроса для регулировки громкости. Далее я подвесил запуск этих макросов на сочетание клавиш через Hot Keyboard, а уже сами сочетания вызываются с помощью мыши. Как итог - можно через сочетание клавиш регулировать либо дополнительными кнопками мыши.