|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.sound.midi.VoiceStatus
public class VoiceStatus
VoiceStatus
物件包含有關由 Synthesizer
產生的某個聲音當前狀態的資訊。
MIDI 合成器通常能夠產生最多的同步發聲音符數,也稱為聲音。聲音是連續的單音符串流,將到來的 MIDI 音符分派給特定聲音的過程即所謂的聲音分派。但是,聲音分派演算法和每個聲音的內容通常只存在於 MIDI 合成器內部,對外隱藏。當然,我們可以從 MIDI 訊息瞭解合成器正在演奏的音符,並可能推斷出一些聲音中的音符分派資訊。但是 MIDI 本身並未提供一種報告合成器將哪個音符分派給哪種聲音的方式,甚至都未報告合成器能夠合成的聲音數。
但在 Java Sound 中,Synthesizer
類別可通過其 getVoiceStatus()
方法公開其聲音的內容。建議使用此行為,但這是可選的;不公開其聲音分派的合成器僅返回一個長度為零的陣列。確實報告其聲音狀態的 Synthesizer
應對其所有聲音一直維護此資訊,無論該聲音當前是否發出。換句話說,給定型別的 Synthesizer
始終具有固定數量的聲音,等於它能夠發聲的最大同步音符數。
如果該聲音當前不處理 MIDI 音符,則視其為非活動的。在未給定任何 note-on 命令時,或在接收到的每個 note-on 命令已通過相應的 note-off(或通過一個“關閉所有音符”訊息)中止時,該聲音為非活動的。例如,發生這種情形的條件是:讓一個能夠演奏 16 個同步發聲音符的合成器演奏一個四音符和弦;這種情況下,只有四種聲音為活動的(假定沒有演奏以前的音符)。通常,一個狀態報告為活動的聲音產生可聽到的聲音,但是並非總是如此;這還取決於樂器的細節(即合成演算法)和音符已持續的時間。例如,一個聲音可合成單擊掌聲。由於此聲消失速度太快,所以它可能在收到 note-off 訊息前變得無法聽到。此時,該聲音仍視為活動的,即使當前不產生任何聲音。
除了活動或非活動狀態,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 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。