1
我正在從MIDI軌道中移除事件,並且我認爲這樣做總的軌道持續時間會相應減少,如果軌道中沒有事件,那麼我認爲軌道的大小將是0.跟蹤行爲 - Java MIDI
不幸的是,它似乎並非如此,即使事件已刪除,Ticks中的大小不會改變,只會隨着更多內容的增加而增加。
這是正常的MIDI/Java行爲?
編輯:
這是刪除所有來自跟蹤事件的方法:
public static boolean Remove() {
//TODO: Test the bejeezus out of it.
if(_sequencer.isRunning()){
_sequencer.stop();
}
for (int i = 0; i < _track.size(); i++) {
if (!_track.remove(_track.get(i))) {
Logger.Add("MIDI Event not removed");
return false;
}
}
//Used for debugging purposes
long z = _track.ticks();
}
然而,當我使用一些粗俗的調試技術和取出後直接檢查蜱量事件,我找到了;
這看似沒什麼區別,我真的不明白爲什麼它這樣做。我認爲Ticks的大小取決於Track中的事件數量,因此如果一個軌道中有10個事件,則Tick的大小將爲10(因爲我將它們添加到軌道時將tick長度設置爲1)沒有活動規模將是0
添加事件:
public static void AddMessage(int channel, int pitch, long tick, int velocity) {
_track.add(CreateNoteOnEvent(channel, pitch, tick, velocity));
_track.add(CreateNoteOffEvent(channel, pitch tick, velocity));
}
你能提供更多的信息嗎?你在做什麼的樣本? – Brad 2011-04-17 22:09:28
好點,修正了這個問題! – 2011-04-18 08:40:21