Hallo
Ich bin an einer Projektarbeit in Java. Die Applikation wechselt über einen USB-Midi Adapter an diversen Musikinstrumenten die Bank und das Programm. Dies gelingt mir auch an einem Gerät, jedoch der Synthesizer (Korg Triton) nimmt den Befehl nicht an. Um Ihn zu steuern müsste ich beide Bank-select Controller senden MSB Controller 00 mit dem Wert 0 und den LSB Controller 32 mit dem Wert der Bank 0 - 30. Leider finde ich nicht die geeignete Methode um beide Controller senden zu können.
Könnte mir von Euch jemand behilflich sein?
Danke schon mal
Hier mein Code:
public void setProgramChange(int deviceNumber, int channel,
int bank, int program) throws Exception {
// Device anlegen
MidiDevice device = MidiSystem.getMidiDevice(MidiSystem.getMidiDeviceI nfo()[deviceNumber]);
// Device öffnen
openDevice(device);
Receiver r = null;
try {
r = device.getReceiver();
} catch (MidiUnavailableException ex) {
System.out.println("- Receiver kann nicht geöffnet werden.");
}
// Message erzeugen
ShortMessage msgControlChange = new ShortMessage();
ShortMessage msgProgramChange = new ShortMessage();
// Message mit Daten füllen
msgControlChange.setMessage(ShortMessage.CONTROL_C HANGE, channel,00, bank);
msgProgramChange.setMessage(ShortMessage.PROGRAM_C HANGE,channel, Program,0);
// Message an Receiver senden
try {
r.send(msg, -1);
} catch (NullPointerException ex) {
System.out.println("- Message kann nicht gesendet werden, da kein
Receiver vorhanden");
}
// Device schliessen
device.close();
}
Ich bin an einer Projektarbeit in Java. Die Applikation wechselt über einen USB-Midi Adapter an diversen Musikinstrumenten die Bank und das Programm. Dies gelingt mir auch an einem Gerät, jedoch der Synthesizer (Korg Triton) nimmt den Befehl nicht an. Um Ihn zu steuern müsste ich beide Bank-select Controller senden MSB Controller 00 mit dem Wert 0 und den LSB Controller 32 mit dem Wert der Bank 0 - 30. Leider finde ich nicht die geeignete Methode um beide Controller senden zu können.
Könnte mir von Euch jemand behilflich sein?
Danke schon mal
Hier mein Code:
public void setProgramChange(int deviceNumber, int channel,
int bank, int program) throws Exception {
// Device anlegen
MidiDevice device = MidiSystem.getMidiDevice(MidiSystem.getMidiDeviceI nfo()[deviceNumber]);
// Device öffnen
openDevice(device);
Receiver r = null;
try {
r = device.getReceiver();
} catch (MidiUnavailableException ex) {
System.out.println("- Receiver kann nicht geöffnet werden.");
}
// Message erzeugen
ShortMessage msgControlChange = new ShortMessage();
ShortMessage msgProgramChange = new ShortMessage();
// Message mit Daten füllen
msgControlChange.setMessage(ShortMessage.CONTROL_C HANGE, channel,00, bank);
msgProgramChange.setMessage(ShortMessage.PROGRAM_C HANGE,channel, Program,0);
// Message an Receiver senden
try {
r.send(msg, -1);
} catch (NullPointerException ex) {
System.out.println("- Message kann nicht gesendet werden, da kein
Receiver vorhanden");
}
// Device schliessen
device.close();
}