Input
-float : 오른쪽 inlet: 재생속도 결정. 1.0-정상속도. 만약 -1값이오면 정상속도로 연주하지만. 2의 값은 2배 속도로, .5는 절반의 속도로 재생한다.
-signal : 왼쪽 inlet: 시그널이 들어오면 integer portion만큼 monitor한다. 입력신호의 integer portion이 미리 저장된 cue의 index와 같은 값으로 변할 때 그 cue는 trigger된다. 음수 값은 무시된다.
오른쪽 inlet: 재생속도. Vibrato나 다른 속도변화 효과를 위해 시간을 변화하도록 해준다.
-int: 왼쪽 inlet: 파일이 open되면 1은 재생을 시작하라는 신호로 사용. 0은 멈춘다. 1보다 큰 수는 cue를 trigger하거나(preload 메시지로 미리 정의된 cue), sfplay~에 저장된 상태를 기반으로 trigger한다. 파일이 재생되면 파일의 data는 오브젝트가 가진 체널의 수에 따라서 signal outlet으로 보내진다. cue 가 끝나거나 0이 들어오면 bang이 오른쪽outlet으로 나간다. 만약 그 object가 sflist~ object로 할당 되어있으면(set 메시지 이용, 또는 argument에 쓰여진 대로), int이 sfplay~에 저장된 값이 아닌, sflist~에 쓰인 cue들을 trigger한다. sfplay~ 을 다시 그 자신의 값으로 되돌리고 싶으면 다시 set message를 argument없이 사용한다.
-anything: 왼쪽 inlet: 만약 sflist~ object의 이름이 숫자와 함께 sfplay~로 보내지면, 그 번호의 cue가 재생된다.
-clear: 왼쪽 inlet: arguments없는 clear는 모든 정의된 cue를 삭제한다. 그 후에는 1의 숫자가 어떤 것이든 재생시킨다. Clear는 하나 이상의 cue번호와 함께 사용되어서 cue list를 지운다.
-embed: 왼쪽 inlet: 0이 아닌 정수와 쓰이며 모든 cue를 저장하고 현재 열려있는 파일의 이름을 저장한다. (patcher파일이 저장될 때) embed 0 은 patcher가 저장될 때 이 정보가 sfplay~에 새로 저장되지 않도록 보호시키는 역할을 한다. 초기 임시(default)값에 의해서 현재 파일의 이름과 cue정보는 patcher가 저장될 때 sfplay~에 저장되지 않는다. 만약 sfplay~ object 가 저장된 cue와 함께 저장되면 그것들은 object를 포함한 patcher가 불려질 때에 preload된다.
-fclose : 왼쪽 inlet: 열릴 파일의 이름과 함께 오며, 파일을 닫고 관련된 cue를 삭제한다.
-list: 왼쪽 inlet: sfplay~ 에 재생할 list를 준다.cue의 최대값은 128개이다. cue번호는 (preload메시지를 사용하여 set하며) 1이 아닌 1보다 큰 어떤 숫자든 쓰일 수 있다. List의 cue번호가 정의되지 않았다면 그것을 뛰어넘어 다음 cue로 간다. 그 오브젝트가 현재 sflist~에 할당되어있다면 list는 sflist안에 저장된 cue값들을 사용하며, sfplay~에 저장된 cue가 사용된다.
-loop : 왼쪽 inlet: 1로 loop를 키고 0으로 끈다. 기본값: off
-modout : 왼쪽 inlet: 1과 함께 쓰여서 modulo output을 킨다. 오디오 파일의 채널수가 sfplay~의 출력 숫자보다 적으면 채널들을 복제하여 출력한다. (Modulo output 설정 시) 예를 들어, mono audio file이 들어오고, sfplay~ object 가 2개의 output을 가질 경우에 mono가 양쪽으로 나간다(Modulo output 설정 시) 스테레오 파일이 4개의 outlet으로 출력될 경우에도 두 개씩 복제되어 나간다. Modout 0은 이 기능을 해지시킨다.
-name : symbol값과 쓰여서, 다른 오브젝트의 이름을 변경한다. sfplay~에 미리 언급되었던 오브젝트들은 그 후에 그 관계성을 상실한다. 모든 sfplay~ 는 각각의 이름을 가져야 한다.
-offset : 왼쪽 inlet: offset은 숫자와 함께 쓰여서 sample start offset을 bytes값으로 설정한다. 기본값: 0 aligning samples에 유용하게 사용.
-open : 왼쪽 inlet: 재생하고 싶은 AIFF, WAV, NeXT/Sun, raw format, Sound Designer II (Macintosh only) audio file, CD-audio track, 의 이름과 함께 와서 그리고 그 파일을 열어 재생할 수 있도록 한다. 파일명과 함께 올 경우에 파일은 Max의 search path내에 있어야 한다. 파일이름 없이 쓰이면 standard open file dialog 을 열어 파일을 직접 선택할 수 있도록 한다.
-openraw: 왼쪽 inlet: open와 똑같이 쓰이지만, 어떤 종류의 파일이건 열수 있도록 해준다. openraw message 는 그 파일이 44100Hz의 16-bit stereo file이라고 가정하고 다른 header information이 없다고 생각해버린다. file type은 samptype, offset, srate, srchans messages로 지정해줄 수 있다.
-pause: 왼쪽 inlet: 말 그대로 pause역할. 그리고 resume message로 다시 시작시킴
-preload: 왼쪽 inlet: cue(2이상의 정수와 함께)값. cue번호가 받아지면 sfplay는 파일의 그 영역을 재생한다. 큐 번호가 1이면 현재 파일의 맨 처음 부분을 재생.
preload message는 여러 형태로 사용되는데, 그 번호는 2~32767까지 쓰일 수 있다. 파일 이름 뒤에 따르며 그 파일은 현재 열려있거나 Max’s search path안에 있어야 한다. 그 큐 번호는 그 파일을 재생한다. 그optional filename이후에, optional start time (ms)가 지정될 수 있다. 그 시작시간이 지정되어있지 않으면 그 파일의 맨 처음부분이 cue start로 쓰인다. End time도 마찬가지로 사용. 만약 end time 이 start time 보다 작게 되었을 경우에 cue 는 play를 하지 않는다. 결국 reverse play하는 cue는 불가능. Start/end time arguments이후에 오는, optional directional buffer flag 는 저장된 cues의 재생을 reverse하는 것을 가능하게 해 준다. (Flag: 1)
마지막 optional argument 는 speed의 조정이다.
각각의 정의된 cue는 sfplay~채널당 40K정도의 메모리를 차지한다. (default buffer size 40320) 만약 bidirectional buffering 이 켜져 있으면 메모리의 양이 두 배가 됨.
-print : 왼쪽 inlet: 오브젝트 상태, 현재 정의된 모든 cue의 list의 information을 Print한다.
-resume: 왼쪽 inlet: pause뒤 다시 재생
-samptype: 왼쪽 inlet: symbol과 함께 와서, 오디오 파일의 sample data을 내삽 할 때에 파일의 type을 지정해준다. 이것을 “header munging.”이라 한다. 파일이 openraw로 불려 들어올때에 위에서 말한것처럼 16-bit integer로 자동 인식 되지만 그것을 변경시킬 수 있는 기능이다. 다름의 list참고
int8 8-bit integer
int16 16-bit integer
int24 24-bit integer
int32 32-bit integer
float32 32-bit floating-point
float64 64-bit floating-point
mulaw 8-bit µ-law encoding
alaw 8-bit a-law encoding
-seek: 왼쪽 inlet: start time(ms)으로서 시작지점을 직접 입력해준다. endtime또한 지정될 수 있다. seek message는 cue의 start/end point를 지정하고 확인할 수 있도록 해준다.
-set: 왼쪽 inlet: sflist~ object의 이름 뒤에 쓰여서 sflist~에 저장된 cue를 재생하도록 해준다. (int, list 메시지와 함께) arguments를 입력하지 않으면 sfplay~ 를 reset한다.
-speed : 왼쪽 inlet: 숫자와 함께 쓰여서 전체 속도를 조절하게 한다. 1.0은 원래 속도. 2는 두 배, 0.5는 절반의 속도이다. 만약 cue가 2의 비율로 재생하고 speed가 3으로 주어지면 cue는 6배의 속도로 연주하게 된다는 사실을 잊지 말자.
-srate: 왼쪽 inlet: 숫자와 함께 쓰여서 sampling rate(Hertz)를 지정하여 파일의 sample data를 분석한다. (따라서 오디오 파일의 원래 sampling rate에 덮어 쓰이게 한다.)
-srcchans: 왼쪽 inlet: 숫자와 함께 쓰여서 채널의 수를 지정한다.
Arguments
-symbol : Optional. 만약 첫 번째 argument 가 symbol과 함께 오면, 그것은 sflist~ 에 이름을 지정해주고 그것이 sfplay~object 에 사용된다.
-int: Optional. output channels의 수를 지정. 최대숫자는 28. 기본값은 1.
추가적인 optional argument가 사용될 수 있는데, 그것은 디스크 buffer size를 설정하는데 사용될 수 있다. 이 argument가 0이면, default disk buffer size가 사용된다. 추가적인 optional argument 는 또한 sfplay~의 출력을 만드는데 사용될 수 있다. 마지막 argument를 1로 설정하면 가장 오른쪽에 “bang on finish or halt” outlet의 왼쪽으로 하나의 outlet이 생성된다. 그리고 그것은 시그널 값을 출력한다.
-symbol: Optional. 만약 마지막 argument 가 symbol로 주어지면, 이것은 다른 object들이 sfplay~에 symbol이름이 적용되어, object들의 내용을 access할 수 있게 한다.
Output
-signal : 각 채널에 하나의 signal이 나간다. 가장 왼쪽이 채널1번이다. 만약 optional output position argument 가 설정되면, 채널 뒤에 하나나 두 개의 signal output이 생겨서 그것의 signal output이 positioning information을 볼 수 있도록 해 준다.
-bang: Out right outlet: 파일의 play가 끝나거나 멈춰져 있을 때 bang이 나가도록 되어있다.