diff --git a/docs/allclasses-frame.html b/docs/allclasses-frame.html
index 2ddd7e75..1b684615 100644
--- a/docs/allclasses-frame.html
+++ b/docs/allclasses-frame.html
@@ -2,9 +2,9 @@
-
+
All Classes
-
+
diff --git a/docs/allclasses-noframe.html b/docs/allclasses-noframe.html
index 76308b9e..a5c03149 100644
--- a/docs/allclasses-noframe.html
+++ b/docs/allclasses-noframe.html
@@ -2,9 +2,9 @@
-
+
All Classes
-
+
diff --git a/docs/constant-values.html b/docs/constant-values.html
index b40696a6..c0e18667 100644
--- a/docs/constant-values.html
+++ b/docs/constant-values.html
@@ -2,9 +2,9 @@
-
+
Constant Field Values
-
+
@@ -95,7 +95,7 @@ meico.*
public static final java.lang.String
version
-"0.8.46"
+"0.8.47"
diff --git a/docs/deprecated-list.html b/docs/deprecated-list.html
index 828b68db..f9be07a6 100644
--- a/docs/deprecated-list.html
+++ b/docs/deprecated-list.html
@@ -2,9 +2,9 @@
-
+
Deprecated List
-
+
diff --git a/docs/help-doc.html b/docs/help-doc.html
index 5c4a9cf9..9b01e538 100644
--- a/docs/help-doc.html
+++ b/docs/help-doc.html
@@ -2,9 +2,9 @@
-
+
API Help
-
+
diff --git a/docs/index-files/index-1.html b/docs/index-files/index-1.html
index 9e75123b..cfb81a61 100644
--- a/docs/index-files/index-1.html
+++ b/docs/index-files/index-1.html
@@ -2,9 +2,9 @@
-
+
A-Index
-
+
@@ -186,6 +186,10 @@ A
activity - Variable in class meico.msm.Goto
+add(TempoMap.TempoMapSimplificationResults) - Method in class meico.mpm.elements.maps.TempoMap.TempoMapSimplificationResults
+
+combine the provided instance into this one
+
add(FeatureVector) - Method in class meico.pitches.FeatureVector
This adds up the energy and note ids of two feature vectors.
diff --git a/docs/index-files/index-10.html b/docs/index-files/index-10.html
index 3c8f37a1..81a40958 100644
--- a/docs/index-files/index-10.html
+++ b/docs/index-files/index-10.html
@@ -2,9 +2,9 @@
-
+
J-Index
-
+
diff --git a/docs/index-files/index-11.html b/docs/index-files/index-11.html
index 92b65116..d7dc3c84 100644
--- a/docs/index-files/index-11.html
+++ b/docs/index-files/index-11.html
@@ -2,9 +2,9 @@
-
+
K-Index
-
+
diff --git a/docs/index-files/index-12.html b/docs/index-files/index-12.html
index f3b0d424..3368b3d3 100644
--- a/docs/index-files/index-12.html
+++ b/docs/index-files/index-12.html
@@ -2,9 +2,9 @@
-
+
L-Index
-
+
diff --git a/docs/index-files/index-13.html b/docs/index-files/index-13.html
index ee77ef25..cf2ad459 100644
--- a/docs/index-files/index-13.html
+++ b/docs/index-files/index-13.html
@@ -2,9 +2,9 @@
-
+
M-Index
-
+
diff --git a/docs/index-files/index-14.html b/docs/index-files/index-14.html
index 73dae3e7..8ebfbad8 100644
--- a/docs/index-files/index-14.html
+++ b/docs/index-files/index-14.html
@@ -2,9 +2,9 @@
-
+
N-Index
-
+
diff --git a/docs/index-files/index-15.html b/docs/index-files/index-15.html
index b102fa26..11b3335f 100644
--- a/docs/index-files/index-15.html
+++ b/docs/index-files/index-15.html
@@ -2,9 +2,9 @@
-
+
O-Index
-
+
diff --git a/docs/index-files/index-16.html b/docs/index-files/index-16.html
index 2d8869a2..1c4e424c 100644
--- a/docs/index-files/index-16.html
+++ b/docs/index-files/index-16.html
@@ -2,9 +2,9 @@
-
+
P-Index
-
+
diff --git a/docs/index-files/index-17.html b/docs/index-files/index-17.html
index 8a2c2f30..4c0549c7 100644
--- a/docs/index-files/index-17.html
+++ b/docs/index-files/index-17.html
@@ -2,9 +2,9 @@
-
+
Q-Index
-
+
diff --git a/docs/index-files/index-18.html b/docs/index-files/index-18.html
index 5fe90b73..93501b61 100644
--- a/docs/index-files/index-18.html
+++ b/docs/index-files/index-18.html
@@ -2,9 +2,9 @@
-
+
R-Index
-
+
@@ -352,6 +352,8 @@ R
just a helper method for prettyXml()
+ replacements - Variable in class meico.mpm.elements.maps.TempoMap.TempoMapSimplificationResults
+
reset() - Method in class meico.mei.Helper
this method is called when making a new movement
diff --git a/docs/index-files/index-19.html b/docs/index-files/index-19.html
index 83fc7dc4..8a8bcb09 100644
--- a/docs/index-files/index-19.html
+++ b/docs/index-files/index-19.html
@@ -2,9 +2,9 @@
-
+
S-Index
-
+
@@ -430,6 +430,23 @@ S
convert a short to a byte array
+ simplify(int) - Method in class meico.mpm.elements.maps.TempoMap
+
+simplifies the whole tempoMap at once
+
+simplify(ArrayList<TempoData>, boolean, int) - Method in class meico.mpm.elements.maps.TempoMap
+
+simplify a monotonic series of tempo instructions
+
+simplify(TempoData, double, int) - Method in class meico.mpm.elements.maps.TempoMap
+
+simplify a single tempo instruction
+
+simplifyFast(TempoData) - Method in class meico.mpm.elements.maps.TempoMap
+
+a faster version of simplify(TempoData tempo, double equalTempoRange, int ppq);
+ this method simplifies a single tempo instruction to a constant tempo; it does not compute timing error
+
size() - Method in class meico.mpm.elements.maps.GenericMap
get the number of entries in the map
diff --git a/docs/index-files/index-2.html b/docs/index-files/index-2.html
index f263a526..a92f6094 100644
--- a/docs/index-files/index-2.html
+++ b/docs/index-files/index-2.html
@@ -2,9 +2,9 @@
-
+
B-Index
-
+
diff --git a/docs/index-files/index-20.html b/docs/index-files/index-20.html
index f20a2c12..7b97e61c 100644
--- a/docs/index-files/index-20.html
+++ b/docs/index-files/index-20.html
@@ -2,9 +2,9 @@
-
+
T-Index
-
+
@@ -120,6 +120,12 @@ T
constructor, generates an instance from xml code
+ TempoMap.TempoMapSimplificationResults - Class in meico.mpm.elements.maps
+
+This class gives information about the changes that are done to the tempoMap in the process of simplification.
+
+TempoMapSimplificationResults() - Constructor for class meico.mpm.elements.maps.TempoMap.TempoMapSimplificationResults
+
temporalSpread - Variable in class meico.mpm.elements.styles.defs.OrnamentDef
TemporalSpread() - Constructor for class meico.mpm.elements.styles.defs.OrnamentDef.TemporalSpread
diff --git a/docs/index-files/index-21.html b/docs/index-files/index-21.html
index 38c03552..1956a0ed 100644
--- a/docs/index-files/index-21.html
+++ b/docs/index-files/index-21.html
@@ -2,9 +2,9 @@
-
+
U-Index
-
+
diff --git a/docs/index-files/index-22.html b/docs/index-files/index-22.html
index acd80793..491be0c5 100644
--- a/docs/index-files/index-22.html
+++ b/docs/index-files/index-22.html
@@ -2,9 +2,9 @@
-
+
V-Index
-
+
diff --git a/docs/index-files/index-23.html b/docs/index-files/index-23.html
index 634f03d0..f054892e 100644
--- a/docs/index-files/index-23.html
+++ b/docs/index-files/index-23.html
@@ -2,9 +2,9 @@
-
+
W-Index
-
+
diff --git a/docs/index-files/index-24.html b/docs/index-files/index-24.html
index 0a2ad645..cfa4f7d0 100644
--- a/docs/index-files/index-24.html
+++ b/docs/index-files/index-24.html
@@ -2,9 +2,9 @@
-
+
X-Index
-
+
diff --git a/docs/index-files/index-3.html b/docs/index-files/index-3.html
index f8a2885f..0291a9e0 100644
--- a/docs/index-files/index-3.html
+++ b/docs/index-files/index-3.html
@@ -2,9 +2,9 @@
-
+
C-Index
-
+
diff --git a/docs/index-files/index-4.html b/docs/index-files/index-4.html
index 05c615c1..f300cc3f 100644
--- a/docs/index-files/index-4.html
+++ b/docs/index-files/index-4.html
@@ -2,9 +2,9 @@
-
+
D-Index
-
+
@@ -125,6 +125,8 @@ D
this method removes all empty maps;
this is to make the data a bit smaller and less cluttered
+deletions - Variable in class meico.mpm.elements.maps.TempoMap.TempoMapSimplificationResults
+
detuneCents - Variable in class meico.mpm.elements.maps.data.ArticulationData
detuneCents - Variable in class meico.mpm.elements.styles.defs.ArticulationDef
diff --git a/docs/index-files/index-5.html b/docs/index-files/index-5.html
index 2400fa6d..1b4874a4 100644
--- a/docs/index-files/index-5.html
+++ b/docs/index-files/index-5.html
@@ -2,9 +2,9 @@
-
+
E-Index
-
+
@@ -124,6 +124,8 @@ E
this little helper method makes sure that the protraction value is valid
+error - Variable in class meico.mpm.elements.maps.TempoMap.TempoMapSimplificationResults
+
EventMaker - Class in meico.midi
This helper class provides some useful midi-related functions.
diff --git a/docs/index-files/index-6.html b/docs/index-files/index-6.html
index 348df69d..c18426d4 100644
--- a/docs/index-files/index-6.html
+++ b/docs/index-files/index-6.html
@@ -2,9 +2,9 @@
-
+
F-Index
-
+
diff --git a/docs/index-files/index-7.html b/docs/index-files/index-7.html
index 5c923c9e..545190bb 100644
--- a/docs/index-files/index-7.html
+++ b/docs/index-files/index-7.html
@@ -2,9 +2,9 @@
-
+
G-Index
-
+
diff --git a/docs/index-files/index-8.html b/docs/index-files/index-8.html
index 7d550c17..43c09076 100644
--- a/docs/index-files/index-8.html
+++ b/docs/index-files/index-8.html
@@ -2,9 +2,9 @@
-
+
H-Index
-
+
diff --git a/docs/index-files/index-9.html b/docs/index-files/index-9.html
index 057cd7cb..1573a0c6 100644
--- a/docs/index-files/index-9.html
+++ b/docs/index-files/index-9.html
@@ -2,9 +2,9 @@
-
+
I-Index
-
+
diff --git a/docs/index.html b/docs/index.html
index 2e85a8d5..3b81d6a0 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -2,7 +2,7 @@
-
+
Generated Documentation (Untitled)
diff --git a/docs/meico/audio/Audio.html b/docs/meico/audio/Audio.html
index 1ece534e..5f5a34cc 100644
--- a/docs/meico/audio/Audio.html
+++ b/docs/meico/audio/Audio.html
@@ -2,9 +2,9 @@
-
+
Audio
-
+
diff --git a/docs/meico/audio/AudioPlayer.html b/docs/meico/audio/AudioPlayer.html
index efac3ea1..8413745a 100644
--- a/docs/meico/audio/AudioPlayer.html
+++ b/docs/meico/audio/AudioPlayer.html
@@ -2,9 +2,9 @@
-
+
AudioPlayer
-
+
diff --git a/docs/meico/audio/class-use/Audio.html b/docs/meico/audio/class-use/Audio.html
index a508d1a7..f5df2aa6 100644
--- a/docs/meico/audio/class-use/Audio.html
+++ b/docs/meico/audio/class-use/Audio.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.audio.Audio
-
+
diff --git a/docs/meico/audio/class-use/AudioPlayer.html b/docs/meico/audio/class-use/AudioPlayer.html
index 25e630b1..dc28bf85 100644
--- a/docs/meico/audio/class-use/AudioPlayer.html
+++ b/docs/meico/audio/class-use/AudioPlayer.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.audio.AudioPlayer
-
+
diff --git a/docs/meico/audio/package-frame.html b/docs/meico/audio/package-frame.html
index c065db77..21550c93 100644
--- a/docs/meico/audio/package-frame.html
+++ b/docs/meico/audio/package-frame.html
@@ -2,9 +2,9 @@
-
+
meico.audio
-
+
diff --git a/docs/meico/audio/package-summary.html b/docs/meico/audio/package-summary.html
index 9d588525..ab36957b 100644
--- a/docs/meico/audio/package-summary.html
+++ b/docs/meico/audio/package-summary.html
@@ -2,9 +2,9 @@
-
+
meico.audio
-
+
diff --git a/docs/meico/audio/package-tree.html b/docs/meico/audio/package-tree.html
index dec9b225..d44b8006 100644
--- a/docs/meico/audio/package-tree.html
+++ b/docs/meico/audio/package-tree.html
@@ -2,9 +2,9 @@
-
+
meico.audio Class Hierarchy
-
+
diff --git a/docs/meico/audio/package-use.html b/docs/meico/audio/package-use.html
index da156cf3..c16fed3d 100644
--- a/docs/meico/audio/package-use.html
+++ b/docs/meico/audio/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package meico.audio
-
+
diff --git a/docs/meico/class-use/Meico.html b/docs/meico/class-use/Meico.html
index 01b69ebe..239f0c1b 100644
--- a/docs/meico/class-use/Meico.html
+++ b/docs/meico/class-use/Meico.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.Meico
-
+
diff --git a/docs/meico/mei/Helper.html b/docs/meico/mei/Helper.html
index e91e6d64..6fec83ea 100644
--- a/docs/meico/mei/Helper.html
+++ b/docs/meico/mei/Helper.html
@@ -2,9 +2,9 @@
-
+
Helper
-
+
diff --git a/docs/meico/mei/Mei.html b/docs/meico/mei/Mei.html
index e62a15ab..78e797e6 100644
--- a/docs/meico/mei/Mei.html
+++ b/docs/meico/mei/Mei.html
@@ -2,9 +2,9 @@
-
+
Mei
-
+
diff --git a/docs/meico/mei/class-use/Helper.html b/docs/meico/mei/class-use/Helper.html
index 838b1251..c6cce58b 100644
--- a/docs/meico/mei/class-use/Helper.html
+++ b/docs/meico/mei/class-use/Helper.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mei.Helper
-
+
diff --git a/docs/meico/mei/class-use/Mei.html b/docs/meico/mei/class-use/Mei.html
index c160c603..dd662261 100644
--- a/docs/meico/mei/class-use/Mei.html
+++ b/docs/meico/mei/class-use/Mei.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mei.Mei
-
+
diff --git a/docs/meico/mei/package-frame.html b/docs/meico/mei/package-frame.html
index 136c953c..09e72237 100644
--- a/docs/meico/mei/package-frame.html
+++ b/docs/meico/mei/package-frame.html
@@ -2,9 +2,9 @@
-
+
meico.mei
-
+
diff --git a/docs/meico/mei/package-summary.html b/docs/meico/mei/package-summary.html
index ab8f2c3f..1c32ea0d 100644
--- a/docs/meico/mei/package-summary.html
+++ b/docs/meico/mei/package-summary.html
@@ -2,9 +2,9 @@
-
+
meico.mei
-
+
diff --git a/docs/meico/mei/package-tree.html b/docs/meico/mei/package-tree.html
index 2c035509..93d881dc 100644
--- a/docs/meico/mei/package-tree.html
+++ b/docs/meico/mei/package-tree.html
@@ -2,9 +2,9 @@
-
+
meico.mei Class Hierarchy
-
+
diff --git a/docs/meico/mei/package-use.html b/docs/meico/mei/package-use.html
index f9484836..70310a5d 100644
--- a/docs/meico/mei/package-use.html
+++ b/docs/meico/mei/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package meico.mei
-
+
diff --git a/docs/meico/midi/EventMaker.html b/docs/meico/midi/EventMaker.html
index b458b46e..7d7103a7 100644
--- a/docs/meico/midi/EventMaker.html
+++ b/docs/meico/midi/EventMaker.html
@@ -2,9 +2,9 @@
-
+
EventMaker
-
+
diff --git a/docs/meico/midi/InstrumentsDictionary.html b/docs/meico/midi/InstrumentsDictionary.html
index 22d527c1..caff1463 100644
--- a/docs/meico/midi/InstrumentsDictionary.html
+++ b/docs/meico/midi/InstrumentsDictionary.html
@@ -2,9 +2,9 @@
-
+
InstrumentsDictionary
-
+
diff --git a/docs/meico/midi/Midi.html b/docs/meico/midi/Midi.html
index 582a0602..9575c61e 100644
--- a/docs/meico/midi/Midi.html
+++ b/docs/meico/midi/Midi.html
@@ -2,9 +2,9 @@
-
+
Midi
-
+
diff --git a/docs/meico/midi/Midi2AudioRenderer.html b/docs/meico/midi/Midi2AudioRenderer.html
index c57bc22b..fa90261c 100644
--- a/docs/meico/midi/Midi2AudioRenderer.html
+++ b/docs/meico/midi/Midi2AudioRenderer.html
@@ -2,9 +2,9 @@
-
+
Midi2AudioRenderer
-
+
diff --git a/docs/meico/midi/Midi2MsmConverter.html b/docs/meico/midi/Midi2MsmConverter.html
index 1daffec8..00164e70 100644
--- a/docs/meico/midi/Midi2MsmConverter.html
+++ b/docs/meico/midi/Midi2MsmConverter.html
@@ -2,9 +2,9 @@
-
+
Midi2MsmConverter
-
+
diff --git a/docs/meico/midi/MidiPlayer.html b/docs/meico/midi/MidiPlayer.html
index 7e997bf7..d7c343ec 100644
--- a/docs/meico/midi/MidiPlayer.html
+++ b/docs/meico/midi/MidiPlayer.html
@@ -2,9 +2,9 @@
-
+
MidiPlayer
-
+
diff --git a/docs/meico/midi/UnsupportedSoundbankException.html b/docs/meico/midi/UnsupportedSoundbankException.html
index 4330b517..4688261c 100644
--- a/docs/meico/midi/UnsupportedSoundbankException.html
+++ b/docs/meico/midi/UnsupportedSoundbankException.html
@@ -2,9 +2,9 @@
-
+
UnsupportedSoundbankException
-
+
diff --git a/docs/meico/midi/class-use/EventMaker.html b/docs/meico/midi/class-use/EventMaker.html
index 8a79eb06..41349664 100644
--- a/docs/meico/midi/class-use/EventMaker.html
+++ b/docs/meico/midi/class-use/EventMaker.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.midi.EventMaker
-
+
diff --git a/docs/meico/midi/class-use/InstrumentsDictionary.html b/docs/meico/midi/class-use/InstrumentsDictionary.html
index 0ebe4a99..c82f77ce 100644
--- a/docs/meico/midi/class-use/InstrumentsDictionary.html
+++ b/docs/meico/midi/class-use/InstrumentsDictionary.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.midi.InstrumentsDictionary
-
+
diff --git a/docs/meico/midi/class-use/Midi.html b/docs/meico/midi/class-use/Midi.html
index 42a9ca0e..92fcbadd 100644
--- a/docs/meico/midi/class-use/Midi.html
+++ b/docs/meico/midi/class-use/Midi.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.midi.Midi
-
+
diff --git a/docs/meico/midi/class-use/Midi2AudioRenderer.html b/docs/meico/midi/class-use/Midi2AudioRenderer.html
index 2fc1c5b0..8a57b010 100644
--- a/docs/meico/midi/class-use/Midi2AudioRenderer.html
+++ b/docs/meico/midi/class-use/Midi2AudioRenderer.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.midi.Midi2AudioRenderer
-
+
diff --git a/docs/meico/midi/class-use/Midi2MsmConverter.html b/docs/meico/midi/class-use/Midi2MsmConverter.html
index da4fde69..6bbafe5e 100644
--- a/docs/meico/midi/class-use/Midi2MsmConverter.html
+++ b/docs/meico/midi/class-use/Midi2MsmConverter.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.midi.Midi2MsmConverter
-
+
diff --git a/docs/meico/midi/class-use/MidiPlayer.html b/docs/meico/midi/class-use/MidiPlayer.html
index 6fd6c073..026d1230 100644
--- a/docs/meico/midi/class-use/MidiPlayer.html
+++ b/docs/meico/midi/class-use/MidiPlayer.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.midi.MidiPlayer
-
+
diff --git a/docs/meico/midi/class-use/UnsupportedSoundbankException.html b/docs/meico/midi/class-use/UnsupportedSoundbankException.html
index 35edc07d..df160709 100644
--- a/docs/meico/midi/class-use/UnsupportedSoundbankException.html
+++ b/docs/meico/midi/class-use/UnsupportedSoundbankException.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.midi.UnsupportedSoundbankException
-
+
diff --git a/docs/meico/midi/package-frame.html b/docs/meico/midi/package-frame.html
index 7f5ce87c..aa1c74cc 100644
--- a/docs/meico/midi/package-frame.html
+++ b/docs/meico/midi/package-frame.html
@@ -2,9 +2,9 @@
-
+
meico.midi
-
+
diff --git a/docs/meico/midi/package-summary.html b/docs/meico/midi/package-summary.html
index ba7088bf..a0c8ad05 100644
--- a/docs/meico/midi/package-summary.html
+++ b/docs/meico/midi/package-summary.html
@@ -2,9 +2,9 @@
-
+
meico.midi
-
+
diff --git a/docs/meico/midi/package-tree.html b/docs/meico/midi/package-tree.html
index 95fc0726..2a85c50c 100644
--- a/docs/meico/midi/package-tree.html
+++ b/docs/meico/midi/package-tree.html
@@ -2,9 +2,9 @@
-
+
meico.midi Class Hierarchy
-
+
diff --git a/docs/meico/midi/package-use.html b/docs/meico/midi/package-use.html
index 67831b8a..fba993ea 100644
--- a/docs/meico/midi/package-use.html
+++ b/docs/meico/midi/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package meico.midi
-
+
diff --git a/docs/meico/mpm/Mpm.html b/docs/meico/mpm/Mpm.html
index 22b44d61..8c45e1a9 100644
--- a/docs/meico/mpm/Mpm.html
+++ b/docs/meico/mpm/Mpm.html
@@ -2,9 +2,9 @@
-
+
Mpm
-
+
diff --git a/docs/meico/mpm/class-use/Mpm.html b/docs/meico/mpm/class-use/Mpm.html
index f05bf611..9c2322fa 100644
--- a/docs/meico/mpm/class-use/Mpm.html
+++ b/docs/meico/mpm/class-use/Mpm.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.Mpm
-
+
diff --git a/docs/meico/mpm/elements/Dated.html b/docs/meico/mpm/elements/Dated.html
index 1914c046..dfd4c346 100644
--- a/docs/meico/mpm/elements/Dated.html
+++ b/docs/meico/mpm/elements/Dated.html
@@ -2,9 +2,9 @@
-
+
Dated
-
+
diff --git a/docs/meico/mpm/elements/Global.html b/docs/meico/mpm/elements/Global.html
index 6d9fe7b7..dfd9e2ad 100644
--- a/docs/meico/mpm/elements/Global.html
+++ b/docs/meico/mpm/elements/Global.html
@@ -2,9 +2,9 @@
-
+
Global
-
+
diff --git a/docs/meico/mpm/elements/Header.html b/docs/meico/mpm/elements/Header.html
index e9ad6123..71523f7e 100644
--- a/docs/meico/mpm/elements/Header.html
+++ b/docs/meico/mpm/elements/Header.html
@@ -2,9 +2,9 @@
-
+
Header
-
+
diff --git a/docs/meico/mpm/elements/Part.html b/docs/meico/mpm/elements/Part.html
index 18b69a16..138c684b 100644
--- a/docs/meico/mpm/elements/Part.html
+++ b/docs/meico/mpm/elements/Part.html
@@ -2,9 +2,9 @@
-
+
Part
-
+
diff --git a/docs/meico/mpm/elements/Performance.html b/docs/meico/mpm/elements/Performance.html
index 36db4e18..192643d4 100644
--- a/docs/meico/mpm/elements/Performance.html
+++ b/docs/meico/mpm/elements/Performance.html
@@ -2,9 +2,9 @@
-
+
Performance
-
+
diff --git a/docs/meico/mpm/elements/class-use/Dated.html b/docs/meico/mpm/elements/class-use/Dated.html
index 5f0e3c48..34dd7a4a 100644
--- a/docs/meico/mpm/elements/class-use/Dated.html
+++ b/docs/meico/mpm/elements/class-use/Dated.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.Dated
-
+
@@ -106,11 +106,11 @@ Uses of
private Dated
-Part. dated
+Global. dated
private Dated
-Global. dated
+Part. dated
@@ -135,13 +135,13 @@ Uses of
Dated
-Part. getDated ()
+Global. getDated ()
access the dated environment
Dated
-Global. getDated ()
+Part. getDated ()
access the dated environment
diff --git a/docs/meico/mpm/elements/class-use/Global.html b/docs/meico/mpm/elements/class-use/Global.html
index 0d5a392a..35716ca1 100644
--- a/docs/meico/mpm/elements/class-use/Global.html
+++ b/docs/meico/mpm/elements/class-use/Global.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.Global
-
+
@@ -110,11 +110,11 @@ Uses of
private Global
-Part. global
+Performance. global
private Global
-Performance. global
+Part. global
@@ -145,14 +145,14 @@ Uses of
Global
-Part. getGlobal ()
-access the global environment that this part links to
+Performance. getGlobal ()
+access the global information of this performance
Global
-Performance. getGlobal ()
-access the global information of this performance
+Part. getGlobal ()
+access the global environment that this part links to
diff --git a/docs/meico/mpm/elements/class-use/Header.html b/docs/meico/mpm/elements/class-use/Header.html
index 95c522c4..9929144e 100644
--- a/docs/meico/mpm/elements/class-use/Header.html
+++ b/docs/meico/mpm/elements/class-use/Header.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.Header
-
+
@@ -112,11 +112,11 @@ Uses of
private Header
-Part. header
+Global. header
private Header
-Global. header
+Part. header
@@ -141,13 +141,13 @@ Uses of
Header
-Part. getHeader ()
+Global. getHeader ()
access the header environment
Header
-Global. getHeader ()
+Part. getHeader ()
access the header environment
diff --git a/docs/meico/mpm/elements/class-use/Part.html b/docs/meico/mpm/elements/class-use/Part.html
index 3c17d9d5..e8d113e4 100644
--- a/docs/meico/mpm/elements/class-use/Part.html
+++ b/docs/meico/mpm/elements/class-use/Part.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.Part
-
+
diff --git a/docs/meico/mpm/elements/class-use/Performance.html b/docs/meico/mpm/elements/class-use/Performance.html
index 35ba037b..8dc12f07 100644
--- a/docs/meico/mpm/elements/class-use/Performance.html
+++ b/docs/meico/mpm/elements/class-use/Performance.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.Performance
-
+
diff --git a/docs/meico/mpm/elements/maps/ArticulationMap.html b/docs/meico/mpm/elements/maps/ArticulationMap.html
index f93f1c1c..848ee505 100644
--- a/docs/meico/mpm/elements/maps/ArticulationMap.html
+++ b/docs/meico/mpm/elements/maps/ArticulationMap.html
@@ -2,9 +2,9 @@
-
+
ArticulationMap
-
+
diff --git a/docs/meico/mpm/elements/maps/AsynchronyMap.html b/docs/meico/mpm/elements/maps/AsynchronyMap.html
index 4e48aba0..94e32cb8 100644
--- a/docs/meico/mpm/elements/maps/AsynchronyMap.html
+++ b/docs/meico/mpm/elements/maps/AsynchronyMap.html
@@ -2,9 +2,9 @@
-
+
AsynchronyMap
-
+
diff --git a/docs/meico/mpm/elements/maps/DynamicsMap.html b/docs/meico/mpm/elements/maps/DynamicsMap.html
index 70f6f044..70184aa6 100644
--- a/docs/meico/mpm/elements/maps/DynamicsMap.html
+++ b/docs/meico/mpm/elements/maps/DynamicsMap.html
@@ -2,9 +2,9 @@
-
+
DynamicsMap
-
+
diff --git a/docs/meico/mpm/elements/maps/GenericMap.html b/docs/meico/mpm/elements/maps/GenericMap.html
index a7238072..30358281 100644
--- a/docs/meico/mpm/elements/maps/GenericMap.html
+++ b/docs/meico/mpm/elements/maps/GenericMap.html
@@ -2,9 +2,9 @@
-
+
GenericMap
-
+
diff --git a/docs/meico/mpm/elements/maps/ImprecisionMap.html b/docs/meico/mpm/elements/maps/ImprecisionMap.html
index d472f52b..eb6ad102 100644
--- a/docs/meico/mpm/elements/maps/ImprecisionMap.html
+++ b/docs/meico/mpm/elements/maps/ImprecisionMap.html
@@ -2,9 +2,9 @@
-
+
ImprecisionMap
-
+
diff --git a/docs/meico/mpm/elements/maps/MetricalAccentuationMap.html b/docs/meico/mpm/elements/maps/MetricalAccentuationMap.html
index bb73dbc8..53d67c91 100644
--- a/docs/meico/mpm/elements/maps/MetricalAccentuationMap.html
+++ b/docs/meico/mpm/elements/maps/MetricalAccentuationMap.html
@@ -2,9 +2,9 @@
-
+
MetricalAccentuationMap
-
+
diff --git a/docs/meico/mpm/elements/maps/OrnamentationMap.html b/docs/meico/mpm/elements/maps/OrnamentationMap.html
index a6b399d2..bf87e19a 100644
--- a/docs/meico/mpm/elements/maps/OrnamentationMap.html
+++ b/docs/meico/mpm/elements/maps/OrnamentationMap.html
@@ -2,9 +2,9 @@
-
+
OrnamentationMap
-
+
diff --git a/docs/meico/mpm/elements/maps/RubatoMap.html b/docs/meico/mpm/elements/maps/RubatoMap.html
index 30f40d28..b68c7a4b 100644
--- a/docs/meico/mpm/elements/maps/RubatoMap.html
+++ b/docs/meico/mpm/elements/maps/RubatoMap.html
@@ -2,9 +2,9 @@
-
+
RubatoMap
-
+
diff --git a/docs/meico/mpm/elements/maps/TempoMap.TempoMapSimplificationResults.html b/docs/meico/mpm/elements/maps/TempoMap.TempoMapSimplificationResults.html
new file mode 100644
index 00000000..cbcb76f6
--- /dev/null
+++ b/docs/meico/mpm/elements/maps/TempoMap.TempoMapSimplificationResults.html
@@ -0,0 +1,349 @@
+
+
+
+
+
+TempoMap.TempoMapSimplificationResults
+
+
+
+
+
+
+
+JavaScript is disabled on your browser.
+
+
+
+
+
+
+
+
+
+java.lang.Object
+
+
+meico.mpm.elements.maps.TempoMap.TempoMapSimplificationResults
+
+
+
+
+
+
+
+
+
+
+
+
+Field Summary
+
+
+
+
+
+
+
+
+Constructor Summary
+
+
+
+
+
+
+
+
+Method Summary
+
+
+
+
+
+Methods inherited from class java.lang.Object
+clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Field Detail
+
+
+
+
+
+error
+public double error
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Constructor Detail
+
+
+
+
+
+
+
+
+
+
+
+Method Detail
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/meico/mpm/elements/maps/TempoMap.html b/docs/meico/mpm/elements/maps/TempoMap.html
index 29123cda..6d188a5c 100644
--- a/docs/meico/mpm/elements/maps/TempoMap.html
+++ b/docs/meico/mpm/elements/maps/TempoMap.html
@@ -2,9 +2,9 @@
-
+
TempoMap
-
+
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":10,"i10":9,"i11":9,"i12":10,"i13":10,"i14":9,"i15":10,"i16":10,"i17":10,"i18":10,"i19":9};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":10,"i10":9,"i11":9,"i12":10,"i13":10,"i14":9,"i15":10,"i16":10,"i17":10,"i18":10,"i19":9,"i20":10,"i21":10,"i22":10,"i23":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -50,7 +50,7 @@
Frames
@@ -74,7 +74,7 @@
Summary:
-Nested |
+Nested |
Field |
Constr |
Method
@@ -132,6 +132,27 @@ Class TempoMap
+
+
+
+
+
+Nested Class Summary
+
+Nested Classes
+
+Modifier and Type
+Class and Description
+
+
+class
+TempoMap.TempoMapSimplificationResults
+This class gives information about the changes that are done to the tempoMap in the process of simplification.
+
+
+
+
+
+
+TempoMap.TempoMapSimplificationResults
+simplify (java.util.ArrayList<TempoData > series,
+ boolean toConstant,
+ int ppq)
+simplify a monotonic series of tempo instructions
+
+
+
+TempoMap.TempoMapSimplificationResults
+simplify (int ppq)
+simplifies the whole tempoMap at once
+
+
+
+TempoMap.TempoMapSimplificationResults
+simplify (TempoData tempo,
+ double equalTempoRange,
+ int ppq)
+simplify a single tempo instruction
+
+
+
+TempoData
+simplifyFast (TempoData tempo)
+a faster version of simplify(TempoData tempo, double equalTempoRange, int ppq);
+ this method simplifies a single tempo instruction to a constant tempo; it does not compute timing error
+
+
@@ -746,7 +796,7 @@ computeMillisecondsForConstantTempo
-
+
computeMillisecondsForTempoTransition
private static double computeMillisecondsForTempoTransition(double date,
@@ -763,6 +813,78 @@ computeMillisecondsForTempoTransition
+
+
+
+
+
+
+
+
+
+simplify
+public TempoMap.TempoMapSimplificationResults simplify(java.util.ArrayList<TempoData > series,
+ boolean toConstant,
+ int ppq)
+simplify a monotonic series of tempo instructions
+
+Parameters:
+series
- the series of tempo data to simplify; the first instruction will be edited, the last remains unchanged, all in-between will be deleted
+ppq
-
+toConstant
- set true if the series should be simplified to a constant instruction
+Returns:
+a data structure indicating all the alterations to the tempoMap
+
+
+
+
+
+
+
+
+simplify
+public TempoMap.TempoMapSimplificationResults simplify(TempoData tempo,
+ double equalTempoRange,
+ int ppq)
+simplify a single tempo instruction
+
+Parameters:
+tempo
- must have all required information that are generated via TempoMap.getTempoDataOf(i)
+equalTempoRange
- the maximum tempo difference allowed to make the tempo constant
+ppq
-
+Returns:
+
+
+
+
+
+
+
+
+simplifyFast
+public TempoData simplifyFast(TempoData tempo)
+a faster version of simplify(TempoData tempo, double equalTempoRange, int ppq);
+ this method simplifies a single tempo instruction to a constant tempo; it does not compute timing error
+
+Parameters:
+tempo
- the tempo instruction must be member of this tempoMap
+Returns:
+the new tempo instruction by which tempo has been replaced
+
+
+
@@ -792,7 +914,7 @@ computeMillisecondsForTempoTransition
Frames
@@ -816,7 +938,7 @@ computeMillisecondsForTempoTransition
+
meico.mpm.elements.maps.TempoMap.TempoMapSimplificationResults
diff --git a/docs/meico/mpm/elements/maps/package-use.html b/docs/meico/mpm/elements/maps/package-use.html
index 62388df8..a51583c2 100644
--- a/docs/meico/mpm/elements/maps/package-use.html
+++ b/docs/meico/mpm/elements/maps/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package meico.mpm.elements.maps
-
+
@@ -230,6 +230,11 @@
Uses of Packag
This class interfaces MPM's tempoMaps
+
+TempoMap.TempoMapSimplificationResults
+This class gives information about the changes that are done to the tempoMap in the process of simplification.
+
+
diff --git a/docs/meico/mpm/elements/metadata/Author.html b/docs/meico/mpm/elements/metadata/Author.html
index d48ec297..a518b925 100644
--- a/docs/meico/mpm/elements/metadata/Author.html
+++ b/docs/meico/mpm/elements/metadata/Author.html
@@ -2,9 +2,9 @@
-
+
Author
-
+
diff --git a/docs/meico/mpm/elements/metadata/Comment.html b/docs/meico/mpm/elements/metadata/Comment.html
index ccc04221..2f2d41df 100644
--- a/docs/meico/mpm/elements/metadata/Comment.html
+++ b/docs/meico/mpm/elements/metadata/Comment.html
@@ -2,9 +2,9 @@
-
+
Comment
-
+
diff --git a/docs/meico/mpm/elements/metadata/Metadata.html b/docs/meico/mpm/elements/metadata/Metadata.html
index 0e154aaf..34619d92 100644
--- a/docs/meico/mpm/elements/metadata/Metadata.html
+++ b/docs/meico/mpm/elements/metadata/Metadata.html
@@ -2,9 +2,9 @@
-
+
Metadata
-
+
diff --git a/docs/meico/mpm/elements/metadata/RelatedResource.html b/docs/meico/mpm/elements/metadata/RelatedResource.html
index d0ad91bf..78ecdc41 100644
--- a/docs/meico/mpm/elements/metadata/RelatedResource.html
+++ b/docs/meico/mpm/elements/metadata/RelatedResource.html
@@ -2,9 +2,9 @@
-
+
RelatedResource
-
+
diff --git a/docs/meico/mpm/elements/metadata/class-use/Author.html b/docs/meico/mpm/elements/metadata/class-use/Author.html
index ca70699d..565c6baa 100644
--- a/docs/meico/mpm/elements/metadata/class-use/Author.html
+++ b/docs/meico/mpm/elements/metadata/class-use/Author.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.metadata.Author
-
+
diff --git a/docs/meico/mpm/elements/metadata/class-use/Comment.html b/docs/meico/mpm/elements/metadata/class-use/Comment.html
index 89b7c82b..ea798f10 100644
--- a/docs/meico/mpm/elements/metadata/class-use/Comment.html
+++ b/docs/meico/mpm/elements/metadata/class-use/Comment.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.metadata.Comment
-
+
diff --git a/docs/meico/mpm/elements/metadata/class-use/Metadata.html b/docs/meico/mpm/elements/metadata/class-use/Metadata.html
index a53ec4af..462a7795 100644
--- a/docs/meico/mpm/elements/metadata/class-use/Metadata.html
+++ b/docs/meico/mpm/elements/metadata/class-use/Metadata.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.metadata.Metadata
-
+
diff --git a/docs/meico/mpm/elements/metadata/class-use/RelatedResource.html b/docs/meico/mpm/elements/metadata/class-use/RelatedResource.html
index bff999e7..b853b3d4 100644
--- a/docs/meico/mpm/elements/metadata/class-use/RelatedResource.html
+++ b/docs/meico/mpm/elements/metadata/class-use/RelatedResource.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.metadata.RelatedResource
-
+
diff --git a/docs/meico/mpm/elements/metadata/package-frame.html b/docs/meico/mpm/elements/metadata/package-frame.html
index c47129ed..939d3f55 100644
--- a/docs/meico/mpm/elements/metadata/package-frame.html
+++ b/docs/meico/mpm/elements/metadata/package-frame.html
@@ -2,9 +2,9 @@
-
+
meico.mpm.elements.metadata
-
+
diff --git a/docs/meico/mpm/elements/metadata/package-summary.html b/docs/meico/mpm/elements/metadata/package-summary.html
index 9c319af7..b1409186 100644
--- a/docs/meico/mpm/elements/metadata/package-summary.html
+++ b/docs/meico/mpm/elements/metadata/package-summary.html
@@ -2,9 +2,9 @@
-
+
meico.mpm.elements.metadata
-
+
diff --git a/docs/meico/mpm/elements/metadata/package-tree.html b/docs/meico/mpm/elements/metadata/package-tree.html
index b1c4ab87..3580af18 100644
--- a/docs/meico/mpm/elements/metadata/package-tree.html
+++ b/docs/meico/mpm/elements/metadata/package-tree.html
@@ -2,9 +2,9 @@
-
+
meico.mpm.elements.metadata Class Hierarchy
-
+
diff --git a/docs/meico/mpm/elements/metadata/package-use.html b/docs/meico/mpm/elements/metadata/package-use.html
index ca22842f..95d988ed 100644
--- a/docs/meico/mpm/elements/metadata/package-use.html
+++ b/docs/meico/mpm/elements/metadata/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package meico.mpm.elements.metadata
-
+
diff --git a/docs/meico/mpm/elements/package-frame.html b/docs/meico/mpm/elements/package-frame.html
index 40c3996e..f7f962b4 100644
--- a/docs/meico/mpm/elements/package-frame.html
+++ b/docs/meico/mpm/elements/package-frame.html
@@ -2,9 +2,9 @@
-
+
meico.mpm.elements
-
+
diff --git a/docs/meico/mpm/elements/package-summary.html b/docs/meico/mpm/elements/package-summary.html
index 3528d72c..bc72a654 100644
--- a/docs/meico/mpm/elements/package-summary.html
+++ b/docs/meico/mpm/elements/package-summary.html
@@ -2,9 +2,9 @@
-
+
meico.mpm.elements
-
+
diff --git a/docs/meico/mpm/elements/package-tree.html b/docs/meico/mpm/elements/package-tree.html
index e99ddeeb..6443bafe 100644
--- a/docs/meico/mpm/elements/package-tree.html
+++ b/docs/meico/mpm/elements/package-tree.html
@@ -2,9 +2,9 @@
-
+
meico.mpm.elements Class Hierarchy
-
+
diff --git a/docs/meico/mpm/elements/package-use.html b/docs/meico/mpm/elements/package-use.html
index 6ecb83f9..a869ac0e 100644
--- a/docs/meico/mpm/elements/package-use.html
+++ b/docs/meico/mpm/elements/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package meico.mpm.elements
-
+
diff --git a/docs/meico/mpm/elements/styles/ArticulationStyle.html b/docs/meico/mpm/elements/styles/ArticulationStyle.html
index ad1180db..d9225dc9 100644
--- a/docs/meico/mpm/elements/styles/ArticulationStyle.html
+++ b/docs/meico/mpm/elements/styles/ArticulationStyle.html
@@ -2,9 +2,9 @@
-
+
ArticulationStyle
-
+
diff --git a/docs/meico/mpm/elements/styles/DynamicsStyle.html b/docs/meico/mpm/elements/styles/DynamicsStyle.html
index 253e1323..31a34e58 100644
--- a/docs/meico/mpm/elements/styles/DynamicsStyle.html
+++ b/docs/meico/mpm/elements/styles/DynamicsStyle.html
@@ -2,9 +2,9 @@
-
+
DynamicsStyle
-
+
diff --git a/docs/meico/mpm/elements/styles/GenericStyle.html b/docs/meico/mpm/elements/styles/GenericStyle.html
index 5661c227..596008e5 100644
--- a/docs/meico/mpm/elements/styles/GenericStyle.html
+++ b/docs/meico/mpm/elements/styles/GenericStyle.html
@@ -2,9 +2,9 @@
-
+
GenericStyle
-
+
diff --git a/docs/meico/mpm/elements/styles/MetricalAccentuationStyle.html b/docs/meico/mpm/elements/styles/MetricalAccentuationStyle.html
index ee0fc11d..3ddfa715 100644
--- a/docs/meico/mpm/elements/styles/MetricalAccentuationStyle.html
+++ b/docs/meico/mpm/elements/styles/MetricalAccentuationStyle.html
@@ -2,9 +2,9 @@
-
+
MetricalAccentuationStyle
-
+
diff --git a/docs/meico/mpm/elements/styles/OrnamentationStyle.html b/docs/meico/mpm/elements/styles/OrnamentationStyle.html
index abc49520..ad2ed13f 100644
--- a/docs/meico/mpm/elements/styles/OrnamentationStyle.html
+++ b/docs/meico/mpm/elements/styles/OrnamentationStyle.html
@@ -2,9 +2,9 @@
-
+
OrnamentationStyle
-
+
diff --git a/docs/meico/mpm/elements/styles/RubatoStyle.html b/docs/meico/mpm/elements/styles/RubatoStyle.html
index 098c3b63..d3036538 100644
--- a/docs/meico/mpm/elements/styles/RubatoStyle.html
+++ b/docs/meico/mpm/elements/styles/RubatoStyle.html
@@ -2,9 +2,9 @@
-
+
RubatoStyle
-
+
diff --git a/docs/meico/mpm/elements/styles/TempoStyle.html b/docs/meico/mpm/elements/styles/TempoStyle.html
index 4c7df22a..8cbbe840 100644
--- a/docs/meico/mpm/elements/styles/TempoStyle.html
+++ b/docs/meico/mpm/elements/styles/TempoStyle.html
@@ -2,9 +2,9 @@
-
+
TempoStyle
-
+
diff --git a/docs/meico/mpm/elements/styles/class-use/ArticulationStyle.html b/docs/meico/mpm/elements/styles/class-use/ArticulationStyle.html
index cfcd2d7f..3a6b0b5b 100644
--- a/docs/meico/mpm/elements/styles/class-use/ArticulationStyle.html
+++ b/docs/meico/mpm/elements/styles/class-use/ArticulationStyle.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.ArticulationStyle
-
+
diff --git a/docs/meico/mpm/elements/styles/class-use/DynamicsStyle.html b/docs/meico/mpm/elements/styles/class-use/DynamicsStyle.html
index 3dae3a34..6b1399f6 100644
--- a/docs/meico/mpm/elements/styles/class-use/DynamicsStyle.html
+++ b/docs/meico/mpm/elements/styles/class-use/DynamicsStyle.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.DynamicsStyle
-
+
diff --git a/docs/meico/mpm/elements/styles/class-use/GenericStyle.html b/docs/meico/mpm/elements/styles/class-use/GenericStyle.html
index bb47538a..ec8b684a 100644
--- a/docs/meico/mpm/elements/styles/class-use/GenericStyle.html
+++ b/docs/meico/mpm/elements/styles/class-use/GenericStyle.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.GenericStyle
-
+
diff --git a/docs/meico/mpm/elements/styles/class-use/MetricalAccentuationStyle.html b/docs/meico/mpm/elements/styles/class-use/MetricalAccentuationStyle.html
index bcad536a..4cb2a839 100644
--- a/docs/meico/mpm/elements/styles/class-use/MetricalAccentuationStyle.html
+++ b/docs/meico/mpm/elements/styles/class-use/MetricalAccentuationStyle.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.MetricalAccentuationStyle
-
+
diff --git a/docs/meico/mpm/elements/styles/class-use/OrnamentationStyle.html b/docs/meico/mpm/elements/styles/class-use/OrnamentationStyle.html
index e0b95eca..f2b54dcd 100644
--- a/docs/meico/mpm/elements/styles/class-use/OrnamentationStyle.html
+++ b/docs/meico/mpm/elements/styles/class-use/OrnamentationStyle.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.OrnamentationStyle
-
+
diff --git a/docs/meico/mpm/elements/styles/class-use/RubatoStyle.html b/docs/meico/mpm/elements/styles/class-use/RubatoStyle.html
index 20bbd16e..3057822f 100644
--- a/docs/meico/mpm/elements/styles/class-use/RubatoStyle.html
+++ b/docs/meico/mpm/elements/styles/class-use/RubatoStyle.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.RubatoStyle
-
+
diff --git a/docs/meico/mpm/elements/styles/class-use/TempoStyle.html b/docs/meico/mpm/elements/styles/class-use/TempoStyle.html
index bc0caf3f..24de6d18 100644
--- a/docs/meico/mpm/elements/styles/class-use/TempoStyle.html
+++ b/docs/meico/mpm/elements/styles/class-use/TempoStyle.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.TempoStyle
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/AbstractDef.html b/docs/meico/mpm/elements/styles/defs/AbstractDef.html
index 94752363..9a6834bd 100644
--- a/docs/meico/mpm/elements/styles/defs/AbstractDef.html
+++ b/docs/meico/mpm/elements/styles/defs/AbstractDef.html
@@ -2,9 +2,9 @@
-
+
AbstractDef
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/AccentuationPatternDef.html b/docs/meico/mpm/elements/styles/defs/AccentuationPatternDef.html
index 373b922a..a26e0084 100644
--- a/docs/meico/mpm/elements/styles/defs/AccentuationPatternDef.html
+++ b/docs/meico/mpm/elements/styles/defs/AccentuationPatternDef.html
@@ -2,9 +2,9 @@
-
+
AccentuationPatternDef
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/ArticulationDef.html b/docs/meico/mpm/elements/styles/defs/ArticulationDef.html
index 0971e690..b288888e 100644
--- a/docs/meico/mpm/elements/styles/defs/ArticulationDef.html
+++ b/docs/meico/mpm/elements/styles/defs/ArticulationDef.html
@@ -2,9 +2,9 @@
-
+
ArticulationDef
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/DynamicsDef.html b/docs/meico/mpm/elements/styles/defs/DynamicsDef.html
index f98b6488..ab0ed392 100644
--- a/docs/meico/mpm/elements/styles/defs/DynamicsDef.html
+++ b/docs/meico/mpm/elements/styles/defs/DynamicsDef.html
@@ -2,9 +2,9 @@
-
+
DynamicsDef
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/OrnamentDef.DynamicsGradient.html b/docs/meico/mpm/elements/styles/defs/OrnamentDef.DynamicsGradient.html
index e5b6e837..735996ce 100644
--- a/docs/meico/mpm/elements/styles/defs/OrnamentDef.DynamicsGradient.html
+++ b/docs/meico/mpm/elements/styles/defs/OrnamentDef.DynamicsGradient.html
@@ -2,9 +2,9 @@
-
+
OrnamentDef.DynamicsGradient
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/OrnamentDef.TemporalSpread.FrameDomain.html b/docs/meico/mpm/elements/styles/defs/OrnamentDef.TemporalSpread.FrameDomain.html
index 82c8ac85..ade7faf1 100644
--- a/docs/meico/mpm/elements/styles/defs/OrnamentDef.TemporalSpread.FrameDomain.html
+++ b/docs/meico/mpm/elements/styles/defs/OrnamentDef.TemporalSpread.FrameDomain.html
@@ -2,9 +2,9 @@
-
+
OrnamentDef.TemporalSpread.FrameDomain
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/OrnamentDef.TemporalSpread.NoteOffShift.html b/docs/meico/mpm/elements/styles/defs/OrnamentDef.TemporalSpread.NoteOffShift.html
index 915eeca4..08015d0c 100644
--- a/docs/meico/mpm/elements/styles/defs/OrnamentDef.TemporalSpread.NoteOffShift.html
+++ b/docs/meico/mpm/elements/styles/defs/OrnamentDef.TemporalSpread.NoteOffShift.html
@@ -2,9 +2,9 @@
-
+
OrnamentDef.TemporalSpread.NoteOffShift
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/OrnamentDef.TemporalSpread.html b/docs/meico/mpm/elements/styles/defs/OrnamentDef.TemporalSpread.html
index 54512def..fe873d13 100644
--- a/docs/meico/mpm/elements/styles/defs/OrnamentDef.TemporalSpread.html
+++ b/docs/meico/mpm/elements/styles/defs/OrnamentDef.TemporalSpread.html
@@ -2,9 +2,9 @@
-
+
OrnamentDef.TemporalSpread
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/OrnamentDef.html b/docs/meico/mpm/elements/styles/defs/OrnamentDef.html
index 66161bff..f3c43fa5 100644
--- a/docs/meico/mpm/elements/styles/defs/OrnamentDef.html
+++ b/docs/meico/mpm/elements/styles/defs/OrnamentDef.html
@@ -2,9 +2,9 @@
-
+
OrnamentDef
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/RubatoDef.html b/docs/meico/mpm/elements/styles/defs/RubatoDef.html
index 4e72d1cb..7a16363d 100644
--- a/docs/meico/mpm/elements/styles/defs/RubatoDef.html
+++ b/docs/meico/mpm/elements/styles/defs/RubatoDef.html
@@ -2,9 +2,9 @@
-
+
RubatoDef
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/TempoDef.html b/docs/meico/mpm/elements/styles/defs/TempoDef.html
index 2c65f72e..c3ba7a0a 100644
--- a/docs/meico/mpm/elements/styles/defs/TempoDef.html
+++ b/docs/meico/mpm/elements/styles/defs/TempoDef.html
@@ -2,9 +2,9 @@
-
+
TempoDef
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/class-use/AbstractDef.html b/docs/meico/mpm/elements/styles/defs/class-use/AbstractDef.html
index 8a1ded94..8a39240f 100644
--- a/docs/meico/mpm/elements/styles/defs/class-use/AbstractDef.html
+++ b/docs/meico/mpm/elements/styles/defs/class-use/AbstractDef.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.defs.AbstractDef
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/class-use/AccentuationPatternDef.html b/docs/meico/mpm/elements/styles/defs/class-use/AccentuationPatternDef.html
index 19c5b4a5..da99849e 100644
--- a/docs/meico/mpm/elements/styles/defs/class-use/AccentuationPatternDef.html
+++ b/docs/meico/mpm/elements/styles/defs/class-use/AccentuationPatternDef.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.defs.AccentuationPatternDef
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/class-use/ArticulationDef.html b/docs/meico/mpm/elements/styles/defs/class-use/ArticulationDef.html
index 9785a0d0..0235c3a5 100644
--- a/docs/meico/mpm/elements/styles/defs/class-use/ArticulationDef.html
+++ b/docs/meico/mpm/elements/styles/defs/class-use/ArticulationDef.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.defs.ArticulationDef
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/class-use/DynamicsDef.html b/docs/meico/mpm/elements/styles/defs/class-use/DynamicsDef.html
index 73e98d7e..ac8d7239 100644
--- a/docs/meico/mpm/elements/styles/defs/class-use/DynamicsDef.html
+++ b/docs/meico/mpm/elements/styles/defs/class-use/DynamicsDef.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.defs.DynamicsDef
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.DynamicsGradient.html b/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.DynamicsGradient.html
index bb364f8d..10bd26ca 100644
--- a/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.DynamicsGradient.html
+++ b/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.DynamicsGradient.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.defs.OrnamentDef.DynamicsGradient
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.TemporalSpread.FrameDomain.html b/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.TemporalSpread.FrameDomain.html
index 90f62f2f..f1412665 100644
--- a/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.TemporalSpread.FrameDomain.html
+++ b/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.TemporalSpread.FrameDomain.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.defs.OrnamentDef.TemporalSpread.FrameDomain
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.TemporalSpread.NoteOffShift.html b/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.TemporalSpread.NoteOffShift.html
index 78d272c9..d1316d0f 100644
--- a/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.TemporalSpread.NoteOffShift.html
+++ b/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.TemporalSpread.NoteOffShift.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.defs.OrnamentDef.TemporalSpread.NoteOffShift
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.TemporalSpread.html b/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.TemporalSpread.html
index 33fa1099..877b234a 100644
--- a/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.TemporalSpread.html
+++ b/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.TemporalSpread.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.defs.OrnamentDef.TemporalSpread
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.html b/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.html
index 61583c8b..bfb24f5c 100644
--- a/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.html
+++ b/docs/meico/mpm/elements/styles/defs/class-use/OrnamentDef.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.defs.OrnamentDef
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/class-use/RubatoDef.html b/docs/meico/mpm/elements/styles/defs/class-use/RubatoDef.html
index 06e2e806..c0608b2d 100644
--- a/docs/meico/mpm/elements/styles/defs/class-use/RubatoDef.html
+++ b/docs/meico/mpm/elements/styles/defs/class-use/RubatoDef.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.defs.RubatoDef
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/class-use/TempoDef.html b/docs/meico/mpm/elements/styles/defs/class-use/TempoDef.html
index 9d106488..5c6c55cf 100644
--- a/docs/meico/mpm/elements/styles/defs/class-use/TempoDef.html
+++ b/docs/meico/mpm/elements/styles/defs/class-use/TempoDef.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.mpm.elements.styles.defs.TempoDef
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/package-frame.html b/docs/meico/mpm/elements/styles/defs/package-frame.html
index 0827d3d2..9ef3e8db 100644
--- a/docs/meico/mpm/elements/styles/defs/package-frame.html
+++ b/docs/meico/mpm/elements/styles/defs/package-frame.html
@@ -2,9 +2,9 @@
-
+
meico.mpm.elements.styles.defs
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/package-summary.html b/docs/meico/mpm/elements/styles/defs/package-summary.html
index 9abd390a..dcd34191 100644
--- a/docs/meico/mpm/elements/styles/defs/package-summary.html
+++ b/docs/meico/mpm/elements/styles/defs/package-summary.html
@@ -2,9 +2,9 @@
-
+
meico.mpm.elements.styles.defs
-
+
diff --git a/docs/meico/mpm/elements/styles/defs/package-tree.html b/docs/meico/mpm/elements/styles/defs/package-tree.html
index e9f2b950..06db7cf1 100644
--- a/docs/meico/mpm/elements/styles/defs/package-tree.html
+++ b/docs/meico/mpm/elements/styles/defs/package-tree.html
@@ -2,9 +2,9 @@
-
+
meico.mpm.elements.styles.defs Class Hierarchy
-
+
@@ -106,8 +106,8 @@ Enum Hierarchy
java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
diff --git a/docs/meico/mpm/elements/styles/defs/package-use.html b/docs/meico/mpm/elements/styles/defs/package-use.html
index 6cd424e5..4d474d65 100644
--- a/docs/meico/mpm/elements/styles/defs/package-use.html
+++ b/docs/meico/mpm/elements/styles/defs/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package meico.mpm.elements.styles.defs
-
+
diff --git a/docs/meico/mpm/elements/styles/package-frame.html b/docs/meico/mpm/elements/styles/package-frame.html
index 1cf459a2..3c51105b 100644
--- a/docs/meico/mpm/elements/styles/package-frame.html
+++ b/docs/meico/mpm/elements/styles/package-frame.html
@@ -2,9 +2,9 @@
-
+
meico.mpm.elements.styles
-
+
diff --git a/docs/meico/mpm/elements/styles/package-summary.html b/docs/meico/mpm/elements/styles/package-summary.html
index 564ef180..0bb3e604 100644
--- a/docs/meico/mpm/elements/styles/package-summary.html
+++ b/docs/meico/mpm/elements/styles/package-summary.html
@@ -2,9 +2,9 @@
-
+
meico.mpm.elements.styles
-
+
diff --git a/docs/meico/mpm/elements/styles/package-tree.html b/docs/meico/mpm/elements/styles/package-tree.html
index 49cd3597..f858de10 100644
--- a/docs/meico/mpm/elements/styles/package-tree.html
+++ b/docs/meico/mpm/elements/styles/package-tree.html
@@ -2,9 +2,9 @@
-
+
meico.mpm.elements.styles Class Hierarchy
-
+
diff --git a/docs/meico/mpm/elements/styles/package-use.html b/docs/meico/mpm/elements/styles/package-use.html
index db8bb485..c0a13953 100644
--- a/docs/meico/mpm/elements/styles/package-use.html
+++ b/docs/meico/mpm/elements/styles/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package meico.mpm.elements.styles
-
+
diff --git a/docs/meico/mpm/package-frame.html b/docs/meico/mpm/package-frame.html
index 89f18859..9a4052a2 100644
--- a/docs/meico/mpm/package-frame.html
+++ b/docs/meico/mpm/package-frame.html
@@ -2,9 +2,9 @@
-
+
meico.mpm
-
+
diff --git a/docs/meico/mpm/package-summary.html b/docs/meico/mpm/package-summary.html
index b6995c31..7af27057 100644
--- a/docs/meico/mpm/package-summary.html
+++ b/docs/meico/mpm/package-summary.html
@@ -2,9 +2,9 @@
-
+
meico.mpm
-
+
diff --git a/docs/meico/mpm/package-tree.html b/docs/meico/mpm/package-tree.html
index 6b7f6e34..fecafae1 100644
--- a/docs/meico/mpm/package-tree.html
+++ b/docs/meico/mpm/package-tree.html
@@ -2,9 +2,9 @@
-
+
meico.mpm Class Hierarchy
-
+
diff --git a/docs/meico/mpm/package-use.html b/docs/meico/mpm/package-use.html
index b748496d..478ccdb9 100644
--- a/docs/meico/mpm/package-use.html
+++ b/docs/meico/mpm/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package meico.mpm
-
+
diff --git a/docs/meico/msm/AbstractMsm.html b/docs/meico/msm/AbstractMsm.html
index 4cce2853..4259c743 100644
--- a/docs/meico/msm/AbstractMsm.html
+++ b/docs/meico/msm/AbstractMsm.html
@@ -2,9 +2,9 @@
-
+
AbstractMsm
-
+
diff --git a/docs/meico/msm/Goto.html b/docs/meico/msm/Goto.html
index 05c8181d..49603f05 100644
--- a/docs/meico/msm/Goto.html
+++ b/docs/meico/msm/Goto.html
@@ -2,9 +2,9 @@
-
+
Goto
-
+
diff --git a/docs/meico/msm/Msm.html b/docs/meico/msm/Msm.html
index a076b000..a882187a 100644
--- a/docs/meico/msm/Msm.html
+++ b/docs/meico/msm/Msm.html
@@ -2,9 +2,9 @@
-
+
Msm
-
+
diff --git a/docs/meico/msm/class-use/AbstractMsm.html b/docs/meico/msm/class-use/AbstractMsm.html
index bb595aab..a31163aa 100644
--- a/docs/meico/msm/class-use/AbstractMsm.html
+++ b/docs/meico/msm/class-use/AbstractMsm.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.msm.AbstractMsm
-
+
diff --git a/docs/meico/msm/class-use/Goto.html b/docs/meico/msm/class-use/Goto.html
index f3b72a8f..8dfd2dc7 100644
--- a/docs/meico/msm/class-use/Goto.html
+++ b/docs/meico/msm/class-use/Goto.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.msm.Goto
-
+
diff --git a/docs/meico/msm/class-use/Msm.html b/docs/meico/msm/class-use/Msm.html
index fa005d62..a62cfa01 100644
--- a/docs/meico/msm/class-use/Msm.html
+++ b/docs/meico/msm/class-use/Msm.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.msm.Msm
-
+
diff --git a/docs/meico/msm/package-frame.html b/docs/meico/msm/package-frame.html
index 169b1bd1..5f0a120c 100644
--- a/docs/meico/msm/package-frame.html
+++ b/docs/meico/msm/package-frame.html
@@ -2,9 +2,9 @@
-
+
meico.msm
-
+
diff --git a/docs/meico/msm/package-summary.html b/docs/meico/msm/package-summary.html
index 4e1af547..381b8906 100644
--- a/docs/meico/msm/package-summary.html
+++ b/docs/meico/msm/package-summary.html
@@ -2,9 +2,9 @@
-
+
meico.msm
-
+
diff --git a/docs/meico/msm/package-tree.html b/docs/meico/msm/package-tree.html
index 244f8723..fe7c2b4b 100644
--- a/docs/meico/msm/package-tree.html
+++ b/docs/meico/msm/package-tree.html
@@ -2,9 +2,9 @@
-
+
meico.msm Class Hierarchy
-
+
diff --git a/docs/meico/msm/package-use.html b/docs/meico/msm/package-use.html
index afc22f5a..c006c303 100644
--- a/docs/meico/msm/package-use.html
+++ b/docs/meico/msm/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package meico.msm
-
+
diff --git a/docs/meico/musicxml/MusicXml.html b/docs/meico/musicxml/MusicXml.html
index 584d468d..c89d3790 100644
--- a/docs/meico/musicxml/MusicXml.html
+++ b/docs/meico/musicxml/MusicXml.html
@@ -2,9 +2,9 @@
-
+
MusicXml
-
+
diff --git a/docs/meico/musicxml/class-use/MusicXml.html b/docs/meico/musicxml/class-use/MusicXml.html
index 090820e8..0a6b877b 100644
--- a/docs/meico/musicxml/class-use/MusicXml.html
+++ b/docs/meico/musicxml/class-use/MusicXml.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.musicxml.MusicXml
-
+
diff --git a/docs/meico/musicxml/package-frame.html b/docs/meico/musicxml/package-frame.html
index 571fb924..540fd071 100644
--- a/docs/meico/musicxml/package-frame.html
+++ b/docs/meico/musicxml/package-frame.html
@@ -2,9 +2,9 @@
-
+
meico.musicxml
-
+
diff --git a/docs/meico/musicxml/package-summary.html b/docs/meico/musicxml/package-summary.html
index 77471e9d..efb6b585 100644
--- a/docs/meico/musicxml/package-summary.html
+++ b/docs/meico/musicxml/package-summary.html
@@ -2,9 +2,9 @@
-
+
meico.musicxml
-
+
diff --git a/docs/meico/musicxml/package-tree.html b/docs/meico/musicxml/package-tree.html
index fcc181d9..2202dc14 100644
--- a/docs/meico/musicxml/package-tree.html
+++ b/docs/meico/musicxml/package-tree.html
@@ -2,9 +2,9 @@
-
+
meico.musicxml Class Hierarchy
-
+
diff --git a/docs/meico/musicxml/package-use.html b/docs/meico/musicxml/package-use.html
index dde8e277..2d223171 100644
--- a/docs/meico/musicxml/package-use.html
+++ b/docs/meico/musicxml/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package meico.musicxml
-
+
diff --git a/docs/meico/package-frame.html b/docs/meico/package-frame.html
index 5ae04910..93de0048 100644
--- a/docs/meico/package-frame.html
+++ b/docs/meico/package-frame.html
@@ -2,9 +2,9 @@
-
+
meico
-
+
diff --git a/docs/meico/package-summary.html b/docs/meico/package-summary.html
index fd876e08..0e366898 100644
--- a/docs/meico/package-summary.html
+++ b/docs/meico/package-summary.html
@@ -2,9 +2,9 @@
-
+
meico
-
+
diff --git a/docs/meico/package-tree.html b/docs/meico/package-tree.html
index 70fba00b..3f3a690a 100644
--- a/docs/meico/package-tree.html
+++ b/docs/meico/package-tree.html
@@ -2,9 +2,9 @@
-
+
meico Class Hierarchy
-
+
diff --git a/docs/meico/package-use.html b/docs/meico/package-use.html
index e787f4f7..aacfcf6c 100644
--- a/docs/meico/package-use.html
+++ b/docs/meico/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package meico
-
+
diff --git a/docs/meico/pitches/FeatureElement.html b/docs/meico/pitches/FeatureElement.html
index be6e2f3e..84aab28b 100644
--- a/docs/meico/pitches/FeatureElement.html
+++ b/docs/meico/pitches/FeatureElement.html
@@ -2,9 +2,9 @@
-
+
FeatureElement
-
+
diff --git a/docs/meico/pitches/FeatureVector.html b/docs/meico/pitches/FeatureVector.html
index 0321ff94..8825e3dd 100644
--- a/docs/meico/pitches/FeatureVector.html
+++ b/docs/meico/pitches/FeatureVector.html
@@ -2,9 +2,9 @@
-
+
FeatureVector
-
+
diff --git a/docs/meico/pitches/Key.html b/docs/meico/pitches/Key.html
index 7ff476d3..a026c37f 100644
--- a/docs/meico/pitches/Key.html
+++ b/docs/meico/pitches/Key.html
@@ -2,9 +2,9 @@
-
+
Key
-
+
diff --git a/docs/meico/pitches/Pitches.html b/docs/meico/pitches/Pitches.html
index c62a0c72..98a152c0 100644
--- a/docs/meico/pitches/Pitches.html
+++ b/docs/meico/pitches/Pitches.html
@@ -2,9 +2,9 @@
-
+
Pitches
-
+
diff --git a/docs/meico/pitches/class-use/FeatureElement.html b/docs/meico/pitches/class-use/FeatureElement.html
index b1e86c25..bab19f56 100644
--- a/docs/meico/pitches/class-use/FeatureElement.html
+++ b/docs/meico/pitches/class-use/FeatureElement.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.pitches.FeatureElement
-
+
diff --git a/docs/meico/pitches/class-use/FeatureVector.html b/docs/meico/pitches/class-use/FeatureVector.html
index 0ea8eb49..638f99cf 100644
--- a/docs/meico/pitches/class-use/FeatureVector.html
+++ b/docs/meico/pitches/class-use/FeatureVector.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.pitches.FeatureVector
-
+
diff --git a/docs/meico/pitches/class-use/Key.html b/docs/meico/pitches/class-use/Key.html
index dfb0eda3..56c1c941 100644
--- a/docs/meico/pitches/class-use/Key.html
+++ b/docs/meico/pitches/class-use/Key.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.pitches.Key
-
+
diff --git a/docs/meico/pitches/class-use/Pitches.html b/docs/meico/pitches/class-use/Pitches.html
index a8f578c7..75702479 100644
--- a/docs/meico/pitches/class-use/Pitches.html
+++ b/docs/meico/pitches/class-use/Pitches.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.pitches.Pitches
-
+
diff --git a/docs/meico/pitches/package-frame.html b/docs/meico/pitches/package-frame.html
index 4fb652e3..8151f930 100644
--- a/docs/meico/pitches/package-frame.html
+++ b/docs/meico/pitches/package-frame.html
@@ -2,9 +2,9 @@
-
+
meico.pitches
-
+
diff --git a/docs/meico/pitches/package-summary.html b/docs/meico/pitches/package-summary.html
index 83778a39..6b7e2092 100644
--- a/docs/meico/pitches/package-summary.html
+++ b/docs/meico/pitches/package-summary.html
@@ -2,9 +2,9 @@
-
+
meico.pitches
-
+
diff --git a/docs/meico/pitches/package-tree.html b/docs/meico/pitches/package-tree.html
index 3f5fcdb6..eb4ce53e 100644
--- a/docs/meico/pitches/package-tree.html
+++ b/docs/meico/pitches/package-tree.html
@@ -2,9 +2,9 @@
-
+
meico.pitches Class Hierarchy
-
+
diff --git a/docs/meico/pitches/package-use.html b/docs/meico/pitches/package-use.html
index 360e4f95..f69563e7 100644
--- a/docs/meico/pitches/package-use.html
+++ b/docs/meico/pitches/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package meico.pitches
-
+
diff --git a/docs/meico/supplementary/ColorCoding.html b/docs/meico/supplementary/ColorCoding.html
index 246f42f4..b14f1cb3 100644
--- a/docs/meico/supplementary/ColorCoding.html
+++ b/docs/meico/supplementary/ColorCoding.html
@@ -2,9 +2,9 @@
-
+
ColorCoding
-
+
diff --git a/docs/meico/supplementary/KeyValue.html b/docs/meico/supplementary/KeyValue.html
index d6645fa3..777b6892 100644
--- a/docs/meico/supplementary/KeyValue.html
+++ b/docs/meico/supplementary/KeyValue.html
@@ -2,9 +2,9 @@
-
+
KeyValue
-
+
diff --git a/docs/meico/supplementary/RandomNumberProvider.html b/docs/meico/supplementary/RandomNumberProvider.html
index 79616f43..5e7ea2e4 100644
--- a/docs/meico/supplementary/RandomNumberProvider.html
+++ b/docs/meico/supplementary/RandomNumberProvider.html
@@ -2,9 +2,9 @@
-
+
RandomNumberProvider
-
+
diff --git a/docs/meico/supplementary/class-use/ColorCoding.html b/docs/meico/supplementary/class-use/ColorCoding.html
index 2aea81a7..a2b8b4b7 100644
--- a/docs/meico/supplementary/class-use/ColorCoding.html
+++ b/docs/meico/supplementary/class-use/ColorCoding.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.supplementary.ColorCoding
-
+
diff --git a/docs/meico/supplementary/class-use/KeyValue.html b/docs/meico/supplementary/class-use/KeyValue.html
index c5fecd58..e9b62da3 100644
--- a/docs/meico/supplementary/class-use/KeyValue.html
+++ b/docs/meico/supplementary/class-use/KeyValue.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.supplementary.KeyValue
-
+
@@ -222,6 +222,10 @@
diff --git a/docs/meico/supplementary/class-use/RandomNumberProvider.html b/docs/meico/supplementary/class-use/RandomNumberProvider.html
index 9be7b354..61500425 100644
--- a/docs/meico/supplementary/class-use/RandomNumberProvider.html
+++ b/docs/meico/supplementary/class-use/RandomNumberProvider.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.supplementary.RandomNumberProvider
-
+
diff --git a/docs/meico/supplementary/package-frame.html b/docs/meico/supplementary/package-frame.html
index aafe183f..ee18b428 100644
--- a/docs/meico/supplementary/package-frame.html
+++ b/docs/meico/supplementary/package-frame.html
@@ -2,9 +2,9 @@
-
+
meico.supplementary
-
+
diff --git a/docs/meico/supplementary/package-summary.html b/docs/meico/supplementary/package-summary.html
index 4f253f00..e515e12b 100644
--- a/docs/meico/supplementary/package-summary.html
+++ b/docs/meico/supplementary/package-summary.html
@@ -2,9 +2,9 @@
-
+
meico.supplementary
-
+
diff --git a/docs/meico/supplementary/package-tree.html b/docs/meico/supplementary/package-tree.html
index 19e26c63..b81a3649 100644
--- a/docs/meico/supplementary/package-tree.html
+++ b/docs/meico/supplementary/package-tree.html
@@ -2,9 +2,9 @@
-
+
meico.supplementary Class Hierarchy
-
+
diff --git a/docs/meico/supplementary/package-use.html b/docs/meico/supplementary/package-use.html
index 844b51f4..8a3a9b89 100644
--- a/docs/meico/supplementary/package-use.html
+++ b/docs/meico/supplementary/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package meico.supplementary
-
+
diff --git a/docs/meico/svg/Svg.html b/docs/meico/svg/Svg.html
index 400e0d96..924b5687 100644
--- a/docs/meico/svg/Svg.html
+++ b/docs/meico/svg/Svg.html
@@ -2,9 +2,9 @@
-
+
Svg
-
+
diff --git a/docs/meico/svg/SvgCollection.html b/docs/meico/svg/SvgCollection.html
index f247529f..5a19b1c7 100644
--- a/docs/meico/svg/SvgCollection.html
+++ b/docs/meico/svg/SvgCollection.html
@@ -2,9 +2,9 @@
-
+
SvgCollection
-
+
diff --git a/docs/meico/svg/class-use/Svg.html b/docs/meico/svg/class-use/Svg.html
index b71c9498..ad01e97f 100644
--- a/docs/meico/svg/class-use/Svg.html
+++ b/docs/meico/svg/class-use/Svg.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.svg.Svg
-
+
diff --git a/docs/meico/svg/class-use/SvgCollection.html b/docs/meico/svg/class-use/SvgCollection.html
index d31cbb36..ddf8785a 100644
--- a/docs/meico/svg/class-use/SvgCollection.html
+++ b/docs/meico/svg/class-use/SvgCollection.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.svg.SvgCollection
-
+
diff --git a/docs/meico/svg/package-frame.html b/docs/meico/svg/package-frame.html
index d8b301a4..b4e551be 100644
--- a/docs/meico/svg/package-frame.html
+++ b/docs/meico/svg/package-frame.html
@@ -2,9 +2,9 @@
-
+
meico.svg
-
+
diff --git a/docs/meico/svg/package-summary.html b/docs/meico/svg/package-summary.html
index 1787277d..08203141 100644
--- a/docs/meico/svg/package-summary.html
+++ b/docs/meico/svg/package-summary.html
@@ -2,9 +2,9 @@
-
+
meico.svg
-
+
diff --git a/docs/meico/svg/package-tree.html b/docs/meico/svg/package-tree.html
index 4a45efa8..a1073e61 100644
--- a/docs/meico/svg/package-tree.html
+++ b/docs/meico/svg/package-tree.html
@@ -2,9 +2,9 @@
-
+
meico.svg Class Hierarchy
-
+
diff --git a/docs/meico/svg/package-use.html b/docs/meico/svg/package-use.html
index 5ccfa36d..e07ca03e 100644
--- a/docs/meico/svg/package-use.html
+++ b/docs/meico/svg/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package meico.svg
-
+
diff --git a/docs/meico/xml/AbstractXmlSubtree.html b/docs/meico/xml/AbstractXmlSubtree.html
index 28cad8d4..94b2d13f 100644
--- a/docs/meico/xml/AbstractXmlSubtree.html
+++ b/docs/meico/xml/AbstractXmlSubtree.html
@@ -2,9 +2,9 @@
-
+
AbstractXmlSubtree
-
+
diff --git a/docs/meico/xml/XmlBase.html b/docs/meico/xml/XmlBase.html
index 5d083225..0fcb099d 100644
--- a/docs/meico/xml/XmlBase.html
+++ b/docs/meico/xml/XmlBase.html
@@ -2,9 +2,9 @@
-
+
XmlBase
-
+
diff --git a/docs/meico/xml/class-use/AbstractXmlSubtree.html b/docs/meico/xml/class-use/AbstractXmlSubtree.html
index 8c39bdf4..518a823b 100644
--- a/docs/meico/xml/class-use/AbstractXmlSubtree.html
+++ b/docs/meico/xml/class-use/AbstractXmlSubtree.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.xml.AbstractXmlSubtree
-
+
diff --git a/docs/meico/xml/class-use/XmlBase.html b/docs/meico/xml/class-use/XmlBase.html
index a023b10d..98b34e9f 100644
--- a/docs/meico/xml/class-use/XmlBase.html
+++ b/docs/meico/xml/class-use/XmlBase.html
@@ -2,9 +2,9 @@
-
+
Uses of Class meico.xml.XmlBase
-
+
diff --git a/docs/meico/xml/package-frame.html b/docs/meico/xml/package-frame.html
index c61daa1b..95e6568f 100644
--- a/docs/meico/xml/package-frame.html
+++ b/docs/meico/xml/package-frame.html
@@ -2,9 +2,9 @@
-
+
meico.xml
-
+
diff --git a/docs/meico/xml/package-summary.html b/docs/meico/xml/package-summary.html
index 3c0f9246..7a6ea749 100644
--- a/docs/meico/xml/package-summary.html
+++ b/docs/meico/xml/package-summary.html
@@ -2,9 +2,9 @@
-
+
meico.xml
-
+
diff --git a/docs/meico/xml/package-tree.html b/docs/meico/xml/package-tree.html
index 8e84a231..312101be 100644
--- a/docs/meico/xml/package-tree.html
+++ b/docs/meico/xml/package-tree.html
@@ -2,9 +2,9 @@
-
+
meico.xml Class Hierarchy
-
+
diff --git a/docs/meico/xml/package-use.html b/docs/meico/xml/package-use.html
index eb520e72..f3cbabd3 100644
--- a/docs/meico/xml/package-use.html
+++ b/docs/meico/xml/package-use.html
@@ -2,9 +2,9 @@
-
+
Uses of Package meico.xml
-
+
diff --git a/docs/overview-frame.html b/docs/overview-frame.html
index cdb27529..6a030357 100644
--- a/docs/overview-frame.html
+++ b/docs/overview-frame.html
@@ -2,9 +2,9 @@
-
+
Overview List
-
+
diff --git a/docs/overview-summary.html b/docs/overview-summary.html
index f65fcc9f..5be9c76a 100644
--- a/docs/overview-summary.html
+++ b/docs/overview-summary.html
@@ -2,9 +2,9 @@
-
+
Overview
-
+
diff --git a/docs/overview-tree.html b/docs/overview-tree.html
index bee8b2ed..5fe325a2 100644
--- a/docs/overview-tree.html
+++ b/docs/overview-tree.html
@@ -2,9 +2,9 @@
-
+
Class Hierarchy
-
+
@@ -170,6 +170,7 @@ Class Hierarchy
meico.mpm.elements.maps.data.RubatoData
meico.svg.SvgCollection
meico.mpm.elements.maps.data.TempoData
+meico.mpm.elements.maps.TempoMap.TempoMapSimplificationResults
java.lang.Throwable (implements java.io.Serializable)
java.lang.Exception
diff --git a/docs/serialized-form.html b/docs/serialized-form.html
index 13f50319..b7130c2c 100644
--- a/docs/serialized-form.html
+++ b/docs/serialized-form.html
@@ -2,9 +2,9 @@
-
+
Serialized Form
-
+
diff --git a/history.md b/history.md
index ad1cce24..6391b715 100644
--- a/history.md
+++ b/history.md
@@ -2,7 +2,8 @@
#### v0.8.47
-- New methods `meico.mpm.elements.maps.TempoMap.simplify()` that reduces monotonous series of successive tempo instructions to one instruction. Successive instructions with the same (or nearly the same) tempo are also combined into one instruction.
+- Potential bus fix in method `meico.mpm.elements.maps.TempoMap.getTempoAt()` that ensures that the exponent attribute of a `TempoData` object is present.
+- New methods were added to class `meico.mpm.elements.maps.TempoMap` that reduces (monotonous) series of successive tempo instructions to one instruction.
#### v0.8.46
diff --git a/src/meico/mpm/elements/maps/TempoMap.java b/src/meico/mpm/elements/maps/TempoMap.java
index bb653d91..b528a5b1 100644
--- a/src/meico/mpm/elements/maps/TempoMap.java
+++ b/src/meico/mpm/elements/maps/TempoMap.java
@@ -328,6 +328,11 @@ private static double getTempoAt(double date, TempoData tempoData) {
return tempoData.transitionTo;
double result = (date - tempoData.startDate) / (tempoData.endDate - tempoData.startDate);
+
+ if (tempoData.exponent == null) {
+ tempoData.exponent = (tempoData.meanTempoAt == null) ? 1.0 : TempoMap.computeExponent(tempoData.meanTempoAt);
+ }
+
result = Math.pow(result, tempoData.exponent);
result = result * (tempoData.transitionTo - tempoData.bpm) + tempoData.bpm;
return result;
@@ -570,124 +575,94 @@ private static double computeMillisecondsForTempoTransition(double date, int ppq
/**
* simplifies the whole tempoMap at once
- * @param equalTempoRange
* @param ppq
- * @return
+ * @return a data structure indicating all the alterations to the tempoMap
*/
- public double simplify(double equalTempoRange, int ppq) {
+ public TempoMapSimplificationResults simplify(int ppq) {
// collect and compute all tempo data
ArrayList tempi = new ArrayList<>();
for (int i = 0; i < this.size(); ++i) {
- if (this.elements.get(i).getValue().getLocalName().equals("tempo")) {
+ if (this.elements.get(i).getValue().getLocalName().equals("tempo")) { // we do not want to process switch elements
TempoData tempo = this.getTempoDataOf(i);
- tempi.add(tempo);
// some regularisation to simplify further processing
+ if (tempo.bpm == null)
+ tempo.bpm = tempo.transitionTo;
if (tempo.transitionTo == null)
tempo.transitionTo = tempo.bpm;
- else if (tempo.bpm == null)
- tempo.bpm = tempo.transitionTo;
+ if (tempo.transitionTo == null) // this is still true when both are null, bpm and transitionTo
+ continue; // tempo instruction not valid, we ignore it
+
+ tempi.add(tempo);
}
}
+ TempoMapSimplificationResults results = new TempoMapSimplificationResults();
+
// there must be at least 3 tempo instructions in the map
if (tempi.size() < 3)
- return 0.0;
+ return results;
- double error = 0.0;
+ results.error = 0.0;
ArrayList series = new ArrayList<>(); // this holds the series of tempo instructions to be simplified
double monotony = 0.0; // monotonously rising = 1, falling = -1, constant = 0
+ double prevTransitionTo = 0.0;
- for (TempoData tempo : tempi) {
- if (series.isEmpty()) {
- series.add(tempo); // add this instruction to the series
+ for (int i = 0; i < tempi.size(); ++i) {
+ TempoData tempo = tempi.get(i);
+
+ if (!series.isEmpty()) {
+ if (series.get(series.size() - 1).startDate >= tempo.startDate) { // if this instruction has the same startDate as the previous instruction
+ series.remove(--i); // remove the previous one, decrement the counter
+ continue; // enter the loop again with the current instruction
+ }
+ } else { // if the series is empty just add this instruction and compute the initial values needed in the next iteration
+ series.add(tempo);
double tempoDiff = tempo.transitionTo - tempo.bpm;
- monotony = (Math.abs(tempoDiff) < equalTempoRange) ? 0.0 : Math.signum(tempoDiff); // monotonously rising = 1, falling = -1, constant = 0
+ monotony = Math.signum(tempoDiff);
+ prevTransitionTo = tempo.transitionTo * tempo.beatLength * 4.0; // regularise the transitionTo value to the beatLength of a quarter
continue;
- } else if (tempo.beatLength != series.get(0).beatLength) { // make sure that all tempo values have the same beatLength basis as the first instruction
- tempo.bpm = (tempo.bpm * tempo.beatLength) / series.get(0).beatLength;
- tempo.transitionTo = (tempo.transitionTo * tempo.beatLength) / series.get(0).beatLength;
}
- // if we have a series of tempo instructions, check if the monotony changes, thus the series would end and get simplified
- double diffToPrev = tempo.bpm - series.get(series.size() - 1).transitionTo; // compute tempo difference to the previous instruction's transitionTo value
- double monotonyToPrev = (Math.abs(diffToPrev) < equalTempoRange) ? monotony : Math.signum(diffToPrev); // if the tempo step is in the equality range, we keep the monotony, otherwise we take it from the signum
-
- double innerDiff = tempo.transitionTo - tempo.bpm;
- double innerMonotony = (Math.abs(innerDiff) < equalTempoRange) ? monotony : Math.signum(innerDiff); // if the tempo transition is in the equality range, we keep the monotony, otherwise we take it from the signum
-
- // does this instruction end the series? (this is also the case when this is the last instruction in tempi)
- if (monotony == 0.0) { // constant tempo
- if (series.size() > 1) { // there are more than on tempo instruction in the series, so this might be a candidate for simplification to a constant tempo
- if (monotonyToPrev == 0.0) { // connection is constant
- if (innerMonotony != 0.0) { // ...___/ or inverse
- series.add(tempo);
- error += this.simplify(series, true, ppq); // simplify the series to constant
- series.clear(); // start the series anew
- monotony = innerMonotony;
- }
- } else { // connection is monotonously rising or falling
- error += this.simplify(series, true, ppq); // simplify the series to constant
- TempoData prev = series.get(series.size() - 1);
- series.clear(); // start the series anew
- if (monotonyToPrev == -innerMonotony) { // with the current instruction (is done after the else block anyway)
- monotony = innerMonotony;
- } else {
- series.add(prev); // with the previous instruction
- monotony = monotonyToPrev;
- }
- }
- } else { // there is just one instruction in the series
- if (monotonyToPrev == 0.0) {
- if (innerMonotony != 0.0) // _/ or inverse
- monotony = innerMonotony;
- } else {
- if (monotonyToPrev == -innerMonotony) { // -/ or inverse or _\ or inverse
- series.clear(); // start the series anew
- monotony = innerMonotony;
- }
- }
- }
- series.add(tempo);
- } else { // non-constant tempo, i.e. monotonously rising or falling
- if (series.size() > 1) { // there are more than one instruction in the series, so this might be a candidate for simplification
- if ((monotonyToPrev == monotony) || (monotonyToPrev == 0.0)) {
- if (monotony != innerMonotony) { // /\ or \/ or \_ or inverse
- series.add(tempo);
- error += this.simplify(series, false, ppq); // simplify to continuous transition
- series.clear();
- monotony = innerMonotony;
- }
- } else { // the connection has opposite monotony
- error += this.simplify(series, false, ppq); // simplify to continuous transition
- TempoData prev = series.get(series.size() - 1);
- series.clear(); // start the series anew
- if (monotonyToPrev == -innerMonotony) { // with the current instruction (is done after the else block anyway)
- monotony = innerMonotony;
- } else {
- series.add(prev); // with the previous instruction
- monotony = monotonyToPrev;
- }
- }
- } else { // there is just one instruction in the series
- if ((monotonyToPrev == monotony) || (monotonyToPrev == 0.0)) {
- if (innerMonotony == -monotony) { // /\ or \/
- series.clear(); // start the series anew
- monotony = innerMonotony;
- }
- } else { // the connection has opposite monotony
- series.clear();
+ double bpmRegularised = tempo.bpm * tempo.beatLength * 4.0; // the variable for the regularised bpm tempo to the beathLength of a quarter
+ double transitionToRegularised = tempo.transitionTo * tempo.beatLength * 4.0; // the variable for the regularised transitionTo tempo to the beathLength of a quarter
+
+ double diffToPrev = bpmRegularised - prevTransitionTo;
+ double monotonyToPrev = Math.signum(diffToPrev);
+
+ double innerDiff = transitionToRegularised - bpmRegularised;
+ double innerMonotony = Math.signum(innerDiff);
+
+ // check for all conditions to just continue the series
+ if (((monotony == 0.0) && (monotonyToPrev != - innerMonotony))
+ || ((monotonyToPrev == 0.0) && (innerMonotony == monotony))
+ || ((monotonyToPrev == monotony) && (innerMonotony != -monotony))) {
+
+ if (monotony == 0.0) {
+ if (monotonyToPrev != 0.0)
+ monotony = monotonyToPrev;
+ else
monotony = innerMonotony;
- }
}
+
+ prevTransitionTo = transitionToRegularised;
series.add(tempo);
+ continue;
}
- }
- this.simplify(series, false, ppq); // simplify the final series of instructions, if possible
+ // if we reach this point, the tempo instruction ends the series
+ series.add(tempo); // this tempo instruction ends the series
+ results.add(this.simplify(series, false, ppq)); // simplify to continuous transition
+ series.clear(); // start a new series
+ series.add(tempo);
+ monotony = innerMonotony;
+ prevTransitionTo = transitionToRegularised;
+ series.add(tempo);
+ }
+ results.add(this.simplify(series, (monotony == 0.0), ppq)); // simplify the last section until the end of the tempoMap
- return error;
+ return results;
}
/**
@@ -695,15 +670,26 @@ else if (tempo.bpm == null)
* @param series the series of tempo data to simplify; the first instruction will be edited, the last remains unchanged, all in-between will be deleted
* @param ppq
* @param toConstant set true if the series should be simplified to a constant instruction
- * @return the timing error in milliseconds at the end of the simplification frame
+ * @return a data structure indicating all the alterations to the tempoMap
*/
- public double simplify(ArrayList series, boolean toConstant, int ppq) {
- if ((series == null) || (series.size() < 2)) // nothing there to simplify
- return 0.0; // done
+ public TempoMapSimplificationResults simplify(ArrayList series, boolean toConstant, int ppq) {
+ if (series == null) // nothing there to simplify
+ return new TempoMapSimplificationResults(); // done
+
+ // make sure that no two or more instructions have the same startDate
+ for (int i = 1; i < series.size(); ++i) {
+ if (series.get(i - 1).startDate >= series.get(i).startDate)
+ series.remove(--i);
+ }
+
+ if (series.size() < 2) // not enough there to simplify
+ return new TempoMapSimplificationResults(); // done
double millisecondsOld = 0.0;
if (toConstant) {
+ TempoMapSimplificationResults results = new TempoMapSimplificationResults();
+
// compute the timing from the first instruction in the series to the beginning of the last instruction
for (int i = 1; i < series.size(); ++i)
millisecondsOld += TempoMap.computeDiffTiming(series.get(i).startDate, ppq, series.get(i - 1));
@@ -720,17 +706,19 @@ public double simplify(ArrayList series, boolean toConstant, int ppq)
// newTempo.transitionTo = newTempo.bpm;
// do the updating and housekeeping
- for (int i = series.size() - 2; i >= 0; --i) // the last instruction remains untouched; all others are deleted
+ for (int i = series.size() - 2; i >= 0; --i) { // the last instruction remains untouched; all others are deleted
+ results.deletions.add(series.get(i));
this.removeElement(series.get(i).xml);
+ }
- this.addTempo(newTempo); // add the new instruction to the map
-
- return 0.0;
+ newTempo.xml = this.getElement(this.addTempo(newTempo)); // add the new instruction to the map
+ results.replacements.add(new KeyValue<>(series.get(0), newTempo));
+ return results; // done
}
// as we want to simplify to continuous tempo we need at least 3 instructions in the series
if (series.size() < 3)
- return 0.0;
+ return new TempoMapSimplificationResults(); // done
// make sure every instruction, except for the last one, has a bpm and transitionTo value, also store the min and max tempo values
double minTempo = series.get(0).bpm;
@@ -741,7 +729,7 @@ public double simplify(ArrayList series, boolean toConstant, int ppq)
if (tempo.bpm == null) {
if (tempo.transitionTo == null) {
System.err.println("Error when simplifying tempoMap: A tempo element contains neither a bpm nor transitionTo value. Cancelling operation.");
- return 0.0;
+ return new TempoMapSimplificationResults(); // done
}
tempo.bpm = tempo.transitionTo;
}
@@ -757,10 +745,13 @@ public double simplify(ArrayList series, boolean toConstant, int ppq)
}
}
- if (minTempo == maxTempo) { // constant or monotony == 0.0
- for (int i = series.size() - 2; i > 0; --i) // the first and last instruction remain untouched; all in-between are deleted
+ if (minTempo == maxTempo) { // constant or monotony == 0.0
+ TempoMapSimplificationResults results = new TempoMapSimplificationResults();
+ for (int i = series.size() - 2; i > 0; --i) { // the first and last instruction remain untouched; all in-between are deleted
+ results.deletions.add(series.get(i));
this.removeElement(series.get(i).xml);
- return 0.0;
+ }
+ return results; // done
}
// make sure the last instruction has a bpm value
@@ -803,7 +794,7 @@ public double simplify(ArrayList series, boolean toConstant, int ppq)
newTempo.endDate = last.startDate;
newTempo.beatLength = series.get(0).beatLength;
newTempo.meanTempoAt = 0.5; // must be computed
- newTempo.exponent = Math.log(0.5) / Math.log(newTempo.meanTempoAt); // same here
+ newTempo.exponent = TempoMap.computeExponent(newTempo.meanTempoAt); // same here
if (Math.signum(preLast.transitionTo - newTempo.bpm) == Math.signum(last.bpm - preLast.transitionTo)) { // if monotony to preLast.transitionTo is equal to the monotony from preLast.transitionTo to last.bpm
newTempo.transitionTo = last.bpm;
@@ -825,17 +816,18 @@ public double simplify(ArrayList series, boolean toConstant, int ppq)
}
// bisection
+ TempoMapSimplificationResults results = new TempoMapSimplificationResults();
double min = 0.0;
double max = 1.0;
- double error = TempoMap.computeDiffTiming(newTempo.endDate, ppq, newTempo) - millisecondsOld;
- for (; Math.abs(error) >= 1.0; error = TempoMap.computeDiffTiming(newTempo.endDate, ppq, newTempo) - millisecondsOld) {
+ results.error = TempoMap.computeDiffTiming(newTempo.endDate, ppq, newTempo) - millisecondsOld;
+ for (; Math.abs(results.error) >= 1.0; results.error = TempoMap.computeDiffTiming(newTempo.endDate, ppq, newTempo) - millisecondsOld) {
if (isRitardando) {
- if (error > 0.0)
+ if (results.error > 0.0)
min = newTempo.meanTempoAt;
else
max = newTempo.meanTempoAt;
- } else { // is accelerando
- if (error > 0.0)
+ } else { // is accelerando
+ if (results.error > 0.0)
max = newTempo.meanTempoAt;
else
min = newTempo.meanTempoAt;
@@ -843,18 +835,20 @@ public double simplify(ArrayList series, boolean toConstant, int ppq)
newTempo.meanTempoAt = (min + max) * 0.5;
if (Math.abs(newTempo.meanTempoAt) >= 0.9999999999999999) // if we run into numeric issues (and infinite loop as a consequence)
- return this.simplify(series, true, ppq); // simplify the series to constant
+ return this.simplify(series, true, ppq); // simplify the series to constant
- newTempo.exponent = Math.log(0.5) / Math.log(newTempo.meanTempoAt);
+ newTempo.exponent = TempoMap.computeExponent(newTempo.meanTempoAt);
}
// do the updating and housekeeping
- for (int i = series.size() - 2; i >= 0; --i) // the last instruction remains untouched; all others are deleted
+ for (int i = series.size() - 2; i >= 0; --i) { // the last instruction remains untouched; all others are deleted
+ results.deletions.add(series.get(i));
this.removeElement(series.get(i).xml);
+ }
+ newTempo.xml = this.getElement(this.addTempo(newTempo)); // add the new instruction to the map
+ results.replacements.add(new KeyValue<>(series.get(0), newTempo));
- this.addTempo(newTempo); // add the new instruction to the map
-
- return error;
+ return results;
}
/**
@@ -862,26 +856,30 @@ public double simplify(ArrayList series, boolean toConstant, int ppq)
* @param tempo must have all required information that are generated via TempoMap.getTempoDataOf(i)
* @param equalTempoRange the maximum tempo difference allowed to make the tempo constant
* @param ppq
- * @return the timing error in milliseconds introduced by simplification
+ * @return
*/
- public double simplify(TempoData tempo, double equalTempoRange, int ppq) {
+ public TempoMapSimplificationResults simplify(TempoData tempo, double equalTempoRange, int ppq) {
double tempoDiff = tempo.transitionTo - tempo.bpm;
- if ((tempoDiff == 0.0) || (Math.abs(tempoDiff) > equalTempoRange)) // if it is already a constant tempo or the continuous transition is too pronounced to make it constant
- return 0.0; // done
+ if ((tempoDiff == 0.0) || (Math.abs(tempoDiff) > equalTempoRange)) // if it is already a constant tempo or the continuous transition is too pronounced to make it constant
+ return new TempoMapSimplificationResults(); // done
double millisecondsOld = TempoMap.computeDiffTiming(tempo.endDate, ppq, tempo);
- this.simplifyFast(tempo);
- return TempoMap.computeDiffTiming(tempo.endDate, ppq, tempo) - millisecondsOld; // compute the timing error
+
+ TempoMapSimplificationResults results = new TempoMapSimplificationResults();
+ results.replacements.add(new KeyValue<>(tempo, this.simplifyFast(tempo)));
+ results.error = TempoMap.computeDiffTiming(tempo.endDate, ppq, tempo) - millisecondsOld; // compute the timing error
+ return results;
}
/**
* a faster version of simplify(TempoData tempo, double equalTempoRange, int ppq);
* this method simplifies a single tempo instruction to a constant tempo; it does not compute timing error
* @param tempo the tempo instruction must be member of this tempoMap
+ * @return the new tempo instruction by which tempo has been replaced
*/
- public void simplifyFast(TempoData tempo) {
+ public TempoData simplifyFast(TempoData tempo) {
if (!this.contains(tempo.xml))
- return;
+ return tempo;
// some regularisation to simplify further processing
if (tempo.transitionTo == null)
@@ -896,9 +894,30 @@ else if (tempo.bpm == null)
tempo.bpm = (tempo.bpm + tempo.transitionTo) * 0.5;
tempo.transitionTo = tempo.bpm;
- // remove the old tempo entry, crceate and add a new one to the tempoMap
+ // remove the old tempo entry, create and add a new one to the tempoMap
this.removeElement(tempo.xml);
tempo.xml = null;
- this.addTempo(tempo);
+ tempo.xml = this.getElement(this.addTempo(tempo));
+ return tempo;
+ }
+
+ /**
+ * This class gives information about the changes that are done to the tempoMap in the process of simplification.
+ * @author Axel Berndt
+ */
+ public class TempoMapSimplificationResults {
+ public double error = 0.0;
+ public ArrayList deletions = new ArrayList<>();
+ public ArrayList> replacements = new ArrayList<>();
+
+ /**
+ * combine the provided instance into this one
+ * @param addThis
+ */
+ public void add(TempoMapSimplificationResults addThis) {
+ this.error += addThis.error;
+ this.deletions.addAll(addThis.deletions);
+ this.replacements.addAll(addThis.replacements);
+ }
}
}