i-Statement

-instrument가 특정시간에 정확한 시간동안 action하도록 하기 위해 사용.

p1  Instrument number(1~200까지 허용) 보통 음수아닌수. 소수의 부분은 연속하는 cluster에서 특정한 음들 사이에 tie를 주기위해 첨가된 tag를 제공할 수 있다. 음수는 held note를 끄기 위하여 사용된다.)
p2  Starting time
p3  Beat당 Duration time(보통 양수사용, 음수는 held note를 시작하는데 사용, 0은 연주하지 않고 초기값을 불러낸다.)
p4  instrument에 의해 결정.

-만약  score section내에 어떤 t statement가 있더나 -t flag가 commend라인에 있지 않다면 비트는 초단위로 계산되어진다.

-Starting time 또는 Action time은 한 Section의 시작과 관계가 있고 그것은 time 0 로 할당된다.

-한 section내의 Note statement는 어떤 order내에 위치할 것이다. 오케스트라 파일로 보내지기 전에 명령이 내려지지 않은 score statement는 분류기(Sorter)에 의해 첫번째 과정을 밟는다. 그리고 그것은 p2값에 의해서 다시 명령을 내릴 것이다. 같은 p2값이 적혀있다면 p1에 의해 명령을 받을 것이다. (만약 같은 p1이면 p3에 의해서 )

-note(音)들은 쌓여갈 것이며, 하나의 instrument는 동시다발적으로 많은 note를 연주해 낼 수 있다. (instrument의 데디타 공간의 복사값의 요구는 오케스트라의  로더 (외부 매체로부터 프로그램 등을 주(主)기억 장치에 넣기 위한 루틴)에 의해 다이나믹하게 배분될 것이다.) 각각의 note는 일반적으로  p3 duration이 끝날때 또는, MIDI note odd신호를 받음으로 인하여 꺼질 것이다. 어떤 intsrument는 수정될 수있는데, 그 자체의 duration이 note초기화 동안의 p3값의 변화에 의하거나, linenr unit의 action으로 인해 그 자체가 오래 끌어짐으로 인해서 이다.

-같은 instrument에 여러개의 값을 가질수 있다. 예를들어 다른 피치를 가진 노트를 동시에 연주할 경우등.
ex)단순한 코드가 instrument 10에 3개의 복사값으로 존재하는 경우.
i10.1     0     -1     7.00
i10.2     0     -1     7.04
i10.3     0     -1     7.07

-그리고 i statement는 같은 소리를 내는 note의 예로 가보면, instrument정의가 알맞게 되었다면 새로운 p-field는 진행상 노트의 성격 를 병경하기 위하여 사용될 수있다.
ex)옥타브 높임
i10.1     0     1     8.00
i10.2     0     1     8.04
i10.3     0     1     8.07

-10진법의숫자로 적인 note는 real-time MIDI와 결합하여 사용할 수 없다. 이런 경우에 Instrument는 어떤 음이 지속되는 동안에 monophonic(단선율)일 것이다.

-같은 instrumen의 이전의 존재하던 것과 결합하는 것은 tigoto에 의해 대부분의 초기화를 skip할 것이다. 스코아에 기입된 값을 제외하고. 예를들어. instrument의 opcode를 읽는 모든 테이블은 일반적으로 skip되어진다. 그것의  phase를 내부적으로 저장하는것 처럼. 만약 이것이 갑자기 변화된다면 그것들은 출력에 click을 유발할 것이다.

많은 opcode(delaym reverb와 같은)를 가진 note는 optional초기화를 준비한다. 이것의 특징을 사용하기 위해서는 tival flag를 사용하는것이 좋다. 그러므로 그것들은 tigago jump에 의해 숨겨질 필요가 없다.

f-Statement

-GEN subroutine은 함수 또는 D-statement에 의해 Scorefile에 상세히 기록된다. Csound score는 수백개의 f-statement를 포함할 수 있고, 각각도 많은 변수를 가진다.

-p field (p1~p4는 GEN의 특질을 결정한다.)

p1  Table number(1~200까지 허용) 음수는 테이블을 삭제하기 위하여 사용.
p2  Starting time (Action time)
p3  F-table size (2의 n승 또는 2의 n승+1, 최대값:16777216(2의 24승)
p4  GEN number (양수의 p4s는 -`에서 1사이의 y축값으로 압축. 음수 p4는 재수치화를 금지한다.
p5~  GEN에 의해 결정되는 parameter.

Orchestra Header Statement-2

-strset, pset-

strset   iarg, “stringtest”
pset   con1, con2, con3, …

instrument 초기화나 performance time보다는 Orchestra load time에 초기화를 위한 정확한 global parameter을 따라야 한다.

iarg : 문자와 숫자의 조합 열(string)과 관련되는 숫자 값.

con1, con2… ; MIDI instrument를 위한 preset 값.

1. strset (string set)
; file name과 같은 한 열(string)을 허가하며, 숫자값과 함께 연결된다. optional로 사용된다.

2. pset (preset)
; Orchestra load time에 숫자 정렬을 정의하고 초기화 한다. 이것은 orchestra header statement로 사용되거나, (instrument 0과 같이) instrument안에사용될 것이다. instrument안에 정의되는것은, i-time이나 수행 작업의 ‘부분’으로 뿐만 아니라, 하나의 statement는 instrument마다 정의 될 수 있다. instrument가 그것이 단지 p1, p2값을 받은 미디와, event, p3, p4값으로 부터 유발되어 질때, 실제 reset값을 받을것이다.

Example
strset   10,   “asound.wav”
이것은 Orchestra header에서 쓰여지며 이것은 sound file ‘sound.wav’를 호출하는것을 어디에서건 대신하기 위하여 10의 숫자값을 허용한다.

      instr 1
      pset   0,   0,   3,   4,   5,   6   ;pfield substitutes
a1   oscil   10000,   440,   p6

이것은 instrument내에서 pset이 사용되어 지는것을 보여준다.