package com.xenoage.zong.io.midi.out; import com.xenoage.zong.core.Score; import com.xenoage.zong.core.position.Time; import com.xenoage.zong.desktop.io.midi.out.MidiScorePlayer; import com.xenoage.zong.desktop.io.midi.out.SynthManager; import com.xenoage.zong.utils.demo.ScoreRevolutionary; import javax.sound.midi.MidiUnavailableException; import static com.xenoage.zong.desktop.io.midi.out.MidiScorePlayer.midiScorePlayer; /** * Tests for {@link MidiScorePlayer}. * * @author Uli Teschemacher * @author Andreas Wenger */ public class MidiScorePlayerTry implements PlaybackListener { public static void main(String... args) throws MidiUnavailableException { int timeFactor = 1000; Score score = ScoreRevolutionary.createScore(); SynthManager.init(false); MidiScorePlayer.init(); MidiScorePlayer player = midiScorePlayer(); player.addPlaybackListener(new MidiScorePlayerTry()); player.openScore(score); System.out.println("Play"); player.start(); try { Thread.sleep(2 * timeFactor); } catch (InterruptedException ex) { } player.pause(); System.out.println("Pause"); try { Thread.sleep(2 * timeFactor); } catch (InterruptedException ex) { } System.out.println("Play"); player.start(); try { Thread.sleep(3 * timeFactor); } catch (InterruptedException ex) { } player.stop(); System.out.println("Stop"); try { Thread.sleep(2 * timeFactor); } catch (InterruptedException ex) { } player.start(); try { Thread.sleep(3 * timeFactor); } catch (InterruptedException ex) { } player.stop(); SynthManager.close(); } @Override public void playbackAtEnd() { } @Override public void playbackAtTime(Time time, long ms) { System.out.println(time); } @Override public void playbackAtMs(long ms) { } @Override public void playbackStarted() { } @Override public void playbackPaused() { } @Override public void playbackStopped() { } }