일러두기
파라미터 값 호출 방식 (Engine Parameters)
Kontakt는 Group(그룹)을 생성하고 샘플을 로딩해서 키 존을 만들고 악기처럼 사용하는 방식이다.
여러 개의 Group(그룹)을 생성해서 각각의 그룹별로 이펙트를 추가하거나 MOD를 추가하고 또 각 그룹별로 오디오 라우팅을 달리 할 수 있는 개념이다.
본 이미지는 미디존 알기쉬운 컨탁6 책에서 발췌하였습니다. (☞ 원본 책 링크)그렇다면 어떤 그룹의 어떤 이펙트의 특정한 파라미터 노브의 값을 표현하는 방식과 어떤 식으로 호출하는지 정의할 필요가 있겠다.
일단 KSP에서 특정한 파라미터 값은 Engine Parameters라고 하는 용어를 사용한다. (NI에서 제공하는 KSP 매뉴얼을 참조할 것)
[
set_engine_par(<parameter>,<사용할 $값>,<group>,<slot>,<generic>)
]
조금 더 상세한 설명을 덧붙이자면 다음과 같다.
<parameter>는 Kontakt에서 제공하는 여러 이펙트, 그룹, 각종 라우팅의 명칭을 제공한다.
예를 들어, $ENGINE_PAR_THRESHOLD는 인서트 이펙트에서 사용할 수 있는 Comprissor의 드레쉬홀드 파라미터 값을 의미한다.
<사용할 $값>은 사용자가 $decay_knob 처럼 변수명을 만들고 <parameter>과 <사용할 $값>을 매칭시키는 개념이다.
<group>은 순서대로 0, 1, 2, 3... 이런식으로 번호를 사용하면 된다. 예를 들어, Long과 Short라는 2개의 그룹 폴더가 있을 때, 0은 Long을 뜻하고 1은 Short를 뜻한다.
만약 모든 그룹을 칭하고 싶다면 -1을 사용할 수 있다.
<slot>은 <parameter>가 인서트 이펙트나 샌드 이펙트등인 경우에 Kontakt는 8개의 이펙트 슬롯을 제공한다. 왼쪽부터 0, 1, 2, 3... 이런식으로 7번까지 할당된다.
예를 들어, 그룹이 1개 있고 인서트 이펙트 1번 슬롯에 Compresseor를 장착하고 $Thres라는 노브를 돌려서 컴프레서의 드레쉬홀드 값을 조절하고 싶다면 다음과 같은 코드가 될 것이다.
[
set_engine_par($ENGINE_PAR_THRESHOLD, $Thres, 0, 0, 1)
]
<generic>은 기본적으로 1은 인서트 이펙트, 0는 샌드 이펙트, 2는 메인 이펙트를 뜻한다.
그 외의 것들은 -1을 사용하면 된다.
[
on ui_control($decay_knob)
set_engine_par($ENGINE_PAR_DECAY, $decay_knob, 0, 0, -1)
end on
]
대략적으로 $decay_knob을 돌려서 모듈레이션 AHDSR의 Decay 값을 변경할 수 있는 코드이다.
참고로 모듈레이션의 AHDSR은 그룹별로 사용할 수 있는 개념이다.
토론