Тестирование методов вывода звука. Перезагрузка.

Предыдущая статья, посвящённая исследованию методов вывода звука, была опубликована более 3-х лет назад, с тех пор мир немного шагнул вперёд: появились новые операционные системы (ОС) Windows 8, 8.1, 10, AIMP научился выводить звук через WASAPI Exclusive, кроме того, формат High-resolution Audio 192 кГц / 24 бит стал набирать популярность среди обывателей, благодаря появлению более доступных устройств с его поддержкой. Настало время повторить исследования с учётом этих изменений.

Список подопытных

  • ASIO (ASIO4ALL)
  • DirectSound
  • WASAPI (Shared Mode)
  • WASAPI Exclusive (Event)
  • WASAPI Exclusive (Push)

Конфигурация

  • Плеер: AIMP v4.00, build 1678
  • ОС: Windows 10 x64
  • Звуковая карта: Virtual Audio Cable
    Виртуальная звуковая карта позволяет исключить особенности железа и реализации драйверов к нему
  • Звуковой редактор Audacity
    С помощью этого редактора записывался звук
  • Настройки плеера и ОС: 44.1 кГц / 16 бит, 192 кГц / 24 бит, громкость 100%, обработчики звука, эквалайзер и другие эффекты выключены

Методика тестирования

С помощью программы RightMark Audio Analyzer (RMAA) генерируем 2 тестовых файла: 44.1 кГц / 16 бит и 192 кГц / 24 бит. Тестовый сигнал в файлах представляет из себя синусоиду частотой 1 кГц и амплитудой -3 дБ: это тест на величину гармонических искажений. Другие виды искажений, амплитудно-частотная характеристика (АЧХ), динамический диапазон (ДД) так же исследовались, но публиковать результаты их измерения нет смысла, т.к. график АЧХ всегда представлял из себя прямую линию, а все искажения были на уровне гармонических. Далее эти файлы будем воспроизводить в плеере, меняя настройки вывода. Звук снимаем с микрофонного входа карты: в виртуальной карте вход напрямую связан с выходом, минуя преобразование в аналоговый сигнал. Таким образом, мы сможем анализировать тот самый цифровой поток, который в реальной карте отправляется на вход цифро-аналогового преобразователя.

Тест 1:  плеер и ОС 192 кГц / 24 бит

Гармонические искажения методов вывода звука (24 бит)

Рис. 1. Гармонические искажения методов вывода звука (24 бит)

Здесь всё просто и понятно: графики всех сигналов совпали до пикселя, это идеальный случай, когда метод вывода звука никак не влияет на его качество.

Тест 2: плеер и ОС 44.1 кГц / 16 бит

Гармонические искажения методов вывода звука (16 бит)

Рис. 2. Гармонические искажения методов вывода звука (16 бит)

Примечание к картинке: графики ASIO и WASAPI Exclusive полностью совпали с исходным сигналом.

В этом режиме не всё так просто, как в предыдущем. ASIO и WASAPI Exclusive показали 100% точность вывода звука. А вот методы вывода DirectSound и WASAPI (Shared Mode) имеют некий «шум», который на первый взгляд должен портить звучание. Что же это за шум? Ошибка разработчиков, или это было сделано специально? Ответ прост: шум этот, не что иное, как дизеринг. Кратко: дизеринг — это шум минимальной амплитуды, который обычно «подмешивается» к сигналу при понижении глубины дискретизации («битности») записи. Зачем добавлять какой-то шум в сигнал? Давайте узнаем.

Тест 3: плеер 192 кГц / 24 бит, ОС 192 кГц / 16 бит

Примечание: на практике чаще всего используется преобразование записи 192 кГц / 24 бит в 44.1 кГц / 16 бит или 48 кГц / 16 бит: это нужно для карт, которые не поддерживают вывод с более высокими параметрами. Но в данном тесте, чтобы исключить влияние передискретизации, мы будем выводить запись 192 кГц / 24 бит, настроив в звуковой карте 192 кГц / 16 бит. Для этого в AIMP настраивается выход DirectSound 192 кГц, 32(float) бит. 32 бита с плавающей точкой — это та величина, с которой работает звуковой движок AIMP, таким образом сам плеер не будет делать никаких преобразований. Всё, что произойдёт с сигналом, будет «делом рук» ОС. График для сравнения получим с помощью звукового редактора, просто пересохранив файл с уменьшением глубины дискретизации до 16 бит (опцию дизеринга в редакторе, естественно, отключаем).

Гармонические искажения методов вывода звука (16 бит) при обработке 24 битного источника

Рис. 3. Гармонические искажения методов вывода звука (16 бит) при обработке 24 битного источника

Из графика видно, насколько большие искажения получились при простом преобразовании сигнала. А вот сигнал, прошедший «обработку шумом» в недрах DirectSound или WASAPI, напротив, намного «чище». В этом и есть смысл подмешивания шума при выходе 16 бит.

Выводы

Итак, какой же метод вывода звука выбрать?

  1. Если вам важно слышать кроме музыки другие звуки вашего компьютера (уведомления от мессенджеров, звуки игры и т.д.), то нужно использовать WASAPI (Shared Mode) или DirectSound. Эти методы так же можно порекомендовать при воспроизведении 24 битных записей на звуковых картах, не поддерживающих эту разрядность: для этого настраиваем в ОС формат 16 бит. Что касается разницы между WASAPI (Shared Mode) и DirectSound — то она минимальна: вносимые шумы дизеринга на одном уровне. Режим DirectSound «перекочевал» из старых ОС для совместимости со старыми программами.
  2. Поклонники вывода звука «как есть» могут воспользоваться режимами ASIO или WASAPI Exclusive, которые будут глушить все посторонние звуки компьютера, позволяя полностью погрузиться в звучание композиции. Что касается отличий между режимами Event и Push, то разница между ними исключительно техническая, но не звуковая. Отличие состоит в алгоритме буферизации: режим Event предназначен для лучшей совместимости с USB картами, режим Push для остальных случаев. Но исходя из опыта использования, обычно, один из этих алгоритмов работает нестабильно, и это не зависит от интерфейса звуковой карты: в таком случае остаётся выбрать более стабильный режим.
  3. Ну и самый оптимальный вариант, если звуковая карта поддерживает 24 битный режим, — в этом случае любой метод вывода даст идеальный звук: просто не забываем настроить 24 бит в плеере и ОС.

Тестирование методов вывода звука. Перезагрузка.: 69 комментариев

  1. 8246793

    просто не забываем настроить 24 бит в плеере и ОС…
    То есть в Windows в настройках вывода звука (колонки) переключаю на 24 bit 44Khz а в Aimp 4 ставлю вывод через Direct Sound и ставлю в его параметрах 24 bit или 24 bit (i32) ??… или в плеере оставить 32 bit ?? или включить Wasapi Shared mode но там даже нельзя переключать битность..она всегда на 32 стоит.

  2. Ruslan91

    Здесь и в самом плеере сказано что при выборе режима ASIO что посторонние приложения не могут выводить звук. Но почему у меня при прослушивании музыки в этом режиме я могу прослушивать звук и в других программах? Карта: Audigy 2zs

    1. Soolo Автор записи

      Это происходит от того, что у вашей карты так называемый псевдо-ASIO, который реализован через одно место и только лишь для «галочки», ради наклейки на коробке. Никакой реальной пользы от него нет и быть не может.

  3. LSN124

    Soolo, спасибо Вам большое за нужные статьи!
    У меня вопрос. Windows 7 32 bit, AIMP 3.60 build 1503, режим WASAPI Exclusive (event), сигнал по USB кабелю идёт с ноутбука на внешний ЦАП (Arcam rDAC) — при такой конфигурации и настройке я должен получить на входе в ЦАП точную битовую копию проигрываемого файла (т.е., насколько я понял, сигнал никак не меняется). Тогда почему при изменении громкости в AIMP’е меняется громкость звучания? Значит всё-таки система вмешивается и меняет сигнал (в данном случае его громкость)? Просто я считал, что если сигнал «чистый», т.е. 1 в 1 совпадает с исходным файлом, то не должно быть возможности его изменять каким бы то ни было способом.

    1. Soolo Автор записи

      «Просто я считал, что если сигнал «чистый», т.е. 1 в 1 совпадает с исходным файлом, то не должно быть возможности его изменять каким бы то ни было способом.»
      Нет, с чего вы взяли, что не должно быть возможности? Побитовая точность вовсе не означает полное отсутствие фильтров на пути сигнала. Сигнал может пройти любой фильтр (например, громкость) 1в1, если фильтр настроен так, что не меняет сигнал (к примеру, громкость 100%): что получено на входе — то отправляется на выход.

  4. LSN124

    Понятно. У меня ещё вопросик. Один из режимов в настройках AIMP, в котором вы проводили тест, был 192 кГц / 24 бит. У меня выставлено значение 96 кГц / 24 бит (максимально возможные характеристики ЦАПа при воспроизведении через кабель USB). Что же тогда происходит при воспроизведении файла с частотой и битовой глубиной, отличной от установленной в настройках? Например, в моём случае, при воспроизведении файла 44,1 кГц / 16 бит или 192 кГц / 24 бит AIMP постоянно конвертирует значение в 96 кГц / 24 бит? Т.е. в первом случае интерполяция с 44,1 кГц / 16 бит до 96 кГц / 24 бит, во втором случае понижение с 192 кГц до 96 кГц. Я правильно понял или ошибаюсь?

  5. Sergey B

    Доброго времени суток. Прошёл год со времени написания Вами этой статьи, а я только ещё наткнулся на неё. Если сможете, то подскажите пожалуйста. Дело в том, что версия AIMP за это время тоже изменилась и сейчас она «v.4.13 (build 1895)». Но, в принципе, мой вопрос подойдёт и под прежние версии (не ниже версии 3.5). Прочитав Вашу статью, у меня возник вопрос. Дело в том, что я использую в AIMP «DirectSound», который позволяет сделать вывод с разрядностью 32 bit float. Меня интересует именно разрядность. То — есть, если я воспроизвожу МР3 файл (44.1 Hz / 16 bit) то вижу, что AIMP — е прописывается «INPUT 44.1 Hz / 32 bit float. А для выхода из AIMP я установил тоже значение 32 bit float (частоту дискретизации не будем обсуждать), потому — что, почитав многочисленные статьи, я сделал вывод, что если на выходе из AIMP установить разрядность 32 bit float, то все последующие, возможные, обработки звука (например в настройках звука Windows) будут происходить в 32 bit float и благодаря этому, качество обработки в настройках звука Windows (эквалайзеры, громкость и т.д.) будут применены более качественно, чем если вывод из AIMP установить на максимальное значение с которым может работать моя звуковая карта, то — есть 24 bit. Моя встроенная звуковая карта имеет максимальное значение (24 bit). Правильно я поступил, установив в AIMP значение вывода 32 bit float, при том, что моя звуковая карта имеет максимальные значение 24 bit?

    1. Soolo Автор записи

      Windows в любом случае будет обрабатывать звук в разрядности 32 bit float. Только в вашем случае она их получит от АИМПа сразу в требуемом виде, а в другом случае Винда сама преобразует данные из более низкой разрядности (такое преобразование без потерь качества).
      Единственное отличие вашего выбора от обычных 32 бит в режиме WASAPI — это возможность использовать встроенный виндовый лимитер (для предотвращения клиппинга, т.е. хрипов). Для этого нужно предварительно отключить соответствующую опцию антиклиппинга в самом АИМПе. Впрочем отличия в звуке едва ли будут заметны. Гораздо правильнее, для того, чтобы избежать клиппинга, не перекручивать эквалайзер и не выставлять 100% громкость в плеере.
      Что касается встроенных Реалтеков и других карт подобного класса, я всегда говорил и говорю, что никакие манипуляции с настройками не улучшат звук, можно использовать настройки АИМПа и Windows по умолчанию: а именно WASAPI 32 bit 44.1 kHz (48 kHz).

      1. Sergey B

        Здравствуйте! Большое спасибо за то, что откликнулись и за ответ! Теперь я точно убедился в том, что лучше использовать «DirectSound», потому — что появляется возможность выбора значения вывода звука 32 bit float. Кстати, я понимаю то, что желательно не использовать эквалайзеры и всевозможные «улучшайзеры». «DirectSound» я решил использовать именно потому, что при его выборе, в настройках вывода AIMP можно задать значение 32 bit float, а используя «WASAPI» разработчик жёстко прописал значение 32 bit. Да, Вы правы, преимущества от выбора вывода 32 bit float очевидны — при таком формате исключается клиппинг на этапе вывода звука плеером. Для случаев, когда сигнал превышает допустимый уровень, Windows применяет специальный лимитер (limiter APO) и так-как входящий в AIMP звук декодируется в 32 bit float и выводится из AIMP тоже в формате 32-bit floating point, то это является очень большим преимуществом, именно поэтому я и решил использовать «DirectSound» (хотя «WASAPI», вроде как более новый). Будьте добры, объясните мне немного поподробнее следующее:
        При использовании (в AIMP-е) вывода «DirectSound» 32 bit float, Вы пишете выше, что нужно отключить в AIMP-е «Антиклиппинг», потому — что используется лимитер Windows. А что происходит если (повторюсь, используя в AIMP-е вывод «DirectSound» 32 bit float) НЕ выключить «Антиклиппинг» в AIMP-е? Будет использоваться «Аниклиппинг» AIMP или «Антиклиппинг» Windows или и тот и другой (хотя, скорее всего, наверно, должен будет использоваться какой — то один)? Забегая вперёд предположим, что если, НЕ отключать «Антиклиппинг» в AIMP то использоваться будет именно он («Антиклиппинг» AIMP) , а «Антиклиппинг» Windows в этом случае не будет использоваться (это предположение), то какой «Антиклиппинг» лучше? Если «Антиклиппинг» Windows лучше «Антиклиппинга» встроенного в AIMP, то может лучше Выключить «Антиклиппинг» встроенный в AIMP и в этом случае будет срабатывать «Антиклиппинг» Windows?
        И ещё скажите пожалуйста: Если я использую в AIMP-е «DirectSound», то появляется возможность выбора числа каналов. Я выбрал значение «Stereo», потому — что слушаю stereo музыку через две встроенные в ноутбук муз.колонки. А если, предположим, я начну слушать музыку 5.1, через встроенные в ноутбук две муз.колонки, то нужно установить галочку «Разрешить микширование каналов»? И в этом случае, при несоответствии количества каналов источника и устройства, плеер выполняет микширование? А если (используя AIMP и ноутбук с двумя встроенными муз.колонками) при прослушивании 5.1 музыки НЕ поставить галочку в «Разрешить микширование каналов», то AIMP будет воспроизводить только два канала из звука 5.1? То — есть AIMP НЕ будет микшировать все каналы в стерео?

        1. Soolo Автор записи

          преимущества от выбора вывода 32 bit float очевидны — при таком формате исключается клиппинг на этапе вывода звука плеером

          Если используется антиклиппинг АИМПа, то нужды в Limitet APO нет, соответственно, преимущество float пропадает.

          А что происходит если НЕ выключить «Антиклиппинг» в AIMP-е?

          Будет работать антиклиппинг АИМПа, Limiter APO останется незадействованным, т.к. к нему будет приходить не превышающий уровня сигнал.

          Если «Антиклиппинг» Windows лучше «Антиклиппинга» встроенного в AIMP, то может лучше Выключить «Антиклиппинг» встроенный в AIMP

          Они примерно одинаковы, если судить по тесту из этой стьи.
          Повторюсь, лучше не допускать клиппинга, чем потом его исправлять лимитерами.

          при прослушивании 5.1 музыки НЕ поставить галочку в «Разрешить микширование каналов», то AIMP будет воспроизводить только два канала из звука 5.1?

          Всё верно. Если не стоит галочка микширования, то алгоритм очень прост: лишние каналы отсекаются, а недостающие дублируются.

          1. Sergey B

            Громадное Вам спасибо за оперативные ответы! Поинтересуюсь у Вас ещё немного по поводу микширования каналов: Предположим, что я, прослушиваю 5.1 музыку через AIMP (на ноутбуке с двумя встроенными динамиками). В настройках AIMP я выбрал «DirectSound» благодаря чему появилась возможность выбора каналов и я установил «5.1 Surround». Галочку «Разрешить микширование каналов сниму». После этого, получается, что 5.1 звук воспроизводится AIMP-ом (5.1 каналы не микшируются), далее выходит из AIMP-а в таком — же виде (то — есть 5.1) идёт на звуковую карту. Но, так — как в ноутбуке всего два динамика, то в настройках звуковой карты, автоматически устанавливается значение «Стерео». В этом случае получается, что так — как из AIMP-а звук пришёл 5.1, то сама звуковая карта преобразует его в стерео?

  6. Sergey B

    Всё понял! Спасибо! Ещё вопросик, довольно простой, ОЧЕНЬ для меня важный, но долго описывать. Итак, хочу у Вас уточнить по поводу ресемплирования не совпадающих входных и выходных частот (битность и количество каналов не будем обсуждать). Насколько я знаю, в AIMP, начиная с версии 3.5 встроен качественный ресемплер (SoX). Надеюсь, это так? Поэтому, предполагаю, лучше использовать его, чем неизвестный ресемплер Windows. У меня на ноутбуке «Sony» установлен «AIMP «v.4.13 (build 1895)»» и выбран «DirectSound». В AIMP-е в настройках вывода звука я, предположим, установил значение 48кГц. В звуковых настройках Windows установил значение 96кГц (всё это только для вопроса). Далее, используя AIMP воспроизвожу, например, «МР3 44.1кГц». Я предполагаю, что происходит двойное ресемплирование. То — есть, сначала входящий в AIMP звук (44.1кГц) преобразуется при выходе из AIMP в 48кГц SoX ресемплером встроенным в AIMP (потому — что на выходе из AIMP я установил значение 48кГц), а потом этот звук (48кГц) ещё раз преобразуется ресемплером Windows в 96кГц (потому — что в настройках звука Windows установлено значение 96кГц). Правильно ли я рассуждаю? И если я рассуждаю правильно, то, что — бы избежать двойного ресемплирования, предполагаю, лучше использовать только SoX ресемплер AIMP (потому — что он, вроде как более качественный, чем ресемплер Windows) и в этом случае, в настройках вывода звука в AIMP-е нужно установить значение соответствующее значению заданному в настройках звука Windows (то — есть, например 96кГц установить на выходе из AIMP-е и 96кГц в настройках звука Windows). И в этом случае, ресемплирование будет происходить только в AIMP-е, а ресемлпер Windows не включится? Это очень важный для меня вопрос. Объясните пожалуйста!

    1. Soolo Автор записи

      Надеюсь, это так?

      Да, так.

      выбран «DirectSound». В AIMP-е в настройках вывода звука я, предположим, установил значение 48кГц. В звуковых настройках Windows установил значение 96кГц (всё это только для вопроса). Далее, используя AIMP воспроизвожу, например, «МР3 44.1кГц».

      Да, будет двойное преобразование 44,1 >> 48 АИМПом и 48 >> 96 Виндой. В худшем случае ещё драйвер может преобразовать в третью родную для звуковой карты частоту, например, 192.
      Именно поэтому я советую всегда использовать WASAPI, что гарантированно исключит ресемплер Винды. Ну или ваш вариант: в АИМПе и в Windows установить одинаковые частоты, так же ресемплер Винды будет исключен.

  7. Sergey B

    Я — бы может и стал использовать «WASAPI», но, как уже писал, при выборе «WASAPI» автоматически устанавливается значение выхода 32 bit, а при выборе «DirectSound» можно установить значение 32 bit float.
    В AIMP — е, в директории «Параметры преобразования» есть «Передискритизация». Так — вот ползунок у меня сдвинут полностью вправо (качество). Правильно ли я понимаю, что этот ползунок регулирует качество работы SoX ресемплера? То — есть, если установить так, как установлено у меня, то — есть до упора вправо (максимальное качество), то ресемплер будет работать на полную мощность, но медленнее и больше нагружать компьютер? И если это так, то что будет если ползунок сдвинуть полностью влево (предпочтение отдаётся скорости, а не качеству ресемплирования), то в этом случае ресемплер всё — равно будет работать, только менее качественно? На каком положении лучше оставить (учитывая, что мощности компьютера достаточно)?

    1. Soolo Автор записи

      Мои исследования не выявили зависимости загруженности пооцессора от уровня качества ресемплера. Возможно, на более слабых машинах будет чувствоваться разница. А качество ресемплирования да, меняется, максимальное, естественно, справа.

  8. Sergey B

    Здравствуйте! Ещё раз более внимательно прочитал Вашу статью (находящуюся выше этих комментариев) и засомневался в правильности мною установленных значений частоты дискретизации и разрядности в настройках звука Windows 7. Итак, я зашёл в настройки звука Windows и увидел, что максимальные значения, которые можно выбрать это 192 Hz/24 bit. Не являюсь специалистом в этих показателях, но предполагаю, что это максимальные значения моей звуковой карты. Может коротко подскажете мне так это или нет?
    Как я писал выше, в настройках AIMP выбрал «DirectSound», установил вывод 32 bit float/96 Hz. Выключил в AIMP-е «Антиклиппинг» (пусть используется «Антиклиппинг» Windows). В настройках вывода AIMP я решил установить значение 96 Hz потому, что это число является неким промежуточным кратным значением, ведь если я буду слушать музыку 44.1 или 48 Hz, то ресемплингом AIMP она (перед выходом из AIMP) преобразуется в заданные мной 96 Hz и если мною прослушиваемая музыка будет 192 Hz, то она так же преобразуется в 96 Hz. Поэтому, 96 Hz — это некое универсальное значение. Для того, что-бы использовался только ресемплер AIMP, я и в настройках звуковой карты выбрал 96 Hz.
    Мне не понятно следующее:
    Так-как, в настройках звука Windows (звуковой карты) можно выбрать максимальное значение 192 Hz, то при поступлении (на звуковую карту) звука имеющего 96 Hz, не преобразует ли она (звуковая карта) этот звук (с помощью ресемплера Windows) в максимальный (192 Hz), с которым она может работать? Я предполагаю, что не преобразует, а отправляет на ЦАП именно с заданным в ней значением, то-есть в моём случае это 96 Hz. Подскажите пожалуйста!

    1. Soolo Автор записи

      Так-как, в настройках звука Windows (звуковой карты) можно выбрать максимальное значение 192 Hz, то при поступлении (на звуковую карту) звука имеющего 96 Hz, не преобразует ли она (звуковая карта) этот звук (с помощью ресемплера Windows) в максимальный (192 Hz), с которым она может работать?

      Это для меня такая же загадка. Разные карты ведут себя по-разному. Хорошие карты, скорее всего, работают именно с самой высокой частотой. Аудиофильские карты работают с той частотой, которая к ним поступает. Ну а встроенные карты, как в вашем случае, работают, я так думаю, на частоте 48 кГц 16 бит, а все эти мега цифры вроде 192 кГц 24 бит режутся драйвером. Ещё раз уточню: это только мои предположения, исследований я не проводил, т.к. не имею возможности.
      В который раз повторюсь: не парьтесь вы с настройками встроенной звуковухи, её собственные шумы и искажения сводят на нет любые попытки оптимизации.

  9. Sergey B

    В AIMP-е есть возможность регулировки звука графическим эквалайзером. Но ещё присутствует отдельная регулировка низких частот (бас) в виде ползунка. Объясните пожалуйста для чего отдельная регулировка низких частот, ведь с помощью эквалайзеров можно более точно отрегулировать нужные частоты.

      1. Sergey B

        Artem, не знаю являетесь ли Вы разработчиком AIMP, но выше определение того, что отдельная регулировка низких частот — это «Пережиток плошлого» совершенно не информативна и я не думаю, что в AIMP-е её оставили просто так! Отдельная регулировка высоких и низких частот называется темброблоками (в основном, используется в усилителях и является аналоговым, а не цифровым средством корректировки АЧХ). В основном ими пользуются в тех случаях, когда не хочется «заморачиваться» с эквалайзерами (если таковые имеют место быть). Поэтому, хотелось бы услышать мнение автора статьи.

        1. Soolo Автор записи

          Да, Артём разработчик, кстати, единственный.
          И да, отдельный бас — это тянется с первых версий АИМПа, а может ещё и с AIMP MMC PRO, просто разработчик решил не удалять фичу, т.к. пользователи к удалению функционала относятся негативно.

  10. Sergey B

    И ещё вопросик! Как я писал выше, в настройках AIMP 4 выбрал «DirectSound», установил вывод «Stereo». Слушаю стерео музыку. Вопрос: Если в настройках AIMP оставить включённой функцию «Разрешить микширование каналов» (на всякий случай, потому — что вдруг, когда — нибудь буду слушать 5.1 через две встроенные в ноутбук муз.колонки, но сейчас это не важно, потому — что я слушаю стерео и вопрос касается стерео), то прослушивая мной стереомузыка на выходе так и останется в оригинальном стерео, то — есть не будет — ли она как — нибудь обрабатываться средствами AIMP? Или, при прослушивании стерео музыки лучше выключить функцию «Разрешить микширование каналов»? Заранее благодарю!

  11. Sergey B

    Большое спасибо за информацию! Искренне прошу прощения, если обидел Артёма, дело в том, что во время общения на форумах, некоторые участники, частенько отвечают в виде коротких и малоинформативных фраз, поэтому я предположил, что Артём не является разработчиком. Ещё раз извиняюсь!

  12. Sergey B

    Честно говоря, я понимаю, что одолел вас вопросами, но в основном, на интересующие меня вы ответили! Огромное вам спасибо! Но у меня осталось два вопроса:
    1.После установки «v.4.13 (build 1895)» несколько раз пробовал выбрать «WASAPI exclusive (Event или Push)», далее сохранял, выходил из настроек AIMP, снова заходил в настройки AIMP и видел, что всё время слетает на «DirectSound»? Дело в том, что я начитался и узнал, что с помощью «WASAPI exclusive» звук с AIMP-а может идти напрямую в ЦАП, обходя настройки звуковой карты. Бывает ещё «ASIO», но этого метода вывода вообще нет в AIMP. У меня ноутбук Sony/Windows 7/64bit. Подскажите, почему слетает «WASAPI exclusive?
    2.AIMP может воспроизводить шестиканальную музыку в формате АС-3. Если я в настройках AIMP выберу «DirectSound» 5.1 surround» и выключу функцию «Разрешить микширование каналов», то, что произойдёт с музыкальным файлом перед выходом из AIMP? Я предполагаю, что при запуске (входе) музыки через AIMP вся музыка декодируется в РСМ 32bt float (то-есть в Импульсно-Кодовую Модуляцию) и в случае 5.1 звука этот звуковой файл декодируется (раскладывается) из одного потока на отдельные звуковые каналы и получается шесть отдельных wav каналов, к которым можно применить корректировку («Улучшайзеры» встроенные в AIMP). А что происходит с этими разложенными каналами на выходе из AIMP? Они, (будучи обработанными средствами AIMP), перед выходом из AIMP опять упаковываются в AC-3 формат и в виде одного АС-3 файла выходят из AIMP или выходят в декодированном (разложенном на отдельные wav каналы) виде? Заранее спасибо!

    1. Soolo Автор записи

      1. ASIO АИМП поддерживает, а вот ваша карта, по-видимому, нет. Почему слетает WASAPI exclusive — не могу знать. Нужно хотя бы видео, чтобы увидеть последовательность действий и выбираемые настройки.
      2. АИМП естественно отдаёт системе несжатые данные PCM.

  13. netwixell

    Я все равно ничего не могу понять. Судя по ощущениям звук в режимах WSAPI и ASIO лучше. В режиме DirectSound звук какой то глухой, притупленный, менее звонкий, менее отчетливый, более басовый…. Я так понимаю что при определенных настройками еквалайзера в режиме DirectSound можно добиться звука как в режимах WSAPI и ASIO. Я имею ввиду если мы говорим про ноутбук или десктоп со встроеной звуковой картой. Я столкнулся с проблемой. Купил bluetooth наушники в режимах WSAPI и ASIO постоянно прерывается звук как будто идет буферизация. В режиме DirectSound наушники работают нормально.

    1. Soolo Автор записи

      Что за WSAPI ? Это WASAPI или WASAPI Exclusive?
      Если звук DirectSound значительно отличается (не на уровне ощущений, а когда с закрытыми глазами слышна разница) — проверьте настройки звуковой карты и настройки звука Виндовс: и там и там может быть включена обработка, которая меняет звук.

  14. Sergey B

    Здравствуйте уважаемые разработчики! Вопрос по поводу дизеринга (дитеринг, dithering) в AIMP v.4.13 (build 1895). Использую метод вывода звука (из AIMP) «DirectSound», благодаря чему установил значение (вывода) битности «32 bit float». Получается, что любой входящий в AIMP звук изначально преобразуется в «32 bit float». Далее предоставляется возможность корректировки (эквалайзеры и т.д.) этого звука и из AIMP-а звук выходит тоже с разрядностью «32 bit float». Объясните мне пожалуйста, нужно ли в моём случае в настройках AIMP оставлять включённой функцию «Дизеринг», которая, как я понимаю, нужна для понижения (например из 24 bit в 16 bit) разрядности? Ведь, как я уже написал выше, изначально, AIMP весь входящий звук, преобразует в «32 bit float», то — есть получается, что если звук изначально был например 16bit или 24 bit, то при входе в AIMP он преобразуется в «32 bit float», а насколько я знаю (хотя, возможно ошибаюсь) «Dithering» не требуется при повышении разрядности. И, так — как звук на входе в AIMP преобразуется в «32 bit float» и на выходе я установил «32 bit float», то при выходе из AIMP понижения разрядности не происходит и я предполагаю, что «Dithering» не нужен?
    Если вас не затруднит, может быть объясните мне, когда требуется «Dithering», только для понижения разрядности или и для повышения?
    В каком именно месте требуется «Dithering»? А именно, при входе в AIMP (то — есть, если файл имеет разрядность например 16bit, а при входе в AIMP разрядность преобразуется в «32 bit float»)? Или после того, как звук уже вошёл в AIMP, преобразовался в «32 bit float» и если выходное значение не идентично входному (например вывод из AIMP установить не «32 bit float», а, например, «24bit»), то именно в этом случае нужен «Dithering»?

    1. Soolo Автор записи

      32 bit float выдаёт декодер. Декодер стоит первым в цепочке обработки. Соответственно, ни одна обработка звука не может идти раньше, чем декодер.
      Дизеринг в АИМПе работает только при выводе звука с понижением разрядности до 24 или до 16 бит.
      Если вы выводите 32 float, то дизеринг работать не будет независимо от включения или выключения соответствующей опции.

  15. Sergey B

    Спасибо! Объяснили коротко, но понятно. Читая в интернете всевозможные статьи связанные со звуком, частенько натыкаюсь на то, что при воспроизведении музыки тем или иным музыкальным плеером (например «foobar2000») не вся входящая в него музыка преобразуется в 32bit float, а только lossy файлы, а lossless файлы якобы не нуждаются в этом преобразовании и после входа в муз.плеер остаются с той разрядностью с которой были изначально! Но я, для проверки, нашёл музыку в формате «FLAC 96kHz / 24bit», открыл эту музыку с помощью AIMP и увидел то, что при входе в AIMP эта lossless музыка, так-же как и lossy, тоже преобразовалась в 32bit float. Объясните пожалуйста, прав ли я насчёт того, что при воспроизведении lossless музыки с помощью AIMP, она изначально (при входе в AIMP) преобразуется в 32bit float? И хорошо это или всё же было бы лучше, если бы lossless музыка при входе в AIMP оставалась бы с той битностью с которой была изначально (то-есть скорее всего 24bit)? Заранее спасибо!

    1. Sergey B

      Здравствуйте! В настройках AIMP-а, я установил режим вывода «DirectSound», благодаря чему предоставилась возможность выбора вывода звука 32 bit float, что я и выбрал. В настройках AIMP «Дизеринг» включен. Как вы мне ответили выше «Если вы выводите 32 float, то дизеринг работать не будет независимо от включения или выключения соответствующей опции». Поэтому, я понял, что не смотря на включенный в AIMP-е «Дизеринг», он («Дизеринг») всё — равно не включится, потому — что вывод в AIMP-е установлен 32 bit float. А где — же тогда будет происходить «Дизеринг» если в настройках звуковой карты выставить значение 16bit? В звуковой карте компьютера?

    2. Soolo Автор записи

      Да, все декодеры АИМПа по возможности расшифровывают файлы в 32 bit float, это нужно для более точной обработки звука в плеере: от эквалайзера или эффектов до банальной громкости.
      Думаю, любой нормальный плеер делает то же самое.
      И да, повышение битности — преобразование без потерь качества.

  16. Sergey B

    Если в настройках звука Windows установить максимальное для звуковой карты значение 192 Hz/24 bit (и, соответственно, в настройках вывода AIMP тоже установить 192 Hz (что-бы использовался ресемплер AIMP, а не виндовый)), то, лично у меня нет уверенности в том, что это правильный выбор, потому-что нужно знать характеристики ЦАП-а, на который музыка поступает со звуковой карты с заданными значениями. А как их узнать (в ноутбуке Sony), я так и не понял. Читал, что в основном, стандартная частота у ЦАП-ов 48 Hz и кратные ей (96 Hz, 192 Hz), а глубина 24 bit. Но как точно узнать на что способен встроенный в ноутбук ЦАП, что-бы установить одинаковые значения частоты дискретизации и битности выводе из AIMP и настройках звука Windows ?! Может подскажете?

    1. Soolo Автор записи

      Оптимальные настройки определяются либо на слух либо с помощью измерений.
      Ну, либо из какого-либо надёжного источника узнать с какими цифрами работает ЦАП.
      Один из надёжных источников — даташит на микросхему ЦАПа. Имя микросхемы либо подсмотреть на корпусе микросхемы (нужно разбирать ноут), либо, как вариант, тестовая программа какая-нибудь подскажет. Ещё варианты: форумы, обзоры видео или в картинках.
      А проще всего забить, если на слух не слышно разницы.

  17. Sergey B

    Здравствуйте! Выше я Вам писал, что после установки «v.4.13 (build 1895)» несколько раз пробовал выбрать «WASAPI exclusive (Event или Push)», далее сохранял, выходил из настроек AIMP, снова заходил в настройки AIMP и видел, что всё время слетает на «DirectSound»? Оказывается дело в том, что нужно было зайти в настройки звука Windows (настройки звуковой карты) и установить галочку в директории «Разрешить приложениям использовать устройство в монопольном режиме» и на всякий случай установил галочку в чуть ниже находящейся директории «Предоставить приоритет приложениям монопольного режима». После этого, я в настройках AIMP выбрал «WASAPI Exclusive (Event): Громкоговоритель и наушники (Realtek High Definition Audio)» и всё заработало. Но, изначально мне было не понятно, почему ещё есть «WASAPI Exclusive (Event): Windows Default».
    Подскажите, чем отличаются «WASAPI Exclusive (Event): Громкоговоритель и наушники (Realtek High Definition Audio)» от «WASAPI Exclusive (Event): Windows Default»? Кстати, это касается не только WASAPI Exclusive (Event), а так-же «DirectSound» и обычного «WASAPI».
    При выборе «»WASAPI Exclusive (Event)» появилась возможность выбора разрядности «16bit» и «24 Bit (i32)». Что обозначает «24 Bit (i32)»? Спасибо!

    1. Soolo Автор записи

      Windows Default — устройство, выбранное в Винде по умолчанию. АИМП позволяет пользоваться не только устройством по умолчанию, а любым звуковым устройством.
      24 Bit (i32) — точно не помню, что-то вроде эмуляции 24 бит, но передача данных идёт в 32 битном формате. Грубо говоря, сначала идёт понижение разрядности, затем повышение. Данные 32 бита, а параметры, как у 24 бит. Для чего нужно — не знаю. Предполагаю, это из-за неудобности 24 бит для языков программирования.

  18. Sergey B

    То-есть, если я в AIMP-е использую вывод «WASAPI Exclusive» и в компьютере находится 24-ёх битный ЦАП, то в настройках AIMP стоит установить вывод 24 bit (i32)? Потому-что если в настройках AIMP установить вывод 16 bit, то весь выходящий из AIMP звук (даже 24-ёх битный) будет преобразовываться средствами AIMP в 16 bit, а это не очень хорошо, потому-что ЦАП 24-ёх битный и может работать с 24-ёх битным звуком. То-есть, я предполагаю, что вывод 24 bit (i32) более качественный чем 16 bit?

  19. Sergey B

    Здравствуйте! У меня в ноутбуке установлен «AIMP v.4.13 (build 1895)», метод вывода (из AIMP-а) звука «WASAPI exclusive (Event)» на встроенные муз.колонки. Очень много читал о том, что (в отличие от методов «DirectSound» и «WASAPI shared») используя в музыкальном плеере метод «WASAPI exclusive» обходятся стороной значения частоты дискретизации и разрядности заданные в системном микшере Windows (в настройках звука Windows в вкладке «Дополнительно»). Поэтому вопрос: Нужно устанавливать частоту дискретизации и разрядность непосредственно в AIMP-е, потому — что звук, минуя микшер звуковой карты (меня интересуют именно настройки частоты дискретизации и разрядности в настройках Windows) пойдёт сразу на ЦАП ноутбука?
    И ещё вопрос: В настройках AIMP-а, «Размер кэша» — это буфер на тот случай, если музыка начнёт заикаться?

    1. Soolo Автор записи

      При выводе WASAPI Exclusive звуковые данные обходят микшер и прочие обработчики. Частота, установленная в АИМПе, пойдёт на драйвер.
      Кэш нужен для случаев нагрузки на винчестер, когда плеер не может получать своевременно данные и начинает заикаться.

      1. Sergey B

        Спасибо за ответ! Вы написали: «При выводе WASAPI Exclusive звуковые данные обходят микшер и прочие обработчики. Частота, установленная в АИМПе, пойдёт на драйвер.»
        Если Вы имели в виду драйвер звуковой карты, то в моём понимании: в компьютере есть звуковая карта и пока не установишь для её звуковой драйвер, звука на компьютере не будет. А после установки звукового драйвера, появляется возможность зайти в «Свойства» любого устройства (в моём случае «Громкоговоритель и наушники») и зайдя в его свойства и перейдя в директорию «Дополнительно» предоставляется возможность выбора частоты дискретизации и разрядности (то — есть, именно после установки звукового драйвера, предоставляется возможность выбора частоты дискретизации и разрядности). Поэтому, когда Вы пишете «Частота, установленная в АИМПе, пойдёт на драйвер» я не совсем понимаю, что Вы имеете в виду! Хотя, может я в чём — то не прав!
        Мне просто нужно знать: При использовании в AIMP-е вывода «WASAPI Exclusive», точно ли вышедший из AIMP-а звук обходит значения не только частоты дискретизации, но и разрядности? Поэтому не имеет значения какие значения частоты дискретизации и разрядности выставлены в настройках звука Windows?
        Знать мне это нужно, потому — что если используя в AIMP-е выход «WASAPI Exclusive» настройка частота дискретизации и разрядности в настройках звука Windows имеет значение, то выставив там (в настройках звука Windows) маленькие значения (например 44100гц/16бит) я испорчу вышедшую из AIMP-а Hi-res музыку.

        1. Soolo Автор записи

          В эксклюзивном режиме игнорируются все настройки звука в Винде, кроме громкости: и частота, и битность, и эффекты. Но, возможно, не игнорируются настройки драйвера, т.к. он обязательно участвует в цепочке.
          Драйвером управляет отдельная утилита, а не сама Винда.

  20. Sergey B

    Спасибо за ответ! Всё понял. Используя в AIMP-е «WASAPI Exclusive» и установив (в AIMP-е) разрядность именно 96kHz, обнаружил то, что при регулировке громкости в AIMP-е (то-есть используя громкость встроенную в AIMP), громкость проигрываемого AIMP-ом муз.файла регулируется без искажений. А если хоть чуть чуть сдвигаю ползунок громкости ноутбука (то-есть основную громкость ноутбука), то звук сразу искажается и становится каким-то странным, как-будто прибрали средние и низкие частоты, а высокие остались прежними. Но, после того, как я в AIMP-е переключаю разрядность с 96кГц на 48 или на 44.1кГц, то регулируя любую громкость (в AIMP-е или основную громкость Windows) искажения проигрываемой в этот момент музыки не образуются. Всё это происходит в ноутбуке с встроенной звуковой картой «Realtek alc275», при прослушивании музыки через встроенные в ноутбук динамики. Размер кэша (в AIMP-е) пробовал увеличивать, но не помогает. Используя методы «DirectSound» и «WASAPI shared» (установив в AIMP-е разрядность 96кГц таких проблем нет). Может вам знакома причина?

  21. MeloMan

    Здравствуйте. Очень интересная ветка! Спасибо. У меня К Вам вопрос Soolo (может и разработчик поможет). Использую версию AIMP 3.60 (билд 1603). Слушаю музыку на ноуте через Bluetooth. Вопрос как настроить Винду7 и Aimp на максимально качество вывода звука по блютузу. В свойствах самой Винды (звуковые устройтва) есть возможность выбора между моно или стерео с дискретизацией 48Khz. Читал что некратная передискретизация (то есть с 44100 на 48000) вносит существенные искажения и меломаны в целом рекомендуют избегать такой передискретизации и слушать в изначальной варианте. У меня вся музыка с частотой 44100 Гц, да и большинство интернет станций стримят с частотой 44100 Гц. В Аимпе в режиме DirectSound: Динамики( Аудио Bluetoth) есть возможность выбора частоты от 8 000 до 192 000 и разрядности от 16 до 32 Float . То есть для блютуз режима можно кратно повысить частоту до 172 000 и выбрать разрядность 32 Float. Не буду врать, разницы между 44100 и 172000 в своих наушниках не услышал, но чисто для теории. Действительно ли на выходе по блютуз каналу через AIMP можно получить звук с максимальным качеством. Просто есть подозрение, что звук в конечном итоге после AIMPA попадает на виндовый блютуз сток в котором тупо стоит 48Hz и 16 бит и чихал он (блютузсток) на кратную передискретизацию в 172000и разрядность 32 Floa, которые настроены в самом АИМПе? Что скажите?

    1. Soolo Автор записи

      Ничего точно сказать не могу. Краем уха где-то читал, что для передачи по блютуз каналу звук предварительно пережимается каким-то кодеком. Так что передискретизация в таком случае наименьшее из зол.

  22. LongKick64

    Уважаемый, Sergey B, вы меня конечно извините, но зачем вы так заморачиваетесь со звуком своей уг встройки ноутбука?) Там ведь, как не настраивай, а звук будет, как из ведра))

    1. Soolo Автор записи

      Как из ведра звук не будет. Реалтеки давно уже выдают приемлемый звук.
      Звуковая карта — это последнее, что нужно улучшать в звуковой системе.
      Наибольший вклад в звук даёт акустика / наушники. Всё остальное влияет на порядки меньше.

  23. LongKick64

    «Как из ведра звук не будет. Реалтеки давно уже выдают приемлемый звук.»
    Это смотря куда они его выдают) Если на колонки того же ноутбука, то приемлемым такой звук я бы точно не назвал бы) Сужу исключительно по своему ноуту, который через колонки выдает вообще что-то непонятное. Если же подключить наушники к звуковухе ноута напрямую, то тогда да, можно, впринципе, слушать)

  24. biofibre

    Добрый день. Может быть нужно было где-то на форуме эти вопросы задать, а не в блоге, но тем не менее.
    1. При конвертировании файлов в Аимпе там в настройках конвертера в пункте «параметры преобразования» в окошке «общее» нужно ли снимать галочки с пунктов: микширование каналов, дизеринг и антиклиппинг? Я вроде бы понял, что не нужно (правда я конвертировал винил-рип 32-192 wavpack в те же 32-192 в wav ), но тем не менее хотелось точно знать, влияют ли они на конвертацию все или по отдельности? Наверное это зависит от формата исходного файла и какой формат результирующего будет? Если битность и частота не меняется, включение или выключение дизеринга не будет влиять? А другие параметры при этом, микширование каналов и антиклиппинг? Если битность и частота уменьшаться будут, то понятное дело дизеринг включается. А в случае с сжатыми форматами? Если, напрмер, Flac 24-96 переводить в mp3 16-44 дизеринг включаем, а антиклиппинг? У меня такое ощущение, что я сам и оветил? ))) или где-то не прав?

    2. Уже всем надоевший наверное вопрос. Встроенная звуковая на микросхеме Риалтек АLС887 аппаратно по даташиту поддерживает: Four stereo DACs (8 channels) support 16/20/24-bit PCM format for 7.1 sound playback и All DACs supports 16/20/24-bit, 44.1k/48k/96k/192kHz sample rate. Пользуюсь Аимпом чаще, и немного реже Фубаром. Из прочитанного мной понял, что в диспетчере Риалтек или в свойствах звука панели управления, на устройстве динамики, выставить нужно максимальные настройки битности и частоты (а это 24-192). А в Аимпе также максимально возможные, но не меньше чем в звуковухе? У меня в Аимпе сейчас стоит Direct Sound (Динамики Риалтек HDA или Windows Default — что возможно почти одинаково в моем случае) 32 бита floating — 192кГц, или нужно 24-192 оставить? Direct Sound нужен для других звуков, потому как и музыку слушаю и другие звуки необходимы. Фонотека на 75-80% лосслесс 16-44, процентов 10-15 Hi-Res и винил рипы, остальное Lossy. Или же правильно будет выставлять битность 24 в карте, а в плеере 24 и выше по возможности, а частоту 44,1 и в карте и в плеере из-за подавляющего количества фонограмм и радиофонограмм в этой частоте? А при прослушивании Hi-Res что тогда менять всё? Или оставить по максимуму, как у меня сейчас выше описано и включать в цепочку ресемплер SoX в Фубаре и в Аимпе, который по умолчанию включен? Что-то я уже запутался. )) Распутайте меня.)

    1. Soolo Автор записи

      1. Разве что дизеринг можно выключить, если нет понижения битности при конвертации.
      2. В AIMP достаточно выбрать WASAPI: Windows Default. В Винде (в диспетчере Реалтек) — максимальные реально работающие параметры.

  25. Serxio

    Здравствуйте. Вопрос: правильным решением для лучшего качества выводимого звука в настройках AIMP частоту дискретизации и разрядность выставлять как у прослушиваемых аудио-файлах или максимально возможное которое поддерживает мой AV-ресивер? (192kHz/24bit). Лично я полагаю что параметры должны быть синхронны с форматом аудио-файлов (что б избежать ресемплинга), но моя фонотека содержит музыку разной дискретизации и разрядности. Не буду ведь после каждого трека менять настройки плеера. Какое решение будет верным?

    1. Soolo Автор записи

      Честно говоря, меня замучили этим вопросом. Единственный верный вариант — определить с какой частотой реально на уровне железа ЦАПа работает ваше оборудование. Объективно это можно сделать с помощью измерений. Субъективно — на слух. Полагаться на маркетинговые цифры в 192kHz/24bit я бы не стал.
      Если нет возможности измерений, и на слух разницы нет — то выбирайте на своё усмотрение, либо маркетинговые 192kHz/24bit, либо параметры большинства ваших файлов 44,1kHz/24bit.
      Переключать каждый раз параметры, естественно, не нужно, ресемплинг в АИМПе работает очень качественно.

  26. AL'Yans

    Уважаемые разработчики! У меня к вам огромная просьба, добавьте, пожалуйста, в AIMP функцию «Автоматически переключать частоту дискретизации выхода на звуковую карту в соответствии с частотой дискретизации входного аудио файла».
    Я думаю что не только я, но и огромная армия аудиофилов и профессионалов звука скажет вам Большое спасибо за это!
    В коллекции находится масса аудио-файлов, в основном в форматах 44.1/16, 48/16, 96/24, а также упакованных в WAV контейнер AC3 и DTS файлов. Хочется быть всегда уверенным, что любой файл, из совместимых с аудио-картой, воспроизводится на внешний цифровой выход с побитовой точностью. Это особенно важно для AC3 и DTS потоков, которые иначе вообще не декодируются внешним процессором. Иначе приходится десятки раз в день вручную переключать выходную частоту дискретизации в настройках плеера. Это очень досадно.

    1. AL'Yans

      Я дополню:
      Я читал комментарии на эту тему и представляю себе что в этом случае не будут работать различные функции сведения и переключение не будет бесшовным. Но это и понятно.
      Бесшовная склейка нужна как правило для связного воспроизведения аудиофайлов из одного альбома, а они обязаны быть в одном формате, поэтому для них ничего не испортится.
      Пусть наконец все эти функции отключаются при активации этой вожделенной опции! Это всё равно будет прекрасный выход из ситуации.
      Я готов спонсировать эту доработку.

      1. Soolo Автор записи

        Это не нужно. АИМП имеет очень хороший ресемплер и за качество звука можно не волноваться. Лучше волноваться поддерживает ли ваша звуковая карта весь спектр заявленных частот на «железном уровне» без внутренней/драйверной непонятно какого качества передискретизации.
        https://www.aimp.ru/blogs/?p=312

  27. nekar

    Добрый день. Правильно ли я понял, из ваших тестов следует, что разницы между WASAPI Exclusive и WASAPI Shared нет, если используется 24-битный формат? Если нет, то каковы различия? Я слушаю музыку через браузер на стриминговом сервисе, т.к. для него нет отдельного приложения, которое умело бы выводить аудио в эксклюзивном режиме, можно ли в таком случае рассчитывать на чистоту звука?

    1. Soolo Автор записи

      Вы правильно поняли.
      С моей точки зрения, в поисках «чистоты звука» нужно заморачиваться с колонками / наушниками в первую очередь, а не со звуковыми выходами или плеерами, как это многие любят делать.

Добавить комментарий