private void listenForSeqrEvents(final Sequencer seqr) throws Throwable { // Code initially copied from jsresources.org seqr.addMetaEventListener(new MetaEventListener() { public void meta(MetaMessage message) { getLogger().info("%%% MetaMessage: " + message); getLogger().info("%%% MetaMessage type: [{}] length: {}", message.getType(), message.getLength()); String decodedMsg = decodeMessage(message); getLogger().info("Decoded as: " + decodedMsg); // Meta event 47 is "end of track" if (message.getType() == 47) { noticeSeqrTrackEnd(seqr); } } }); int[] allControllersMask = new int[128]; for (int i = 0; i < allControllersMask.length; i++) { allControllersMask[i] = i; } seqr.addControllerEventListener( new ControllerEventListener() { public void controlChange(ShortMessage message) { getLogger().info("%%% ShortMessage: {}", message); getLogger().info("%%% ShortMessage controller={}, value={} ", message.getData1(), message.getData2()); } }, allControllersMask); } private void noticeSeqrTrackEnd(final Sequencer seqr) {
/** Starts the player so that it can play tunes. * (Retrieves the default sequencer during this phasis). */ public void start() { try { seq = MidiSystem.getSequencer(); //MidiSystem.getSynthesizer(). //int[] val = {81}; //seq.addControllerEventListener(this, val); seq.open(); seq.addMetaEventListener(this); m_isStarted = true; } catch (IllegalStateException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } }
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( ); }
try{ seq = MidiSystem.getSequencer(); seq.addMetaEventListener( new MetaEventListener()
/** * Plays the MIDI file from the beginning, or from where it left off if it was * paused. */ public void play() { if( !loading() ) { // Make sure there is a sequencer: if( sequencer == null ) return; try { // start playing: sequencer.start(); // event will be sent when end of track is reached: sequencer.addMetaEventListener( this ); } catch( Exception e ) { errorMessage( "Exception in method 'play'" ); printStackTrace( e ); SoundSystemException sse = new SoundSystemException( e.getMessage() ); SoundSystem.setException( sse ); } } }
sequencer.addMetaEventListener(mel); sequencer.open();
sequencer.addMetaEventListener(mel);
sequencer.addMetaEventListener( this );
sequencer.addMetaEventListener( this );
/** * 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.start(); sequencer.addMetaEventListener(new MetaEventListener() { @Override public void meta(MetaMessage meta) {
sequencer.addMetaEventListener(new MetaEventListener( ) { public void meta(MetaMessage e) { if (e.getType( ) == END_OF_TRACK) {