2016-07-01 4 views
0

Это то, что у меня есть: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 клеща, а не только текущая отдельная нота. Есть ли способ изменить кастрюлю только на 1 ноту?

ответ

1

Вы не можете.

Включите канал, а затем отложите его назад после срабатывания записи. Имейте в виду, что любой распад будет отменен.

Альтернативно, используйте несколько каналов midi, по одному для каждой ноты полифонии, в которой вы нуждаетесь.