Java Midi:如何在一个序列中改变单个音符的音调



我有:

// Note on message
ShortMessage noteOnMessage = new ShortMessage();
noteOnMessage.setMessage(ShortMessage.NOTE_ON, chanNum, key, velocity);
// Pan change
ShortMessage panChangeMessage = new ShortMessage();
panChangeMessage.setMessage(ShortMessage.CONTROL_CHANGE, chanNum, SoundManager.PAN_CONTROLLER, pan);
// Note off message
ShortMessage noteOffMessage = new ShortMessage();
noteOffMessage.setMessage(ShortMessage.NOTE_OFF, chanNum, key, 0);

问题是,panChangeMessage添加到轨道时,改变了MidiEvent tick中所有音符的pan,而不仅仅是当前单个音符。有没有办法只改变1个音符的音阶?

你不能。

平移通道,然后在触发注释后将其平移回来。请记住,任何衰减都会被还原。

或者,使用多个midi通道,一个为您需要的复调的每个音符。

最新更新