Obj. groove~, play~ for Backward sample playback

groove~ : Variable-rate looping sample playback

Input
-signal: 왼쪽 inlet: buffer~.로부터 오는 사운드의 재생을 위한 샘플의 increment값. increment값 이 0이면, 재생을 멈추고, 1은 보통의 속도로 재생하며, 2는 두배의 속도로 재생한다. .5는 두배 느리게 재생. 또한 -1의 값은 뒤에서 앞으로 보통의 속도로 재생한다. increment값은 다른 속도 또는 vibrato에 변화를 준다. groove~ object는 buffer~의 sampling rate를 사용하여 재생 속도를 결정한다.  
만약에 loop 의 시작과 끝이 정의되고 looping이 켜지면, 샘플의 재생이 loop의 끝에 도달했을 때, 샘플 position은 loop시작으로 설정되고 재생은 현재 샘플 increment에서 계속된다.

                가운데 inlet: loop 시작 값 (milliseconds)

                오른쪽 inlet: loop 끝 값 (milliseconds)

-int or float: 왼쪽 inlet: sample의 재생위치(milliseconds) 0 은 맨 처음부터 시작하게 한다.

                가운데 inlet: loop 시작 값 (milliseconds). signal이 들어왔을 경우에는 int와 float값은 무시된다.

                오른쪽 inlet: loop 끝 값 (milliseconds) signal이 들어왔을 경우에는 int와 float값은 무시된다.

-loop:  1의 숫자로 looping을 키고 0으로 끈다. 기본값은 off.

-loopinterp: 1의 숫자는 시작, 끝 값 사이의 값을 내삽한다. 0은 off, 기본값도 off.

-reset:  loop의 시작과 끝값을 지운다.

-set: symbol값과 함께 쓰여서 groove~에서 쓰일 buffer~ 에 포함되어있는 sample을 변경한다.

-setloop:  두개의 숫자와 함께 쓰여서 loop의 시작, 끝값을 설정한다. (milliseconds)

-startloop:  groove~ 가 loop의 시작값에서 재생을 시작하게 한다. 만약 loop가 지정되어있지 않으면, groove~ 는 sample의 처음 지점에서 재생을 시작한다.

– (mouse) :  object를 Double-clicking 하면 sample 의 display window를 연다.

Arguments
-symbol: 의무적으로 써야 하며 groove~에서 재생할 buffer~에 있는 sample의 이름을 적어준다.  

-int:  Optional값으로 두번째 argument는 출력 채널의 수: 1, 2, 4. 기본값은 1. 만약 play되는 buffer~ 가 더 적은 channels을 가지면 추가적인 channels이 0 signal을 출력한다. 만약 buffer~가 더 많은channels을 가지면, channels은 mix된다.

Output
-signal:  왼쪽 outlet: 샘플의 출력. 만약groove~가 2개 또는 4개의 출력 채널을 가지면, 왼쪽 outlet은 샘플의 왼쪽 channel을 재생한다.

                가운데 outlets: 샘플의 출력. 만약groove~가 2개 또는 4개의 출력 채널을 가지면, 가운데 outlets은 샘플의 왼쪽 channel이외의 것을 재생한다.

                오른쪽 outlet: Sync 출력. Sample의 loop portion동안에, 이 outlet은 0(loop의 시작)에서부터 1까지(loop 끝)의 signal을 출력한다.

===============================================
play~ : Position-based sample playback

Input
-signal: 왼쪽 inlet: 재생할 buffer~의 샘플 메모리로의 position (milliseconds). 만약 signal이 증가하는 값이면(ex: 0, 1000)play는 샘플을 앞으로 재생, 그리고 감소하면(ex:1000,0) 뒤로 재생한다. 만약 같은 값으로 남아있으면 play~는 같은 sample을 반복적으로 재생하며 샘플 값의 DC offset과 동등하다.

-set: symbol값과 함께 쓰여서 play~ 에서 쓰일 buffer~ 에 포함되어있는 sample을 변경한다.

Arguments
-symbol: 의무적으로 써야 하며 play~ 에서 재생할 buffer~에 있는 sample의 이름을 적어준다.

-int: Optional값으로 두번째 argument는 출력 채널의 수: 1, 2, 4. 기본값은 1. 만약 play되는 buffer~ 가 더 적은 channels을 가지면 추가적인 channels이 0 signal을 출력한다. 만약 buffer~가 더 많은channels을 가지면, channels은 mix된다.

Output
-signal: buffer~부터 읽은 샘플의 출력. play~가 만약에 2개 또는 4개의 출력 채널을 가지면, 왼쪽 outlet의 signal은 왼쪽 채널을, 그리고 다른 outlet은 그에 상응하는 다른 채널의 signal을 출력한다.  

Obj. waveform~ for buffer~ viewer and editor

waveform~ : buffer~ viewer and editor

Input
-float : 왼쪽t inlet: 시작시간-위의 그림에서display start ms-.이 값을 바꾸면 offset하거나 zoom한다. 따라서 buffer~에 지정된 시간이 display의 왼쪽 가장자리에 정렬된다. 기본값 0 (display 는 보여질 wave의 buffer~의 시작에서 시작한다.)
두번째 inlet: display길이-위의 그림에서display start ms-기본값은 buffer~의 길이.
세번째 inlet: 선택된 범위의 시작값-위의 그림에서select start ms-
네번째 inlet: 선택된 범위의 끝값-위의 그림에서select end ms-

-list : 5번째 inlet: 5번째inlet–위의 그림에서select all-은link input을 제공하여 어떤 숫자가 시작, 길이, select start, select end 값을 공유할 수 있게 한다. 이 값이 변화할 때마다 waveform~은 오른쪽 outlet으로 리스트로 전환하여 보낸다. 만약 이 outlet이 또 다른 waveform~과 연결되어있다면 그것은 list를 받아서 update된다. 이런 순환을 완성하기 위하여 두 번째 waveform~의 리스트 출력이 첫 번째의 input과 연결될 수 있다. 그때 둘 중 하나의 변화가 다른 것에 반영이 된다. 이런 기능은 waveform~들이 같은 buffer~의 다른 채널로 보는 것을 가능하게 해준다.. waveform~ object들은 이런 방식으로 서로 연결외서 순환적인 chain구조를 가질 수 있다(바로 아래 그림 참조). 이런 경우에 waveform~은 feedback을 예방한다.

-bpm:  1~2개의 숫자를 요구하는 bpm은 tempo와 bar당 beats의 수를 지정한다. 첫 번째argument 는 tempo를 분당 beats의 비율로 set한다 (기본값 120) 두 번째 argument는 optional로서, bar당 beats의 수를 지정한다. (기본값4) bpm message는 자동적으로 display time unit을 bpm으로 바꾼다. Time값들은 bars와 beats에서 소수점 값으로 보여지는 beat의 구획값과 함께 보여진다. offset message는 적용될 buffer~의 내용과 함께 metric 정보를 정열시키는데에 유용하게 쓰일수 있다. setbpm  message로 현재의 selection에 맞추어 tempo를 계산한다.

-brgb: brgb의 메시지는 0~255사이의 3개 숫자가 뒤따라오며, RGB values를 설정하여 배경색을 지정해준다.

-clipdraw : 1의 숫자와 함께 쓰이는 clipdraw은 draw mode에서 edited되고 있는 값들을 display범위에 고정(clip)되게 한다. (vzoom message에 의해 결정됨). 0의 숫자는 clip을 멈춘다. 기본값0

-constrain: 정수와 함께 쓰임 (토글 변경 값으로) 그 효과는 현재의 mode에 따라 변한다(mode message에 의해 결정되는) 그러나 일반적으로 마우스가 움직이는 동안에 shift key를 누르는 것과 같은 효과가 난다. 예를 들어 select mode를 클릭하여 선택 값들이 증가 하는 것으로 판단되면(선택 범위의 가장 가까운 endpoint설정) move mode에 있는buffer~ navigation은 zoom 없이 수평적인 panning으로 제한된다. ;loop mode에 있는 선택 길이는 수직적인 마우스 이동과 상관없이 지속된다. 0이 아닌 수가 오면 제한되어있는 상황을 다시 해제한다. 0이나 no argument는 이런 제한을 불가능하게 하며, 기본값으로 전환된다. (역주- 한국말로 하려니 무지하게 힘듭니다. Mode에 따라서 마우스 이동의 수직적, 수평적 제한을 거는 것이니 직접 실험을 통해서 해보시길 바래요.)

-crop : date를 다듬는 작용. Buffer~의 Size를 selection length로 다시 설정, selected samples로 복사, 그리고 그 결과를 기본설정으로 보여준다. buffer~ 는 선택 범위 이외에는 지워진다. 이것은 undone될수 없으므로 주의 요.

-frgb: frgb는 0~255사이의 값. Wave의 색깔 조정.

-grid : grid lines의 설정. 정수, 소수 사용. 예를 들어 grid 1000은 grid lines을1000 milliseconds apart로 설정한다.

-labels:  정수와 함께 쓰임. 사용가능 (1), 사용불가능 (0) display의 top부분의 시간단위를 보이게 할 것인가 아닌가의 설정

-mode:  symbol과 함께 쓰이며 어떻게 mouse에 반응할 것인지를 설정. none, select, loop,
move, draw. 메시지와 함께 쓰임
-none : “display only” mode, mouse의 clicking, dragging모두 영향을 미치지 않음 mode message에 아무 argument가 없으면 똑같이 mode none을 함과 같다.
-select:  default display mode. Cursor는 I-beam mode로 나타남 click, drag하여 범위설정 가능.
-loop:  loop selection style수직적인 마우스이동 (selection length를 늘이고 줄이는데 사용) groove~ object와 잘 사용됨. loop mode 가 선택되면 display영역 안의 커서의 이동은 double I-beam.으로 변화된다. (double I-beam이 무엇이냐 하면요. 맨 위 그림에 보면 waveform display창 왼쪽에 4개의 selction이 있지요. 그 중에 두 번째입니다. 첫 번째는 그냥 I-beam이 구요
-move: move display mode설정. waveform~ view.를 조정. 수직적인 마우스 이동은 zoom in/out해주며, 수평적인 이동은 x축의 시간범위를 scroll해준다. 그래프의 한 점을 클릭하면 마우스 키가 눌린 상태에서 놓여질 때까지, 나머지 마우스의 event가 중앙지점에 높이게 한다. 이것은 한 지점을 잡아서 zoom in하고 계속적으로 중앙으로 맞추게 조절하지 않아도 되도록 해준다.
-draw: draw display mode. 적용되는 buffer~의 값을 수정. Pencil tool이용한다. Undone이 사용될 수 없다.

-mouseoutput:  symbol 과 같이 쓰임, selection start 와 end값이 마우스 이동의 응답에서 보내졌을 때 결정됨. Selection start와 end (outlets 3 과 4)에만 영향을 미침.Mouse information은 언제나 outlet 5에서 오며 이것은 mouseoutput mode와 관계가 없다. 유효한 symbol arguments는none, down, up, downup, continuous 이다.
-none : Selection start 와 end 값이 마우스 이동에 응답하여 보내지지 않음. no argument도 같은 효과.
-down:  현재의 selection start 과 end 값들이 보내짐(outlets 3 과 4로부터) waveform의 안을 클릭했을 때만.
-up : selection start와 end 가 마우스 버튼을 놓았을 때에만 보내짐(wavrform~안을 클릭한 후)
-downup: selection start와 end 이 waveform안을 클릭했을 때와 마우스 버튼을 놓았을 때 둘 다 보내짐.
-continuous: selection start와 end 가 값이 바뀔 때마다 클릭, 버튼을 놓았을 때, 그리고 드레그했을 때 보내짐.

-normalize:  소수와 함께 쓰임 사용되는 buffer~안의 샘플값을 scale함. 따라서 가장 높은 peak값이 argument에서 주어진 값과 일치한다. 이것은 오디오의 amplification 또는 attenuation하지만 두 경우 모두 모든 buffer~값이 scale된다. undone될수 없음.

-norulerclick:  정수와 함께 쓰임, waveform~ display 의 ruler영역 클릭과 드레깅의 사용불가능 (1)과 사용가능 (0)설정. 기본값은 ‘사용가능’

-offset : 소수의 값과 함께 쓰임. 모든 labels과 시간 marking이 ms의 수에 의해 이동된다. Snap behavior 또한 이동.  offset 0으로 하면 원래의 위치로 돌아옴.

-rgb2 : 3개의 숫자와 함께 쓰여서 직사각형 selection 범위 영역의 색깔 설정.

-rgb3: 3개의 숫자와 함께 쓰여서 label영역과 오브젝트 직사각형 주위의 frame color설정

-rgb4: 3개의 숫자와 함께 쓰여서 label text color 설정

-rgb5: 3개의 숫자와 함께 쓰여서 label background color 설정

-rgb6: 3개의 숫자와 함께 쓰여서 그 color을 tickmarks와 measurement lines에 적용

-rgb7: 3개의 숫자와 함께 selection 직사각형 “OpColor”. 그 selection 직사각형은 rgb2 에의해서 바탕색이 그려지나, transfer mode에서 rgb7에서 OpColor와 함께 “blend”로 set한다. rgb2 와 rgb7에서 각각 다른 색을 설정하여 실험해 보면 쉬움.

-set : 심볼이나 정수(buffer~의 이름)과 함께 쓰임. Buffer~와 연결시켜줌. 정수값은 optional로서 채널 offset을 설정하여 멀티채널 buffer~를 볼수있게 한다. Buffer~에 연결되는 이름은 패치에 저장되지 않는다.

-setbpm:  arguments없이 쓰임. waveform~ 이 tempo를 selection범위에 맞추어 계산하게 한다. unit bpm 이라는 메시지를 사용하면 display time 유닛을 자동적으로 bpm으로 바꾸어준다. selection범위가 어떤 tempo가 선택되면 selection 범위는 bar의 눈금에 맞게 설정하며. Bar의 값 당 현재의 beat수로 유지하고, 그것에 만족하는 현재의 tempo에 가장 가까운 값을 계속 찾는다. 적당한 tempo가 선택되면 offset 파라메터가 적용되어서 selection range의 시작시간은 정확하게 bar line에 맞아 떨어지게 된다.
그 결과 selection 영역은 호환되는 tempo에 의해 정확하게 frame이 맞추어진다. 이것을 사용하면 오디오 섹션에서 시간 label과 tick 마크를 빠르게 설정한다. 가능한 정확하게 bar를 선택한 후에 setbpm메시지를 보내고 snap에서 label로 돌아오는 것은, metric값으로 즉각적인 그 선택범위의 quantization를 하도록 한다. 만약 적용될 buffer~가 logical한 수의 beats또는 bars로 이미 잘려진 오디오 조각을 가지고 있다면, 가장 좋은 technique은 그 buffer~의 전채 범위를 선택하는 것이다. (setbpm을 통해서)만약  buffer~ 가 정확하게 잘렸다면 그것에 적용된 tempo는 꽤 정확할것이며, 즉시 tempo가  metric 정보로 나타난다. 새로운tempo가 계산될 때 그것은 가장 오른쪽 outlet으로부터 보내져서 (link outlet),어떤 연결된 waveform~ objects를 update하고 다른 주면 패치에 의해 요구되는 어떤 방식에서든 사용된다.

-snap:  심볼과 쓰임.selection의 start 과 end 값들이 자동적으로 snap mode에 의해 정의된 buffer~의 특정 point로 움직이게 한다. none, grid, zero.와 함께 쓰임
-none : snap의 자유로운 selection을 못하도록한다. (기본값)
-grid: selection start 와end points 가 수직적인 grid lines에 맞게 snap되도록 함.grid line의 spacing이 시간 측정 유닛과 offset값에 의해 영향을 받기 때문에, 이것 또한 그 파라메터의 영향을 받는다.
-tick:  selection start 과 end 이 ticks 메시지에 의해 지정된 tick divisions으로 snap한다.
-zero: selection을 일정한 grid로 snap하지않고 buffer~ date의 zero-crossing을 검색한다. loop 와 edit points에 유용함.

-ticks: 숫자값과 함께 쓰여서 grid 라인 사이에 올 tick의 수를 결정. 기본값은 8. 0이나 argument없이 쓰이면 tick mark사용불가.

-undo: waveform~ selection에만 쓰임 selection start와 end points을 이전값으로 되돌림.

-unit:  심볼과 함께 쓰임 time unit을 설정 ms, samples, phase, bpm.
-ms:  milliseconds.(기본값)
-samples : 시간을 buffer~의 sample position으로 보여지게 함. 첫번째 샘플은 offset으로 display가 이동되지 않았다면 0이 된다.
-phase : buffer내의 phase에 따라 보여짐. 0은 첫번째 샘플. 1은 마지막 샘플. phasor~ 와 wave~와 쓰일 때 유용.
-bpm:  분당beats.

-vlabels : 정수와 함께 쓰임. y축의 labels이 display의 가장 오른쪽 가장자리에 오도록 함. (0으로 설정하면 사용불가).

-voffset:  소수와 함께 쓰여서 y축 offset. 0으로 하면 x축이 중간에 오도록 함(기본값)

-vticks : 정수와 함께 쓰여 y축에 tick마크를 display의 오른쪽, 왼쪽 가장자리에 오도록 함 (0으로 설정하면 사용불가

-vzoom:  소수와 함께 쓰여서 y축 scaling함

Inspector
Inspector 를 사용할수있다. 만약 window menu에서‘Show Floating Inspector ‘를 선택하여 floating inspector를 하게 하면 어떤 scope를 선택하든 scope~ Inspector는 floating window에서 보여진다. 어떤 object를 선택하서나 Get Info를 선택하여 볼수도 있다. scope~ Inspector는 위에서 정의한 massege들(snap, grid, tempo, setbpm, ticks, labels, vlabels, vticks, Edit Mode pull-down menu, Mouse Output pull-down menu, Color pull-down menu, Revert button)을 가능하게 해준다

Arguments
없음

Output
–float :
Out 1st outlet: waveform의 start time(ms)
Out 2nd outlet: display 길이(ms)
Out 3rd outlet: selection범위의 start time(ms)
Out 4th outlet: selection범위의 end time (ms)
–list :
Out 5th outlet: mouse outlet(mouse의 click/drag/release cycle정보를 보냄, list는 3개의 숫자로 구성(mouse의 x축 0~1 scale, y축 floating point. 마우스 event가 현재 위치한 자리.
Out 6th outlet: 다음을 포함한 list-display start time, display 길이, selection start time, selection end time,

Examples


Obj. scope~ for Analysis of a signal


scope~ : Signal oscilloscope
Input
-signal – In left inlet: 입력 시그널이 X축에 보여짐
         – In right inlet: 입력시그널이 y축에 보여짐
만약 시그널 오브젝트가 양쪽에 연결되어있으면 scope~ 는 x-y mode로 작동되며. 그 좌표는 x축은 왼쪽 인렛으로 들어오는 신호값에 대응되고, y축(세로)은 오른쪽에 들어오는 신호값에 대응되면서 그레프를 그린다. 만약 두 신호가 phase안에서 같다면, 직선이 왼쪽에서 오른쪽으로 증가하는 것이 보여질 것이다. 만약 두개의 신호가 위상phase밖에서 같거나 180도 라면, 직선은 왼쪽에서 오른쪽으로 하강한다.

-int – In left inlet: sample의 수. 작은값을 입력할수록 이미지를 크게 확장하지만 screen 상에서 스크롤은 더 빠르게 일어난다. 최소값은 2. 최대값은 8092이다. 임의값은 256. X 모드 Y 모드에서(같이 쓰이지 않는경우), 주기 이내에서 보여진 최대/최소값이 사용된다. X-Y 모드에서(같이 쓰이는경우), 주기로부터 보여지는 샘플이 사용된다.

      – In right inlet: display buffer의 크기. 이것은 scope~가 새로운 정보와 그 정보의 scaling을 다시 보여주는 비율을 조절한다. 만약 buffer size 가 더 클수록 신호의 이미지는 스크린에 더 오래 남아있고 압축되어 보인다. buffer size가 작을수록 신호의 이미지는 refresh되기 이전까지 스크린에 더 짧게 남아있고 확장되어 보인다. 이것은 아마도 display buffer 요소당 샘플들과 display buffer size controls가 같은 일을 하지만, 이것들은 섬세하게 다른 효과를 가져온다. 이것은 양쪽 조절을 개인이 실험하면서 최적의 파라메터를 찾아야 한다.

-brgb : brgb의 메시지는 0~255사이의 3개 숫자가 뒤따라오며, RGB values를 설정하여 배경색을 지정해준다. 임의의 값은 ‘brgb 135 135 135.’

-bufsize : bufsize메시지는 숫자가 뒤따라오며, buffer안에 저장될 샘플의 수를 바꾸어 준다.

-drawstyle : drawstyle는 0이 아닌 수와 함께 쓰이며 drawing style을 바꾼다, 임의값은 off

-frgb : frgb는 0~255사이의 값. Wave의 색깔 조정. 임의의 값은 102 255 51.

-range : 두개의 수와 함께 오며(소수, 정수 둘다 가능) amplitude의 최소/최대값을 설정한다. 임의값은 -1, 1

-delay : 숫자와 함께 오며 scope~가 값을 처리하기 시작하기 이전에 딜레이할 ms값을 지정해준다. 0이 아닌값이 오면 trigger상태(trigger message와 함께 쓰여서)에서 신호가 들어오기까지 기다려주는 효과를 준다. 임의값은 0

-trigger : trigger mode 설정. trigger 1 은 trigger level 아래의 상태로부터 같은 상태나 그 위로 올라가도록 upward trigger로 설정하게 되며. Trigger 2 는 반대이로 downward trigger이다. 임의값은 0

-triglevel : triglevel은 숫자와 함께 쓰이며 trigger level을 설정한다. trigger level 을 살짝 바꾸는 것은 파형을 왼쪽, 오른쪽으로 조금씩 움직일 수 있게 해준다.

-(mouse) scope~를 클릭하면 마우스 버튼을 누르고 있는동안 멈춰있는다.

Inspector
scope~ 는 Inspector 를 사용할수있다. 만약 window menu에서‘Show Floating Inspector ‘를 선택하여 floating inspector를 하게 하면 어떤 scope를 선택하든 scope~ Inspector는 floating window에서 보여진다. 어떤 object를 선택하서나 Get Info를 선택하여 볼수도 있다. scope~ Inspector는 다음과 같은 것을 가능하게 해준다:
Buffers per Pixel 이 scipe~가 보여줄 pixel당 buffers의 수를 설정한다. 임의의 값은 25.
Buffer Size  는 buffer에 저장될 샘플수를 지정. 임의의 값은 128.
Range  number box는 최대 최소값을 지정. 임의의 최소값은 -1,0, 최대는 1,0
Delay 값은 scope가 값을 할당하기 이전에 쓰일 delay시간 (ms) 설정.
Trigger Mode checkbox는 Line Up  (default) 또는
Line Down modes (위의 trigger message 참고). Trigger Level 은 trigger level 설정.
Colors pull-down menu 는 색깔의 변경.
Revert button 은 당신이 inspector를 연 이후로 오브젝트 세팅의 모든 변화를 되돌릴수(undo)있음.(Edit menu를 사용하여도 됨)

Arguments
없음

Output
없음