|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjavax.sound.midi.VoiceStatus
public class VoiceStatus
VoiceStatus
객체에는,Synthesizer
로 생성되는 음성 가운데 1 개에 대해, 현재 상태에 관한 정보가 포함됩니다.
일반적으로 MIDI 신디사이저는, 결정할 수 있던 최대수의 범위에서 복수의 노트를 생성할 수 있습니다. 이러한 노트는 음성이라고도 불립니다. 음성은 연속한 단음의 스트림로, 수신되는 MIDI 노트를 특정의 음성에 할당하는 프로세스는 음성 어로케이션으로 불립니다. 다만, 음성 어로케이션 알고리즘이나 각 음성의 내용은, 일반적으로은 MIDI 신디사이저 내부에 있어, 밖으로부터 볼 수 없습니다. 물론, 신디사이저가 연주하고 있는 노트를 MIDI 메세지로 조사해 한층 더 거기로부터 음성에 대한 노트의 할당에 대해 무엇인가를 추론할 수도 있습니다. 그러나 MIDI 자신에게는, 신디사이저에 의해 할당할 수 있었던 노트와 음성과의 대응 관계 뿐만이 아니라, 신디사이저로 합성할 수 있는 음성수마저도 리포트하는 수단은 없습니다.
그에 대한 Java Sound 의 경우,Synthesizer
클래스는 그 getVoiceStatus()
메소드에 의해 음성의 내용을 명시할 수 있습니다. 이 동작은 추천 되고 있습니다만, 필수는 아니기 때문에, 음성 어로케이션을 명시하지 않는 신디사이저는 길이 0 의 배열만을 돌려줍니다. 음성 상태를 리포트하는 Synthesizer
에서는, 그 음성이 현재 출력되고 있는지 어떤지에 관계없이, 항상 모든 음성에 대해 음성 어로케이션 정보를 유지하고 있습니다. 바꾸어 말하면(자), 특정의 타입의 Synthesizer
는 언제라도, 동시에 출력할 수 있는 노트의 최대수에 동일한 고정한 수의 음성을 갖추고 있습니다.
현재 MIDI 노트를 처리하고 있지 않는 음성은 액티브하지 않다고 보여집니다. 음성은, 노트 온 커멘드가 주어지지 않은지, 혹은 수신한 모든 노트 온 커멘드가 거기에 대응하는 노트 오프 커멘드 (또는 「전노트 오프」메세지)에 의해 종료되었을 경우에 액티브하지 않게 됩니다. 이것은 예를 들어, 16 까지의 노트를 동시에 출력할 수 있는 신디사이저가 4 음으로부터 되는 화음을 연주하도록(듯이) 지시받았을 경우에 일어납니다. 즉, 이 경우에 액티브한 것은 4 개의 음성 뿐입니다 (그 이전에 출력된 소리는 벌써 모두 멈추어 있으면(자) 상정). 일반적으로, 그 상태가 액티브와 리포트된 음성은 들리는 사운드를 생성하고 있습니다만, 그렇지 않은 경우도 있습니다. 이것은 인스트르먼트의 상세 (즉 합성 알고리즘)와 그 노트의 지속 시간에 의해 정해집니다. 예를 들어, 어느 음성으로 1 회 손뼉을 치는 소리를 합성하고 있다고 합니다. 이 소리는 매우 빠르게 감쇠하기 위해(때문에), 노트 오프 메세지가 수신되기 전으로 들리지 않게 되어 버릴 가능성이 있습니다. 이러한 상황에서는, 현재 사운드가 생성되어 있지 않은 경우에서도, 이 음성은 액티브라고 보여집니다.
VoiceStatus
클래스에서는, 액티브 또는 액티브하지 않은 상태 외에, 그 음성의 현재의 MIDI 채널, 뱅크 번호 및 프로그램 번호, MIDI 노트 번호, 및 MIDI 볼륨을 분명히 하는 필드가 제공됩니다. 이것들은 모두, 음성을 사용해 나가는 동안에 변화할 가능성이 있습니다. 음성이 액티브하지 않은 동안은, 이러한 필드에는 각각 지정되어 있지 않은 값이 표시됩니다. 그 때문에, 액티브한 필드로부터 먼저 확인할 필요가 있습니다.
Synthesizer.getMaxPolyphony()
,
Synthesizer.getVoiceStatus()
필드의 개요 | |
---|---|
boolean |
active
그 음성이 현재 MIDI 노트를 처리하고 있을지 어떨지를 나타냅니다. |
int |
bank
이 음성이 현재 사용하고 있는 인스트르먼트의 뱅크 번호입니다. |
int |
channel
이 음성이 연주되고 있는 MIDI 채널입니다. |
int |
note
이 음성이 연주하고 있는 MIDI 노트입니다. |
int |
program
이 음성이 현재 사용하고 있는 인스트르먼트의 프로그램 번호입니다. |
int |
volume
이 음성의 현재의 MIDI 볼륨 레벨입니다. |
생성자 의 개요 | |
---|---|
VoiceStatus ()
|
메소드의 개요 |
---|
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
필드의 상세 |
---|
public boolean active
public int channel
MidiChannel
,
active
public int bank
SoundBank
객체에 대해서는 참조하지 않습니다. 값의 범위는, 이 음성이 액티브한 경우는 0 ~ 16383, 액티브하지 않은 경우는 지정되어 있지 않은 값이 됩니다.
Patch
,
Soundbank
,
active
,
MidiChannel.programChange(int, int)
public int program
MidiChannel.getProgram()
,
Patch
,
active
public int note
MidiChannel.noteOn(int, int)
,
active
public int volume
이 값은, 그 음성이 생성하는 사운드의 순간적인 레벨을 반드시 반영하지 않는 것에 주의해 주세요. 사운드의 순간적인 레벨은, 현재의 인스트르먼트나 그 인스트르먼트가 생성하는 진폭의 포락선의 형상을 포함해, 다양한 요인에 의해 결정됩니다.
active
생성자 의 상세 |
---|
public VoiceStatus()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.