Однажды при просмотре очередного шедевра кинематографа я очень утомился периодически крутить регулировку громкости, так как дело происходило далеко за полночь и, с одной стороны, не хотелось будить соседей, мирно спящих за тонкой бетонной стенкой, во время происходящего на экране экшена в виде взрывов, криков и перестрелок, с другой стороны, не особо хотелось самому прислушиваться к тихим диалогам в попытках разобрать слова и звуки. Появилось желание как-то этот вопрос урегулировать. Да, сразу скажу, что я в курсе, что существуют программы для ПК, позволяющие нормализовать звук, да и в нормальных плеерах тоже часто встречается такая настройка, но, во-первых, не всегда звук воспроизводится через плеер (онлайн фильмы, видео и пр.) Во-вторых, не всегда звук воспроизводится с ПК. В-третьих... просто захотел сделать такую железку
Краткая теория: что такое компрессия, относительно звука? Компрессия - это сжатие звукового диапазона воспроизводимого материала, то есть уменьшение разницы между громкими и тихими звуками. Т.е. громкие становятся тише, тихие - громче. Зачем и кому это надо? Чаще всего применение компрессора оправдано когда имеются какие либо недоработки и косяки со стороны звукорежиссера, либо просто аудио материал без обработки, или сам по себе низкого качества, обычно это некоторые пиратские копии фильмов, старые аудиозаписи с изношенных кассет или пластинок, ну и более актуальный и современный пример - это, конечно, видео-блогеры. Очень часто они или забывают обработать звук в своих видео, или просто забивают/не умеют, и голос становится плохо различим на фоне шума ветра или проезжающих машин. Ну и еще один вариант применения - это при прослушивании музыки фоном на очень малой громкости (делаю так порой, когда занят какой то другой работой), в такой ситуации компрессор выступает как некая альтернатива тонокомпенсации.
Немного предыстории: первое, что попалось по данной теме, это схема 4-х полосного АРУ от товарища stalker29218, про которую он рассказывает на своем канале на youtube, (умеющий пользоваться поиском да отыщет) схема была собрана в железе, протестирована, но большого удовольствия не доставила. Она, безусловно, рабочая, но дает небольшой уровень компрессии, как по мне, недостаточный, не исключаю, конечно, что причина может не в схеме, а в моих каких-то косяках, однако интерес к ней я потерял и принялся искать другие варианты.
И наткнулся на описание микросхемы SSM2167, она рассчитана больше на работу с микрофонами, но по всем характеристикам подходит и для вышеуказанных целей, и поэтому было решено использовать ее. На Али продаются как микросхемы, так и уже готовые платы с обвязкой
Итак, поехали. Микросхема SSM2167 от Analog Devices, представляет из себя микрофонный предусилитель со встроенным шумоподавлением и компрессией.
Немного о самой микросхеме: питается напряжением от 2,5В до 5,5В, потребляя при этом не более 5 мА. Схема включения взята из даташита:
Уровень шумоподавления (Gate) регулируется внешним резистором R gate:
Тоже самое и с уровнем сжатия (компрессии), резистор R comp:
Теперь конкретно о реализации: как я уже писал, схема взята из документов на микросхему, с небольшими изменениями, итак, сама схема:
Питается все это хозяйство от 5 В, от любого источника с выходом USB, для подключения которого на плате имеется разъем micro USB, далее идет понижающий линейный преобразователь LD1117S33CTR (или любой подобный), который выдает на выходе +3,3 в, которые уже идут на усилители. Номиналы элементов обвязки микросхем усилителей обозначены на схеме. Резисторы, отвечающие за пороговое шумоподавление (шумообрезание?)), - это R2 GATE и R29 GATE, в моем случае запаяны перемычками (0 ом), что соответствует минимальной чувствительности -40 dBV , т.к. в этой схеме источник сигнала линейный выход (ПК, смартфон, плеер и пр.) и он, как правило, имеет достаточный уровень сигнала, увеличение чувствительности приведет лишь к увеличению шумов. Еще один нюанс по поводу чувствительности: у данной микросхемы, помимо режима компрессии, есть также область жесткого ограничения сигнала (лимитер), он срабатывает когда на вход подается сигнал более 600 мВ, и срезает все, что находится выше, а это означает клиппинг и искажение сигнала, что нам совсем не нужно.
Для предотвращения таких ситуаций нужно следить, чтоб сигнал не превышал указанный уровень. За это в схеме отвечает двойной дифференциальный компаратор LM2903D. На оба его неинвертирующих входа подается опорное напряжение, которое формируется делителем, состоящим из резистора R6 и подстроечного резистора PR1. В свою очередь на инвертирующие входы подается сигнал с левого и правого каналов источника звука, если этот сигнал превышает напряжение установленное на неинвертирующем входе, то компаратор выдает на выходе низкий уровень (сажает выход на землю) и загорается светодиод, это означает что входной сигнал слишком велик, и необходимо понизить его уровень. Путем экспериментов в моем случае было установлено, оптимальное напряжение в +1,3 В (примерно 0,93В RMS для звукового сигнала соответственно).
Получается следующий порядок работы этой системы: включаем фильм, видео или еще что-то, увеличиваем громкость, пока светодиоды не начнут мигать в такт звуку, это значит, что верхний порог достигнут. Далее уменьшаем громкость источника, пока диоды не перестанут мигать совсем, это будет означать что клиппинга не будет и уровень звука на входе оптимальный.
Далее что касается компрессии: за нее отвечают резисторы R COMP (R3 и R28 по схеме), тут, согласно таблице, я выбрал максимальную степень сжатия 1:10, что соответствует их значениям 175Ком (у меня 180K).
За скорость срабатывания компрессора отвечают конденсаторы C6 и С9, их значение можно изменять, но более 10 мкф я бы ставить не рекомендовал.
Еще, в отличие от оригинальной схемы, был убран резистор в 100KOM, подтягивающий выход к земле (на плате это резисторы R1 и R30, они не запаиваются), субъективно без него лучше.
Процесс изготовления
Изначально схема была вытравлена с помощью фоторезиста (ЛУТом лучше и не пытаться) и собрана для тестов, не знаю, что мне больше понравилось: травить дорожки 0,25мм или паять к ним потом микруху, но, тем не менее, удалось и все заработало)
Если есть сомнения по поводу работы схемы или хочется попробовать, но не хочется трудностей, как я уже сказал выше у китайцев есть готовые модули.
Все устройство был решено собирать в корпусе Gainta G706 140х110х35 мм, под него и делалась плата. Можно, конечно, сделать в корпусе и меньшего размера, но мне нужно было установить 4 разъема RCA, поэтому мельчить не было смысла. Плата была разведена из расчета на промышленное изготовление, можно, конечно, и фоторезистом, но с утюгом и принтером лучше не пытаться.
И, собственно, материализация:
Ну что сказать, китайцы как всегда молодцы, качество на высоте.
Выводы под входы/выходы сделал в виде штырьков, изначально хотел сделать всю коммутацию на разъемах, но потом от этой идеи отказался, и просто припаял к ним все что необходимо:
На фото еще присутствуют резисторы R7 и R8, они тоже не нужны, в проекте на плате их уже нет. Земля на плате выполнена в виде сплошного полигона с двух сторон платы, полигоны соединены переходными отверстиями в достаточном количестве, шума и наводок нет, все в порядке.
На передней панели устройства расположены светодиоды: индикатор включения, два индикатора перегрузки и движковый переключатель, который отключает компрессор и подключает напрямую вход к выходу (bypass), схема его коммутации такова:
На задней панели находятся разъемы RCA (Вход/выход), включатель питания и гнездо micro USB для питания устройства. Общий вид устройства в сборе:
Извиняюсь за качество съемки, как говориться, чем богаты. Расскажу немного о том, что происходит на видео: вначале видна работа индикатора перегрузки (при определенном уровне входного сигнала загорается индикатор, (на видео только один, т.к. ко второму каналу подключен выход для осциллографа) изначально щуп подключен к выходу звуковой карты, и при изменении уровня громкости соответственно меняется и уровень сигнала. Потом подключаем осциллограф на выход компрессора, и наблюдаем непосредственно его работу, при снижении уровня сигнала на входе, на выходе сигнал остается постоянной величины. В диапазоне входящего сигнала от 220 mV до 550mV (RMS) сигнал на выходе поддерживается на уровне в 800mV (RMS).
На этом, пожалуй, все. Схема и плата проекта в открытом доступе по ссылке: EasyEDA
UPD:
По просьбам трудящихся, сделал записи различных звуков до и после обработки, все файлы (графики и примеры звука) можно скачать по ссылке. Пару картинок для наглядности:
Общий вид файла до компрессии (сверху) и после (снизу).
А здесь непосредственно основная работа компрессора, амплитуда исходного сигнала уменьшается а обработанного поддерживается на постоянном уровне:
Еще пример, более детально, исходная амплитуда меняется, компрессор старается этого не допустить:
А здесь хорошо видна атака, (время на срабатывание) за которую отвечают конденсаторы C6 и С9:
Прикрепленные файлы:
- SSM2167.pdf (209 Кб)
- Gerber_PCB_Compressor.zip (109 Кб)
Комментарии (22)
|
Я собрал (0) |
Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
Используем связку виртуальный аудиокабель + VST host + VST плагин для коррекции громкости. Применение VST плагинов позволяет включать в обработку и компрессоры и эквалайзеры и автоматическую регулировку громкости, и тд. Диапазон использования очень широкий. Это просто спасение для ушей и нервов!
Ставим программу виртуального аудиокабеля VB-CABLE https://vb-audio.com/Cable/index.htm , и в системном микшере выбираете его как устройство вывода по умолчанию, тогда звук со всех плееров, браузеров, скайпов будет отправляться на виртуальный кабель.
VST host мне понравился Pedalboard2 но можно и другие. Бесплатна, портативная версия, есть опция автозагрузки сразу с нужными настройками плагинов и опция прятать в трей http://www.niallmoody.com/apps/pedalboard2
Ключевым плагином для нас будет MAutoVolume (платный) https://www.meldaproduction.com/MAutoVolume, бесплатного варианта пока не нашёл (где взять не покупая найдёте сами). Играйтесь с его настройками и будет счастье! В отличии от компрессоров, этот плагин не столько сжимает сколько выравнивает средний уровень громкости, гдето добавляя, гдето прибавляя оставаясь в желательном диапазоне.
Есть ещё Voxengo Elephant, но он много жрёт ресурсов.
Дополнительные плагины для удобства: шумодав бесплатный "reafir standalone" в режиме subtract / эквалайзер - Voxengo Marvel GEQ (бесплатный), FabFilter Pro-Q 2 / VU Meter встроенный в Pedalboard2 - индикатор громкости, измерение громкости по разным стандартам типа LUFS это MLoudnessAnalyzer / MUtility - настройка баланса, инверсии каналов, поменять местами каналы и сведение в моно / анализатор спектра SPAN или встроенный в FabFilter Pro-Q 2/3.
В настройках аудио в Pedalboard2 выбираем для output наш встроенный кодек (скорее всего будет под названием Realtek),
input выбираем виртуальный кабель VB-audio.
В misc settings галочки на Start in tray и Display tray icon.
В plagin list сделать сканирование системы на установленные VST плагины (предварительно установить в систему те которые потребуются).
Далее двойным кликом в главном окне из раскрывшегося списка выбираем плагины и размещаем по порядку, соединяем мышкой провода с Audio input на входы плагинов.
При попытке изменить громкость горячими клавишами (удобно на ноутбуках) с выбранным по умолчанию виртуальным кабелем винда (win 7,8) будет пытаться регулировать громкость на микшере виртуального кабеля, а не аппаратного кодека, то изменять громкость горячими клавишами не получится (у VB-CABLE громкость не регулируется, чтобы звук передавался неискажённым). Поэтому для удобства можно поставить Volumouse https://www.nirsoft.net/utils/volumouse.html В ней настроить для регулировки нужное утройство и подходящий способ, например колёсиком мыши с зажатой ctrl+shift.
Расписал конечно не все мелочи, так что с программами и плагинами придётся немного разобраться самостоятельно, но оно того стоит!
[Автор]
[Автор]
Примеры и графики
[Автор]
[Автор]