package com.xenoage.zong.desktop.io.midi.out;
import com.xenoage.utils.math.Fraction;
import com.xenoage.zong.core.instrument.Instrument;
import com.xenoage.zong.core.music.Pitch;
import com.xenoage.zong.core.music.chord.Chord;
import com.xenoage.zong.core.music.chord.Note;
import static com.xenoage.utils.math.Fraction.fr;
import static com.xenoage.zong.core.music.Pitch.pi;
/**
* Tests for {@link MidiChordPlayer}.
*
* @author Uli Teschemacher
*/
public class MidiChordPlayerTry {
public static void main(String... args)
throws Exception {
SynthManager.init(false);
MidiChordPlayer player = new MidiChordPlayer();
Instrument instrument = Instrument.defaultInstrument;
Pitch pitch = pi(2, 0, 4);
player.playNote(pitch, instrument);
sleep();
Chord chord = chord(new Pitch[] { pi(2, 0, 4), pi(4, 0, 4) }, fr(1));
player.playChord(chord, instrument);
sleep();
player.playChord(chord, instrument, (byte) 127);
sleep();
SynthManager.close();
}
private static void sleep() {
try {
Thread.sleep(2000);
} catch (Throwable e) {
}
}
public static Chord chord(Pitch[] pitches, Fraction duration) {
return new Chord(Note.notes(pitches), duration);
}
}