locsig

locsig

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
        

diskin

diskin

Description
audio data를 외부로부터 읽어와서 pitch를 변경할 수 있다.

Syntax
ar1 [,ar2] [, ar3] [, ar4] diskin    ifilcod, kpitch [, iskiptim] [, iwraparound] [, iformat] [, iskipinit]

Initialization
ifilcod – 정수 또는 character-문자열은 source soundfile name. 정수는 soundin.filcod ; 하나의 character-문자열(쌍 따옴표 내에, spaces 허용) 은 filename, 파일경로를 사용할 수 있는데, 경로를 써주지 않으면 현재 directory내에 파일이 있어야 함. 또는 SSDIR또는, SFDIR에 따라서.

iskptim (optional) – 사운드 파일에서 스킵 될 시간(초단위). 기본값은 0.

iformat (optional) – 파일 포맷에 대한 설정:
•        1 = 8-bit signed char (high-order 8 bits of a 16-bit integer)
•        2 = 8-bit A-law bytes
•        3 = 8-bit U-law bytes
•        4 = 16-bit short integers
•        5 = 32-bit long integers
•        6 = 32-bit floats

iwraparound – 1 = on, 0 = off (looping키고 끄기)

iskipinit  – 0이 아니면 모든 초기화(initialization)를 끈다. (4_23f13 와 csound5의 새 기능)
만약 iformat = 0 이면 soundfile header로부터 읽어들인다. 헤더가 없으면 command-line flag -o 에서 읽어들임. 기본값은 0.
Performance
kpitch – 어떤 숫자든 가능. 음수의 숫자는 뒤로 플레이한다. 주어진 숫자는 pitch ratio이다, where:
•        1 = 기본 pitch
•        2 = 1 octave 높게 (그러나 속도도 빨라짐)
•        3 = 2 octaves, (숫자는 계속 높아질수있음).
•        .5 = 1 octave 낮게
•        .25 = 2 octaves 낮게, etc.
•        -1 = 기본 pitch로 뒤로연주
•        -2 = 1 octave 높게 backwards, etc.
diskin 은 soundin과 거의 동일하지만 pitch를 변경할수 있다는점에서 다르다.

Note to Windows users
Windows users들은 일반적으로 절대경로 설정시에back-slashes, “”, 를 사용하는데, 예에서 처럼 Windows user가 만약 “c:musicsamplesloop001.wav”. 라고 하면 문제가 발생할수 있다.
따라서 다음과 같이 해야.
•        Use forward slashes: c:/music/samples/loop001.wav
•        Use back-slash special characters, “\”: c:\music\samples\loop001.wav

Example 103. Example of the diskin opcode.
/* diskin.orc */
; Initialize the global variables.
sr = 44100
kr = 44100
ksmps = 1
nchnls = 1

; Instrument #1 – play an audio file.
instr 1
  ; Play the audio file backwards.
  asig diskin “beats.wav”, -1
  out asig
endin
/* diskin.orc */

        
/* diskin.sco */
; Play Instrument #1, the audio file, for three seconds.
i 1 0 3
e
/* diskin.sco */

GEN 25

Description
breakpoint형태의 지수함수 곡선의 요소로부터 function을 만든다.

Syntax
f # time size 25 x1 y1 x2 y2 x3 …

Initialization
size – 테이블 크기. 2의 자승 또는 2의 자승+1(f statement참고)

x1, x2, x3, etc. — table안에서 뒤따르는 y 값에 이르기 위한 x값.(반드시 증가하는 값이어야 함 x1Note
p4 가 양수이면 functions은 post-normalized된다. (generation후에 최대 절대값 1로 rescale됨)
음수이면 rescale하지않는다.

——————————————–

참고 : GEN 27 : 25와 기능은 같으나, 25는 지수곡선, 27은 직선.

참고 또한가지 : Breakpoint란? – 프로그래밍에서는 주로 stop또는 pause, 또는 구획을 이루는 지점으로 사용이 됩니다.
예를들어 envelope에서 어택이후 그레픽 상승이 1초간 지속되었다 치고 1초후에 decay가 시작된다고 가정해보면 1초가 breakpoint가 된다. 라고 말할수도 있습니다.