diff --git a/history.md b/history.md index 2bde042c..197cb802 100644 --- a/history.md +++ b/history.md @@ -1,6 +1,10 @@ ### Version History +#### v0.8.45 +- Bugfix in method `meico.mpm.elements.Performance.getAllMsmPartsAffectedByGlobalMap()` which caused some global performance features not being applied correctly to all affected maps. + + #### v0.8.44 - Bugfix in `meico.mpm.elements.maps.OrnamentationMap` methods `renderAllNonmillisecondsModifiersToMap()` and `renderMillisecondsModifiersToMap()`. Temporary attributes from the `temporalSpread` modifier were processed incorrectly. diff --git a/src/meico/Meico.java b/src/meico/Meico.java index 90f49cac..b64bec07 100644 --- a/src/meico/Meico.java +++ b/src/meico/Meico.java @@ -5,7 +5,7 @@ * @author Axel Berndt */ public class Meico { - public static final String version = "0.8.44"; + public static final String version = "0.8.45"; public static void main(String[] args) { System.out.println("meico v" + Meico.version); diff --git a/src/meico/mpm/elements/Performance.java b/src/meico/mpm/elements/Performance.java index 0e56280b..76bfe993 100644 --- a/src/meico/mpm/elements/Performance.java +++ b/src/meico/mpm/elements/Performance.java @@ -577,13 +577,15 @@ public Part getCorrespondingPart(Element msmPart) { private ArrayList getAllMsmPartsAffectedByGlobalMap(Msm msm, String mapType) { ArrayList msmPartsWithoutLocalMap = new ArrayList<>(); - for (Part part : this.getAllParts()) { // check all MPM parts - if (part.getDated().getMap(mapType) != null) // if the part has a local map of the given type - continue; // it is not affected by a global map of that type + for (Element msmPart : msm.getParts()) // first we add all parts, later we see which have to be removed + msmPartsWithoutLocalMap.add(msmPart); - Element msmPart = msm.getPart(part.getNumber(), part.getName(), part.getMidiChannel(), part.getMidiPort()); // find the part in the MSM - if (msmPart != null) - msmPartsWithoutLocalMap.add(msmPart); // add it to the list + for (Part part : this.getAllParts()) { // check all MPM parts + if (part.getDated().getMap(mapType) != null) { // if the part has a local map of the given type + Element msmPart = msm.getPart(part.getNumber(), part.getName(), part.getMidiChannel(), part.getMidiPort()); // find the part in the MSM + if (msmPart != null) // found it + msmPartsWithoutLocalMap.remove(msmPart); // remove it from our list + } } return msmPartsWithoutLocalMap; }