MidiDevice.Info[] MidiDeviceInfos = MidiSystem.getMidiDeviceInfo(); //find the suitable device number here, based on some criteria MidiDevice MidiOutDevice = MidiSystem.getMidiDevice(MidiDeviceInfos[DEVICE_NUMBER]); Receiver MidiOutReceiver = MidiOutDevice.getReceiver(); Sequencer MidiOutSequencer = MidiSystem.getSequencer(); //Add the new MIDI out device here. MidiOutSequencer.getTransmitter().setReceiver(MidiOutReceiver); MidiOutSequencer.open();
/** * Attempts to open the Sequencer with a name containing the specified string. * @param containsString Part or all of a Sequencer's name. * @return Handle to the Sequencer, or null if not found or error. */ private Sequencer openSequencer( String containsString ) { Sequencer s = null; s = (Sequencer) openMidiDevice( containsString ); if( s == null ) return null; try { s.getTransmitter(); } catch( MidiUnavailableException mue ) { message( " Unable to get a transmitter from this sequencer" ); s = null; return null; } return s; }
static void play(Sequence sequence) throws MidiUnavailableException, InvalidMidiDataException, IOException { Sequencer sequencer=MidiSystem.getSequencer( ); sequencer.open(); Synthesizer synthesizer = MidiSystem.getSynthesizer(); synthesizer.open(); sequencer.getTransmitter().setReceiver(synthesizer.getReceiver( )); sequencer.setSequence(sequence); sequencer.addMetaEventListener(new MetaEventListener( ) { public void meta(MetaMessage m) { if (m.getType( ) == END_OF_TRACK) { System.out.println("end of track"); return; } } }); sequencer.start( ); }
Transmitter midiTransmitter = seqr.getTransmitter(); sm_openedMidiDeviceList.add(synth); Receiver synthReceiver = synth.getReceiver(); Transmitter seqTransmitter = seqr.getTransmitter(); seqTransmitter.setReceiver(synthReceiver);
sequencer.open(); sequencer.getTransmitter().setReceiver(new Receiver() {
/** * Updates the sequencer state. This method should be invoked after setting the sequencer in the plugin. */ public void updateSequencer() { lock.lock(); try { MidiUtils.open(sequencer); // Close existing and create a sequencer transmitter that sends Sponge events. MidiUtils.close(sequencerTransmitter); if (sequencer != null) { sequencerTransmitter = sequencer.getTransmitter(); sequencerTransmitter.setReceiver(new MidiSpongeEventReceiver(this)); sequencer.addMetaEventListener(message -> { getEngine().getOperations().event(new MidiMetaMessageEvent(getMidiMetaMessageEventName(), getEngine().getDefaultParameters().getEventClonePolicy(), message)).send(); }); } } catch (MidiUnavailableException e) { throw SpongeUtils.wrapException(e); } finally { lock.unlock(); } }
sequencer.getTransmitter().setReceiver( synthDevice.getReceiver() ); sequencer.getTransmitter().setReceiver( synthDevice.getReceiver() ); sequencer.getTransmitter().setReceiver( MidiSystem.getReceiver() ); sequencer.getTransmitter().setReceiver( synthesizer.getReceiver() );
sequencer.open(); sequencer.getTransmitter().setReceiver(new Receiver() {
sequencer.getTransmitter(); sequencer.getTransmitter();