Angeltv
Mitglied
Moin moin,
sitze gerade an einem Java Programm, dass mir meine Effekte schalten soll.
Aber irgendwie kriegen die Programme keine Anweisung von meiner MidiSchnittstelle.
Kann mir vielleicht einer helfen?
Danke ancrux
sitze gerade an einem Java Programm, dass mir meine Effekte schalten soll.
Aber irgendwie kriegen die Programme keine Anweisung von meiner MidiSchnittstelle.
Kann mir vielleicht einer helfen?
Danke ancrux
Code:
public void sendMidiPreset( String programId, String channelId ){
try{
DataHandler data = new DataHandler();
String midiName = data.selectMidiData();
MidiDevice midiDevice = MidiSystem.getMidiDevice( getMidiInfo( midiName ) );
midiDevice.open();
Receiver rcvr = midiDevice.getReceiver();
Transmitter trans = midiDevice.getTransmitter();
trans.setReceiver( rcvr );
//reciev.send();
ShortMessage msg = new ShortMessage();
int channel = new Integer( channelId );
int data1 = new Integer( programId );
int data2 = 0;
msg.setMessage( ShortMessage.PROGRAM_CHANGE, 1, 1, 0 );
rcvr.send( msg, -1 );
System.out.println("MidiChange");
System.out.println( ShortMessage.PROGRAM_CHANGE );
}catch( Exception mue ){
mue.printStackTrace();
}
}
private Info getMidiInfo( String midiName ) throws Exception{
Info midiInfo;
MidiDevice.Info[] aInfos = MidiSystem.getMidiDeviceInfo();
midiInfo = aInfos[0];
for (int i = 0; i < aInfos.length; i++) {
String name = aInfos[i].getName();
if (midiName.equals(name)) {
midiInfo = aInfos[i];
}
}
return midiInfo;
}