|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
public interface Sequencer
MIDI
를 재생하는 하드웨어 디바이스 또는 소프트웨어 디바이스를 「시퀀서」라고 합니다. MIDI 순서에는, 표준 MIDI 파일로부터 읽힌 데이터등의, 시각표 나타난 MIDI 데이터의 리스트가 포함됩니다. 대부분의 시퀀서는, 순서를 작성해 편집하는 기능도 제공합니다.
순서
Sequencer
인터페이스에는, 다음과 같은 기본적인 MIDI 시퀀서 조작이 포함됩니다.
Sequencer
를 액세스 할 수 있는 객체를 통해서 간접적으로, 다음의 조작도 지원됩니다.
Sequencer.SyncMode
,
addMetaEventListener(javax.sound.midi.MetaEventListener)
,
ControllerEventListener
,
Receiver
,
Transmitter
,
MidiDevice
상자의 클래스의 개요 | |
---|---|
static class |
Sequencer.SyncMode
SyncMode 객체는, MIDI 시퀀서로 다루어지고 있는 시간을 마스터 또는 슬레이브 디바이스와 동기화하는 방법의 1 개를 표현하고 있습니다. |
인터페이스 javax.sound.midi. MidiDevice 로부터 상속된 상자의 클래스/인터페이스 |
---|
MidiDevice.Info |
필드의 개요 | |
---|---|
static int |
LOOP_CONTINUOUSLY
루프는 특정 회수 반복해 실행된 다음에 종료하는 것이 아니라 무제한하게 계속하는 것을 나타내는 값 |
메소드의 개요 | |
---|---|
int[] |
addControllerEventListener (ControllerEventListener listener,
int[] controllers)
요구된 종류의 제어 변경 이벤트를 시퀀서가 처리할 때에 통지를 받기 위한 콘트롤러 이벤트 청취자를 등록합니다. |
boolean |
addMetaEventListener (MetaEventListener listener)
메타이벤트가 순서로 발생해 시퀀서에 의해 처리될 때에 통지를 받기 (위해)때문에 메타이벤트리스나를 등록합니다. |
int |
getLoopCount ()
재생의 반복수를 가져옵니다. |
long |
getLoopEndPoint ()
루프의 종점을 가져옵니다 (MIDI 틱 단위). |
long |
getLoopStartPoint ()
루프의 시점을 가져옵니다 (MIDI 틱 단위). |
Sequencer.SyncMode |
getMasterSyncMode ()
이 시퀀서의 현재의 마스터 동기 모드를 가져옵니다. |
Sequencer.SyncMode [] |
getMasterSyncModes ()
이 시퀀서가 지원하는 마스터 동기 모드세트를 가져옵니다. |
long |
getMicrosecondLength ()
마이크로 세컨드로 나타낸 현재의 순서의 길이를 가져옵니다. |
long |
getMicrosecondPosition ()
순서상의 현재의 위치를 마이크로 세컨드 단위로 가져옵니다. |
Sequence |
getSequence ()
시퀀서가 현재 조작하고 있는 순서를 가져옵니다. |
Sequencer.SyncMode |
getSlaveSyncMode ()
이 시퀀서의 현재의 슬레이브 동기 모드를 가져옵니다. |
Sequencer.SyncMode [] |
getSlaveSyncModes ()
시퀀서가 지원하는 슬레이브 동기 모드세트를 가져옵니다. |
float |
getTempoFactor ()
시퀀서의 현재의 템포 계수를 돌려줍니다. |
float |
getTempoInBPM ()
1 분 당의 비트로 표시되는 현재의 템포를 가져옵니다. |
float |
getTempoInMPQ ()
사분 음표 당의 마이크로 세컨드로 표시되는 현재의 템포를 가져옵니다. |
long |
getTickLength ()
MIDI 틱으로 나타낸 현재의 순서의 길이를 가져옵니다. |
long |
getTickPosition ()
순서의 현재의 위치를 MIDI 틱 단위로 가져옵니다. |
boolean |
getTrackMute (int track)
트럭의 현재의 뮤트 상태를 가져옵니다. |
boolean |
getTrackSolo (int track)
트럭의 현재의 솔로 상태를 가져옵니다. |
boolean |
isRecording ()
시퀀서가 현재 녹음중인가 어떤가를 나타냅니다. |
boolean |
isRunning ()
시퀀서가 현재 실행중인가 어떤가를 나타냅니다. |
void |
recordDisable (Track track)
지정된 트럭에 대해서, 녹음 불가로 합니다. |
void |
recordEnable (Track track,
int channel)
지정된 트럭에, 특정의 채널로 수신하는 이벤트를 녹음할 준비를 합니다. |
int[] |
removeControllerEventListener (ControllerEventListener listener,
int[] controllers)
1 개이상의 종류의 콘트롤러 이벤트에 대해, 콘트롤러 이벤트 청취자의 처리 대상을 삭제합니다. |
void |
removeMetaEventListener (MetaEventListener listener)
실제로 청취자가 등록되었을 경우, 이 시퀀서의 등록제청취자의 리스트로부터 지정된 메타이벤트리스나를 삭제합니다. |
void |
setLoopCount (int count)
루프를 재생하는 반복 회수를 설정합니다. |
void |
setLoopEndPoint (long tick)
루프로 마지막에 재생되는 MIDI 틱을 설정합니다. |
void |
setLoopStartPoint (long tick)
루프로 재생하는 최초의 MIDI 틱을 설정합니다. |
void |
setMasterSyncMode (Sequencer.SyncMode sync)
이 시퀀서가 사용하는 타이밍 정보의 소스를 설정합니다. |
void |
setMicrosecondPosition (long microseconds)
순서상의 현재의 위치를 마이크로 세컨드 단위로 설정합니다. |
void |
setSequence (InputStream stream)
시퀀서가 조작하는 현재의 순서를 설정합니다. |
void |
setSequence (Sequence sequence)
시퀀서가 조작하는 현재의 순서를 설정합니다. |
void |
setSlaveSyncMode (Sequencer.SyncMode sync)
시퀀서의 슬레이브 동기 모드를 설정합니다. |
void |
setTempoFactor (float factor)
지정된 계수에 의해 시퀀서의 실제의 재생 템포를 슬캘링 합니다. |
void |
setTempoInBPM (float bpm)
템포를 1 분 당의 비트로 설정합니다. |
void |
setTempoInMPQ (float mpq)
템포를 사분 음표 당의 마이크로 세컨드로 설정합니다. |
void |
setTickPosition (long tick)
현재의 시퀀서의 위치를 MIDI 틱으로 설정합니다. |
void |
setTrackMute (int track,
boolean mute)
트럭의 뮤트 상태를 설정합니다. |
void |
setTrackSolo (int track,
boolean solo)
트럭의 솔로 상태를 설정합니다. |
void |
start ()
현재 로드 되고 있는 순서의 MIDI 데이터의 재생을 개시합니다. |
void |
startRecording ()
MIDI 데이터의 녹음 및 재생을 개시합니다. |
void |
stop ()
액티브의 경우 녹음을 정지해, 현재 로드 되고 있는 순서가 있으면, 그 재생을 정지합니다. |
void |
stopRecording ()
액티브의 경우 녹음을 정지합니다. |
인터페이스 javax.sound.midi. MidiDevice 로부터 상속된 메소드 |
---|
close , getDeviceInfo , getMaxReceivers , getMaxTransmitters , getReceiver , getReceivers , getTransmitter , getTransmitters , isOpen , open |
필드의 상세 |
---|
static final int LOOP_CONTINUOUSLY
setLoopCount(int)
,
정수 필드치 메소드의 상세 |
---|
void setSequence(Sequence sequence) throws InvalidMidiDataException
이 메소드는,Sequencer
가 닫고 있는 경우에서도 호출할 수가 있습니다.
sequence
- 로드하는 순서
InvalidMidiDataException
- 순서가 무효인 MIDI 데이터를 포함하고 있는지,
순서가 지원되어 있지 않은 경우void setSequence(InputStream stream) throws IOException , InvalidMidiDataException
이 메소드는,Sequencer
가 닫고 있는 경우에서도 호출할 수가 있습니다.
stream
- MIDI 파일 데이터를 포함한 스트림
IOException
- 스트림의 read중에 입출력 예외가 발생했을 경우
InvalidMidiDataException
- 스트림로 무효인 데이터가 발생했는지,
또는 스트림이 지원되어 있지 않은 경우Sequence getSequence()
이 메소드는,Sequencer
가 닫고 있는 경우에서도 호출할 수가 있습니다.
null
void start()
setLoopCount
로 설정된 반복수만큼 반복해집니다. 그 반복의 뒤, 또는 루프 카운트가 0 때, 재생은 순서의 마지막까지 속행됩니다.
이 구현에 의해, 적절한 콘트롤러, 핏치벤드, 및 프로그램 변경 이벤트가 송신됩니다. 이 결과, 루프의 시점으로 이동했을 때에 신디사이저 상태의 일관성이 보증됩니다.
IllegalStateException
- Sequencer
가 닫혀지고 있는 경우setLoopStartPoint(long)
,
setLoopEndPoint(long)
,
setLoopCount(int)
,
stop()
void stop()
IllegalStateException
- Sequencer
가 닫혀지고 있는 경우start()
,
isRunning()
boolean isRunning()
false
입니다. start()
또는 startRecording()
가 불려 가면(자), 시퀀서는 실행을 개시합니다. 그 후 순서의 재생이 완료하는지, 또는 stop()
가 불려 갈 때까지,isRunning
는 true
를 돌려줍니다.
true
, 그렇지 않은 경우는 false
void startRecording()
트럭은 디폴트에서는 녹음 가능하게 되어 있지 않습니다. MIDI 데이터를 녹음하기 위해서는, 적어도 1 개의 트럭이 구체적으로 녹음 가능하게 되어 있을 필요가 있습니다.
IllegalStateException
- Sequencer
가 닫혀지고 있는 경우startRecording()
,
recordEnable(javax.sound.midi.Track, int)
,
recordDisable(javax.sound.midi.Track)
void stopRecording()
IllegalStateException
- Sequencer
가 닫혀지고 있는 경우startRecording()
,
isRecording()
boolean isRecording()
false
입니다. 시퀀서는 startRecording()
가 불려 가면(자) 녹음을 개시해, 그 후는 stop()
또는 stopRecording()
가 불려 갈 때까지 이 메소드는 true
를 돌려줍니다.
true
, 그렇지 않은 경우는 false
void recordEnable(Track track, int channel)
track
- 이벤트가 녹음되는 트럭channel
- 이벤트가 수신되는 채널. 채널치에 -1 가 지정되고 있는 경우,
트럭은 전채널로부터의 데이터를 수신한다
IllegalArgumentException
- 트럭이 현재의 순서가 일부에서 없는 경우, throw 된다void recordDisable(Track track)
track
- 녹음을 불가로 하는 트럭, 또는 전트럭을 녹음 불가로 한다
경우는 null
float getTempoInBPM()
getTempoFactor()
,
setTempoInBPM(float)
,
getTempoInMPQ()
void setTempoInBPM(float bpm)
bpm
- 1 분 당의 비트로 표시되는 바람직한 새로운 템포getTempoFactor()
,
setTempoInMPQ(float)
,
getTempoInBPM()
float getTempoInMPQ()
getTempoFactor()
,
setTempoInMPQ(float)
,
getTempoInBPM()
void setTempoInMPQ(float mpq)
mpq
- 사분 음표 당의 마이크로 세컨드로 표시되는 바람직한 새로운 템포getTempoFactor()
,
setTempoInBPM(float)
,
getTempoInMPQ()
void setTempoFactor(float factor)
getTempoInMPQ()
및 getTempoInBPM()
로부터 반환되는 값에는 영향을 주지 않습니다. 이러한 값은 슬캘링전의 템포를 나타냅니다.
외부 동기가 사용되고 있는 경우는 템포 계수는 조정할 수 없습니다. 외부 동기가 사용되고 있는 경우,setTempoFactor
는 템포 계수를 항상 1.0 으로 설정합니다.
factor
- 요구된 템포 스칼라getTempoFactor()
float getTempoFactor()
setTempoFactor(float)
long getTickLength()
long getTickPosition()
Sequence
에 포함되고 있는 템포와 타이밍 해상도의 양쪽 모두에 의해 정해집니다.
setTickPosition(long)
void setTickPosition(long tick)
tick
- 바람직한 틱의 위치getTickPosition()
long getMicrosecondLength()
long getMicrosecondPosition()
MidiDevice
내의 getMicrosecondPosition
setMicrosecondPosition(long)
void setMicrosecondPosition(long microseconds)
microseconds
- 마이크로 세컨드 단위에서의 바람직한 위치getMicrosecondPosition()
void setMasterSyncMode(Sequencer.SyncMode sync)
sync
의 값에 응해 내장 시계, MIDI 클락, 또는 MIDI 타임 코드의 어떤 것인가가 됩니다. sync
인수는,getMasterSyncModes()
로부터 반환되는, 지원되고 있는 모드의 1 개인 것이 필요합니다.
sync
- 바람직한 마스터 동기 모드Sequencer.SyncMode.INTERNAL_CLOCK
,
Sequencer.SyncMode.MIDI_SYNC
,
Sequencer.SyncMode.MIDI_TIME_CODE
,
getMasterSyncMode()
Sequencer.SyncMode getMasterSyncMode()
setMasterSyncMode(Sequencer.SyncMode)
,
getMasterSyncModes()
Sequencer.SyncMode [] getMasterSyncModes()
Sequencer.SyncMode.INTERNAL_CLOCK
,
Sequencer.SyncMode.MIDI_SYNC
,
Sequencer.SyncMode.MIDI_TIME_CODE
,
getMasterSyncMode()
,
setMasterSyncMode(Sequencer.SyncMode)
void setSlaveSyncMode(Sequencer.SyncMode sync)
sync
인수는,getSlaveSyncModes()
로부터 반환되는, 지원되고 있는 모드의 1 개인 것이 필요합니다.
sync
- 바람직한 슬레이브 동기 모드Sequencer.SyncMode.MIDI_SYNC
,
Sequencer.SyncMode.MIDI_TIME_CODE
,
Sequencer.SyncMode.NO_SYNC
,
getSlaveSyncModes()
Sequencer.SyncMode getSlaveSyncMode()
setSlaveSyncMode(Sequencer.SyncMode)
,
getSlaveSyncModes()
Sequencer.SyncMode [] getSlaveSyncModes()
Sequencer.SyncMode.MIDI_SYNC
,
Sequencer.SyncMode.MIDI_TIME_CODE
,
Sequencer.SyncMode.NO_SYNC
void setTrackMute(int track, boolean mute)
getTrackMute(int)
를 호출해 주세요.
track
- 트럭 번호. 현재의 순서의 트럭은, 0 으로부터 순서의 트럭수 뺀다
1 의 범위에서 번호 붙이고 되는mute
- 트럭의 새로운 뮤트 상태. true
는 트럭이 뮤트인 것을
의미해,false
는 트럭이 뮤트가 아닌 것을 의미하는getSequence()
boolean getTrackMute(int track)
track
- 트럭 번호. 현재의 순서의 트럭은, 0 으로부터 순서의 트럭수 뺀다
1 의 범위에서 번호 붙이고 된다
true
, 그렇지 않은 경우는 false
void setTrackSolo(int track, boolean solo)
solo
가 true
의 경우는, 이 트럭 및 솔로가 되어 있는 다른 트럭의 소리만이 들립니다. solo
가 false
의 경우는, 솔로가 되어 있는 다른 트럭의 소리만이 들립니다만, 솔로가 되어 있는 트럭이 없을 때는 뮤트로 되어 있지 않은 트럭의 소리가 모두 들립니다.
이 메소드는 몇개의 이유로써 실패하는 일이 있습니다. 예를 들어, 지정된 트럭 번호가 현재의 순서에 대해서 유효하지 않은, 혹은 시퀀서가 이 기능을 지원하고 있지 않는, 등입니다. 이 조작이 성공했는지의 여부를 확인할 필요가 있는 어플리케이션에서는, 이 호출에 이어
를 호출해 주세요.
getTrackSolo(int)
track
- 트럭 번호. 현재의 순서의 트럭은, 0 으로부터 순서의 트럭수 뺀다
1 의 범위에서 번호 붙이고 되는solo
- 트럭의 새로운 솔로 상태. true
는 트럭이 솔로인 것을
의미해,false
는 트럭이 솔로가 아닌 것을 의미하는getSequence()
boolean getTrackSolo(int track)
track
- 트럭 번호. 현재의 순서의 트럭은, 0 으로부터 순서의 트럭수 뺀다
1 의 범위에서 번호 붙이고 된다
true
, 그렇지 않은 경우는 false
boolean addMetaEventListener(MetaEventListener listener)
listener
- 추가하는 청취자
true
,
그렇지 않은 경우는 false
removeMetaEventListener(javax.sound.midi.MetaEventListener)
,
MetaEventListener
,
MetaMessage
void removeMetaEventListener(MetaEventListener listener)
listener
- 삭제하는 메타이벤트리스나addMetaEventListener(javax.sound.midi.MetaEventListener)
int[] addControllerEventListener(ControllerEventListener listener, int[] controllers)
controllers
인수에 의해 지정됩니다 ( 각 번호는 0 에서 127 까지. 다양한 종류의 콘트롤러에 대응하는 번호에 대해서는, 「MIDI 1.0 Specification」를 참조).
되돌려진 배열에는, 청취자가 향후 이벤트를 수신하는 MIDI 콘트롤러의 번호를 포함하고 있습니다. 시퀀서에 따라서는 콘트롤러 이벤트 통지를 지원하고 있지 않는 경우가 있어, 그 경우, 배열의 길이는 0 입니다. 다른 시퀀서는 몇개의 콘트롤러의 통지를 지원합니다만, 전콘트롤러에 대해가 아닙니다. 이 메소드는 반복해 불려 가는 일이 있습니다. 각 회 모두, 반환된 배열은, 그 특정의 호출로 요구된 콘트롤러 뿐만이 아니라, 청취자가 통지를 받는 전콘트롤러를 나타냅니다
listener
- 등록제청취자의 리스트에 추가하는 콘트롤러 이벤트 청취자controllers
- 변경 통지가 요구되는 MIDI 콘트롤러 번호
removeControllerEventListener(javax.sound.midi.ControllerEventListener, int[])
,
ControllerEventListener
int[] removeControllerEventListener(ControllerEventListener listener, int[] controllers)
controllers
인수는, 청취자가 향후 변경 통지를 받지 않는 콘트롤러에 대응하는 MIDI 번호의 배열입니다. 등록제청취자의 리스트로부터 이 청취자를 완전하게 삭제하려면 ,controllers
에 null
를 건네줍니다. 되돌려진 배열에는, 청취자가 향후 이벤트를 수신하는 MIDI 콘트롤러의 번호를 포함하고 있습니다. 청취자가 어느 콘트롤러의 변경 통지도 수신하지 않는 경우, 배열의 길이는 0 입니다.
listener
- 낡은 청취자controllers
- 변경 통지를 취소하는 MIDI 콘트롤러 번호,
또는 전콘트롤러에 대해서 취소하는 경우는 null
addControllerEventListener(javax.sound.midi.ControllerEventListener, int[])
void setLoopStartPoint(long tick)
시점의 값 0 은, 로드 되고 있는 순서의 선두를 의미합니다. 시점의 값은 종점의 값이하가 아니면 안되어, 로드 되고 있는 순서의 사이즈내에 들어가 있지 않으면 안됩니다.
시퀀서의 루프 시점의 디폴트는, 순서의 선두입니다.
tick
- 루프의 시점
(MIDI 틱 단위, 제로로부터 시작된다)
IllegalArgumentException
- 요구되었다
루프 시점을 설정할 수 없는 경우. 일반적으로은, 시점이 순서의
듀레이션외에 있는지,
시점이 종점에서(보다) 후에 있는 것이 원인setLoopEndPoint(long)
,
setLoopCount(int)
,
getLoopStartPoint()
,
start()
long getLoopStartPoint()
setLoopStartPoint(long)
void setLoopEndPoint(long tick)
종점의 값 -1 은, 로드 되고 있는 순서의 마지막 틱을 의미합니다. 그 이외의 경우, 종점의 값은 시점의 값이상이 아니면 안되어, 로드 되고 있는 순서의 사이즈내에 들어가 있지 않으면 안됩니다.
시퀀서의 루프 종점의 디폴트는 -1 으로, 순서의 최후라고 하는 의미입니다.
tick
- 루프의 종점
(MIDI 틱 단위, 제로로부터 시작된다), 또는
마지막 틱을 나타낸다 -1
IllegalArgumentException
- 요구되었다
루프 종점을 설정할 수 없는 경우. 일반적으로은, 종점이 순서의
듀레이션외에 있는지,
종점이 시점보다 전에 있는 것이 원인setLoopStartPoint(long)
,
setLoopCount(int)
,
getLoopEndPoint()
,
start()
long getLoopEndPoint()
setLoopEndPoint(long)
void setLoopCount(int count)
count
회까지 루프의 시점으로 돌아갑니다. 그 후는, 순서의 끝까지 재생이 속행됩니다.
이 메소드를 호출했을 때의 현재 위치가 루프의 종점보다 큰 경우, 루프는 실행되지 않고, 순서의 끝까지 재생이 속행됩니다. 다만, 이 호출에 이어 루프의 종점을 변경했을 경우는, 루프가 실행됩니다.
count
의 값을 0 으로 설정하면(자) 루프가 무효가 됩니다. 즉, 루프의 종점에 이르러도 재생이 속행되어 루프의 시점에는 돌아오지 않습니다. 이것이 시퀀서의 디폴트입니다.
루프중에 재생을 정지하면(자), 현재의 루프 모양태는 해제됩니다. 그 후에 개시 요구를 실시할 때, 중단된 루프 조작의 영향은 받지 않습니다.
count
- 루프의 종점으로부터 루프의 시점까지
재생을 루프백 하는 회수, 또는
루프가 중단될 때까지 루프를 계속하는 경우는
LOOP_CONTINUOUSLY
IllegalArgumentException
- count
의 값이 부이며, 한편
LOOP_CONTINUOUSLY
에 동일하지 않은 경우setLoopStartPoint(long)
,
setLoopEndPoint(long)
,
getLoopCount()
,
start()
int getLoopCount()
setLoopCount(int)
,
start()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.