# Pipeline Analyzer

Pipeline Analyzer измеряет отклик активного Effect Pipeline, не меняя слышимый звук. В широком окне он расположен рядом с pipeline, а в узком — под его заголовком, поэтому эффект можно настраивать, одновременно наблюдая обновление результата.

Откройте анализатор кнопкой графика в заголовке Effect Pipeline или через **View > Pipeline Analyzer** в настольном приложении. Если выбран режим **Auto**, изменения pipeline автоматически запускают новый замер. Отключите **Auto**, чтобы после изменений запускать измерение только кнопкой **Refresh measurements**. Изменение параметров измерения всегда запускает новый замер.

## Выбор каналов и откликов динамиков

Выберите один входной канал в активном pipeline, который может содержать до 16 каналов. Сначала показан один выход; кнопка **+ Add Output** позволяет добавить до четырёх разных каналов текущего аудиоустройства. Четыре выходных слота остаются пределом анализатора даже для 16-канального pipeline. При удалении выхода удаляется и настройка его отклика. Последний выход удалить нельзя.

Для каждого выхода можно выбрать **No speaker IR** либо сохранённую точку измерения подключённого твитера, вуфера или другого излучателя. Если выбрать измерение, но не его точку, это считается режимом **No speaker IR**. Когда IR динамиков не используется ни для одного выхода, **Before** представляет идеальный единичный импульс: 1,0 в момент 0 мс и 0 в остальное время. При использовании IR **Before** — сумма выровненных откликов с учётом знака. **After** — такая же сумма после обработки каждого выхода выбранным pipeline, что позволяет оценить FIR Crossover вместе с динамиками. Отсутствующий сохранённый отклик остаётся отмеченным как отсутствующий, пока вы не замените или не удалите его.

Сохранённые отклики выравниваются по обнаруженному началу. Отдельные измерения не сохраняют акустическую разницу времени прихода между излучателями; перед оценкой объединённого отклика задайте относительную задержку и полярность в pipeline.

## Параметры измерения

В разделе **Measurement settings** доступны:

- **Signal** по умолчанию использует **MLS**. **TSP** — альтернативный периодический тестовый сигнал, а **Unit Impulse** напрямую записывает временной отклик. Для нелинейных или изменяющихся во времени эффектов разные сигналы могут измерять pipeline по-разному.
- **Level** задаёт пик тестового сигнала; по умолчанию это `-12 dBFS`. Линейные эффекты обычно дают одинаковый нормированный отклик при любом уровне, а нелинейные и зависящие от уровня — разный.
- **Sequence Length** определяет длительность отклика, которую можно измерить чисто: для MLS и TSP это период тестового сигнала, а для Unit Impulse — число сэмплов, записываемых после импульса. Чем больше значение, тем больше требуется времени и памяти. Увеличьте его для задержки, реверберации и других эффектов с длинным хвостом, особенно если анализатор рекомендует большее значение.
- **Stabilization Periods** по умолчанию равно 12 и даёт pipeline время установиться перед записью. Увеличьте значение, если медленные эффекты ещё не достигли устойчивого состояния.
- **Averages** по умолчанию равно 2. Увеличьте значение, чтобы уменьшить разброс между запусками при нестабильном графике; измерение займёт больше времени.

В подробностях показано, достаточна ли текущая длина, рекомендуемые длина и время стабилизации, а также полное время измерения. Для Unit Impulse показывается длина записи в сэмплах и секундах при текущей частоте дискретизации. Рекомендации служат ориентиром — применяйте их, когда они подходят измеряемым эффектам.

Stabilization Periods и Averages отключаются только для Unit Impulse. MLS использует длины 2^n-1 сэмплов, а TSP и Unit Impulse — 2^n сэмплов; при смене сигнала сохраняется ближайшая длина. Переключение Frequency, Phase, Min Group Delay, Excess Group Delay и Impulse меняет только вид графика и не запускает измерение.

## Чтение графиков

- Выберите отображаемый отклик переключателями **Graph** вне области графика.
- **Frequency** показывает уровень в зависимости от частоты.
- **Phase** показывает фазу в зависимости от частоты.
- **Min Group Delay** показывает задержку, определяемую минимально-фазовой частью амплитудной характеристики.
- **Excess Group Delay** показывает задержку, оставшуюся после удаления минимально-фазовой части, и помогает отделить чистую задержку и другие неминимально-фазовые временные компоненты.
- **Impulse** показывает отклик во времени.

На графике всегда показаны **Before** и **After**. Перемещайте указатель, чтобы читать обе кривые на одной частоте или в один момент времени; при наведении на **Before** кривая **After** временно скрывается для удобства сравнения. **Smoothing (oct)** и **Impulse Range (ms)** остаются видимыми на всех графиках, чтобы интерфейс не смещался. Smoothing доступно для Frequency, Phase и обоих графиков Group Delay, а Impulse Range — для Impulse. Для удобства чтения диапазон графика Excess Group Delay ограничен ±100 мс, но указатель по-прежнему показывает исходное значение за пределами этого диапазона. Не относящиеся к выбранному графику элементы отключены. Каждая частотная кривая отдельно приводится к 0 дБ, а каждый импульс масштабируется по пику собственного полного отклика и показывается от -2 мс до выбранного Impulse Range.

## Как выполняется измерение

Каждый замер фиксирует активный pipeline, его настройки и маршрутизацию, а также выбранные отклики динамиков. Графики показывают полученные частотный, фазовый, минимально-групповой, избыточно-групповой и импульсный отклики; **After** компенсирует задержку, о которой сообщает pipeline.

MLS и TSP подходят для общего измерения отклика. Если задержка, реверберация или звон продолжаются дольше выбранного окна, результат может накладываться сам на себя — увеличьте **Sequence Length**. **Unit Impulse** записывает ровно выбранное значение **Sequence Length** сэмплов, поэтому более длинный хвост обрезается; увеличьте длину, если к концу записи звон ещё не затих.

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