package com.xenoage.zong.io.midi.out; import com.xenoage.zong.desktop.io.midi.out.JseMidiSequenceWriter; import com.xenoage.zong.io.musicxml.in.MusicXmlScoreFileInput; import com.xenoage.zong.io.musicxml.in.MusicXmlScoreFileInputTest; import lombok.val; import org.junit.Test; import javax.sound.midi.MidiSystem; import java.io.File; import static com.xenoage.utils.jse.JsePlatformUtils.jsePlatformUtils; import static com.xenoage.zong.io.midi.out.MidiConverter.Options.optionsForPlayback; import static org.junit.Assert.*; /** * Tests for the {@link MidiConverter}. * * @author Andreas Wenger */ public class MidiConverterTest { @Test public void testSampleFiles() { boolean writeFiles = true; for (String file : MusicXmlScoreFileInputTest.getSampleFiles()) { try { val score = new MusicXmlScoreFileInput().read(jsePlatformUtils().openFile(file), file); val sequence = MidiConverter.convertToSequence( score, optionsForPlayback, new JseMidiSequenceWriter()); if (writeFiles) { //try: write to file new File("temp").mkdirs(); System.out.println("Converting: " + file); MidiSystem.write(sequence.getSequence(), 1, new File("temp/" + file.replaceAll("/", "_") + ".mid")); } } catch (Exception ex) { ex.printStackTrace(); fail("Failed to load file: " + file); } } } }