2016-07-01 15 views
0

Das ist, was ich habe:Java Midi: Wie ändere ich den Pan einer einzelnen Note in einer Sequenz?

// 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); 

Das Problem ist, dass die panChangeMessage wenn sie auf die Spur hinzugefügt, um die Pfanne von allen Noten in diesem Midievent tick ändert, nicht nur die aktuelle individuelle Note. Gibt es eine Möglichkeit, den Pan von nur 1 Note zu ändern?

Antwort

1

Sie können nicht.

Schwenken Sie den Kanal über und schwenken Sie ihn dann zurück, nachdem die Note aus ausgelöst wurde. Denken Sie daran, dass jeder Verfall zurückgeworfen wird.

Alternativ können Sie mehrere MIDI-Kanäle verwenden, einen für jede Polyphonie, die Sie benötigen.