# Pipeline Analyzer

Pipeline Analyzer는 실제로 들리는 소리를 바꾸지 않고 현재 Effect Pipeline의 응답을 측정합니다. 넓은 창에서는 파이프라인 옆에, 좁은 창에서는 헤더 아래에 표시되므로 이펙트를 조정하면서 결과가 바뀌는 모습을 확인할 수 있습니다.

Effect Pipeline 헤더의 그래프 버튼이나 데스크톱 앱의 **View > Pipeline Analyzer**로 여세요. **Auto**를 선택하면 파이프라인이 바뀔 때 자동으로 다시 측정합니다. **Auto**를 해제하면 파이프라인 변경 후 **Refresh measurements**를 선택해야 다시 측정합니다. 측정 설정을 바꾸면 항상 새 측정이 시작됩니다.

## 채널과 스피커 응답 선택

최대 16개 채널을 가질 수 있는 현재 파이프라인에서 입력 채널 하나를 선택합니다. 처음에는 출력 하나가 표시되며, **+ Add Output**으로 현재 오디오 장치가 지원하는 서로 다른 채널을 최대 네 개까지 추가할 수 있습니다. 16채널 파이프라인에서도 분석기의 출력 슬롯은 네 개로 제한됩니다. 출력을 삭제하면 해당 스피커 응답 설정도 삭제됩니다. 마지막 출력은 삭제할 수 없습니다.

각 출력에는 **No speaker IR** 또는 연결된 트위터, 우퍼 등 스피커 유닛의 저장된 측정 지점을 지정할 수 있습니다. 측정만 선택하고 지점을 선택하지 않으면 **No speaker IR**로 처리됩니다. 어떤 출력에도 스피커 IR을 사용하지 않을 때 **Before**는 0 ms에서 1.0이고 그 밖에는 0인 이상적인 단위 임펄스입니다. 스피커 IR을 사용하면 **Before**는 정렬된 응답의 부호 있는 합입니다. **After**는 각 출력을 선택한 파이프라인으로 처리한 뒤의 부호 있는 합이므로 FIR Crossover와 각 스피커 유닛을 함께 확인할 수 있습니다. 저장된 응답이 없으면 바꾸거나 지울 때까지 누락 상태가 표시됩니다.

저장된 스피커 응답은 감지된 시작점에 맞춰 정렬됩니다. 별도로 측정한 응답에는 드라이버 사이의 실제 도달 시간 차이가 남지 않으므로, 합산 응답을 판단하기 전에 파이프라인에서 상대 지연과 극성을 설정하세요.

## 측정 설정

**Measurement settings**에서 다음 항목을 바꿀 수 있습니다.

- **Signal**은 기본적으로 **MLS**를 사용합니다. **TSP**는 또 다른 주기적 테스트 신호이며, **Unit Impulse**는 시간 응답을 직접 캡처합니다. 이펙트가 비선형이거나 시간에 따라 변하면 신호마다 측정 결과가 달라질 수 있습니다.
- **Level**은 테스트 신호의 피크를 설정하며 기본값은 `-12 dBFS`입니다. 선형 이펙트는 보통 어느 레벨에서도 같은 정규화 응답을 보이지만, 비선형 또는 레벨 의존 이펙트는 결과가 달라질 수 있습니다.
- **Sequence Length**는 얼마나 긴 응답을 정확히 측정할 수 있는지 결정합니다. MLS와 TSP에서는 테스트 신호의 주기이고, Unit Impulse에서는 임펄스 이후 캡처할 샘플 수입니다. 길게 설정할수록 시간과 메모리가 더 필요합니다. 딜레이, 리버브처럼 잔향이 긴 이펙트에서는 특히 Analyzer가 더 긴 값을 권장할 때 늘리세요.
- **Stabilization Periods**는 기본값이 12이며 캡처 전에 파이프라인이 안정될 시간을 줍니다. 움직임이 느린 이펙트가 아직 안정 상태에 이르지 않았다면 늘리세요.
- **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 ms로 제한되지만, 포인터 판독값에는 이 범위를 벗어난 원래 값이 계속 표시됩니다. 선택한 그래프와 관계없는 항목은 비활성화됩니다. 각 주파수 곡선은 개별적으로 0 dB를 기준으로 맞추고, 각 임펄스는 전체 응답의 자체 피크를 기준으로 표시하며 범위는 -2 ms부터 선택한 Impulse Range까지입니다.

## 측정 방식

각 측정은 현재 파이프라인과 설정, 라우팅, 선택한 스피커 응답을 캡처합니다. 그래프에는 그 결과인 주파수, 위상, 최소 그룹 지연, 초과 그룹 지연, 임펄스 응답이 표시되며 **After**는 파이프라인이 보고한 지연을 보정합니다.

일반적인 응답 측정에는 MLS와 TSP가 적합합니다. 딜레이, 리버브, 링잉이 선택한 측정 창보다 길면 결과가 겹칠 수 있으므로 **Sequence Length**를 늘리세요. **Unit Impulse**는 선택한 **Sequence Length**만큼의 샘플만 기록하므로 그보다 긴 잔향은 잘립니다. 캡처가 끝나는 지점에서 잔향이 남아 있으면 길이를 늘리세요.

비선형, 시변, 무작위, 노이즈 또는 자체적으로 소리를 만드는 이펙트는 레벨이나 측정 시점에 따라 결과가 달라질 수 있습니다. 그래프를 고정된 특성이 아니라 선택한 설정의 스냅샷으로 해석하세요.
