В этом странном окаянстве -
Как живу я? Чем дышу?
Шум и хам царят в пространстве,
Шумный хам и хамский шум.
-- И. Губерман

Введение

В этой статье мы настроим объёмный звук в наушниках в любых приложениях через создание виртуальной звуковой карты. Аранжировка для мыши и двух бубнов.

Если в наушниках слушать музыкальные записи постарее, или играть в игры, часто можно наткнуться на неприятный эффект, когда звук в одном ухе есть, а в другом нету. В реальности, то есть без наушников, так практически не бывает: звук всегда долетает до всех ушей, сколько у вас есть. Чтобы убрать эффект, ещё в прошлом веке придумали усилители с функцией crossfeed: в каждый канал отдельно подмешивается ослабленный сигнал из другого канала. Это позволяет убрать неестественные ощущения, но приводит к частичной потере чёткости позиционирования.

В компьютерную эпоху метод смог пойти дальше. Наука изучила, каким именно образом мозг человека отличает звук, идущий спереди, от звука, идущего сбоку или сзади. Для слушателя в наушниках можно точно воспроизвести эту разницу, задав тем самым ощущение направления к источнику звука хотя бы в горизонтальной плоскости. Восприятие таких сигналов строго индивидуально: для одних работает лучше, для других - хуже. Кроме того, мозг должен привыкнуть к частотным "подсказкам" в течении нескольких часов. Поэтому плохо работает объёмный звук в наушниках, который встроен в игры: алгоритм везде разный, и когда меняешь игру, нужно привыкать заново.

Вот демонстрация объёмного звука. Слушать в наушниках, выключив всякие улучшатели.

Однако, когда всё работает, такая система позволяет определять направление звука даже лучше, чем колонки 7.1 (которые часто подвержены помехам от помещения). Ещё этот эффект повышает комфорт при прослушивании музыки, в которой звукорежиссёр думал только о колонках и слишком сильно разнёс инструменты по каналам.

Предлагаемый метод имеет режим объёмного звука для стереоколонок, но работает он так себе.

Требования

Нам понадобятся:

  • Windows 10 / 11. При написании статьи я всё тестировал под Windows 11. Под 10 вроде должно работать, но может понадобиться бубен №2.

  • Звуковая карта. В идеале - многоканальная. Если карта поддерживает только стереорежим, понадобится бубен №1. Ещё очень нужна поддержка ASIO - без него работать будет, но с ощутимой задержкой по времени.

  • Наушники - почти любые. Закрытые работают лучше открытых, наушники с задранными басами могут сломать эффект.

Используется бесплатное ПО:

  • VoiceMeeter - создание виртуальной звуковой карты, только для бубна №1.

  • EqualizerAPO - фильтрует звук, создавая разнообразные эффекты. (Аккуратно, при поиске на первом месте - подозрительный сайт)

  • HeSuVi - Плагин к EqualizerAPO, создающий объёмный звук.

  • Virtual Audio Cable - создание второй виртуальной карты, только для бубна №2.

Чтобы всё завелось с первого раза, нужно быть упорной буратиной и перезагружать винду после каждого шага, даже если инструкция ПО прямо говорит, что не надо.

Альтернативы

В навороченных звуковых картах такая функция бывает встроенная. Например, в Creative она очень хорошая. Плюсом является отсутствие бубнов, минусом - меньше настроек. Но всё равно рекомендую начать с таких функций, если есть возможность.

Компания Ryzer предлагает платное ПО, создающее виртуальную звуковую карту. Работает хорошо и без бубна, но платное.

Наконец, в Windows есть своя встронная система под названием Spatial Audio. Имеет бесплатный вариант и два платных. Все их объединяет то, что клиентское приложение должно явно поддерживать эту систему, а так же они не работают со стереозвуком.

Изучаем звуковую карту

Нет ничего поганей, чем объяснять словами как пользоваться гуями, поэтому читайте внимательно. Пропустите одну мелочь - ничего не заведётся.

Первым делом нужно точно знать, умеет ли ваша звуковая карта многоканальный звук. Для этого выполняем команду mmsys.cpl. (Напоминаю, Win+R) В появившемся диалоге нужно найти свою звуковую карту и нажать кнопку Configure. Откроется окно со схемой каналов. Если там есть 5.1 или 7.1 - включаем и радуемся, пропускаем раздел про бубны и сразу переходим к установке EqualizerAPO. Если только стерео - следуем дальше. Кстати, пока окно открыто, нажмите там же кнопку Properties и переключите карту в режим 24bit, 48000Hz.

Бубен №1 - VoiceMeeter

Для работы HeSuVi требуется многоканальная звуковая карта, причём сам он фильтрует многоканальный звук, оставляя только стерео в основных каналах. Если таковой карты нет, надо сделать виртуальную. Для этого устанавливаем VoiceMeeter и перезагружаем систему. Теперь запускаем его основное приложение (из меню Пуск), в нём находим кнопку Menu и проставляем галочки у следующих пунктов: Run on Windows startup, System Tray, Shortcut Key -> Hook Volume Keys for A1. Теперь чуть ниже жмём кнопку A1 и в списке выбираем фактическую звуковую карту. Лучше ASIO, иначе KS, на плохой случай WDM. Запомните, А1 - так в VoiceMeeter называется реальная звуковая карта.

Снова открываем mmsys.cpl и видим 2 новых звуковых карты: VoiceMeeter Input и VoiceMeeter AUX Input. Заходим в свойства обеих и выставляем режим 24бит 48000Гц. Если что-то поменяли - перезагружаемся.

Теперь нажимаем хоткей Win+Ctrl+V и видим список звуковых карт. Выбираем в качестве основной системной звуковухи VoiceMeeter Input. Вообще, следите внимательно за именами, потому что авторы Windows и VoiceMeeter не сошлись в том, что считать вводом, а что выводом.

Возникает нюанс с громкостью. Громкость в трее - это громкость основного системного устройства. Теперь это виртуальная карта, а её громкость всегда должна быть 100%. Поэтому возможность управлять громкостью из трея мы теряем. Остаётся возможность управлять громкостью через клавиши на клавиатуре (но без всплывающей полоски) или из окна VoiceMeeter. Ну и самый правильный вариант - если у вас внешняя звуковая карта с аппаратной крутилкой. Тогда программную громкость ставим на 100 или 50 и крутим крутилку.

Теперь проверяем. Открываем в браузере любой Youtube latency test, например этот. Видим прыгающий шарик. Каждый раз, когда он отскакивает, должен быть щёлкающий звук. А в окне Voicemeeter должны прыгать показатели громкости. Если звука нет совсем, проверяем внимательно все настройки и все громкости.

Если звук есть, но с ощутимой задержкой, то нужно подуменьшить размеры буферов, через которые проходит звук. Их два. Первый настраиваем из окна VoiceMeeter, Menu -> System Settings. Откроется окно с параметрами. В середине будет список Buffering по протоколам. Но сначала нюанс. Если вы используете ASIO (а вам следует), то чуть выше вы увидите поле Out A1 Main Device, а под ним название вашей звуковой карты. Так вот, если щёлкнуть по этому названию, будет запущено окно конфигурации ASIO от драйвера звуковой карты. Оно может быть ReadOnly, тогда закрываем. А может содержать настройки буфера ASIO. Разобравшись с этим окном, возвращаемся к параметрам Buffering и выбираем то, какой протокол мы используем для A1. Нужно выставить значение как можно меньше, но если оно слишком мало, то звук начнёт похрюкивать как винил, а потом конкретно жужжжать. Начинать искать стоит от таких значений: 64 для ASIO внутренней карты, 256 для ASIO, 512 для остальных. Часто ASIO по умолчанию стоит в очень большое значение. Подбираем размер, одновременно слушая музыку, чтобы не было никаких искажений. Заодно проверяем, чтобы частота везде была 48000.

Второй буфер настраиватся отдельно. В меню пуск находим Virtual IO Control Panel. В меню Latency подбираем значение, начать стоит с 3x512. Выбрав значение, сохраняем его, выбрав то же самое значение в меню Option. Не запутайтесь с умножением только, 3х512 это 1536. Когда всё проверите, запустите так же из меню пуск Virtual AUX IO Control Panel и введите туда то же значение.

Ура! Готово! Перезагружаемся ещё раз и тщательно тестируем звук. Yt, PH, VK, фильмы, музыка, и особенно игры и видеоконференции - нигде не должно ни хрюкать, ни отставать. Любые проблемы на данном этапе нужно выявить и решить, чтобы потом не гадать какой из компонентов в цепочке портит малину.

Да, если вы работаете со звуком или ещё для чего-то вам нужен был ASIO - установите эти программы использовать ASIO с VoiceMeeter AUX Input. Тогда на них не будут влиять наши объёмные эффекты. VoiceMeeter удваивает latency физического аудиоинтерфейса, что не страшно для всего, кроме прямого мониторинга.

Всё, бубен №1 закончен.

Установка EqualizerAPO

Скачиваем EqualizerAPO и ставим. Во время установки нам покажут список звуковых карт и спросят, на какие из них ставить. Если устанавливали VoiceMeeter, то cтавим галочку только на Output A1, которая должна быть в самом верху списка. А если имеем мультиканальную звуковую карту - то только на неё. Перезагружаем. Снова проверяем звук.

Теперь открываем из меню пуск приложение Configuration Editor (не путать с Configurator). Появится окно с разными фильтрами в квадратных панелях. На одном из них будет крутилка громкости Preamplification. Включаем музыку, и убеждаемся, что эта громкость работает. Все остальные фильтры удаляем, нажимая кнопочки "Минус" на них. Там же убеждаемся, что наверху написано Device: Output A1 - Voicemeeter, Channel configuration: From device (7.1)

Бубен №2

Раньше был баг между EqualizerAPO и VoiceMeeter. Заключался в том, что до установки EqualizerAPO звук был чистый, а после - начинал хрюкать. Причём разработчики показывали пальцами друг на друга и не исправляли его. Потом баг куда-то ушёл. А значит, может и вернуться. Рассказываю, что делать, если этот баг у вас есть.

Устанавливаем Virtual Cable. В системе появляется ещё одна звуковая карта Virtual Cable A. Настраиваем её основной вместо VoiceMeeter-овской. Так же настраиваем частоту, число каналов, размер буфера. Открываем VoiceMeeter, в левой части жмём на слово Hardware Input 1, в списке выбираем что-то вроде KS: Virtual cable. Так же смотрим, чтобы кнопка А1 под ним светилась. Проверяем звук, теперь должно идти чисто. Из меню пуск открываем Configurator (не Configuration Editor) и ставим галочку только на Virtual Cable A.

Перезагружаем и снова проверяем звук. Теперь крутилка громкости из Configuration Editor должна работать.

Устанавливаем HeSuVi

Закрываем Configuration Editor (важно!)

А дальше - вы не поверите - просто берём и устанавливаем HeSuVi. Никаких заковык. HeSuVi добавит программу в меню пуск и ещё одну плашку в окно ConfigurationEditor, которая собственно и делает преобразование объёмного звука. Как оно работает, рассказывать не буду, и так много всего.

Через программу в меню пуск звук настраивается. На первой вкладке есть в двух списках разнообразные пресеты. Галку Upmix Stereo лучше выключить, она делает стереозвук громче изначально объёмного. На третьей вкладке слева есть комбобокс Virtualize который можно переключить на Crossfeed или вообще временно выключить преобразования, выбрав Stereo Mix.

Один из пресетов, dvs, предназначен для стереоколонок, а не наушников.

Ну вот и всё.

Комментарии (30)


  1. StpMA
    12.11.2023 14:20
    +1

    Один из пресетов, dvs, предназначен для стереоколонок, а не наушников.

    Он бракованный. В обсуждении на sourceforge есть альтернативный вариант.

    А если без Convolution (ее иногда глючит), то можно для колонок сделать так

    Copy: RLTR=RL RRTL=RR
    Channel: C
    Preamp: -2.8 dB
    Channel: RL RR

    Delay: 0.04 ms
    Preamp: -4.1 dB
    Filter: ON HSC Fc 900 Hz Gain -5.9 dB Q 0.814
    Filter: ON PK Fc 2100 Hz Gain -2.6 dB Q 1
    Filter: ON PK Fc 7685 Hz Gain 2 dB Q 0.6

    Channel: RLTR RRTL

    Delay: 0.6 ms
    Preamp: -6.4 dB
    Filter: ON HSC Fc 1087 Hz Gain -6 dB Q 0.814
    Filter: ON PK Fc 2185 Hz Gain -2.4 dB Q 1.714
    Filter: ON HSC Fc 12500 Hz Gain -4.3 dB Q 0.5
    Channel: all

    Copy: L=L+C+RL+RRTL R=R+C+RR+RLTR


  1. WebaudioOnline
    12.11.2023 14:20

    Добрый день! Очень интересно. А что скажете про расширение Webaudio Online, особенно про версию для музыки? https://webaudio.online


    1. MountainGoat Автор
      12.11.2023 14:20
      +1

      Платное расширение только для Хрома которое нужно вручную перезапускать после каждого видео? Ну что тут скажешь...


  1. ioccy
    12.11.2023 14:20
    +1

    А как оно по сравнению с Atmos for Headphones?


    1. MountainGoat Автор
      12.11.2023 14:20
      +1

      Atmos for Headphones - это платная часть Windows Spatial. Работает очень хорошо, но только с приложениями, в которые заложена его поддержка. И не обрабатывает стереозвук.


    1. haired
      12.11.2023 14:20

      У Атмоса (даже в наушниках) есть верхние каналы. А их никакие самодельные аналоги пока воспроизводить не умеют.


      1. StpMA
        12.11.2023 14:20

        Можно попробовать в EqualizerAPO  через VST подключить SPARTA .

        https://github.com/leomccormack/SPARTA

        Сам не пробовал.


  1. Zara6502
    12.11.2023 14:20

    В появившемся диалоге нужно найти свою звуковую карту и нажать кнопку Configure

    Наверное логичнее на русскоязычном ресурсе и названия кнопок на русском писать? Понятно что все поймут что такое "Configure", но всё же.

    У меня в этом окне СПИСОК, почему он у вас стал диалогом? В списке 100500 разных устройств, по сути там все варианты вывода звука. Что выбирать? ТВ, колонки, наушники? Звуковой карты там не будет по определению так как это список устройств воспроизведения, то есть конечных устройств которые звук генерируют.

    Выбрал Bluetooth наушники, кнопка Настроить неактивна, как бы логично.

    Выбрал ТВ, нажал Настроить, там только Стерео.

    Выбрал Колонки, Нажал настроить, выбрал 7.1

    Ставлю EqualizerAPO

    Output A1 нет.


    1. MountainGoat Автор
      12.11.2023 14:20

      Звуковая карта и есть устройство воспроизведения. В Bluetooth наушниках она встроенная, в USB тоже. Вам нужно выбирать сами "Колонки" тогда, я сейчас про это уточню в тексте статьи.


      1. Zara6502
        12.11.2023 14:20

        Звуковая карта и есть устройство воспроизведения

        Нет. Звуковая карта генерирует сигнал, а устройство воспроизведения - наушники, колонки и т.д.

        Вам нужно выбирать сами наушники тогда

        Я поставил для Колонки, они подключены к Realtek звуковой и в целом единственное устройство куда можно подключить наушники (кстати хорошо бы написать в статье что речь исключительно про проводные наушники подключенные к аналоговому выходу.

        После всех установок и процедур для интереса запустил тестовый звуковой файл но при подключенных блютус наушниках, всё что девушка голом говорила соответствовало положению звука. Позапускал разные фильмы, ютубы, музыку - никакого эффекта заменено не было. Что в конечном итоге должно было получиться?


        1. StpMA
          12.11.2023 14:20

          В итоге эффект должен быть только на выходе "колонки" у устройства Realtek.

          Хотите на всех - ставьте  устройство воспроизведения по умолчанию VoiceMeeter, на него вешаете эффекты HeSuVi , а VoiceMeeter выводите на любое устройство. Минус такого способа - задержка и возможные заикания.


        1. MountainGoat Автор
          12.11.2023 14:20
          +3

          Какая разница, что мы с вами думаем? Речь о терминологии, используемой в Windows. Устройство воспроизведения - это ТОЛЬКО звуковая карта, отдельная или встроенная в наушники.

          речь исключительно про проводные наушники подключенные к аналоговому выходу

          Я написал, что устройству требуется ASIO. Я думаю, что у Bluetooth наушников его нет. А вот по WDM должны работать.

          P.S. Вот сам автор говорит, что должно работать.


          1. Zara6502
            12.11.2023 14:20
            -2

            Я написал, что устройству требуется ASIO

            я без понятия что такое ASIO.

            Какая разница, что мы с вами думаем? Речь о терминологии, используемой в Windows. Устройство воспроизведения - это ТОЛЬКО звуковая карта, отдельная или встроенная в наушники.

            тогда у меня в mmsys.cpl одинадцать звуковых карт? в этом списке не звуковые карты, а выходы.


            1. StpMA
              12.11.2023 14:20

              У вас на скриншоте колонка Device - это оно.

              ASIO для работы не нужно, но с ним виртуальная звуковуха будет выводить свой звук с меньшей задержкой. HeSuVi(EqualizerAPO) работает только через APO, ASIO пойдет мимо APO. Исходно ASIO упоминается только как способ вывода уже обработанного звука с виртуальной звуковухи в реальное устройство.


              1. Zara6502
                12.11.2023 14:20

                ASIO для работы не нужно, но с ним виртуальная звуковуха будет выводить свой звук с меньшей задержкой. HeSuVi(EqualizerAPO) работает только через APO, ASIO пойдет мимо APO. Исходно ASIO упоминается только как способ вывода уже обработанного звука с виртуальной звуковухи в реальное устройство.

                Мне кажется это излишняя информация не влияющая на результат.


    1. StpMA
      12.11.2023 14:20

      Output A1 - это виртуальный выход в VoiceMeeter.

      VoiceMeeter - это костыль, если физическая звуковуха сама не позволяет выводить многоканал. Физически аналоговый многоканал нам с нее не нужен. Нам нужно, чтобы windows выдала на звуковуху многоканальный поток из приложения.

      А вас уже получилось задать 7.1 . Теперь ставьте EqualizerAPO для этой звуковухи.

      HeSuVi - это GUI для EqualizerAPO, плюс набор импульсов для свертки.


      1. Zara6502
        12.11.2023 14:20

        Output A1 - это виртуальный выход в VoiceMeeter.

        VoiceMeeter - это костыль, если физическая звуковуха сама не позволяет выводить многоканал.

        2автор: хорошо бы в тексте это объяснить.


    1. drdead
      12.11.2023 14:20
      +1

      Наверное логичнее на русскоязычном ресурсе и названия кнопок на русском писать

      Чем логичнее? Вот я сижу на рускоязычном ресурсе, и винда у меня en_US. Думаю, что я далеко не один такой.

      Тут недавно, вон, целых два срача было по поводу "переводите \ не переводите". Так что, имхо, если у автора скриншоты не на китайском или финнском без аннотаций (а уж тем более на английском, с которым практически каждый сталкивается тут и там), то ничего страшного нет.


  1. Razunter
    12.11.2023 14:20
    +1

    Есть же бесплатный Sonic, просто включающийся в настройках Windows. И в играх, которые официально поддерживают Windows Spatial, оно работает лучше, чем может HESUVI.


    1. MountainGoat Автор
      12.11.2023 14:20

      Да, только игр таких не очень то много. И там видимо ещё уметь надо, потому что даже в них бывают звуки в одно ухо, которые сильно бесят.


  1. StpMA
    12.11.2023 14:20

    del


  1. nefcon
    12.11.2023 14:20

    Вот бы для андроида что-то похожее


  1. Zawedodik
    12.11.2023 14:20

    Боже мой что за колхоз, который 100% будет грузить процессор в 1000% больше чем если просто не быть жмотом и купить звуковую карту в пк.


    1. MountainGoat Автор
      12.11.2023 14:20

      Особенно в ноут удобно вставлять навороченную звуковуху, инфа 10 000%. Или в мини-ПК. У меня у самого на полке лежит Creative A9: после смены видеокарты, он в корпус геометрически не влез. Обычный корпус под mATX, это видюхи такие нынче пошли. Теперь чтобы её всунуть, надо менять корпус и материнку, но покупать новую материнку под старый проц тоже неприятно. Так что лежать звуковухе на полке пока не надумаю проц менять.


  1. iBanana
    12.11.2023 14:20
    +1

    Есть же бесплатное приложение Steelseries Sonar


    1. MountainGoat Автор
      12.11.2023 14:20
      -1

      Никогда не слышал. Хотел сейчас попробовать - застопорился на создании аккаунта. А оно без включенного интернета будет работать?


      1. iBanana
        12.11.2023 14:20

        Будет


        1. MountainGoat Автор
          12.11.2023 14:20

          Ну значит будет время - разберусь с регистрацией и попробую.


  1. firehacker
    12.11.2023 14:20

    Эх, хау-ту-шка.

    Я бы с удовольствием почитал статью о «матане», который заставляет звук звучать так, словно он доносится сверху, сзади, а ее просто слева.


    1. MountainGoat Автор
      12.11.2023 14:20

      Берётся голова. Полиуретановая. В ней тщательно моделируется ухо, как натуральное, с барабанной перепонкой. А на неё ставится датчик вибрации. Либо же иначе: берётся голова живая, и микродатчик доктор крепит на барабанную перепонку.

      Затем голову сажают в комнату и дают записать эталонный сигнал, с разных направлений. С перепонки снимают сигнал, искажённый ухом. Ухо не даром у большинства млекопитающих направленное - его форма вносит разные искажения в зависимости откуда пришёл сигнал.

      Этот сигнал сохраняется в .wav файл, который идёт в комплекте с HeSuVi. И искуственные и натуральные головы там есть, а так же имитация других программ снятая такой же головой или полученная теоретически. Читайте описания, там всё сказано если погуглить.

      Оно берёт вашу музыку и искажает её так же, как эта вав-ка была искажена относительно эталонного сигнала. Процесс называется конволюцией сигнала, и по нему мастодонты науки лекции на Ютубе дают, поэтому я даже не буду. Скажу лишь, что по этому же принципу работают программы, имитирующие конкретный гитарный комбик для гитары, воткнутой в компьютер, конкретные знаменитые динамики или реверб (эхо) конкретной знаменитой студии.

      При этом мы принимаем упрощение, что звук из наушников к нам в ухо попадает уже без искажений. Это конечно же не так, и это упрощение является причиной, почему одним результат нравится больше, чем другим.