/** * @return The length of the track in ticks, once events have been added to it. */ private long addEventsToTrack(Track track, MidiEvent[] events) { if (events!=null) for (int i=0; i<events.length; i++) track.add(events[i]); return track.ticks(); }
/** * @return The length of the track in ticks, once events have been added to it. */ protected static long addEventsToTrack(Track track, MidiEvent[] events) { if (events!=null) for (int i=0; i<events.length; i++) track.add(events[i]); return track.ticks(); }
protected static long addEventsToTrack(Track track, MidiEvent event) { track.add(event); return track.ticks(); }
int instrument = 36; Sequence sequence = new Sequence(Sequence.PPQ, 1); Track track = sequence.createTrack(); ShortMessage sm = new ShortMessage( ); sm.setMessage(ShortMessage.PROGRAM_CHANGE, 9, instrument, 0); //9 ==> is the channel 10. track.add(new MidiEvent(sm, 0));
/** * We assume that we are holding the "this" monitor */ private void addStopEvent(int note) throws InvalidMidiDataException { assert Thread.holdsLock(this); ShortMessage message = new ShortMessage(); message.setMessage(ShortMessage.NOTE_OFF, 0, note, 0); track.add(new MidiEvent(message, pos)); } }
track.add(createNoteOnEvent(60, 0)); track.add(createNoteOnEvent(64, 0)); track.add(createNoteOnEvent(67, 0)); track.add(createNoteOnEvent(72, 0)); track.add(createNoteOffEvent(60, 1)); track.add(createNoteOffEvent(64, 1)); track.add(createNoteOffEvent(67, 1)); track.add(createNoteOffEvent(72, 1)); track.add(createNoteOnEvent(53, 1)); track.add(createNoteOnEvent(65, 1)); track.add(createNoteOnEvent(68, 1)); track.add(createNoteOnEvent(73, 1)); track.add(createNoteOffEvent(63, 2)); track.add(createNoteOffEvent(65, 2)); track.add(createNoteOffEvent(68, 2)); track.add(createNoteOffEvent(73, 2)); track.add(createNoteOnEvent(55, 2)); track.add(createNoteOnEvent(64, 2)); track.add(createNoteOnEvent(67, 2)); track.add(createNoteOnEvent(72, 2)); track.add(createNoteOffEvent(64, 3)); track.add(createNoteOffEvent(72, 3)); track.add(createNoteOnEvent(65, 3)); track.add(createNoteOnEvent(71, 3)); track.add(createNoteOffEvent(55, 4)); track.add(createNoteOffEvent(65, 4));
/** * We assume that we are holding the "this" monitor */ private void addStartEvent(int note) throws InvalidMidiDataException { assert Thread.holdsLock(this); ShortMessage message = new ShortMessage(); message.setMessage(ShortMessage.NOTE_ON, 0, note, volume()); track.add(new MidiEvent(message, pos)); }
track.add(event);
try (Sequencer sequencer = MidiSystem.getSequencer()) { sequencer.open(); Sequence sequence = new Sequence(Sequence.PPQ, 1); Track track = sequence.createTrack(); ShortMessage noteOnMsg = new ShortMessage(); noteOnMsg.setMessage(ShortMessage.NOTE_ON, 0, 60, 100); ShortMessage noteOffMsg = new ShortMessage(); noteOffMsg.setMessage(ShortMessage.NOTE_OFF, 0, 60, 100); track.add(new MidiEvent(noteOnMsg, 0)); track.add(new MidiEvent(noteOffMsg, 120)); sequencer.setSequence(sequence); sequencer.start(); Thread.sleep(5000); sequencer.stop(); }
int n = 60; // middle C for (int i = 0; i < 3 * 12; i += 3) { track.add(new MidiEvent(new ShortMessage(ShortMessage.CONTROL_CHANGE, 0, 0, n), i)); track.add(new MidiEvent(new ShortMessage(ShortMessage.NOTE_ON, 0, n, 127), i)); track.add(new MidiEvent(new ShortMessage(ShortMessage.NOTE_ON, 0, n + 3, 127), i)); track.add(new MidiEvent(new ShortMessage(ShortMessage.NOTE_OFF, 0, n, 127), i + 3)); track.add(new MidiEvent(new ShortMessage(ShortMessage.NOTE_OFF, 0, n + 3, 127), i + 3)); n++;
l); MidiEvent me2 = new MidiEvent(metaMessage, me.getTick()); trk.add(me2);
MetaMessage metaMessage = new MetaMessage(com, b, l); MidiEvent me2 = new MidiEvent(metaMessage, me.getTick()); trk.add(me2);
track.add(new MidiEvent(sm, 0));