Description
locsig은 input시그널을 받아 2개에서 4개의 채널로 나눈후에 채널간의 발란스를 계산하여 각도를 값으로 사용한다. 또한 거리를 argument로 받아서 시그널의 얼마나 많은양이 reverberator로 보내질건지를 결정한다. 이 Charles Dodge/Thomas Jerse book, Computer Music, page 320. 의 이론을 기반으로 반들어 졌다.
Syntax
a1, a2 locsig asig, kdegree, kdistance, kreverbsend
a1, a2, a3, a4 locsig asig, kdegree, kdistance, kreverbsend
Performance
kdegree — 0 ~ 360의 값 (각도).
: a1=0, a2=90, a3=180, a4=270 (kdegree=45 는 정확히 a1과 a2사이에 시그널이 놓이게 한다. locsig 은 kdegree 을 sin 과 cos functions 으로 읽어들여 signal balances를 만든다(예: asig=1, kdegree=45, a1=a2=.707)
kdistance — 1보다 큰값은 시그널의 줄어들고 reverb level을 재현하게 된다. kdistance 가 더 커지면 소리는 더 부드러워지고 더 많은 reverberant를 구현한다. (locsend 의 사용이 요구됨).
kreverbsend — reverb나 reverb2와 같은 오브젝트로 보내어질 시그널의 양을 전달하기 위한 거리와 각도와 함께 요구되어지는 direct signal의 percentage
Examples
asig //여기에 들어올 오디오를 만든후
kdegree line 0, p3, 360
kdistance line 1, p3, 10
a1, a2, a3, a4 locsig asig, kdegree, kdistance, .1
ar1, ar2, ar3, ar4 locsend
ga1 = ga1+ar1
ga2 = ga2+ar2
ga3 = ga3+ar3
ga4 = ga4+ar4
outq a1, a2, a3, a4
endin
instr 99 ; reverb instrument
a1 reverb2 ga1, 2.5, .5
a2 reverb2 ga2, 2.5, .5
a3 reverb2 ga3, 2.5, .5
a4 reverb2 ga4, 2.5, .5
outq a1, a2, a3, a4
ga1=0
ga2=0
ga3=0
ga4=0
위의 예제에서는 시그널 asig가 완전히 원을그리며 전체 길이동안 움직이게 된다. 반면 동시에 그 거리는 듣는사람의 지역에서 점점 멀어지게 된다. locsig 는 시그널을 locsend로 적절한 양을 보내게 된다ㅣ. Locsend의 출력은 global accumulators 로 더해지고 그 global signals 은 reverb units 의 signal로서 사용된다.(분리된 instrument number에서.)
locsig 은 quad 와 stereo panning 에서 유용하며, 2개의 스피커 어디든 소리를 고정시키는대에도 유용하게 사용된다.
아래의 예 참고:
instr 1
a1, a2 locsig asig, p4, p5, .1
ar1, ar2 locsend
ga1=ga1+ar1
ga2=ga2+ar2
outs a1, a
endin
instr 99
; reverb….
endin
score파일의 몇 개의 음들:
;왼쪽 스피커, 그리고 가까이에 놓이는 소리:
i1 0 1 0 1
;오른쪽 스피커, 그리고 멀리 놓이는 소리:
i1 1 1 90 25
;소리가 왼쪽과 오른쪽 스피커 정확하게 중간 위치에. 그리고 중간 거리:
i1 2 1 45 12
e
다음의 예는 단순한 도플러 현상을 나타낸다.
kdistance line 1, p3, 10
kfreq = (ifreq * 340) / (340 + kdistance)
asig oscili iamp, kfreq, 1
kdegree line 0, p3, 360
a1, a2, a3, a4 locsig asig, kdegree, kdistance, .1
ar1, ar2, ar3, ar4 locsend