GEN 04

GEN 04  (Waveshaping Amplitude Normalization)
– 이미 존재하고 있는 table의 내용을 검사하고 normalizing(표준화)하는 기능.  GEN04의 하부루틴은 waveshaping 함수를 분석하고 상보적인 증폭 표준화 f-table 을 완성함으로써 작업을 마칠 수 있는 방법을 제공한다. Waveshaping f-table과 이에 상보적이고 f-table을 표준화 하는 결과를 배로 늘림으로 일정한 최고 증폭값을 갖는 waveshaped신호를 갖는다. 그러고 나면 증폭 범위는 그 결과로 나타난 신호에 부과된다. 이 기술은 비선형 외곡이 증폭과 무관한 paradoxical 소리를 만들어 내는데 사용할 수 있다. 예를들어 역으로 연관된 sweep와 증폭 범위는 증폭이 감소됨에 따라 더 많이 왜곡되는 소리를 만들수도 있다.
– 형식
f   #   time   size   4   source#   sourcemode
– size : 반드시2ⁿ+¹((source#-1)/2)+1
– sourcemode : 0 = source를 왼쪽에서 오른쪽으로 스캔.
                   0≠양극(bipolar) spectrum을 가지는 소스(보통 1을 쓴다.)→중간지점(이분점)에서 양극으로 스캔.

f 26        0        1025        7        -1 256 -1 513 1 256 1  ;waveshaping function
f 27        0        513        4        26 1        ; amp normalizing function

GEN03, GEN13, GEN14, GEN15

GEN03 , GEN13, GEN14, GEN15(Wave shaping Function Tables)
– 형식
1. GEN 03
F   #   time   size   3   xval1   xval2   c0   c1   c2      cn
2. GEN 13
F   #   time   size   13   xint   xamp   h0   h1   h2      hn
3. GEN 14
F   #   time   size   14   xint   xamp   h0   h1   h2      hn
4. GEN 15
  F   #   time   size   15   xint   xamp   h0   phs0   h1   phs1   h2   phs2      

– size : 2ⁿ+¹을 사용하는것이 좋다. 왜냐하면 테이블의 중간위치에서 시작점을 갖는 양극 구조를 갖기 때문이다.
– xval1,xval2 : x좌표의 왼쪽 오른쪽 값.
– c0, c1, c2, …, cn : c0+c1x+c2x²+ + cnxⁿ
                      *정수 음수real number, 0이 올수 없고 144이상 허용한다.
– xint : x죄표의 왼쪽 오른쪽 값, GEN03과 다른점은 값을 하나 주고 음수와 양수 값을 동시에 쓴다는 것이다. 즉, +xint, -xint
– xamp : 증폭 scaling 요소. 이미 정해진(Chebyshev) 스펙트럼을 따르는 sinewave의 amplitude scaling factor.
– h0, h1, h2, hn : partial 0, 1, 2, ? 상대강도는 sinewave amplitude가 xamp*int(size/2)/xint에 의해 waveshaping
– Chebyshev다항식 : Tn(x)=2xTn-1(x)-Tn-2(x), n>2
– phs0, phs1, phs2 : harmonics h0, h1? 의해 요구된 만큼 위상변화 한다. 그요구값.
– 이 4개의GEN 은 wave shaping instrument에서 효과적으로 쓰이는 다항함수를 만든다. 이중에서 GEN 03은 p7 이상에서 지정된 계수를 갖는 좌(p5), 우(p6) 값에 대한 다항 함수를 만든다. 반면, 나머지 3개는 Chebyshev다항식으로 알려진 특별한 형태의 함수를 만든다. Chebychev함수는 waveshaping instrument에서 사인값을 정수편도함수 값으로 나눈다. GEN 13, 14의 f-statement는 첫번째와 두번째의 Chebychev함수를 각각 만드는 정수편도 함수의 상대강도(index가 harmonics와 유사하다. Flag가 값이 증가할수록 배가 된다.)를 결정한다. GEN 15를 이용해 각각의 정수구간을 규정함으로써, phase-quadrature instrument에서 사용되는 두개의 f-table을 만든다.

정리해보면,
– GEN03 : 구간을 정하여 그 구간내의x의 다항식(위에 적어 놓은 다항식) 값을 구한 후 계수를 열거하여 f-table에 저장한다.  Table, tablei 등이 유용하게 쓰인다.
– GEN 13, 14 :  이미 Chevyshev다항식으로 부터 정의된 스펙트럼을 가진 harmonics partial의 sinewave로부터 waveshaping.  여러 table을 waveshaping하여 흥미로운 결과를 유발시킬 수 있다.
– GEN 15 : 90도로 위상변화한다. 위상변화하여 sinewave상에서 wave shaping을 수행하고, 복합적인 소리를 만들거나 table index를 제공하는 샘플된 소리를 만들 수 있다.

; waveshaping function: GEN13 – odd harmonics
f        28        0        4097        13        1 1 1 0 .8 0 .5 0 .2
; amp normalizing function
f        280        0        2049        4        28 1
; waveshaping function: GEN14 – same harmonics
f        29        0        4097        14        1 1 1 0 .8 0 .5 0 .2
; amp normalizing function
f        290        0        2049        4        29 1
; waveshaping function: GEN14 – even harmonics
f        30        0        4097        14        1 1 0 1 0 .6 0 .4 0 .1
; amp normalizing function
f        300        0        2049        4        30 1
; waveshaping function: GEN 13 – over 20 harmonics
f        31        0        4097        13        1 1 1 .666 .5 .3 0 0 .3 0 .2 .25 .33 0 0 .1 0 .45 .33 .2 .1 .1 .15
; amp normalizing function
f        310        0        2049        4        31 1
; signification
f 32        0        8193        13  1 1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 1

GEN 02, 17


GEN02, GEN 17
– 형식 :
f   #   time   size   2   V1   V2   V3
– size : GEN01과 같음
– Vn : table 공간으로 즉시 값을 복사. 값들의 크기는 아래 설명할 것이다.

– GEN02는 f-statement에서 매개변수를 취하여 테이블로직접 옮긴다. 대부분의 실제 적용에서 표준화는 원하는 바와 다르고, f-statement의 p4에서는 凍2(2가 아니다. 그 이유는 음수로 했을 경우에 실제의 값을 읽는다. GEN17의 경우도 마찬가지이다. )값이사용된다. Csound의 이전버전이 주어진 f-statement에서 150개의 매개변수만(Vn)을 허용했지만, 새로운 버전은 최소 1024개의 제한을 두거나 이용 가능한 RAM에 의해서만 지시될 수 있는 매개변수 한계를 수용하는 메모리를 능동적으로 찾도록 한다.

– GEN02의 서브루틴은 많은 알고리즘적 적용에 잘 이용된다. 예를들어 note 구간의 pitch-class세트들이 같은 크기에 같은 무게를 지니는 GEN02테이블은 테이블 길이에 상응하는 증폭 argument를 갖는 k-rate??randh(random harmonies)조작부호에 의해 무작위 적으로 index될 수 있다. Random index는 멜로디 생성기에서 random rhythm과 pitch-class값을 만들어 낸다. 12tone 열 처럼 입력된 데이터를 갖는 GEN02 table은 선형으로 검색하며, 알고리즘적 구성변수를 제공한다.
– GEN17역시 매개변수 값을 직접 테이블에 기록한다. 그러나 GEN17은 단계별 함수를 만들어 내면서 수많은 table point를 위해 이 변수 값들을 보류하여 갖고 있다. GEN17 table은 MIDI note숫자들을 등록숫자나 샘플된 소리의 f-table숫자로 배치하기에 대단히 유용하다.

f 38        0        16        -2        2 1 9 10 5 3 4 0 8 7 6 11
f 39        0        128        -17        0 1 12 2 24 3 36 4 48 5 60 6 72 7 84 8 96 9 108 10 120 11