Принцип работы компрессора

Как устройство само уменьшает разницу между громкими и тихими местами и что задают его параметры?

Опубликовано Дополнено 20 мин чтения

В треках:Программист, этап 5Звукорежиссёр, этап 4Музыкант, этап 4Диджей, этап 3

У записи голоса или барабанов громкие и тихие места часто отличаются на десятки децибел (decibel)децибел (decibel) — Логарифмическая единица отношения двух величин: для амплитуд L = 20 lg(A/A₀), для мощностей — 10 lg(P/P₀). Смысл числа задаёт опорная величина.. Звукорежиссёр мог бы вручную убавлять каждый громкий удар, но это делает компрессор (dynamic range compressor)компрессор (dynamic range compressor) — Устройство или программа, которая ослабляет сигнал, когда его уровень выше порога, и тем сужает динамический диапазон.. Он непрерывно измеряет уровень и ослабляет сигнал, когда тот поднимается выше заданного значения. Его работа опирается на уровень в dBFS (decibels relative to full scale)dBFS (decibels relative to full scale) — Уровень цифрового сигнала в децибелах относительно полной шкалы. Для пиковых значений 0 dBFS соответствует её границе; формат с плавающей точкой допускает значения выше неё. Соглашение об опоре RMS указывают отдельно. и огибающую (envelope)огибающая (envelope) — Плавная кривая, которая следует за размахом волны и показывает, как уровень сигнала меняется во времени..

Устройство

Компрессор не меняет форму отдельных колебаний. Он умножает сигнал на усиление, которое меняется медленно по сравнению с периодом (period)период (period) — Время одного полного повторения периодического колебания. Обозначается T, измеряется в секундах и связано с частотой как T = 1/f. волны. Усиление рассчитывается так (MATLAB, compressor):

  1. Детектор уровня переводит отсчёты (sample)отсчёт (sample) — Значение сигнала в один момент дискретизации, одно число. В звукозаписи его также называют сэмплом. в уровень в dBFS. Это может быть пиковая огибающая или среднеквадратичный уровень (RMS level)среднеквадратичный уровень (RMS level) — Корень из среднего квадрата значений сигнала на выбранном интервале. Имеет те же единицы, что и сигнал; у синусоиды за целое число периодов равен амплитуде, делённой на √2.; варианты детекторов разобраны ниже.
  2. Вычислитель усиления по уровню решает, насколько ослабить сигнал. Правило задаёт статическая характеристика: порог (threshold)порог (threshold) — Уровень, начиная с которого компрессор или лимитер ослабляет сигнал, а экспандер или гейт — перестаёт ослаблять., степень сжатия (ratio)степень сжатия (ratio) — Во сколько раз превышение порога на входе компрессора больше превышения на выходе; записывается как «4:1». и колено (knee)колено компрессора (knee) — Область перехода от отсутствия сжатия к выбранной степени сжатия. Жёсткое колено меняет наклон на пороге скачком, мягкое делает переход плавным..
  3. Сглаживание не даёт усилению меняться скачком. Скорость изменения задают атака и восстановление.
  4. Компенсация поднимает весь результат на постоянное число децибел.

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

Порог и степень сжатия

Первый параметр — порогпорог (threshold) — Уровень, начиная с которого компрессор или лимитер ослабляет сигнал, а экспандер или гейт — перестаёт ослаблять. TT: уровень, ниже которого компрессор ничего не делает. Насколько сильно он ослабляет сигнал выше порога, задаёт степень сжатиястепень сжатия (ratio) — Во сколько раз превышение порога на входе компрессора больше превышения на выходе; записывается как «4:1». RR: превышение входа над порогом в RR раз больше превышения выхода. Обе величины задаются в децибелах, поэтому правило записывается формулой (1) (MATLAB, compressor; Wikipedia, Компрессор аудиосигнала).

y={x,x<TT+x−TR,x≥Ty = \begin{cases} x, & x < T \\ T + \dfrac{x - T}{R}, & x \ge T \end{cases}
xx
уровень входа, dBFS;
yy
требуемый уровень выхода, dBFS;
TT
порог, dBFS;
RR
степень сжатия, записывается как «RR:1».

Зависимость выхода от входа называют статической, или передаточной, характеристикой. На рисунке 1 порог −20 dBFS и сжатие 4:1. Вход −8 dBFS превышает порог на 12 дБ, на выходе превышение в 4 раза меньше, 3 дБ, и уровень выхода равен −17 dBFS. Компрессор ослабил этот сигнал на −17−(−8)=−9-17 - (-8) = -9 дБ. Разность y−xy - x называют подавлением усиления (gain reduction)подавление усиления (gain reduction) — Ослабление, которое компрессор применяет к сигналу. В формулах статьи равно уровню выхода минус уровень входа и отрицательно при ослаблении; измеритель может показывать положительную величину подавления.; ниже порога она равна нулю.

Порог и степень сжатия на статической характеристикеГрафик: по горизонтали вход от −40 до 0 dBFS, по вертикали выход от −40 до 0 dBFS. Пунктирная диагональ — выход без обработки. Сплошная линия совпадает с ней до порога −20 dBFS, отмеченного вертикальной точечной линией, затем идёт положе и приходит в −15 dBFS при входе 0. Точка при входе −8 dBFS имеет выход −17 dBFS; стрелки показывают превышение порога на 12 дБ по входу и на 3 дБ по выходу.0−10−20−30−40−40−30−20−100вход, dBFSвыход, dBFS4:1без обработкипорогT12 дБ3 дБ(−8; −17)
Рис. 1. Статическая характеристика с порогом T = −20 dBFS и сжатием 4:1. Ниже порога линия совпадает с диагональю «без обработки», выше идёт в 4 раза положе: вход −8 dBFS на 12 дБ выше порога, выход −17 dBFS — на 3 дБ.

Сжатие 1:1 означает отсутствие обработки, 2:1 и 4:1 — умеренное сжатие. Чем больше RR, тем положе линия выше порога; при R→∞R \to \infty она становится горизонтальной, и выход не поднимается выше порога. Такой предельный случай называют лимитером (limiter)лимитер (limiter) — Устройство, которое не пропускает сигнал выше заданного уровня — потолка. По статической характеристике это компрессор с бесконечной степенью сжатия; границу гарантируют пиковый детектор и предварительный анализ., о нём — ниже.

Разброс уровней выше порога уменьшается в RR раз. Два удара с уровнями −2 и −8 dBFS отличаются на 6 дБ; после сжатия 4:1 с порогом −20 dBFS они выходят на −15,5 и −17 dBFS и отличаются на 1,5 дБ. Так компрессор сужает динамический диапазон (dynamic range)динамический диапазон (dynamic range) — Разность самого высокого и самого низкого уровня сигнала или системы в децибелах; у системы нижняя граница — уровень собственного шума..

Порог −30 dBFS, сжатие 3:1. Каким будет уровень выхода при входе −6 dBFS и при входе −36 dBFS?

При −6 dBFS вход на 24 дБ выше порога, выход — на 24 / 3 = 8 дБ выше, то есть −22 dBFS; подавление 16 дБ. Вход −36 dBFS ниже порога и проходит без изменений.

Колено

По формуле (1) наклон линии меняется на пороге скачком: это жёсткое коленоколено компрессора (knee) — Область перехода от отсутствия сжатия к выбранной степени сжатия. Жёсткое колено меняет наклон на пороге скачком, мягкое делает переход плавным. (hard knee). Многие компрессоры позволяют сделать переход плавным, мягкое колено (soft knee). В описании MATLAB колено шириной WW дБ симметрично относительно порога: от T−W/2T - W/2 до T+W/2T + W/2 прямая заменяется квадратичной дугой, которая гладко соединяет оба участка. Сигнал, который едва превышает порог, сжимается слабее, а сжатие нарастает постепенно.

Определение колена отличается от устройства к устройству. В Web Audio параметр knee у DynamicsCompressorNode задаёт участок не вокруг порога, а выше него: от TT до T+WT + W (W3C, Web Audio API, DynamicsCompressorNode). Поэтому одинаковые числа на двух компрессорах не обязательно дают одинаковую характеристику.

Эксперимент

Визуализация 2 применяет компрессор к четырём ударам тона 220 Гц с пиками −2, −16, −8 и −26 dBFS. Слева — статическая характеристика с точками пиков, справа — уровни входа и выхода во времени и полоса подавления усиления. Уровень на входе вычислителя здесь — пиковая огибающая ударов. Звук рассчитывается той же моделью, что и графики.

Визуализация 2Компрессор: характеристика и уровни во времени
Передаточная характеристика: порог −24 dBFS, 4:1По горизонтали уровень входа, по вертикали уровень выхода, оба от −60 до 0 dBFS. Пунктирная диагональ — выход без обработки. Ниже порога −24 dBFS линия идёт параллельно диагонали, выше — с наклоном 1/4. Колено шириной 6 дБ — плавный переход от −27 dBFS до −21 dBFS. Точки — пики четырёх ударов в установившемся режиме: −2 dBFS → −18,5 dBFS, −16 dBFS → −22 dBFS, −8 dBFS → −20 dBFS, −26 dBFS → −26,1 dBFS.T
Уровни входа и выхода во времени при атаке 1 мс и восстановлении 100 мсЧетыре удара за 2 с, уровень от −60 до 0 dBFS. Сплошная линия — вход, пунктир — выход, точечная горизонталь — порог −24 dBFS. Пики удар 1: −2 dBFS → −18,3 dBFS; удар 2: −16 dBFS → −21,8 dBFS; удар 3: −8 dBFS → −19,8 dBFS; удар 4: −26 dBFS → −26,1 dBFS. Нижняя полоса — подавление усиления от 0 до −40 дБ, наибольшее 16,4 дБ.T
  • вход
  • выход
  • порог T
  • колено
  • пики ударов
  • подавление усиления

Разброс пиков: 24 дБ на входе, 7,7 дБ на выходе. Наибольшее подавление усиления — 16,4 дБ. Самый громкий пик на выходе — −18,3 dBFS.

Параметры компрессора
−24 dBFS
4:1
6 дБ
1 мс
100 мс
0 дБ

Громкость. Удары звучат по кругу, пока их не остановить; самый громкий доходит до −2 dBFS. Перед запуском убавьте громкость, особенно в наушниках.

30 %

Остановлен

Параметры и звук работают с включённым JavaScript. Графики показывают начальное состояние.

Рис. 2. Компрессор с порогом −24 dBFS, степенью сжатия 4:1, коленом 6 дБ, атакой 1 мс, восстановлением 100 мс и компенсацией 0 дБ. На входе четыре удара тона 220 Гц с пиками −2, −16, −8, −26 dBFS за 2 с. Уровень — огибающая пиков; выход выше 0 dBFS ограничен полной шкалой.

В начальном состоянии (порог −24 dBFS, 4:1, атака 1 мс) разброс пиков 24 дБ сокращается до 7,7 дБ. Что стоит попробовать:

  • Двигать порог: удары ниже порога остаются нетронутыми, их точки лежат на диагонали.
  • Менять степень сжатия от 1:1 до ∞:1 и следить, как сходятся пики на выходе.
  • Нажать «Медленная атака»: начало каждого удара проходит почти без сжатия, и разброс пиков остаётся около 20 дБ.
  • Поставить восстановление 1 000 мс: компрессор не успевает отпустить сигнал после удара −8 dBFS, и следующий тихий удар выходит на −30,7 dBFS вместо −26.
  • Нажать «С компенсацией» и сравнить на слух исходный сигнал и результат: громкие удары звучат так же, тихие — громче.

Атака и восстановление

Если бы усиление следовало формуле (1) мгновенно, оно менялось бы вместе с каждой полуволной сигнала и искажало его форму. Поэтому подавление усиления сглаживают. Один из вариантов — однополюсный фильтр с разными коэффициентами для двух направлений (формула (2)) (MATLAB, compressor).

gs[n]=α gs[n−1]+(1−α) gc[n],α=e−ln⁡9/(fst)g_s[n] = \alpha\, g_s[n-1] + (1 - \alpha)\, g_c[n], \qquad \alpha = e^{-\ln 9 / (f_s t)}
gc[n]g_c[n]
подавление усиления по статической характеристике, y−xy - x, дБ;
gs[n]g_s[n]
сглаженное подавление, которое применяется к отсчёту nn, дБ;
fsf_s
частота дискретизации, Гц;
tt
время атаки tAt_A, когда подавление растёт, или время восстановления tRt_R, когда уменьшается, с.

Скорость, с которой компрессор начинает ослаблять сигнал после превышения порога, задаёт время атаки (attack time)время атаки (attack time) — Время, за которое компрессор наращивает подавление усиления после превышения порога. Точное определение зависит от устройства.. Скорость, с которой он возвращает усиление после спада уровня, задаёт время восстановления (release time)время восстановления (release time) — Время, за которое компрессор возвращает усиление после того, как уровень опустился. Точное определение зависит от устройства.. В формуле (2) за время tt подавление проходит путь от 10 до 90 % скачка; отсюда множитель ln⁡9≈2,2\ln 9 \approx 2{,}2. То же определение у Zölzer записано как tA=2,2τt_A = 2{,}2\tau, где τ\tau — постоянная времени фильтра (Zölzer, «Digital Audio Signal Processing», §8.3.3, с. 272–273). В Web Audio атака и восстановление определены иначе: как время изменения усиления на 10 дБ (W3C, Web Audio API). Как и у колена, числа на разных устройствах сравнивать напрямую нельзя.

Атака длиннее нарастания звука пропускает его начало: удар успевает пройти почти без сжатия, а компрессор срабатывает уже на затухании. Так сохраняют резкость ударных. Короткая атака ловит пики, но меняет начало звука сильнее.

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

Неудачно выбранные атака и восстановление слышны как артефакты (Reiss, McPherson, «Audio Effects», гл. 7, с. 174–175). Сильное ослабление сразу после короткого громкого звука оставляет в выходе провал почти полной тишины. Накачка (pumping)накачка (pumping) — Слышимые быстрые колебания громкости от работы компрессора или лимитера: уровень падает на каждом громком звуке и заметно возвращается. Обычно связана с коротким восстановлением. — слышимые колебания уровня: усиление уходит вниз, когда сигнал превышает порог, и возвращается, когда он опускается ниже. Если в записи заметен фоновый шум, он поднимается вместе с усилением после каждого громкого места, и шум будто дышит (breathing). Накачку иногда создают намеренно, например в танцевальной музыке: короткие атака и восстановление заставляют уровень всего микса меняться при каждом срабатывании.

Детектор уровня

Детектор — первый блок тракта из раздела «Устройство». Отсчёты колеблются около нуля, а вычислителю усиления нужен уровень: неотрицательная величина, которая меняется медленнее волны (Reiss, McPherson, с. 160). Пиковый детектор работает с модулем отсчёта ∣x[n]∣|x[n]|, RMS-детектор — с его квадратом.

RMS по окну из MM отсчётов с центром на текущем требует M/2M/2 отсчётов, которые ещё не пришли, то есть задерживает сигнал. Поэтому на практике квадрат сигнала сглаживают тем же однополюсным фильтром, что и в формуле (2), и извлекают из результата корень (формула (3)) (там же, с. 164; Zölzer, §8.3.1, с. 271–272).

r2[n]=α r2[n−1]+(1−α) x2[n]r^2[n] = \alpha\, r^2[n-1] + (1 - \alpha)\, x^2[n]
r[n]r[n]
RMS-уровень, доли полной шкалы;
x[n]x[n]
входной отсчёт, доли полной шкалы;
α\alpha
коэффициент по формуле (2), в которой вместо атаки стоит время усреднения.

У пикового детектора есть аналоговый прообраз. Конденсатор заряжается через диод и резистор атаки, пока вход выше напряжения на конденсаторе, и всё время разряжается через резистор восстановления. Цифровая модель этой схемы — формула (4) (Reiss, McPherson, с. 164–165).

p[n]=αR p[n−1]+(1−αA)max⁡(∣x[n]∣−p[n−1], 0)p[n] = \alpha_R\, p[n-1] + (1 - \alpha_A) \max\bigl(|x[n]| - p[n-1],\ 0\bigr)
p[n]p[n]
показание детектора, доли полной шкалы;
αA, αR\alpha_A,\ \alpha_R
коэффициенты по формуле (2) для времени атаки tAt_A и восстановления tRt_R.

Разряд через резистор восстановления идёт и во время атаки. Поэтому при постоянном уровне на входе показание останавливается ниже него, там, где заряд за отсчёт равен разряду. Если подставить в формулу (4) ∣x[n]∣=1|x[n]| = 1 и p[n]=p[n−1]=pp[n] = p[n-1] = p, получится p=(1−αA)/(2−αA−αR)p = (1 - \alpha_A)/(2 - \alpha_A - \alpha_R). При равных атаке и восстановлении это ровно половина уровня, на 6 дБ меньше. При 48 кГц, атаке 10 мс и восстановлении 100 мс показание равно 0,91, на 0,8 дБ меньше (рисунок 3). Короткое восстановление ещё и ускоряет атаку: при восстановлении 10 мс показание проходит 90 % пути до своего значения за 5,2 мс, а при 100 мс — за 9,5 мс.

Пиковые детекторы на ступеньке уровняГрафик: по горизонтали время от 0 до 200 мс, по вертикали показание детектора от 0 до 1. Тонкая линия входа поднимается до 1 на 10 мс и падает до 0 на 110 мс. Сплошная линия детектора с переключением за 30 мс почти доходит до 1, держится на 1, после 110 мс плавно спадает до 0,14 к 200 мс. Штриховая линия аналоговой модели с восстановлением 100 мс поднимается до 0,91 и спадает почти так же. Штрихпунктирная линия аналоговой модели с восстановлением 10 мс за несколько миллисекунд выходит на 0,5, где стоит подпись «−6 дБ», и после 110 мс быстро падает до 0.10,50050100150200время, мс−6 дБуровень на входес переключением, 10 и 100 мсаналоговая модель, 10 и 100 мсаналоговая модель, 10 и 10 мс
Рис. 3. Три пиковых детектора на одной ступеньке: уровень на входе равен 1 с 10 до 110 мс, до и после — 0. Аналоговая модель по формуле (4) при атаке и восстановлении по 10 мс останавливается на 0,5 (−6 дБ), при восстановлении 100 мс — на 0,91 (−0,8 дБ). Детектор с переключением коэффициентов по формуле (5) при атаке 10 мс и восстановлении 100 мс доходит до 1. Частота дискретизации 48 кГц, коэффициенты по формуле (2).

Заниженное показание меняет и результат сжатия. Компрессор с порогом −20 dBFS и сжатием 4:1 при постоянном уровне −10 dBFS должен ослабить сигнал на 7,5 дБ. Детектор по формуле (4) с атакой и восстановлением по 10 мс покажет около −16 dBFS, и подавление составит около 3 дБ. Такой компрессор сжимает слабее, чем задают его ручки, и тем слабее, чем короче восстановление.

Цифровые детекторы обходятся без этой ошибки: они переключают коэффициенты так же, как сглаживание в формуле (2) (формула (5)) (Reiss, McPherson, с. 166; Zölzer, §8.3.1, с. 269–270).

p[n]=α p[n−1]+(1−α) ∣x[n]∣,α={αA,∣x[n]∣>p[n−1]αR,∣x[n]∣≤p[n−1]p[n] = \alpha\, p[n-1] + (1 - \alpha)\, |x[n]|, \qquad \alpha = \begin{cases} \alpha_A, & |x[n]| > p[n-1] \\ \alpha_R, & |x[n]| \le p[n-1] \end{cases}
p[n]p[n]
показание детектора, доли полной шкалы;
αA, αR\alpha_A,\ \alpha_R
коэффициенты атаки и восстановления по формуле (2).

Пока вход выше показания, детектор догоняет его со временем атаки, а когда ниже — спадает со временем восстановления. Постоянный уровень он показывает точно. Встречаются и другие схемы. В «развязанном» детекторе (decoupled) сначала стоит звено восстановления, за ним звено атаки, и восстановление длится примерно tA+tRt_A + t_R, то есть никогда не бывает короче атаки (Zölzer, §8.3.1, с. 270).

Сглаживание уровня или подавления

Детектор можно поставить перед вычислителем усиления и сглаживать уровень, а можно после него и сглаживать само подавление в децибелах. Формула (2) и визуализация 2 используют второй вариант. У первого Reiss и McPherson находят два недостатка (с. 170–172):

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

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

Прямая и обратная связь

До сих пор детектор получал вход компрессора: это схема с прямой связью (feedforward). В схеме с обратной связью (feedback)обратная связь (feedback) — Возврат части выходного сигнала на вход обработки. В delay повторно направляет копию через линию задержки и создаёт цепочку повторений. уровень измеряется на выходе, после ослабления (Reiss, McPherson, с. 169–170). Так работают модель 1176 и режим feedback в ReaComp из таблицы 1.

При обратной связи вычислитель видит не вход xx, а выход yy, и должен подобрать подавление gg так, чтобы выполнялась формула (1). Выше порога из y=x+gy = x + g и y−T=(x−T)/Ry - T = (x - T)/R следует формула (6) (там же, с. 170). В цифровой схеме в неё подставляют предыдущий выходной отсчёт: текущего ещё нет.

g=(1−R) (y−T)g = (1 - R)\,(y - T)
gg
подавление усиления, дБ;
yy
уровень выхода, dBFS;
T, RT,\ R
порог и степень сжатия из формулы (1).

Каждый децибел выхода над порогом даёт R−1R - 1 децибел подавления. В примере на рисунке 1 выход −17 dBFS на 3 дБ выше порога −20 dBFS, и при 4:1 подавление равно −3⋅3=−9-3 \cdot 3 = -9 дБ — столько же, сколько получилось по входу. Но при R→∞R \to \infty множитель 1−R1 - R растёт без предела: вычислителю понадобилось бы бесконечное усиление, поэтому схема с обратной связью не бывает идеальным лимитером. Предварительный анализ в ней тоже невозможен: выход появляется только после обработки, заглянуть в него вперёд нельзя. У прямой связи соответствующий множитель 1/R−11/R - 1 при R→∞R \to \infty стремится к −1, и лимитер получается без затруднений. Большинство современных компрессоров построено по прямой схеме (там же, с. 169–170).

Компенсация усиления

После сжатия громкие места становятся тише, а тихие остаются прежними: общий уровень падает. Его возвращает компенсация усиления (makeup gain)компенсация усиления (makeup gain) — Постоянное усиление после компрессора, которое возвращает общий уровень, сниженный сжатием. MM: ко всему сигналу добавляется постоянное число децибел, и уровень выхода становится y+My + M. В результате громкие места возвращаются примерно к прежнему уровню, а тихие становятся громче: разница между ними меньше, чем до обработки. Некоторые компрессоры подбирают компенсацию автоматически: в MATLAB это M=−y(0)M = -y(0), чтобы вход 0 dBFS давал выход 0 dBFS (MATLAB, compressor).

Компенсация не следит за полной шкалой (full scale)полная шкала (full scale) — Опорная граница уровня выбранного аудиоформата или тракта. Для нормированных аудиоотсчётов обычно принята за ±1; числовой формат с плавающей точкой способен хранить значения за этой границей.. Если поднять сигнал слишком сильно, пики превысят 0 dBFS и при записи будут обрезаны. В визуализации это видно в статусе: когда пик выхода превышает 0 dBFS, появляется предупреждение о перегрузке. При начальных настройках это происходит при компенсации больше 18 дБ.

Лимитер

При бесконечной степени сжатия выход выше порога равен порогу; такой компрессор — лимитерлимитер (limiter) — Устройство, которое не пропускает сигнал выше заданного уровня — потолка. По статической характеристике это компрессор с бесконечной степенью сжатия; границу гарантируют пиковый детектор и предварительный анализ. (MATLAB, limiter). Его ставят, чтобы сигнал не превышал заданный уровень, например перед записью в файл, где выше 0 dBFS начинается клиппинг (clipping)клиппинг (clipping) — Ограничение значений сигнала крайними допустимыми уровнями при выходе за диапазон. Срезает вершины волны и создаёт искажения.. Почему для этого мало поставить сжатие ∞:1, как лимитер снижает усиление заранее и почему пики бывают между отсчётами, разобрано в статье о лимитере.

Экспандер и гейт

Компрессор меняет уровень выше порога, а экспандер (expander)экспандер (expander) — Устройство, которое ослабляет сигнал ниже порога сильнее, чем он был ослаблен на входе, и тем расширяет динамический диапазон. работает ниже порога и ослабляет тихие места ещё сильнее. Каждый децибел ниже порога на входе превращается в RR децибел ниже порога на выходе: y=T+(x−T)⋅Ry = T + (x - T) \cdot R при x<Tx < T (MATLAB, expander). Динамический диапазон при этом растёт. Экспандер убирает фоновый шум в паузах: шум ниже порога становится ещё тише, а полезный сигнал выше порога проходит без изменений.

Предельный случай экспандера — шумовой гейт (noise gate)шумовой гейт (noise gate) — Устройство, которое отключает сигнал, пока его уровень ниже порога; предельный случай экспандера.: ниже порога сигнал не ослабляется постепенно, а отключается полностью (MATLAB, noiseGate). Чтобы гейт не открывался и не закрывался многократно, когда уровень колеблется около порога, у него есть время удержания (hold time)время удержания гейта (hold time) — Время, в течение которого гейт остаётся открытым после спада уровня ниже порога. Помогает избежать частых переключений около порога.: после спада уровня ниже порога гейт ещё какое-то время остаётся открытым. Рисунок 4 сравнивает все четыре характеристики.

Компрессор, лимитер, экспандер и гейтДва графика с осями от −60 до 0 dBFS. Слева: сплошная линия компрессора 4:1 совпадает с диагональю до порога −30 dBFS, затем идёт положе до −22,5 dBFS при входе 0; штрихпунктирная линия лимитера выше порога горизонтальна на уровне −30 dBFS. Справа: сплошная линия экспандера совпадает с диагональю выше порога, а ниже идёт вдвое круче и доходит до −60 dBFS при входе −45 dBFS; штрихпунктирная линия гейта ниже порога лежит на нижней границе графика и поднимается вертикально на пороге.Выше порога00−30−30−60−60TНиже порога00−30−30−60−60Tкомпрессор 4:1лимитерэкспандер 1:2гейт
Рис. 4. Статические характеристики при пороге T = −30 dBFS. Слева устройства, которые меняют уровень выше порога: компрессор 4:1 и лимитер. Справа — ниже порога: экспандер, у которого каждый децибел входа даёт 2 дБ выхода, и гейт, который отключает сигнал. Оси — уровни входа и выхода от −60 до 0 dBFS, пунктирная диагональ — выход без обработки.

Боковая цепь управления

Детектор уровня, вычислитель усиления и сглаживание из раздела «Устройство» образуют отдельный тракт анализа — боковую цепь управления (sidechain)боковая цепь управления (sidechain) — Тракт анализа сигнала, который управляет усилением динамического обработчика. Может получать основной сигнал или отдельный внешний источник.. Обычно в неё подаётся копия входа, и компрессор сжимает сигнал по его собственному уровню. Многие компрессоры позволяют подать в боковую цепь другой сигнал через внешний вход (key input). Тогда уровень измеряется по управляющему сигналу, а рассчитанное усиление по-прежнему применяется к основному (рисунок 5) (Izhaki, «Mixing Audio», гл. 16, с. 288–289). В MATLAB такой режим включает свойство EnableSidechain: объект получает два входа, сжимаемый сигнал и сигнал для расчёта усиления (MATLAB, compressor).

Компрессор с боковой цепью управленияСхема. Слева сверху блок «Основной вход»; от него сплошная линия идёт вправо к кругу со знаком умножения, от круга — к выходу. Слева снизу блок «Внешний вход (key input)». От основного входа вниз идёт штриховая линия с подписью «внутренняя цепь», от внешнего входа — сплошная линия; обе сходятся в точке выбора и ведут к блоку «Фильтр» в правом нижнем углу. От фильтра стрелки идут вверх через блоки «Детектор уровня», «Вычислитель усиления: порог, сжатие, колено» и «Сглаживание: атака, восстановление» к кругу умножения; последняя стрелка подписана «усиление».ОсновнойвходВнешнийвход(key input)Сглаживание:атака, восстановлениеВычислитель усиления:порог, сжатие, коленоДетектор уровняФильтрвыходусилениевнутренняяцепь
Рис. 5. Компрессор с боковой цепью управления. Основной сигнал идёт по верхней линии и только умножается на усиление. Уровень измеряется в боковой цепи: по копии основного сигнала (внутренняя цепь, штриховая линия) или по сигналу с внешнего входа. Фильтр в боковой цепи меняет то, на что реагирует компрессор, но не меняет основной сигнал.

С внешней боковой цепью громкость (loudness)громкость (loudness) — Ощущение того, насколько сильным кажется звук. Зависит от звукового давления, частотного состава и условий восприятия. одного сигнала зависит от другого. На радио музыку подают на основной вход компрессора, а голос ведущего — на управляющий. Когда ведущий говорит, уровень голоса превышает порог, и компрессор ослабляет музыку; в паузах речи она возвращается. Такой приём называют приглушением (ducking)приглушение (ducking) — Ослабление одного сигнала, пока уровень другого, управляющего, выше порога. Например, музыка становится тише, когда говорит ведущий.. Атака задаёт, как быстро музыка уходит вниз, восстановление — как быстро возвращается (Izhaki, гл. 20, с. 371–372; Wikipedia, Dynamic range compression). В сведении так же ослабляют орган или бас по бочке. При каждом ударе они ненадолго становятся тише и уступают бочке место, а затем возвращаются. Если восстановление успевает вернуть усиление к следующему удару, громкость начинает меняться в ритме бочки (Izhaki, гл. 16, с. 317).

Компрессор приглушает не на постоянную величину: подавление зависит от того, насколько управляющий сигнал выше порога. Поэтому уровень музыки колеблется вместе с громкостью голоса. Отдельное устройство для приглушения, дакер (ducker), ослабляет сигнал выше порога на заданное число децибел независимо от превышения (Izhaki, гл. 16, с. 317; гл. 20, с. 371).

Компрессор с внешней боковой цепью: порог −30 dBFS, сжатие 4:1, атака мгновенная. На основной вход идёт музыка с уровнем −12 dBFS, на управляющий — голос с уровнем −18 dBFS. Каким будет уровень музыки на выходе? А когда голос молчит?

Подавление считается по голосу: он на 12 дБ выше порога, по характеристике выход должен быть на 12 / 4 = 3 дБ выше порога, значит подавление −9 дБ. Оно применяется к музыке: −12 − 9 = −21 dBFS. Когда голос молчит, его уровень ниже порога, подавление равно нулю, и музыка выходит с уровнем −12 dBFS, хотя сама она выше порога.

Боковую цепь можно обработать, не трогая основной сигнал. Во многих компрессорах есть встроенный фильтр боковой цепи, и он действует и на внутренний, и на внешний управляющий сигнал (Izhaki, гл. 16, с. 289). Без фильтра компрессор сильнее реагирует на низкие частоты (frequency)частота (frequency) — Число полных колебаний за секунду. Обозначается f и измеряется в герцах; 1 Гц означает одно колебание в секунду.. У них длинный период, и сигнал дольше остаётся выше порога; кроме того, в миксе у них обычно больший уровень, потому что на низких частотах слух менее чувствителен. Если сжимать барабанные микрофоны (microphone)микрофон (microphone) — Устройство, преобразующее звуковые колебания в электрический сигнал. В идеальной модели напряжение на выходе пропорционально звуковому давлению. над установкой, подавление запускает в основном бочка, и вместе с ней при каждом ударе тише становятся тарелки. Фильтр верхних частот (high-pass filter) в боковой цепи убирает бочку из измерения: компрессор реагирует на сигнал равномернее, а сама бочка в основном сигнале остаётся (Izhaki, гл. 16, с. 307). Фильтр меняет и тембр (timbre)тембр (timbre) — Свойство слухового ощущения, по которому различают два звука одинаковой высоты и громкости. Зависит от состава спектра и его изменения во времени. результата: частоты, убранные из боковой цепи, реже вызывают подавление и поэтому звучат громче (там же, с. 308).

Обратный приём — усилить в боковой цепи полосу, которую нужно приглушить. Свистящие и шипящие согласные голоса, сибилянты, дают энергию на высоких частотах, примерно 6–9 кГц (Wikipedia, Dynamic range compression). Если поднять эту полосу в боковой цепи, а частоты ниже отфильтровать, компрессор срабатывает в основном на сибилянтах и в эти моменты ослабляет голос. Так устроен простейший деэссер (de-esser)деэссер (de-esser) — Обработчик, который ослабляет свистящие и шипящие звуки голоса. В простейшем варианте — компрессор с поднятой полосой сибилянтов в боковой цепи.. Он ослабляет весь голос, а не только шипящие, и пропускает сибилянты тихих фраз, которые не достигают порога; специализированные деэссеры учитывают и то и другое (Izhaki, гл. 16, с. 316).

Примеры приборов

В рабочей станции (digital audio workstation, DAW) компрессор — это программный модуль, плагин (plug-in)плагин (plug-in) — Программный модуль эффекта или инструмента, который загружается в DAW или другую программу-хост и обрабатывает переданные ему аудиоблоки.. Параметры из этой статьи есть у большинства таких модулей, но набор ручек и их названия различаются. Таблица 1 перечисляет несколько распространённых компрессоров: встроенные в DAW, бесплатный и коммерческие. Два последних в таблице — цифровые модели (эмуляции) аналоговых приборов, они повторяют органы управления оригиналов. Описания взяты из руководств производителей; версии и состав функций со временем меняются.

Таблица 1. Программные компрессоры и их параметры по руководствам производителей
Прибор и видЧто связано со статьёй
Compressor
Apple Logic Pro
встроенный в DAW
Переключатель Circuit Type выбирает одну из семи моделей: цифровую Platinum Digital и модели схем VCA, FET и Opto. Knee задаёт колено от жёсткого до мягкого, Auto Release подстраивает восстановление под материал, Auto Gain включает компенсацию.
Compressor
Ableton Live
встроенный в DAW
Детектор переключается между пиковым (Peak) и среднеквадратичным (RMS) уровнем, предварительный анализ — 0, 1 или 10 мс. Режим Expand поднимает уровень выше порога: при 1:2 каждый децибел входа над порогом даёт 2 дБ выхода. Это не экспандер из статьи, который работает ниже порога. Есть внешний вход и эквалайзер боковой цепи.
ReaComp
Cockos
бесплатный, в наборе ReaPlugs
Мягкое колено, настраиваемая длина окна RMS, автоматическое восстановление, предварительный анализ, фильтры и внешний вход боковой цепи, режим обратной связи (feedback), в котором уровень измеряется после ослабления.
Pro-C 3
FabFilter
коммерческий
Колено от жёсткого до мягкого шириной 72 дБ, предварительный анализ до 20 мс, удержание до 500 мс, до шести полос эквалайзера в боковой цепи, регулятор Mix для параллельной компрессии и 14 стилей сжатия.
1176 Classic Limiter Collection
Universal Audio
коммерческий, модель транзисторного компрессора 1176LN
Ручка Input поднимает вход и тем самым увеличивает сжатие: порог не настраивается отдельно. Степень сжатия выбирается кнопками 4:1, 8:1, 12:1 и 20:1, атака 20–800 мкс, восстановление 50–1100 мс. Уровень измеряется после ослабления, по схеме с обратной связью, а не на входе.
Teletronix LA-2A Leveler Collection
Universal Audio
коммерческий, модель лампового оптического компрессора LA-2A
Ручка Peak Reduction одновременно задаёт порог и величину сжатия, Gain — выходной уровень, то есть компенсацию. Переключатель Compress/Limit выбирает мягкую или более крутую характеристику. В боковой цепи стоит фильтр предыскажений (pre-emphasis), который меняет чувствительность к разным частотам.

У моделей аналоговых приборов нет отдельной ручки порога: одна ручка задаёт и превышение порога, и величину сжатия. У LA-2A нет и ручек атаки и восстановления. Как и с коленом, одно и то же название на разных приборах может означать разное: режим Expand в Ableton Live расширяет диапазон над порогом, а экспандер из этой статьи работает под порогом.

Источники

  • MathWorks. Audio Toolbox: compressor — статическая характеристика с жёстким и мягким коленом, сглаживание подавления, определение времени атаки и восстановления от 10 до 90 %, автоматическая компенсация, вход боковой цепи EnableSidechain; ссылка на Giannoulis, Massberg, Reiss, JAES 2012.
  • MathWorks. Audio Toolbox: limiter — выход выше порога равен порогу.
  • MathWorks. Audio Toolbox: expander — характеристика экспандера ниже порога.
  • MathWorks. Audio Toolbox: noiseGate — нулевое усиление ниже порога, время удержания.
  • W3C. Web Audio API: DynamicsCompressorNode — параметры порога, колена, степени сжатия, атаки и восстановления.
  • Wikipedia. Компрессор аудиосигнала — русские названия параметров, пример сжатия 2:1.
  • Wikipedia. Dynamic range compression, раздел Side-chaining — приглушение музыки голосом ведущего, деэссер и диапазон сибилянтов 6–9 кГц.
  • Apple. Logic Pro User Guide: Compressor main parameters — модели схем Circuit Type, колено, автоматическое восстановление и компенсация.
  • Ableton. Live 12 Reference Manual: Live Audio Effect Reference, Compressor — режимы Peak, RMS и Expand, предварительный анализ 0, 1 и 10 мс, внешний вход и эквалайзер боковой цепи.
  • Cockos. ReaPlugs — состав бесплатного набора и возможности ReaComp.
  • FabFilter. Pro-C 3 — ширина колена, предварительный анализ, удержание, эквалайзер боковой цепи, стили.
  • Universal Audio. UAD Powered Plug-Ins Manual, software version 6.1, 2011, гл. 25 «LA-2A and 1176LN», с. 283–287 (PDF) — органы управления моделей 1176LN и LA-2A, диапазоны атаки и восстановления 1176LN, схема с обратной связью, фильтр предыскажений в боковой цепи LA-2A.
  • Reiss J. D., McPherson A. P. Audio Effects: Theory, Implementation and Application. Гл. 7, с. 159–176. в списке литературы → — детектор уровня: RMS через сглаживание квадрата, аналоговая модель пикового детектора и её заниженное показание, детектор с переключением коэффициентов; место детектора относительно вычислителя усиления; схемы с прямой и обратной связью, невозможность идеального лимитера при обратной связи; артефакты сжатия. Глава излагает статью Giannoulis, Massberg, Reiss (JAES, 2012).
  • Zölzer U. Digital Audio Signal Processing. §8.3, с. 269–273. в списке литературы → — измерение пика и RMS, ветвящийся и развязанный пиковые детекторы, время атаки как переход от 10 до 90 % и tA=2,2τt_A = 2{,}2\tau.
  • Izhaki R. Mixing Audio: Concepts, Practices and Tools. в списке литературы → — гл. 16, с. 288–289: внешний вход и фильтр боковой цепи; с. 306–308: почему низкие частоты сильнее запускают сжатие, фильтр верхних частот в боковой цепи; с. 316: деэссер на компрессоре; с. 317: сжатие по бочке и отличие компрессора от дакера; гл. 20, с. 371–372: дакер, приглушение музыки голосом.

Связи

Поиск

Ищем по названиям, тексту статей и английским терминам. Например: «частота дискретизации», «Nyquist», «аналоговый сигнал».