Midi ProgramChanges (PC)

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

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;
    }
 
Zurück