Java Midi:如何更改序列中单个音符的声像?
Java Midi: How do I change the pan of an individual note in a Sequence?
这是我的:
// 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 中所有音符的声相,而不仅仅是当前的单个音符。有没有办法改变只有 1 个音符的声像?
你不能。
将通道平移,然后在触发音符关闭后将其平移回来。请记住,任何衰减都会被平移。
或者,使用多个 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 中所有音符的声相,而不仅仅是当前的单个音符。有没有办法改变只有 1 个音符的声像?
你不能。
将通道平移,然后在触发音符关闭后将其平移回来。请记住,任何衰减都会被平移。
或者,使用多个 MIDI 通道,一个用于您需要的每个复调音符。