■ Quality Settings
EQ 바로 옆에는 전반적인 퀄리티와 기타 설정값들이 있다.
<Quality>
Quality는 작업 중 실시간으로 적용할 Draft(real-time), 곡을 렌더링 할 때 적용할 Render로 나누어진다.
> HQ Envelopes
- 플러그인에서 사용될 ENV들이 더 정확하게 적용된다. 실제로는 아주 미세한 차이이기에, 사진처럼 렌더링 때만 적용되게 설정해주어도 무관하다.
> Oversampling
- 오버 샘플링을 허용하여, 보다 정확한 소리를 얻어내는 것을 허용하는 항목이다. 단, 실시간으로 많은 오버 샘플링을 허용할 경우 CPU 소모량이 높아질 수 있으며, 권장 사항은 렌더 시에만 적당히 높은 수준을 유지하는 것이다.
사실 이 부분은 어려운 내용임에 비해 크게 중요하지 않다. 그냥, 오버 샘플링이 높은 수준으로 허용되면 보다 해상도 높은 소리를 구할 수 있다는 정도만 알아두자. 어느 날, 여러분이 귀로 듣던 소리와 실제 렌더링한 소리가 다르다면 그 때 아래 내용들을 참고하자.
■ Oversampling
사실 이 부분은 전공자가 아니라면 정확한 내용을 이해하기도 힘들 것이다. (본인이 물리랑 손절친 지 꽤 오랜 세월이 되어가기에 잘 안다.) 그냥 재미로 이런 부분도 있구나~ 정도로만 알아두시면 좋을 것 같다.
* Nyquist – Shannon Sampling Theorem (표본화 정리)
사전적인 정의는 다음과 같다 :
본래의 신호 x_c (t)를 일정 주기마다 반복적으로 n회 샘플링하여 만든 연속적인 신호를 x[n]이라 할 때, 특정 조건에서는 x[n]으로부터 본래의 신호 x_c (t)를 손실 없이 복원할 수 있다.
이와 같은 방식의 정의가 영 어색하다면 “그뭔씹” 소리가 절로 나올 법 하다. 어쨌거나 음악과 관련된 내용들이니, 음악 쪽으로 간단히 이해해보자.
위의 OSC는 아주 작은 단위의 샘플(Wavetable, 여기서는 SAW)을 연속적으로 붙여 완성된 소리를 만들어낸다(이를 샘플링이라 한다). 이해의 편의를 위해, 저 SAW 파형이 100번 반복되어서 소리가 만들어졌다고 해보자 – 실제로는 턱없이 부족한 횟수이지만, 그냥 그렇다 하자.
만약 여건이 된다면, 우리는 완성된 소리를 분석해서, “아 원래 SAW 파형을 사용했구나!”라고 알 수 있다.
게다가 직관적으로, 만약 마음씨 고약한 누군가가 60~70번째로 반복된 SAW 파형을 몰래 잘라내고 아무 일 없었다는 듯이 남은 파형들을 붙였다고 하더라도, 우리는 ‘정말’ 아무 일 없었다는 듯이 “원래 SAW 파형을 사용했구나!” 라고 알 수 있다(이 과정을 표본화라고 한다). 어차피 나머지 부분이 똑같다면, 한 두개 없더라도 원래 모습을 추측하는데 큰 문제가 되지 않는다.
이 이론을 통해, 우리는 “어떤 조건”에 따라 완성된 소리로부터 원래의 웨이브 테이블을 찾아낼 수도 있지만, 반대로 웨이브 테이블을 “어떤 조건“에 따라 샘플링하면 원래의 정보를 잃지 않고 예측 가능한 파형을 만들 수 있다는 점을 알 수 있다.
그리고 여기서 그 “어떤 조건“은 “Band limited signal (대역제한 신호)”이고, 초당 샘플링 된 횟수가 가장 높은 주파수의 2배 이상일 때이다.
대역 제한 신호는, 신호가 0부터 어떤 마지노선 이내에서만 존재할 수 있도록 조정된 신호이다. (혹시나 하지만, 여기서 신호는 소리랑 같다.)
이는 당연한 것이, 만약 대역폭이 헤드룸(headroom)을 초과할 경우, 그 신호는 클립핑(Clipping)이 일어나 왜곡될 것이기 때문이다. 그니까, 신호가 찌그러져서 원래의 신호랑 모습이 달라진다는 뜻이다.
“초당 샘플링 된 횟수”는 말 그대로 웨이브테이블이 초 당 몇 번 샘플링되어 반복되는지를 의미하고 (따라서 단위는 회/초 = hz이다), 그 결과로 만들어진 소리의 가장 높은 주파수를 Nyquist Frequency라고 한다.
여기서, 위의 “어떤 조건“을 만족하는 최소 초당 샘플링 횟수는 2 * Nyquist Frequency이며, 이를 Nyquist Rate라고 한다.
즉, 어떤 소리의 최고 주파수가 8,000Hz일 때, 이 소리의 최소 단위를 손실 없이 뽑아내고 싶다면, 적어도 그 웨이브 테이블이 초당 1.6만회 이상 반복되어야 한다는 뜻이다.
* Under Sampling과 Aliasing (언더샘플링과 에일리어싱/위신호)
Under sampling은 말 그대로 샘플링을 ‘덜‘ 한다는 뜻으로, 앞에서 계속 나온 Nyquist Rate보다 느리게 샘플링 된 현상을 말한다. 이는 OSC의 샘플링 속도가 제한되어 본래 우리가 원했던 속도로 샘플링하지 못하여 발생하는데, 그 결과 “Aliasing(에일리어싱)” 현상이 발생한다.
즉, 우리가 원하는 결과물은 초당 1만회 반복되는 것이었으나, OSC의 한계로 인해 실제로는 9,900회만 반복된 것이다.
에일리어싱이 일어난 결과는 다음 사진과 같다.
사진을 보면, 최대 피크가 계속 변화함을 알 수 있다. 우리가 사용한 것은 분명 같은 SAW 이었는데도 말이다.
지금이야 하나의 노트만 연주하고 있을 뿐이지만, 만약 훨씬 많은 노트가 연주되고 다양한 이펙트가 입혀진다면 이러한 일그러짐은 스노우 볼 처럼 굴러갈 수 있다. 그 결과가 아래 사진과 같다. (위의 사진과 동일한 소리이다)
무슨 원리인지까지는 정확하게 모르더라도, 왼쪽 보다는 오른쪽이 훨씬 군더더기 없이 깔끔하고 높은 해상도를 가진 것 같지 않은가? 이는 왼쪽의 경우에는 에일리어싱으로 인해 노이즈가 발생하였지만, 오른쪽 경우에는 에일리어싱을 최대한 줄였기 때문이며, 그 결과 훨씬 뚜렷한 소리를 얻어냈다.
즉, 에일리어싱을 줄이면 보다 예측 가능하고(어디까지나 이론적으로지만) 깔끔한 소리를 얻을 수 있다는 결론에 도달하였다. 에일리어싱을 줄이기 위한 여러 방법이 고안되었으나, 그것까지 다루는 것은 너무 주제를 벗어나는 것 같아 생략하였다.
* Oversampling (나도 글 쓰다가 본래 글의 취지를 잊어버릴 뻔했다)
위의 내용을 요약해보자.
“결국 샘플링 주기가 짧아져서 1초 당 샘플링되는 횟수가 많아지면 원래의 신호를 구하기 쉽다는 거 아니에요?”
그러하다! 그렇다면, 당연히 사용자 입장에서는 일단 샘플링 횟수가 많아질 수록 훨씬 깔끔하고 예측 가능한 소리를 얻을 수 있을 것이다.
그러나 CPU도 그런 생각을 할까? CPU도 자신의 수명이 달린 일인데, 무턱대고 항상 최고 성능으로 손실 없이 샘플링할 수는 없는 노릇이다. 그러한 이유로, 일부 플러그인들은 샘플링 속도를 평시에는 제한해놓았다가 렌더링 때에만 이 제한을 풀어놓는다.
Sytrus 역시 엄청 무거운 플러그인으로(애초에 OSC만 6개다;;), 평소에는 샘플링 속도를 제한해야 할 필요가 있다. 그렇더라도 사용자가 원하면 적당 수준에서는 이 속도 제한을 풀어줄 필요가 있기에, [Main] 모듈의 [Quality] 패널에서 실시간 오버샘플링 속도를 조절할 수 있게 해 둔 것이다.
Sytrus에서는 2x, 4x, 8x, 16x, 64x를 지원한다. 하지만 Serum에서도 4x 까지만 지원하는데 문제 없는 걸 보면, CPU를 사랑하는 마음으로 낮은 배수를 취해주어도 나쁘지 않을 것 같다…
'매뉴얼의 세계 > Sytrus : 내가 쓰는 매뉴얼' 카테고리의 다른 글
[SYTRUS] #08. Operator / 오퍼레이터 (1) : 개요 (0) | 2022.08.19 |
---|---|
[SYTRUS] #07. Main Module / 메인 모듈 (6) : Misc Settings & Info (0) | 2022.08.18 |
[SYTRUS] #05. Main Module / 메인 모듈 (4) : Equalizer (0) | 2022.08.16 |
[SYTRUS] #04. Main Module / 메인 모듈 (3) : Modulation (X/Y Controller), Unison (0) | 2022.08.15 |
[SYTRUS] #03. Main Module / 메인 모듈 (2) : Master Levels, Global Volume & Filter Envelope Levels (0) | 2022.08.12 |