harmon — Audio input을 분석하고 화성을 입힌다.
Syntax
ar harmon asig, kestfrq, kmaxvar, kgenfreq1, kgenfreq2,
imode, iminfrq, iprd
Initialization
imode — kgenfreq1, kgenfreq2.에서 들어오는 첨가되어질 frequency에 내삽의 방식을 선택하는 기능.
0: 입력값이 audio signal analyzed frequency 에 관계된 비율로 실행
1: 입력값이 frequency에 명시된 Hz로 실행.
iminfrq – 입력 오디오의 가장 낮게 위치하는 frequency 값(in Hz) of the audio input. 이 값이 입력의 얼마나 많은 부분이 분석을 위해 저장될 것인지를 결정하고 internal pitch tracker 에 더 낮은 영역으로 설정한다.
iprd — 분석할 주기(초seconds). internal pitch analysis는 시간소비 값이라 볼 수 있으므로 입력값은 전형적으로 20~50ms값 정도로 분석된다.
Performance
kestfrq — 입력의 예상된(원하는) frequency.
kmaxvar — 최대 변화값
kgenfreq1 — first generated frequency.
kgenfreq2 — second generated frequency.
이 유닛은 화성을 입히는 기능을 하며, 입력되는 오디오와 같은값의 amplitude와 spectrum에 두 개의 frequency를 첨가할 수 있다. 입력오디오 파일의 분석은 2개의 요소로 수행되는데, 입력되는 오디오 파일의 frequency에서 원하는 frequency로 바꾸기를 원할 경우에 입력되는 frequency kestfrq (in Hz), 그리고 그 frequency값에 대한 maximum 변화값 kmaxvar . 이는 분석의 양을 결정한다. 만약 실제오디오 파일이 가진 input frequency 가 주어지면, 가장 최근의 pulse shape가 요구된 프리퀀시들에 또 다른 화성을 만들어 내기 위하여 사용된다.
3개의 frequency 입력이score file 또는 MIDI source로 부터 사용될 수 있다.
첫 번째 값은 일정하지 않은 유형을 감안한 변화하는 파라메터를 가진frequency; 0으로 주어지면 silence를 초래.
두번째, 세 번째 값은 출력 frequency를 제어한다. 둘 다 0일경 우에는 silence를 초래, 둘 중 하나만 0일 경우에는 0이 아닌 것만 출력. 요구된 frequency 가 입력된 오디오의 값보다 크면 겹쳐지는 출력pulse때문에 또 다른 계산이 요구되기 때문에, 이 부분이 제한적이며, 또 다른 한계로는 단 하나의 음(frequency)만 입력 값보다 높게 설정될 수 있다 것.
이 유닛은 background chorus effect에 쓰이거나 on demand, 오디오 파일의 피치가 불균형하거나, 거친 경우 그것을 바로잡기 위하여 사용되곤 한다. 입력, 출력간의 delay 는 없으며 출력은 단지 만들어진 부분만 (입력된 오디오가 동시에 나오는 것이 아닌) 허용된다.
Examples
/* harmon.orc */
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1
; Instrument #1.
instr 1
; 입력오디오의 frequency 설정
inote = 440
; 입력 오디오
avco vco 20000, inote, 1
kestfrq = inote
kmaxvar = 200
; 입력 오디오값에 3 semitones을 위아래로 첨가
kgenfreq1 = inote * semitone(3)
kgenfreq2 = inote * semitone(-3)
imode = 1
iminfrq = inote – 200
iprd = 0.1
; harmon의 사용
a1 harmon avco, kestfrq, kmaxvar, kgenfreq1, kgenfreq2,
imode, iminfrq, iprd
out a1
endin
/* harmon.orc */
/* harmon.sco */
; sine wave
f 1 0 16384 10 1
; Instrument #1 을 2초간 재생
i 1 0 2
e
/* harmon.sco */