A converter framework with support for MEI, MSM, MPM, MIDI, WAV, MP3, chroma, and XSLT
v0.9.0
.musicxml
, .xml
) and compressed (.mxl
) are supported for reading and writing.score-timewise
, class meico.musicxml.MusicXml
supports conversion of score-timewise
to score-partwise
and vice versa.meico.mei.Mei2MsmMpmConverter
has been added to implement a better modularization of different conversion options. All conversion functionality from MEI to MSM and MPM moved from meico.mei.MEI
and meico.mei.Helper
into this class. Class meico.mei.Helper
still holds all static methods, as these are useful also outside of this particular conversion.convert()
and makeMovement()
of class meico.mei.Mei2MsmMpmConverter
. The relatedResources
entries in the MPM are now only with filenames and no longer with the absloute path on the local machine.meico.xml.XmlBase.XmlBase(String xml)
constructor. The added exceptions may require some applications to extend their exception handling also for other classes that are based on XmlBase
.meico.supplementary.InputStream2StringConverter
.Verovio Fix in meicoApp
v0.8.48
meico.midi.Midi.getMinimalPPQ()
that computes the minimal integer timing resolution (in pulses per quarter note) necessary for an accurate representation of a MIDI sequence.meico.msm.Msm
has been updated with the same algorithm.meico.midi.Midi.convertPPQ()
that allows to convert the timing basis of a MIDI sequence, similar to the eponymous method in class meico.msm.Msm
.v0.8.47
meico.mpm.elements.maps.TempoMap.getTempoAt()
that ensures that the exponent attribute of a TempoData
object is present.meico.mpm.elements.maps.TempoMap
that reduce (monotonous) series of successive tempo instructions to one instruction..mid
(as before) and .midi
(this is new).v0.8.46
meico.mpm.elements.maps.TempoMap.renderTempoToMap(double date, int ppq, TempoData tempoData)
has been made public
and refactored to computeDiffTiming()
to better describe its function.meico.mpm.elements.maps.GenericMap
has new methods:
contains()
to check whether a given XML element is an entry in this map.getElementIndexOf()
to determine the index of a given element.v0.8.45
meico.mpm.elements.Performance.getAllMsmPartsAffectedByGlobalMap()
which caused some global performance features not being applied correctly to all affected parts.v0.8.44
meico.mpm.elements.maps.OrnamentationMap
methods renderAllNonmillisecondsModifiersToMap()
and renderMillisecondsModifiersToMap()
. Temporary attributes from the temporalSpread
modifier were processed incorrectly.v0.8.43
meico.mpm.elements.styles.defs.OrnamentDef
, the attribute time.units
of element temporalSpread
is renamed to time.unit
(without "s") in accordance to the MPM shema definition.v0.8.42
temporalSpread
and dynamicsGradient
.v0.8.41
relatedResources
in constructor meico.elements.metadata.Metadata.Metadata(Author author, Comment comment, Collection<RelatedResource> relatedResources)
.v0.8.40