Skip to content

Releases: cemfi/meico

meico v0.8.21

29 Jan 17:18
Compare
Choose a tag to compare

v0.8.21

  • Little enhancement in methods meico.mpm.elements.maps.ArticulationMap.addStyleSwitch() that is now also able to handle argument defaultArticulation == null.
  • Added constructors to classes meico.mpm.elements.maps.data.ArticulationData, MetricalAccentuationData, RubatoData, DynamicsData, TempoData, and DistributionData so they can now be instantiated from a corresponding XML element.
  • Fix in method meico.mpm.elements.maps.MetricalAccentuationMap.addAccentuationPattern(MetricalAccentuationData data). It has rejected input data that defined an accentuationPatternDef name but not the corresponding object itself. However, this is the usual situation when parsing an XML element. So this had to be fixed.
    • Same for method meico.mpm.elements.maps.RubatoMap.addRubato(RubatoData data).
  • Bugfix: corrected constant value meico.mpm.Mpm.RUBATOR_STYLE = "RubatorStyles" to "RubatoStyles".
  • Introduced some constants to class meico.mpm.elements.maps.data.DistributionData that provide the default strings for the type of the distribution. These are now used in class meico.mpm.elements.maps.ImprecisionMap instead of the hard-coded strings, so it will be easier to alter and extend those constants in future updates.

meico v0.8.20

04 Dec 09:49
Compare
Choose a tag to compare

v0.8.20

  • In classes meico.mpm.elements.maps.GenericMap and meico.mpm.elements.maps.ArticulationMap a variant of method addStyleSwitch() has been added that supports input of an ID string.

meico v0.8.19

27 Nov 07:55
Compare
Choose a tag to compare

v0.8.19

  • Added new class meico.mpm.elements.metadata.Comment and incorporated it in all classes that handle MPM metadata comment elements.
  • In class meico.mpm.elements.metadata.Metadata some new methods have been added: removeAuthor() and removeComment().
  • Enhancement in method meico.mpm.Mpm.addPerformance() to cancel if the input Performance object is null. It also got a boolean return value to indicate the success of the action.
  • The same has been added to method meico.mpm.elements.Performance.addPart(). It returns false also if the part is already in the performance.
  • The same has been added to methods meico.mpm.elements.metadata.Metadata.addAuthor(), addComment() and addRelatedResource(). Instead of an index they return -1.
  • Bugfixes in methods meico.mpm.elements.metadata.Author.setId() and removeAuthor().
  • Classes meico.mpm.elements.Part, Performance have been extended to provide access also to the element's xml:id.
  • New methods clear() and renameStyleDef() in class meico.mpm.elements.Header to remove all content of from the respective MPM element.
  • New method clear() in class meico.mpm.elements.Dated to remove all content of from the respective MPM element.
  • Bugfix in method meico.mpm.elements.Header.removeStyleType(), removeStyleDef(), addStyleType().
  • Lots of enhancement and refactoring of all classes in packages meico.mpm.elements.styles and meico.mpm.elements.styles.defs.
  • Correction of rubatoDef factory method meico.mpm.elements.styles.defs.RubatoDef.createRubatoDef(String name) to createRubatoDef(String name, double frameLength). A rubatoDef without a frameLangth is invalid. Hence the factory could never create a rubatoDef. This is fixed.
  • Refactoring of method meico.mpm.elements.styles.defs.AccentuationPatternDef.getSize() to size() to follow the convention used in all other classes.
  • Added another method addAccentuation() to class meico.mpm.elements.styles.defs.AccentuationPatternDef that supports input of an id string.

meico v0.8.18

04 Nov 08:25
Compare
Choose a tag to compare

v0.8.18

  • Enhancement of class meico.mpm.elements.metadata.Metadata so it can be instatiated with related resources.

meico v0.8.17

18 Sep 10:57
Compare
Choose a tag to compare

v0.8.17

  • Made class meico.midi.InstrumentsDirectory public so it can be used outside of its package.
  • Extended method meico.mei.Mei.makePart().
    • This addresses issue #23 where the staff label did not suffice to properly indicate which General MIDI instrument should be chosen during the MIDI export.
    • Thus, support for MEI element instrDef has been added. It should be used as follows.
      <staffDef clef.line="2" clef.shape="G" lines="5" n="1" label="unhelpful label">
          <instrDef midi.instrname="Violin" midi.instrnum="40"/>
      </staffDef>
      
      Only one of the attributes midi.instrnum (prioritized) and midi.instrname is required. The former should have values from 0 to 127 (not 1 to 128!). A list of General MIDI instrument names and numbers can be found on Wikipedia (here the numbers must be decreased by 1!).
    • Meico will add a programChangeMap to the MSM part during export and use this instead of the label to generate the corresponding MIDI messages during MIDI export.
    • The MEI Coverage Documentation has been updated accordingly and provides further information.

meico v0.8.16

03 Sep 11:30
Compare
Choose a tag to compare

v0.8.16

  • Little tweak in method meico.mpm.maps.DynamicsMap.renderDynamicsToMap(): If a dynamicsMap does not have a dynamics element at date 0.0 but there are notes to be performed before the first dynamics instruction, they now get a default velocity value.

meico v0.8.15

24 Aug 08:31
Compare
Choose a tag to compare

v0.8.15

  • Little tweak in method meico.mei.Mei.processMeasure() as it struggled to remove and inserting timeSignature elements from timeSignatureMap when the measure does not comply with the given time signature.
  • Indexing correction in method meico.mpm.elements.styles.defs.AccentuationPatternDef.addAccentuationToArrayList() so accentuations are added in the correct order to patterns.
  • In method meico.mei.Mei.processSyl() attribute wordpos was mandatory (with values i or m) to process attribte con. This did not work for some cases. So, wordpos is now being ignored and con will always be processed.

meico v0.8.14

17 Aug 08:44
Compare
Choose a tag to compare

v0.8.14

  • Added method meico.mei.Helper.addUUID() which encapsulates the generation of unique xml:id attributes. The corresponding code in method meico.msm.Msm.addIds() has been adapted.
  • Added another method addAccentuationPattern() to class meico.mpm.elements.maps.MetricalAccentuationMap which allows setting attribute stickToMeasures.
  • Minor fix in method meico.mei.Mei.addArticulationToMap() which generated a noteid string from null instead of setting the string null.
  • After update 0.8.12, method getCurrentTimeSignature() in class meico.mei.Helper required more context as input to determine the time signature information. It has been updated accordingly. This required adaptations also in several other methods in classes meico.mei.Helper and meico.mei.Mei which have been done, too.

meico v0.8.13

24 Jul 14:12
Compare
Choose a tag to compare

v0.8.13

  • Fix of the processing of <accid> elements where the parent <note> has different graphical and gestural pitch, see issue #17.

meico v0.8.12

14 Jul 21:03
Compare
Choose a tag to compare

v0.8.12

  • Enhancement of the processing of MEI tie element.
  • Bugfix in method meico.mei.Mei.processBreath() that generated a wrong default articulation.
  • Bugfix in method meico.mpm.elements.maps.ArticulationMap.renderArticulationToMap_noMillisecondModifiers(): NullPointerException in an error message.
  • Optimization of methods meico.mei.Helper.getPreviousSiblingElement() and getNextSiblingElement().
  • An extensive overhaul of method meico.mei.Mei.processMeasure() which is now able to handle the situation that no global time signature is given (via scoreDef) and only locally defined in the staffDef elements.
  • Some code polishing.