GEN routine이란.

GEN Routine이란?
Csound는 wavetable systhesis, waveshaping, MIDI note의 값의 배열과 다양한 음악적 응용을 위해 다양한 조사표를 사용한다. 이것을 function- table(f-table)이라 하는데, 이것은 주기적인 wave형태로부터 임의의 다항식까지, 그리고 무작위로 생성된 값등 모두 포함한다. 특별한 자료들은 Csound의 f-table생성자 서브루틴 또는 GEN routine으로부터 만들어진다. Csound는 샘플된 사운드 파일을 table에 적거나, sine파형의 요약, 지정한 지점사이에 선, 또는 곡선그리기, Chevyshev다항식 만들기, window function의 계산, table 내애서 각기 다른 지점을 결정하기, 그리고 무작위로 값을 만들어내기 등의 군들을 포함하고 있다.
F-table이란?
f-table은 하나의GEN routine으로 계산되어지며, Csound가 소리를 생성하는 동안 사용하기 위해 RAM에 저장되는 부동소수점 값들의 배열이다. 이러한 f-table은 전통적으로 Csound score file내에 가입되어지고, 일반적으로2ⁿ, 또는 2ⁿ?¹의 한정된 크기를 가진다. 1024의 갯수만큼의 f-table은 0에서1023까지의 주소로 연속적으로 배열된 자료저장 위치 내에서의 부동 소수점 값을 가진다. 테이블들은 좌표로 위치가 결정된 자료주소들을 가지고 x축을 따라 왼쪽에서부터 오른쪽으로, 그리고 y축을 따라 좌표로 위치가 결정된 실제 저장된 데이터 들을 가지고 수학적인 그레프로 시갓적으로 표시할 수 있다. F-table은 y좌표의 입력을 받았을 때 주어진 주소에 저장된 값을 출력 할 수 있다. Csound에서 f-table은 주기적 혹은 무작위 적으로 테이블들을 한번 검사하는 인덱스 값의 흐름 뿐만 아니라 고립된 인덱스(144개)도 수용한다. 비록 f-table들이 score-file GEN routine에 의해 정의된다 할지라도 Orchestra file조작부호들의 다양성은 인덱스 값들을 만들어내고 테이블 데이타를 읽어들인다.
f-table의 크기가2ⁿ, 또는 2ⁿ?¹로 설정될 지라도, 각각의 f-table의 배열을 위한 공간은 항상 2ⁿ?¹이고, 각각의 테이블의 끝에 확장된 경계지점이 제공된다. 만약 요청된 테이블의 크기가2ⁿ이라면 확장된 경계지점은 f-table의 처음값의 복사본을 포함하기 때문에 2ⁿ?¹이 된다. 이 확장된 경계지점을 정의하는 이유는 Csound의 조작부호가 512값의 테이블을 오직 0에서 511까지의 인덱스들을 보내기 때문이다. 그러나 삽입 조작부호는 삽입값을 index511이후에 계산하기 위해 확장된 경계지점 값을 사용한다. 결과적으노 wrap around lookup조작부호를 삽입하는 것은2ⁿ크기의 f-table들을 검색하는 것이다. 이와같은 작업은 확장된 경계지점이 첫번째 테이블의 값이 되기 때문에 테이블의 양 끝점 사이에 부드럽게 삽입하게 해 준다刊刊刊
F-statements
GEN routine은 함수 또는 F-statement에 의해 score file에 상세히 기록된다. Csound의 score는 수백개의 f-statement를 포함할 수 있고 각각은 많은 변수를 가지고 있다.
표준의 f-statement는 다음과 같다.

f   p1   p2   p3   p4   p5

-p field : p1~p4는 GEN의 특질을 결정한다.
P1: table No. (1~200) * 음수의 p1은 특정시간에 대응하는 p1값을 삭제한다.
     (ex: p     -8      132 는 132비트에서 f-table 8을 지운다. 따라서 RAM을 관리하기 위하여 쓰인다.)
     (ex2: f      0     60 라고 하면 60초 동안 침묵한다.)
p2 : Start time (Action time)
p3 : Function table size
p4 : Gen No. (양수의 p4는 1~1사이의 y축 값으로 압축(generate)한다. 음수값은 오리지날 값을 사용하게 된다.)
p5 ~: GEN에 의해 결정되는 parameter

Leave a Comment.

This site uses Akismet to reduce spam. Learn how your comment data is processed.