use of com.xenoage.zong.musicxml.MusicXMLDocument in project Zong by Xenoage.
the class MusicXmlScoreFileInput method read.
/**
* Creates a {@link Score} instance from the document
* behind the given {@link InputStream}.
* @param inputStream the input stream with the MusicXML document
* @param filePath file path if known, null otherwise
*/
@Override
public Score read(InputStream stream, @MaybeNull String filePath) throws InvalidFormatException, IOException {
// parse MusicXML file
MxlScorePartwise score;
try {
XmlReader xmlReader = platformUtils().createXmlReader(stream);
MusicXMLDocument doc = MusicXMLDocument.read(xmlReader);
score = doc.getScore();
} catch (XmlDataException ex) {
// no valid MusicXML
throw new InvalidFormatException(ex);
} catch (Exception ex) {
throw new IOException(ex);
}
return read(score, Level.LogErrors);
}
use of com.xenoage.zong.musicxml.MusicXMLDocument in project Zong by Xenoage.
the class MusicXMLDemoFilesTest method test.
private void test(boolean reload) throws Exception {
long totalMusicXMLReadingTime = 0;
long lastTime = 0;
for (String dir : dirs) {
for (File file : JseFileUtils.listFiles(new File(dir), plainMusicXMLFilenameFilter, false)) {
System.out.println(file);
lastTime = System.currentTimeMillis();
XmlReader reader = new JseXmlReader(new FileInputStream(file));
try {
lastTime = System.currentTimeMillis();
// load the document
MusicXMLDocument doc = MusicXMLDocument.read(reader);
if (reload) {
// write the document into memory
ByteArrayOutputStream bos = new ByteArrayOutputStream();
doc.write(new JseXmlWriter(bos));
bos.close();
// reload it from memory
ByteArrayInputStream in = new ByteArrayInputStream(bos.toByteArray());
MusicXMLDocument.read(new JseXmlReader(in));
in.close();
// doc.write(new JseXmlWriter(new JseOutputStream(new File("test.xml"))));
}
totalMusicXMLReadingTime += (System.currentTimeMillis() - lastTime);
} catch (XmlException ex) {
throw new Exception("Failed for " + dir + "/" + file.getName() + ": " + ex.getMessage(), ex);
}
}
}
// print time
System.out.println("Total time for read" + (reload ? "/write/read: " : ": ") + totalMusicXMLReadingTime + " ms");
}
use of com.xenoage.zong.musicxml.MusicXMLDocument in project Zong by Xenoage.
the class StavesListReaderTest method createStavesList.
private StavesList createStavesList(String filePath) {
MusicXMLDocument doc = null;
try {
doc = MusicXMLDocument.read(platformUtils().createXmlReader(jsePlatformUtils().openFile(filePath)));
} catch (FileNotFoundException ex) {
// file not there. ignore, since copyrighted file. - TODO: ask Michael Good for file license
return null;
} catch (Exception ex) {
fail(ex.toString());
}
StavesListReader stavesListReader = new StavesListReader(doc.getScore(), new ErrorHandling(Level.ThrowException));
StavesList stavesList = null;
try {
stavesList = stavesListReader.read();
} catch (Exception ex) {
fail(ex.toString());
}
return stavesList;
}
Aggregations