현재까지의 앰프 시뮬레이션 플러긴 제작 관련 내용 정리

사실 이것은 블로그를 통한 공유의 차원이라고 보기엔 개인적인 정리에 가깝다고 봐야한다. 그만큼 내가 기억력이 좋지 못하기 때문에 한동안 관심가졌던 일들도 한달이 되기 전에 모두 잊기 때문이다.

0) Plugin development platform

요새 iplug가 인기다. 하나의 플랫폼으로 시장에 돌아다니는 거의 모든 OS와 DAW를 위한 플러긴/스텐덜론 이펙트를 제작할 수 있다. 회사별로 API가 다르고 복잡한 절차가 따르는데 그것을 누가 다 해놓았기 때문에 신호처리 엔진과 정형화된 GUI API에 맞추어 패널만 잘 그려주면 된다. 그래픽 디자이너가 왜 필요한지, 왜 중요한지 여기서 알았다. 아무리 내용물이 꽝이라도 화려한 GUI가 있으면 확실히 느낌이 다르다. 있어보이는 디자인은 엔지니어 머리에서 나오는 게 아니지.

요새 모든 인텔 CPU는 SSE2 정도는 기본 지원이 되니 최소 128bit register를 써서 SIMD연산 가능하다. 처리 속도를 감안하면 float precision이 적당할 것으로 보여지는데, 이에 맞추어 신호처리 job도 parallelism을 적당히 동원해야 하지만 그리 쉬운 문제는 아니다.

1) Triode modeling

일단 현재까지는 시간을 단축시키기 위해서 static analysis와 small signal model을 고려한 model을 이용하여 사실상 나머지 비선형성은 실측 데이터가 아닌 heuristic한 observation에 근거하였는데, 정교한 모델을 사용하면서도 계산량이 낮은 방법을 도입해야 할 필요가 있다. 음색을 결정하는 중요한 요소는 각 stage에서의 증폭률, 비대칭 왜곡, tonestack을 포함한 stage간 filter이다.

Small signal model의 경우는 linear region에 대해서는 잘 들어맞지만 그 외의 영역에서는 정확도가 많이 떨어지고 증폭률 계산 역시 무리수가 있어서 실제감이 다소 떨어지는 감이 있다. 증폭단의 수가 2개나 3-4개 정도에서는 부담감이 덜하지만, 그 이상에서는 확실히 artifact가 느껴진다.

따라서, 앰프의 비선형성은 가장 정교한 모델을 사용하여 static analysis에 근거하도록 하고 C가 달라붙는 나머지 요소를 모두 필터로 처리하는 것이 바람직해 보인다. 정교한 모델을 사용하는 경우 계산량이 엄청나게 되므로, look-up table+interpolation을 쓰는 것도 그리 나쁜 해법은 아닌 것 같다.

2) Oversampling

Miller effect에 의해서 매 amplifier stage에서 high cut이 되고 있어서 상대적으로 oversampling factor를 높이지 않아도 되는 장점이 있으나 x4 내지 x8은 필수다. 이렇게 되면 계산량을 줄이는 것은 플러긴 생존의 문제가 된다.

3) Power amplifier modeling

Power amplifier 회로를 잘 모델링해야 하는 것도 필수다. 여기에서 power tube 뿐만 아니라 phase splitter, transformer의 역할을 무시할 수 없다. 프리앰프의 출력과 transformer 출력 전압을 capture하면 그 뉘양스가 확연히 다르다.

4) Speaker modeling

Speaker가 어떻게 modeling되었는지는 사실상 알 수가 없다. 대부분 input stage에서 impulse를 쏘거나 PN sequence를 쏘고 다시 받아서 impulse response를 측정하는데, amplifier의 distortion이 포함되어있는 결과인지 아닌지는 IR 제작자만 알 수 있다. 대부분의 response를 보면 그것이 상당히 모호하다.

이상이다.