Skip to content

Commit 9183277

Browse files
This is the v3.0.0 commit.
Squashed commit of the following: commit 4e63aed9ecc50eefbbb5a7304b98037c083a4632 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Nov 10 11:57:59 2023 -0800 Last minute setup.py (et al) tweaks for release 3. commit a6c50e34ee864d68b13c4264cb7dabe727a59d47 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Nov 9 20:04:36 2023 -0800 MEI export: if a tuplet won't nest reasonably within (or around) the beams in a voice, emit it as a <tupletSpan> instead. commit 763a58cd1b69c180c9b561f9bdf64617b3709eac Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Nov 9 18:24:03 2023 -0800 MEI import: be a little bit better about figuring out start/end of tuplets. commit 5cdd480036191d86a14618b0f76aac9d3a76df79 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Nov 9 15:48:37 2023 -0800 Test: new test mei file that contains a tuplet/beam combination that can't be exported as <tuplet><beam> or <beam><tuplet> (it doesn't nest at all), so must be exported using <tupletSpan>. commit f061d7b13030b40bcde98ec1a0f5b5025113be8c Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Nov 8 14:17:15 2023 -0800 MEI import: Catch the other "in tuplet" cases, not just <tuplet> element. This fixes our dur.ppq vs tuplet code. commit e63f637ffdc4310f5debe5b3a41866389292da4d Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Nov 7 22:20:58 2023 -0800 Humdrum export: Make sure when exporting recip from a tuplet-y duration, that we don't mistakenly produce a recip that is a power of two (with no dots). commit 5430e56d4fb990637c1f07d103f5343c27470b15 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Nov 7 17:15:05 2023 -0800 lint. commit 257f8c3206e7bbde82e0ef73b7790bfcc81416de Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Nov 7 17:12:10 2023 -0800 Humdrum import: more visual durations that might not be tuplet-y. Humdrum export: put layouts closest before a note. commit 6f41537db13a2e1886f6217e3b4b98639bfc8451 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Nov 7 13:16:30 2023 -0800 Humdrum export: same fix... Don't use tupletMultiplier on visual durations. commit 54f3cb1ec076ef954ed45f6621ecf655f0982b2b Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Nov 7 12:38:28 2023 -0800 New test file. commit 38dc91e1e978d97dee3d67426701b4b6eb72e246 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Nov 7 12:35:51 2023 -0800 Humdrum import: With latest fix to Verovio, it is clear that visual durations in Humdrum files should never have tuplet-y durations (like "12"), and so we should not use tupletMultiplier on them, ever. commit dbef2c50f3b942c457b1bb49404789ced7c0c494 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Nov 7 11:46:51 2023 -0800 MEI import: a better solution to @dur.ppq vs. being in a tuplet. commit b323401f0d6331d20c772009aea57b80a39e6ca1 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Nov 6 14:18:10 2023 -0800 MEI Export: rework export of tuplets. Squashed commit of the following: commit 10d1f3f9e454088f478f8b0e87566bd5537be2ad Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Nov 6 12:59:52 2023 -0800 MEI export: if the non-tuplet-y note during a tuplet is a grace note, just skip it; don't stop the tuplet. commit f9b580a131e47d81506c52d0c2f6fb3855e15db6 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Nov 6 12:52:58 2023 -0800 MEI export: more fixes to the tuplet fixes. commit 15f0d85778168084dafbc588578b3aa91ce99ca4 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Nov 6 12:32:58 2023 -0800 MEI export: fix that last tuplet-y fix, and also, if you see a non-tuplet-y note, stop any current tuplet. commit 0ed8d0ea4242776f0165611a9f66ffaabcc49cf4 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Nov 6 12:14:32 2023 -0800 MEI export: Assume tuplets do not cross parts, or measures. (That last isn't right, but it's close.) commit 326d87c37a09f20f93799bc97ed69b1925d5c6d2 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Nov 1 15:25:06 2023 -0700 MEI import: better formatted warning. commit 7251abaa566e1016caf89949bbbff576cdbfd2c9 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Nov 1 12:55:57 2023 -0700 MEI import: warn if @dur.ges and @dots are present but no @dots.ges is present (ambiguous, did you mean dots.ges="0" or dots.ges=dots?). commit d16d77c243b63b82612eeffc03d99884da64b5b8 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Nov 1 11:45:25 2023 -0700 MEI import: if mRest duration is not power-of-two-plus-dots, split it into multiple rests. commit 8590503eb4ea7404e208b824f2e5f9adf9a9f8d3 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Nov 1 10:52:08 2023 -0700 Tests: update tests to match new reality. commit 72577cc03fe3e0debba54fd01b42b8bc5cca6014 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Nov 1 10:49:17 2023 -0700 MEI import: if gestural duration is just tupletized visual duration (i.e. it came from dur.ppq), ignore it. commit 4cf84507543a59de4daaf8e710abd1258e5ac703 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 31 17:14:26 2023 -0700 MEI import: stop hacking around an old Verovio bug. It was causing occasional problems. commit ba7ed66d9094b8c76bfda669d8b8e1677c031482 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 31 16:04:43 2023 -0700 MEI import: OK, put the empty layers back in, but don't warn about them. commit 60fb31a54f2edefccc4c60f843115c0a8b0b841e Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 31 15:49:49 2023 -0700 MEI import: don't bother warning about having to pad voice/layer with only clefs, etc. commit 679825cdf8245163bd14215bcb683015ddcc3741 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 31 15:40:50 2023 -0700 MEI import: If we produce an empty voice from a layer, just ignore it. (Silencing warnings about short layers) commit 012d1b1f1c0dce0fa53e6c495a148354df94c247 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 31 14:34:47 2023 -0700 MEI importer: if dur.ges is present, but not dots.ges, assume dots.ges should be 0, not whatever dots is. commit 8111300b6f9c6d1ec2b2df2f1356cbe61ab7890b Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 31 13:45:19 2023 -0700 MEI export: slightly better @dots.ges fix. commit 8774f6295131eefa6aa1ccb900cec083406f416c Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 31 13:22:05 2023 -0700 Tests: new script to run all diffall tests in separate Terminal windows. commit ca9daa97184331e4597a615a42d48302c51ffc75 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 31 13:19:58 2023 -0700 MEI export: always export @dots.ges with @dur.ges (never make someone guess whether you meant '0' or @dots). commit 4964963313014ba22baeb8472ca504674671e550 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 31 11:57:54 2023 -0700 MEI import: handle bare @tuplet (i.e. not in <tuplet> or referenced from <tupletSpan>. commit f6d4444c8a4395f6c3d96e26e636130c7403695f Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 31 11:04:34 2023 -0700 MEI import: missing staves need a space, but you might need multiple spaces if the expected measure duration is weird. commit 4b1b3244f1f0cb1ddd5601ca5adf72018d3c9cf2 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Oct 30 15:27:17 2023 -0700 MEI import: never mind, we have to go with the longest duration staff/layer (and pad the others), even if it's longer than the time signature would imply. Otherwise we end up with different duration m21Measures, and then they don't line up anymore. commit 4f898c6418cb2aed1b5871da059bb4f1b2e5cb01 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Oct 30 12:52:38 2023 -0700 Squashed commit of the following: commit e11d702f28d91a9f61091578c7189eca7a9c7c53 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Oct 30 12:50:50 2023 -0700 MEI import: Slight adjustment to mRest/mSpace fix: if @dur is present but different than measure duration, set visual duration to @dur, and gestural duration to measure duration. commit 716a19c1b8ba5cc3e487e013fcf96cf9acc2a6ce Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Oct 30 12:20:05 2023 -0700 MEI import: whole note rests that are longer than activeMeter should have gestural duration == activeMeter. commit af7a3f3000bf583c17aa2f34fed5768805688928 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Oct 29 17:11:39 2023 -0700 MEI import: Ignore @dur in mRest and mSpace, insist they be the duration of a measure. commit 432f255cee745ffea7a26af38770f25fe77e9034 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Oct 29 16:57:29 2023 -0700 MEI import: support @dur.ppq as an alternate form of gestural duration. commit e63eddd4130c58f637ef2043b8826625efda14ea Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Oct 29 15:43:07 2023 -0700 MEI import: don't ever let expectedMeasureDuration be longer than the time signature. commit 3ca0dc300a44c97d7e9f02880820fd80f036ba30 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Oct 29 13:56:29 2023 -0700 MEI import: That last expectedMeasureDuration fix was a bit too aggressive, and caused errors in pickup measures whose durations were not power-of-two with dots (e.g. a pickup measure containing 5 eighth notes). commit c52100be2b3a914c431fa2f6cb63cb4a2946a2ba Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Oct 29 13:12:15 2023 -0700 MEI import: support @dur="2 4" (for example) where the space-delimited durations need to be added together. Discovered in music-encoding/sample-encodings/MEI_5.0/Music/Layout_information/Layout_information.mei commit 51da3411e8d558a05eb09e3517994f8dda6636d0 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Oct 29 11:57:13 2023 -0700 MEI import: When giving an mRest duration, if maxDuration isn't expressible as power of two plus dots, simply use the current time signature. commit 7ec5d90d3e7a4282807f48940bdefb1b44ef2d28 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Oct 28 16:58:48 2023 -0700 All: MEI date writing fixes which might also effect everyone else. commit 669271af2fc38ab6dfa8c855733d98df21caea0a Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Oct 28 12:01:02 2023 -0700 Humdrum export: don't write !!!software, it's not part of Humdrum. commit 86bdffd6066574cc5fac69ece5eec5e4eadacdbe Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Oct 27 15:40:30 2023 -0700 MEI import: in textFromElem you're already recursing by hand, don't recurse automatically as well. commit da66ae169ad0be548fc30f509c295849f4ad21c7 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Oct 27 15:01:12 2023 -0700 Tests: put metadata comparison back in for tests that use verovio's Humdrum->MEI on both sides of the comparison. commit 52b546e836fa3f3a940ef4388f7b06aebe603fe1 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Oct 27 14:59:00 2023 -0700 MEI import: v5 MEI is expected to use mSpace instead of mRest@visible="false". But Verovio produces v5 containing mRest@visible="false", so we have to look for it. commit 58ba123588c9ab58ee310b0cae54003ac19b13b5 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Oct 27 14:31:50 2023 -0700 Tests: diffall and showdiff tests that use verovio to convert from Humdrum to MEI can't (yet) compare metadata, because I haven't made the metadata improvements (yet) to verovio's Humdrum importer. commit 8db8c4ff9aa4f5e3fca6a4211272c1d9944172b8 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Oct 27 14:25:33 2023 -0700 MEI import/export: missing export of 'performer' triggered a cleanup of recorded source and a tweak to the latest metadata import fix. commit 6f4b09017bec5b55dec5953945c08c1b00a42e56 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Oct 26 16:54:58 2023 -0700 MEI export: support 'dedicatee' better (in music21 it's 'dedicatedTo'). commit 1be7d14b5038d189087ef1322b1b555edd866023 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Oct 26 16:37:55 2023 -0700 MEI import: figure out which editor it is from context. commit 0676175af9ae26381d0aef92410574fe88434850 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Oct 26 15:59:35 2023 -0700 lint. commit 721d3bd3e9d29f0b88479573e2bfdb89a6642971 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Oct 26 15:56:07 2023 -0700 MEI export/MEI&Humdrum import: standardize ONB handling in MEI a bit (read from fileDesc _and_ digital source; write all of it to digital source). Don't escape LF when writing MEI files (but do in Humdrum files). Don't crash on badly formed Humdrum date. commit 10dc5aec584415df850a16ce455d9cdaed8ea401 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Oct 25 15:17:52 2023 -0700 Humdrum export: escape LF to \n before putting in Humdrum file. commit 647dd76b8cf03857b0a834273fea818ee90b436f Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Oct 25 15:05:49 2023 -0700 Humdrum export: some metadata fixes. commit dff26bef358afc537fd0f3f6621d0803e1aaeb27 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Oct 25 14:33:50 2023 -0700 ReleaseNotes_3.0.0.txt: mention new MEI v4 vs. v5 support. commit 82d282b0ee9a26d0150088f013e6ad84cb6ba7a0 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Oct 25 14:30:57 2023 -0700 MEI import/export (and some Humdrum import/export fixes, too): import metadata from MEI and export metadata to MEI. Squashed commit of the following: commit 4928f69dcecaa6ab45309f1bde5e377bfc6c8c29 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Oct 25 14:24:10 2023 -0700 Update ReleaseNotes_3.0.0.txt to mention import of metadata from MEI. commit a1b11866c876dc9294937efdf090269619964891 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Oct 25 13:56:44 2023 -0700 MEI export: we were missing some "published" info due to a bad code indent. commit f7409f9a8b9f51c44674fbc0a3b87a448ca41af7 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 17 15:44:34 2023 -0700 MEI import/export: get more aggressive about printed source stuff, to the point of adding 'mei:printedSourceCopyright' to the metadata, since music21 doesn't have anything for that. commit 0ef10d114cc70cd70eebe05c9325bc75b5a7fd3b Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 17 14:22:08 2023 -0700 MEI import: picking up more stuff more accurately from MEI files whose metadata was constructed by hand. commit f8f8ddc06cc213b80c30a42db35fdffd704aa044 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 17 13:27:49 2023 -0700 MEI import/export: some improvements to metadata that originated in MEI (instead of Humdrum). Fixed some bugs in appInfo handling. commit d4300d17057a5f82641f3b771750a46783df74f6 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 17 12:40:36 2023 -0700 MEI import/Humdrum import/MEI export: improve handling of application/version metadata. commit 92dd0fd63797f5e20ff2ef63e3b3fe2463ee78fb Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 17 11:23:30 2023 -0700 MEI export: last few missing metadata exports. At this point, Humdrum import compared with MEI export + MEI import shows only AIN is missing (and I am content with that for now). commit 27d0e1dbe0c5fa394b394103872f453befdf9b09 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Oct 16 13:18:04 2023 -0700 MEI import: lint. commit 2af0f22455ca495545ec64809f9ecfe9999fb204 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Oct 16 13:16:42 2023 -0700 MEI import: import EFL and EEV (I just forgot them). commit 4e14e4a6473681504ab43723d8c9b1e7216525bd Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Oct 15 14:29:26 2023 -0700 MEI import/export, Humdrum import: handle custom keys with dates better. MEI export: export ACO metadata as a synonym for GCO. commit 6a4f113f9bdcae0d6718d07c2c80c497bc4a0e41 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Oct 14 16:52:34 2023 -0700 MEI import: finish up metadata import from MEI, and fix some musicdiff-noticed issues. More fixes to come. commit 01a046c8bfd286c2b5aacca83a606086b2880d03 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Oct 11 15:58:25 2023 -0700 MEI import/export, Humdrum import/export: better handling of 'software' metadata item. commit 24da4a48692e6ebc5dcf944ff445f24f245b8628 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Oct 11 14:14:22 2023 -0700 MEI import: oopsie. commit c89b97140b8d4a797ff8793e70a0c869a07744ad Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Oct 11 14:13:30 2023 -0700 MEI import: appInfo/application as well as a bug fix to other contributors. commit 381bb45efbd03b0c2ca20c85cf2830986fe45b53 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Oct 11 13:07:04 2023 -0700 MEI import: The start of parsing meiHead/fileDesc. commit ca2fcf3c8217846c2cdd454a3d0b079096eb9c06 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 10 15:20:36 2023 -0700 MEI import: import meiHead/encodingDesc (improving paragraph/linegroup support to do so). commit c32fd30c093b5c9ef840bc5e8253f847e1bec725 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 10 13:40:49 2023 -0700 MEI import: also parse music/back/div looking for lyrics translations. A bit of restructuring and explicit recurse=. commit bdf21a85efdc212b15cd21b2415e8d039ff02e18 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 10 13:06:25 2023 -0700 MEI import: Oops, forgot main <work><classification>. commit f62f4b0696366bb34e225876808b25fc5bebb475 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Oct 10 12:50:08 2023 -0700 MEI import: finish the rest of main <work> import. commit e4550e61cce22834a0b8c0c82e55664442b0faf0 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Oct 8 13:51:10 2023 -0700 MEI import: more metadata (work/creation and work/history). commit 769f85a7340286f662f886e1611f3b002cb0dbba Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Oct 8 11:28:46 2023 -0700 MEI import: improve handling of @analog to deal with things like 'dcterms:title', 'dcterm:title', etc. commit 848d02cb62e58e4c9e9cb36d867086690588c2b4 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Oct 6 17:36:20 2023 -0700 MEI import: The rest of the <work> contributors commit 039eb4da0b98bb30421eecfbc5a043c0856cb657 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Oct 5 15:23:20 2023 -0700 MEI import: When processing <composer> dip into MADS authority info to get some extra info. commit 8dcf7c743dc3cd9f9baab4e39f18a53ff97ee1d2 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Oct 4 15:55:21 2023 -0700 MEI import: clean up MEIElement annotations, do a better job with titles. commit ce69e200266cea166c30747e6f26f22f02d9639d Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Oct 4 14:03:38 2023 -0700 MEI import: save off metadata import work. commit 14f51ecea2be5cdc575984d3e1b987218f54c692 Merge: d5bd026 0fd5d40 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Oct 2 13:10:36 2023 -0700 Merge branch 'gregc/betterMEIMetadata' into gregc/betterMEIMetadataImport commit 0fd5d405f47b6dcf6a4beb887ad12659fd12d382 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Oct 2 11:43:47 2023 -0700 MEI export: relate printed and digital sources as 'otherFormat' if they are both present. commit 800124064d05eca7734cfdf75a7c20535e28af8e Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Oct 2 11:09:52 2023 -0700 MEI export: get rid of all the unnecessary non-ASCII escaping from ElementTree.write(). commit 745eefb315f65950f3809e8addd539d3f12fb164 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Oct 1 11:01:49 2023 -0700 MEI export: Don't crash when attempting to parse date text as isodate. Don't put in an attribute and then check isEmpty; it never will be. commit d5bd026fdb231f5478b4da07dc73461292bb0f4c Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Oct 1 10:31:54 2023 -0700 Save off some MEI metadata import changes in progress. commit fb8e9e6a39fcf68dd186be03db0d68d35e058646 Merge: a972165 d42e388 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Sep 30 11:54:58 2023 -0700 Merge branch 'gregc/betterMEIMetadata' into gregc/betterMEIMetadataImport commit d42e388e4acf75ad2b038aee3bf039c63b067bb4 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Sep 30 11:18:20 2023 -0700 MEI exporter: Tweak metadata (1) to reference mads from composer/persName instead of from composer, and (2) use <name> instead of <persName> in cases where it might be a corpName, and we don't know. commit a972165ed11f4d20e025cea5eee946d45d7c9b9e Merge: a00df19 3d35842 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Sep 29 15:49:24 2023 -0700 Merge branch 'gregc/betterMEIMetadata' into gregc/betterMEIMetadataImport commit 3d358427ec6c14add23368e6a65a86132c8f6a56 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Sep 29 15:45:01 2023 -0700 MEI export: Better <work> relationships. commit a00df196bca33260d61effbae8ba037fc9634afc Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Sep 29 13:50:26 2023 -0700 Save off current work. commit 4e1948da78b858940bf4628e17b2c9d45e1972d6 Merge: a3e262d 19992c9 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Sep 27 16:01:38 2023 -0700 Merge branch 'gregc/betterMEIMetadata' into gregc/betterMEIMetadataImport commit 19992c9c66cc7fa01b9670d2f3ac49432a99a1a7 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Sep 27 15:59:39 2023 -0700 MEI export: another metadata round with Perry (PR6). commit a3e262debca35032d9cc4062e09d9b7787f8d70a Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Sep 27 14:57:21 2023 -0700 MEI import: starting work on importing every bit of MEI metadata we can. commit 9e2763d1b38e2f4ad7e51c37369ea9a17aa6c87d Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Sep 27 14:33:42 2023 -0700 MEI export: Oops! <editor> should be <persName> inside <respStmt>. commit 7b89666ec69c3160f83df4f75e3a62705a11a582 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Sep 27 11:47:01 2023 -0700 MEI export: tweaks to PR5 (MEI metadata export). commit 8bb6926e4271e8c65dbec0719520c83567116c29 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Sep 27 11:34:53 2023 -0700 MEI export: another round of MEI metadata export (PR5) with Perry. commit a0da7d91f3820b215c235a2216b7da7addc27a9a Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Sep 25 15:43:10 2023 -0700 MEI export: Export composer authority info as MADS inside <work><extMeta>. A few other tweaks. commit 6729d27b7aef8a5a58877349d21799ee395c70e4 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Sep 24 13:08:55 2023 -0700 MEI export: another round of metadata export tweaks with Perry. commit cafcd60746c54a468e308de1a0562b575da2c824 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Sep 23 14:31:39 2023 -0700 MEI export: 'humdrum:HTX' exports as <lg><l><l></lg> now, with @xml.lang on the <lg> if possible. commit 9d1c5924ff3b6f945407e6e65746a7a4610da971 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Sep 23 13:25:19 2023 -0700 Squashed commit of the following: commit 6f4bb71886f79381b1a970a5240b9e67259717cd Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Sep 23 13:08:46 2023 -0700 MEI export: allow client to specify v4 or v5 MEI to be written. commit 8b43ce20ed298c4b9688567ce02ef7c1a320ca56 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Sep 23 12:29:49 2023 -0700 MEI import: support both v4 and v5 (but not 5.0+Neumes or 5.0+Mensural). commit 5143a11678af58c798921263390921f1832e4476 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Sep 22 16:34:30 2023 -0700 MEI export: latest metadata revision from Perry. commit 6f889230007177b2435fbf20a700a11a48f56a74 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Sep 21 16:14:55 2023 -0700 MEI import: read up the @meiversion from the root element. Not using it yet. commit 18b709212793072c5895dc37b0f83f60b020ea02 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Sep 21 11:30:59 2023 -0700 MEI export: No need to re-implement startswith. MEI import: isodate parsing stupid bug ('Z' should have been 'T'). commit 2d5135d8c1dd3e4193c17072ac695230f9f68806 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Sep 20 17:44:58 2023 -0700 MEI import: parse isodates properly. MEI export: fix bug introduced by the xmlId refactor for title@sameas and composer@sameas. commit 16a9cb28668e1e36f9440a9668c69eb94c623c7a Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Sep 20 12:54:25 2023 -0700 MEI export: instead of copying the main <title> element and all the <composer> elements into multiple places, just put @sameas elements in their place (with a single title or name in the element, for human readers). commit 1588b96707757c4867838aacc4f5d88603dd8d2a Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Sep 19 15:35:40 2023 -0700 MEI export: DateSelection can be "and" or "or"; support both. commit 7527f4294a78c9fa110ac556f5930a4866a3b600 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Sep 19 15:02:14 2023 -0700 MEI export: all metadata exported except humdrum:AIN -> <perfMedium>. commit 33e03ad226c23ecacec62ce4ae9cd8397f10fd60 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Sep 18 12:46:13 2023 -0700 MEI export: more composers, add encodingDesc and a start on workList. commit 3d90125bc07946c6a2c213cd0b09f9140e0922e4 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Sep 7 16:19:45 2023 -0700 MEI export: @target, not @data. commit b0c2e01264d223b883c6ade6888e44aa2aa8fcec Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Sep 4 17:42:32 2023 -0700 MEI export: final metadata source (unpublished). commit 73dbb1cdf562f6df4311211623f04bacdefd27f7 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Sep 4 17:04:42 2023 -0700 MEI export: more metadata fileDesc/source (all but the last one: unpublished source). commit 93ebf6ee5db53949a9b7eac449edb596390c5ad3 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Sep 4 14:09:27 2023 -0700 MEI export: More fileDesc, started sourceDesc with digital source. commit 1acc8973aa06637abb0b53c85608242fafb7358e Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Sep 3 12:35:25 2023 -0700 MEI export: first cut at rewrite of metadata export. Just fileDesc/titleStmt and music/back/div@type="textTranslation". commit 51c9dc38af3fb857c889c76b7ea145f9ee596569 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Sep 2 17:20:27 2023 -0700 MEI export: more removals of first attempt at metadata export. commit 16dd9549004e6a66d770e98d9015c4b6668d6d03 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Sep 2 17:13:29 2023 -0700 MEI export: start again with metadata writing. commit ec38b60ec2f7bc3ff0d40f9cbab2e5eeb4dc54ce Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Sep 2 14:05:55 2023 -0700 MEI import: support title@type="popular" (the new way of encoding popularTitle). commit fd0494bdc174379e90c52abbdc39c305e1d5084c Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Sep 1 15:59:18 2023 -0700 MEI import/export: Some clean up, some bugfixes, analogs should always be 'humdrum:XXX'. But I'm going to rewrite the metadata export code to be driven by MEI structures (fill 'em in) instead of by music21 metadata items (where does this one go?). commit a8fa3a9a82dbf37218775286e99f29073a7b19de Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Aug 26 17:19:44 2023 -0700 MEI export: finish initial implementation of metadata export. It works, modulo some differences of opinion between import and export. commit 09ac4c687251313574fec054604aeced5851d7fe Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Aug 26 13:29:00 2023 -0700 MEI export: Rough implementation of metadata export. Doesn't work yet, but need to save it off. commit 0dcf0c3cf8528f8ea55a598bf659012efdc17322 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Aug 24 16:47:43 2023 -0700 Humdrum import: don't import metadata items with no value. MEI import: if date parsing fails to give a DatePrimitive, use a string instead of giving up. commit 29813dd797585d8849d40c106085dc874b7eb67e Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Aug 23 17:10:28 2023 -0700 Tests: much better diffall output for metadata differences (print the keys). commit 1b3a3f80650dc9812a694c29d166456fcaddc627 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Aug 23 14:38:19 2023 -0700 Humdrum import: no more 'humdrumraw:???' metadata. It's all parsed 'humdrum:???'. We're going to pretend it's all ssupported in music21, and try to get it all in MEI as well. commit 84d6c75267f4940aa0fa8927f19202a8f86b286e Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Aug 23 14:36:57 2023 -0700 MEI import: handle identifier@analog="humdrum:???" to pick which of 'SCA', 'SCT', 'PC#' it is. commit 85ca509fd71e493cc965bf4413d702bcf6b58d6e Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Aug 23 10:23:45 2023 -0700 Humdrum export: handle new non-raw 'humdrum:???' uniqueNames. commit ca48510c89a0dd4e76910142b5724a4af4fe5635 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Aug 22 16:07:31 2023 -0700 Humdrum import: more metadata fixes, having to do with dupes, attributed vs suspected composer, and some humdrum: vs humdrumraw: choices. commit fc39bc495c1058e2ad3c4d6cb28e1e0ed44a8e7a Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Aug 22 15:03:11 2023 -0700 Humdrum import: Steal code from MEI import, so we don't put duplicate items in metadata, either. commit 53ed3c7379653395830266729a07a2c9beba1222 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Aug 22 14:25:10 2023 -0700 MEI import: properly handle <contributor> (use @role). commit f65c0d5e992120834169389c2af4df090b04fe5b Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Aug 22 12:27:31 2023 -0700 Humdrum export: handle otherContributor, remove added space in things like '%s sempre legato'. commit 3114d05bbf4233a6cd2196be41953639a914af75 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Aug 21 17:16:49 2023 -0700 Tests: oops I didn't mean to commit the (temporarily) disabled Metadata diffs in two tests. commit 9f6118c8f25f852848790870e7a9dc2062e66837 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Aug 21 17:04:45 2023 -0700 Humdrum import: Strip off that trailing space from dynamic if the %s was before the dynamic. commit 47e94d8d2b34a24f50cc7e975b9628fcf3ae7e8e Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Aug 21 16:32:44 2023 -0700 Humdrum import: add a space after dynamic and before %s expansion (to match new version of Verovio). commit 065e0888124c15cd6102eed851f644373ee2f0d2 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Aug 21 15:50:13 2023 -0700 Humdrum import: Add 'otherContributor' instead of 'humdrumraw:???' for non-m21-supported contributors. Use three more m21-supported contributors. MEI import: One more isTranslated bug. commit 321658c8ddf3a20a5929abeaee76934421c88ad0 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Aug 21 14:55:29 2023 -0700 Humdrum import: freeform metadata now gets 'raw:' prepended to the freeform key, to avoid conflict with music21 uniqueName keys. commit 3b6fc5a1a98a600891d9fb73844e4c5370a52899 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Aug 21 14:27:52 2023 -0700 MEI import: Do an even better job with isTranslated. MEI import/Humdrum import: 'humdrum:EED' is supported by music21, we should use it. commit 0b0db2358c763e3e178484da907f0b0e730dfe40 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Aug 20 17:40:52 2023 -0700 Lint. commit 86f21b1a4d9017e3624a3470e170addb83edd88c Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Aug 20 17:37:53 2023 -0700 MEI import: some metadata tweaks Humdrum import: get isTranslated right for Text metadata. commit 6c0c2b9e13d9c03e4c9568045ca92ef4874f6549 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Aug 20 16:45:34 2023 -0700 Get pytest working again. commit dccd61ea427c4a6ab31de80620fba07969fd3fc8 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Aug 20 16:36:40 2023 -0700 MEI import: lots more metadata. Also moved a couple HumdrumReferenceRecord lookup tables from M21Convert to M21Utilities, because sometimes MEI import wants to know about that. commit e238465e06a1dd8765e7cc59988025f441bea6ca Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Aug 20 11:40:39 2023 -0700 Tests: diffall*.py and showdiff*.py DetailLevel usage keeps up with new musicdiff definitions. commit 42d4f512a73ea8f70a5c2aaf7f10a29696bab1da Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Aug 20 11:07:16 2023 -0700 MEI import: even better metadata <date> parsing (properly handle isodate). commit 44067ba5ea450327be3d9a376830c6c2a97d4b3a Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Aug 19 16:24:31 2023 -0700 MEI import: better title and creationDate parsing. Prefer <work>, but use <fileDesc> if <work> isn't there. commit 77b4284097ccf705e0649e7d2577fe77e1e1722c Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Aug 19 13:26:23 2023 -0700 MEI import/export: lose some lint. commit bbad9a9c3cca464add562ec265854bf397bd97a8 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Aug 19 12:03:14 2023 -0700 Humdrum export: Those last three fixes are actually to Humdrum export, not MEI export. Changed a comment to commit this. commit 17d53d7b8a94299456412350457be4c949a8520a Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Aug 18 12:11:32 2023 -0700 MEI export: in non-initial OMD export, translate SMUFL note chars to things like '[half-dot]' etc. commit 6b6d165c7b05fca07ce2bdca79546b4a57a7ee8f Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Aug 18 10:49:14 2023 -0700 MEI export: fix longstanding bug where MEI export might modify the music21 score's 'movementName' metadata. commit 42cac5d2f0584b71271bc87627831d38ca8d2e19 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Aug 18 10:14:01 2023 -0700 MEI export: fix longstanding bug in OMD <-> MM vs OMD <-> metadata. commit 788ac4fe8816d77c51b517d26d7126536e4419b3 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Aug 17 17:41:20 2023 -0700 MEI import/export: oops, forgot to commit newly refactored files. commit c22a39b7964dce130a65310b28bf65b01b9110cb Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Aug 17 17:22:15 2023 -0700 Humdrum import/export: even better handling of humdrumraw:, and treat !!!title as humdrumraw, too, so it doesn't end up treated as OTL. commit e3121a4be3763b7bfd1b5cab249bf48315f5329c Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Aug 17 16:35:43 2023 -0700 Humdrum export: do a cleaner job exporting metadata item from 'humdrumraw:'. commit 73ca87ad9d9404e36dce4cd53971def00c53285b Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Aug 17 15:55:17 2023 -0700 diffall tests: report metadata differences. commit 779fcccf518914fdcdba631907960913684b82cc Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Aug 17 15:49:44 2023 -0700 MEI import: fix some TagToFunction typos. Refactor even more for metadata parsing. commit a1d1a0d5655640823a660300a10181bbd6c3a42a Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Aug 12 16:32:30 2023 -0700 Fix up diffall and showdiff tests to compare Metadata as well. commit dc0c4a80376b32981d81f11481614702f5643836 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Sep 23 13:18:18 2023 -0700 Support import and export of MEI v4 and v5. Squashed commit of the following: commit 6f4bb71886f79381b1a970a5240b9e67259717cd Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Sep 23 13:08:46 2023 -0700 MEI export: allow client to specify v4 or v5 MEI to be written. commit 8b43ce20ed298c4b9688567ce02ef7c1a320ca56 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Sep 23 12:29:49 2023 -0700 MEI import: support both v4 and v5 (but not 5.0+Neumes or 5.0+Mensural). commit 435d54cd45e641ae82b2e3ff80e5ac0640dd91ae Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Aug 8 16:47:47 2023 -0700 Push a couple ReleaseNotes files to the repo. commit 87489bcf29f269a26ff7f538e8752a86d89b68f2 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Aug 8 15:34:06 2023 -0700 Humdrum export: articulation placement. commit 2933582eaf20ef3b5944aa4f1ec7ec302bf011f5 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Aug 8 14:06:46 2023 -0700 Humdrum export: support export of Ottavas to *8va/*X8va et al. commit 5948aba1cf4dfd0363a6a227bbc2add9c1d62737 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Aug 6 12:54:23 2023 -0700 Squash merge of gregc/meiExport. Squashed commit of the following: commit d030756f34998630400546205aaf0825904d6afe Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Aug 5 12:36:10 2023 -0700 Get that last fix right (and in all the right places). commit 982ffcab73b917ffb56d05f13dfffbc0a152f985 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Aug 5 12:21:43 2023 -0700 Humdrum import vs verovio-produced MEI import test: use new undocumented musicdiff feature that disables rest position comparison, since verovio makes up rest positions based on notes in the other voice, causing a lot of noisy diffs. commit 91fa031f13b94c9fff93e4d56192b1018c0d3033 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Aug 2 15:35:59 2023 -0700 MEI export: beams that only stop shouldn't cause a crash. commit 6e48332065b1b374cbd954183e06fa303e8aaf36 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Aug 2 15:22:39 2023 -0700 MEI import/export: handle nested beams (inner is all grace notes) properly. commit 530123e28ba17c6b74eb692b3aa3e18287bbd964 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Aug 2 14:30:51 2023 -0700 MEI export: fermata on barline. Also add placement to MEI import of fermatas. commit 1a1fb0f5a153333da29814592304131178c7db0c Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Aug 2 13:19:12 2023 -0700 MEI import: warn, don't raise, if layers end with different clefs. commit 590d0731803a3d2ac96fce8759f750ab20299f87 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Aug 2 12:38:39 2023 -0700 MEI import: clefs with @sameas are imported as invisible. clefs with @visible="false", likewise. commit fd42fdf477fa37ec053e18301b25049ef89940d1 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Jul 31 16:48:24 2023 -0700 MEI import: a bunch of fixes to clef tracking, to fix positioned rests. commit b557cb13c92fdbfa3093d749dd900b02bd42c8f7 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Jul 31 14:38:40 2023 -0700 MEI import/export: positioned rests. oloc/ploc <-> rest.stepShift. commit 1a651578932d4ec01512e80a72c6305af538ed06 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jul 26 16:55:25 2023 -0700 New test file for MEI import/export of gestural duration within a tuplet. commit ae186c23b70173628f2709bddfc6badcb94b2ce8 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jul 26 16:27:54 2023 -0700 MEI import: allow <octave> to have no @endid/@tstamp2 (it just octave shifts one note/chord). commit 8cd6e4c753a9b5a00798d423fcf49c5df45adb1c Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jul 26 15:32:00 2023 -0700 MEI import: another fix to gestural durations. MEI export: another fix to tuplet-y gestural durations. commit 48e9a96b6972ef101f7299b1f28ef7a7e6da1023 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jul 26 13:24:44 2023 -0700 MEI export: add @oct.ges inside octaves. One more tweak for dur.ges as well. commit d6e2f8ed6573b89e75facb2ab552369e0ef44103 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jul 26 12:23:31 2023 -0700 MEI export: Ottava -> <octave> commit c385f9cd4a102d77d1a5c778e5859a463b67c9d2 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Jul 25 21:53:07 2023 -0700 MEI export: oops, messed up that dots.ges fix. commit ee14d4a286776fe6f0f095569b7c814b63d202e1 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Jul 25 21:26:30 2023 -0700 MEI import/export: fix dots.ges handling. commit f8fdd1d45dec73198b2605ea7a1b19b832f65907 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Jul 25 17:30:26 2023 -0700 MEI import: <staffDef> within <measure> wasn't updating self.activeMeter. commit 6245e15031f0fd503695b90904b6ecb7f63e15ba Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Jul 24 21:50:49 2023 -0700 MEI import: when padding a layer with spaces, make sure you mark any tuplet as 'startStop'. commit 955cb7eb2fca8a0b1e3ceca8d5ccda9517ea99ee Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Jul 24 18:40:06 2023 -0700 MEI export: tuplet.type is often None instead of 'start', but if there is no extant tuplet already, we can assume it's a 'start'. commit 850e0fa830fcd296f2ad16c08a083035d913b50d Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Jul 23 17:22:26 2023 -0700 MEI export: when counting Measures during emission of @tstamp2, only count Measures (not RepeatBrackets, etc). commit 5bdc75f7579315d6b66bb52293d32381c3fe5439 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Jul 23 16:12:59 2023 -0700 MEI export: fix two bugs during search for tie stops. 1. Work around music21 bug where a pitch with accidental=None is not equal to accidental='natural'. 2. Scan the voices in a measure twice if necessary to find stops, since the start may have been encountered _after_ the stop during the first pass. commit 9f9d5053b5c937277887224397e0c5724f7ad1dd Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Jul 21 20:09:58 2023 -0700 MEI export: fix bug in search for TrillExtension to go with Trill (missing tabs) commit 335f041af940f3bbf059702ed613ba55746aea9a Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Jul 21 20:03:57 2023 -0700 MEI import: no note@oct or note@oct.ges? Pretend it was '4', rather than using implicit octave logic in music21. commit c53f7cf040388a676ca92b8c82554bffbff91159 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Jul 21 19:58:32 2023 -0700 MEI and Humdrum export: Handle multiple StaffGroups that contain all the staves. commit 46f968b1162df987b9b4e3d9fd83540758053817 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Jul 20 22:25:25 2023 -0700 Lint. commit 9b92a19690265b2b7172218847b9f6de1f6e5645 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Jul 20 22:22:29 2023 -0700 MEI import: finish fixing up missing num and numbase. Also, only put the staffDefs in the first scoreDef in allPartNs. We assume that no staffs will be added (and music21 doesn't really support that anyway). This allows us to skip over staffDefs later that have no associated staffs. commit 3331435f3bde2cd91571662f3fb574c68fa28b08 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Jul 20 20:56:35 2023 -0700 MEI import: allow first scoreDef to be inside first section. MEI export: don't assert so harshly about tuplets and see how it goes. commit 9d8ab3a017bb39b8a50fb1ecfab05e4a081f3c02 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Jul 20 20:21:23 2023 -0700 MEI import: if tuplet/tupletSpan's @num or @numbase is missing, default to num=3, numbase=3. commit cb428eafa3e3857425d60889c5c5a62143ae96a0 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Jul 20 18:16:08 2023 -0700 MEI export: do a more thorough job with multiple clefs/timesigs/keysigs at offset 0 in a Measure. commit a6846983ddd3cff9e659def17d40d4a726135d2c Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Jul 20 17:26:38 2023 -0700 MEI import: If scoreDef has missing staffDefs, use the scoreDef default keysig/timesig for those staves too. commit 99331a14c2bac71527c31a67d20276dc18fcfa39 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jul 19 20:51:10 2023 -0700 MEI export: don't be confused by chord.tie, which is meaningless and should be ignored. commit ec25b10423440ee5a6318693d26f19c27f040b91 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jul 19 19:16:10 2023 -0700 MEI import: scoredef key and metersig are defaults; don't insert them in a staff if the staff's staffdef already has a key or metersig. commit d4f9fa3081fe3086f25d58d3f3c032286564af77 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jul 19 17:50:45 2023 -0700 MEI export: make doubly sure we combine Trill and TrillExtension into <trill> when appropriate, and never produce two <trill>s for the two of them. commit 1588d62ce3efee0616a84fe3e02596c750c79f04 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Jul 18 20:56:45 2023 -0700 MEI export: don't forget spanners that start with a SpannerAnchor that's up in the Measure. commit a87530cde75c9df7dd577c382843db52ff67a4bc Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Jul 18 19:34:04 2023 -0700 MEI import: <measure left="single"> and <measure> mean the same thing: ignore it. commit b3fa9d31a05326265cef15877e21593f9aafa146 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Jul 18 19:10:39 2023 -0700 MEI export: emit standalone <barLine> if a Barline/Repeat is not already handled in the <measure> element. commit 75ae2c6775c0de5db6196ef5910aa20567e9728d Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Jul 18 17:57:37 2023 -0700 MEI import: Turns out music21 REALLY wants Repeat('start') to be a left barline, never a right barline. commit f6ad357d9d84dbee706c5f4904b139533bdc52ff Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Jul 17 21:02:49 2023 -0700 MEI export: fix trill style stuff (it was missing when there was no accidental) commit 80d8f97836eb6b16f87699dfefeac87253b4dd10 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Jul 17 20:56:05 2023 -0700 MEI export: get export of TempoIndications working (for the first time, apparently). commit ccf3d951c2a932b63ae73c63faf3ee35bebe45d0 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Jul 17 19:40:24 2023 -0700 MEI export: ArpeggioMark/ArpeggioMarkSpanner -> <arpeg>. commit ff5416dac35870023157390f01d400c127ff72c2 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Jul 17 13:10:36 2023 -0700 MEI export: Endings. MEI import: support non-numeric ending "numbers". commit 37f3ad796fedf4c42633c8837ccc120ab23669d6 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Jul 16 14:44:42 2023 -0700 MEI import/export: Performance - use obj.getSpannerSites() instead of bundle.getBySpannedElement(obj). commit 109ebf0bb104786fe50d883b6b96f1b20e6fc8bc Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Jul 14 21:35:50 2023 -0700 MEI export: initial cut at staff groups. commit 1b94eea5e4dcbe012b502eb90755f90168456e00 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Jul 14 18:48:24 2023 -0700 MEI export: Nest <tuplet>, <beam>, and <fTrem> appropriately. commit 3000b11a0f3cce34bc7f2b33766d169168cd60b4 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jul 12 12:49:31 2023 -0700 MEI exporter: simultaneous start of beam/tuplet and tremolo? beam/tuplet needs to go first. commit 163fef849f76a869795fd34984a0b89e92d88b65 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jul 12 12:28:53 2023 -0700 MEI exporter: export all tremolos. MEI importer: support @unitdur in tremolos. commit 01000eb8c2d5ad828cf415f82ddf5e25f9a7cc8a Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Jul 3 15:50:56 2023 -0700 MEI export: Also needs to handle grace notes within tuplets. commit b5b715be649918cf9caef6248805b1d97321a8ef Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Jul 3 15:29:48 2023 -0700 MEI importer: Finish that last fix (skip grace notes when tupletizing). commit f16f42be68cb5c3103950db3210f500ed6f304c6 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Jul 3 15:17:55 2023 -0700 MEI importer: skip grace notes in scaleToTuplet. commit 5c45b482d4c0ed26df34b830a5fd6fa91d82ada8 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Jul 2 11:46:34 2023 -0700 MEI import: Correctly handle tupletization of duration that has both visual and gestural durations. commit 911eb013d366a3a80a7af554781da080a4e8b6ff Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sat Jul 1 13:04:07 2023 -0700 MEI import: Add @dur.default handling an rework @dur/@dur.ges/mRest/mSpace/maxBarDuration handling. commit 7b1cd6d9874ee8ecbaa119645ccca04b7f85e3e8 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jun 28 14:00:41 2023 -0700 MEI import: default to bar duration of 4 if all mrests and no metersig. commit f8c4fa5b78e69e8f0846394748338b09584ce22f Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jun 28 13:23:38 2023 -0700 MEI export: key/timesig/clef change at start of top-level Measure goes in a <staffDef> up in the <measure>, not in the <staff>. commit 6e38d19d8bacf43dc8c6a6935e878591f1714f0a Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jun 28 13:03:01 2023 -0700 MEI import: fix a few bugs in handling of short staffs. commit 766eb8e42be4ff0f0ca8ec16bd854a22840e13df Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jun 28 12:41:49 2023 -0700 MEI export: <space visible="false"> is silly. commit baf15e9d97a6061442d50b2e107bcddf856d1312 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jun 28 12:32:22 2023 -0700 MEI import: if a staff has a short duration (compared with the longest staff seen in the measure), warn, and pad with invisible rests. commit 7d0de789b26063b4967ff6820c2e814b53304f66 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jun 28 11:32:01 2023 -0700 Tests: better logging. commit 88644386aa0a4fbb06fb87e5998225c19b02c76c Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Jun 26 17:23:52 2023 -0700 MEI import: even better, if no @staff, try to put it in the highest staff on the page, and if that staff is missing from this measure, just ignore the object entirely. commit a52aa05f57263d9a9a5d68e8acda8eb646c420df Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Jun 26 15:29:00 2023 -0700 MEI import: ignore post-staff elements (dynam, etc) that have no @staff. commit 9c1d79f0dfea1031e3a26f838f259b433534ba00 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Mon Jun 26 12:02:32 2023 -0700 MEI export: support @visible="false". commit 093b64f72c4a6367e42dd28524dcd75f69bd8eb8 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Jun 23 14:35:11 2023 -0700 MEI export: styled lyrics. commit 8073d634ff97bbf135fedd5fdf96bf1b4da27c9e Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Jun 23 13:37:50 2023 -0700 MEI export: verse@label doesn't work in verovio, so export <verse><label> instead. commit a949a24cad3fdeb089c1ff250972aede6cac8623 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Jun 23 13:33:14 2023 -0700 MEI export: chord lyrics. MEI import: verse@label is just as good as <verse><label>. commit e36966e8cd87b3033b1bd98843240313bb9480a7 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Jun 23 13:06:42 2023 -0700 MEI export: more stylistic stuff (note headshape, color, etc) commit 0374dd026cbaa9ab6f46513707aa17f6ba50b2b2 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Jun 22 16:56:47 2023 -0700 MEI export: performance improvement: use obj.getSpannerSites() instead of spannerBundle.getBySpannedElement(obj). commit cfae64399419bb4fe956a14117f3a302cf0dc176 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Jun 22 16:26:44 2023 -0700 MEI export: <pb> and <sb>. commit edd8cc22921aa5936e991ff235eb138ddd2b5d77 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Thu Jun 22 15:43:31 2023 -0700 MEI export: trill/turn/mordent form, turn@delayed="true". commit 011035c811b567c5acf7aa17d68086ca41d8c390 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jun 21 10:25:32 2023 -0700 MEI export: fermatas. Also stop emitting con="d" for every lyric. commit 006a435dbcc94c529ac30076d76a7708ceb0c5d4 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Jun 20 16:42:28 2023 -0700 MEI export: lyrics. commit 0ca9042b3c70906f57d9861fdd57f21fd961f2c7 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Jun 20 15:30:42 2023 -0700 MEI export: add <rend> if necessary for styled text. commit 377be4d4a470e26f572b2a9b2e6c7496ad81e397 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Jun 16 16:42:06 2023 -0700 MEI export: fix ties - extend search for end of tie through the next measure. commit e5865bc034b9e3ea59089d5e5922197ee960801f Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Jun 16 13:48:53 2023 -0700 MEI import: fix import of ties - allow for non-zero offset, but stop searching after this measure and the next. commit 9c0a200ff1cb773f7374361e8511d82e2540219e Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Fri Jun 16 09:57:31 2023 -0700 Get tied-chord test working properly in new reality. commit f00613eca8e908c2ba22728c79709cf4bfefd3f0 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Wed Jun 14 15:29:40 2023 -0700 subConverter, not subconverter (a late v9 change). Also fix up some mypy stuff.` commit b9d2153b4ed9e2f01a3a3aebbeaa1238e74a7019 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Jun 6 15:14:17 2023 -0700 MEI import: first cut at proper implementation of chord@tie, which was wrongly assuming every note in the chord was tied. Note that the implementation of searching for the possible next tied note is wrong: it doesn't search far enough. commit 8fb20d1435df9e2d6aa52618f47f981246d1d3c0 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Tue Jun 6 12:10:21 2023 -0700 MEI import: _really_ get rid of backup measure nums, and get the tests working again. commit dce426cc5002bc78342bf23dcbb8415fa55cd6fb Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Jun 4 16:51:44 2023 -0700 MEI export: fix some tie export bugs (e.g. end tie note/chord must start at the right offset). Ties between a note and a note-in-a-chord (and vice versa) still are dropped on the floor somehow. commit 060628d3fe3f8e419609fa264a7be7007290bbb4 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Jun 4 15:14:33 2023 -0700 MEI export: fix some tie bugs (causing crashes). commit 683fb3998699e2756d307017bae833676bc1cf76 Author: Greg Chapman <75333244+gregchapman-dev@users.noreply.github.com> Date: Sun Jun 4 14:49:30 2023 …
1 parent d5753ac commit 9183277

84 files changed

Lines changed: 29727 additions & 13984 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.flake8

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,34 @@
11
[flake8]
22
ignore=
3-
E127, # over indented
4-
E128, # under indented
5-
E301, # 0 blank lines -- good test but something going wrong in new algorithm
6-
E302, # blank lines
7-
E303, # blank lines
8-
E501, # let pylint check line length
9-
E722, # let pylint check bare except
10-
E731, # do not assign a lambda
11-
F401, # let pylint check for imported but unused (wildcards and exports trigger)
12-
F405, # __all__ is okay to get from wildcard.
13-
F821, # let pylint check for undefined (del at end of module makes undefined)
14-
F841, # let pylint check for unused
15-
W391, # extra blank lines at end of file
16-
W503, # line break BEFORE binary operator
3+
E127,
4+
E128,
5+
E301,
6+
E302,
7+
E303,
8+
E501,
9+
E722,
10+
E731,
11+
F401,
12+
F405,
13+
F821,
14+
F841,
15+
W391,
16+
W503,
17+
18+
# E127, # over indented
19+
# E128, # under indented
20+
# E301, # 0 blank lines -- good test but something going wrong in new algorithm
21+
# E302, # blank lines
22+
# E303, # blank lines
23+
# E501, # let pylint check line length
24+
# E722, # let pylint check bare except
25+
# E731, # do not assign a lambda
26+
# F401, # let pylint check for imported but unused (wildcards and exports trigger)
27+
# F405, # __all__ is okay to get from wildcard.
28+
# F821, # let pylint check for undefined (del at end of module makes undefined)
29+
# F841, # let pylint check for unused
30+
# W391, # extra blank lines at end of file
31+
# W503, # line break BEFORE binary operator
1732

1833
exclude=
1934
.git,

.pylintrc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ disable=
8080
import-self, # fix is either to get rid of it or move away many tests...
8181
wrong-import-position,
8282
no-else-return,
83+
broad-exception-caught,
8384
too-many-ancestors,
8485
inconsistent-return-statements,
8586
keyword-arg-before-vararg,
@@ -326,7 +327,7 @@ exclude-protected=_asdict,_fields,_replace,_source,_make
326327
max-args=5
327328

328329
# maximum boolean expressions in a line (too-many-boolean-expressions)
329-
max-bool-expr=10
330+
max-bool-expr=30
330331

331332
# Argument names that match this expression will be ignored. Default to name
332333
# with leading underscore
@@ -382,4 +383,4 @@ int-import-graph=
382383

383384
# Exceptions that will emit a warning when being caught. Defaults to
384385
# "Exception"
385-
overgeneral-exceptions=Exception
386+
# overgeneral-exceptions=Exception

README.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# converter21
2-
A music21-extending converter package that contains alternate music21 Humdrum and MEI converters (a Humdrum parser/writer, and a MEI parser). converter21 is also a command line tool for conversion between various music notation file formats.
2+
A music21-extending converter package that contains alternate music21 Humdrum and MEI converters (a Humdrum parser/writer, and a MEI parser/writer). converter21 is also a command line tool for conversion between various music notation file formats.
33

44
The Humdrum portion of this software is derived/translated from the C++ code in [humlib](https://github.com/craigsapp/humlib), by Craig Stuart Sapp.
55

6-
The core of the MEI portion of this software was based on the MEI converter in [music21](https://github.com/cuthbertlab/music21), by Michael Scott Asato Cuthbert.
6+
The core of the MEI parsing portion of this software was based on the MEI converter in [music21](https://github.com/cuthbertlab/music21), by Michael Scott Asato Cuthbert.
77

88
## Setup
9-
Depends on [music21](https://pypi.org/project/music21) v8.1, which should also be configured (instructions [here](https://web.mit.edu/music21/doc/usersGuide/usersGuide_01_installing.html)) to display a musical score (e.g. with Musescore). Some of the tests depend on [musicdiff](https://pypi.org/project/musicdiff), but converter21 itself does not.
9+
Requires Python 3.10 or later. Depends on [music21](https://pypi.org/project/music21) v9.1, which should also be configured (instructions [here](https://web.mit.edu/music21/doc/usersGuide/usersGuide_01_installing.html)) to display a musical score (e.g. with Musescore). Some of the tests depend on [musicdiff](https://pypi.org/project/musicdiff), but converter21 itself does not.
1010

1111
## Command line tool usage:
1212
```
@@ -35,8 +35,7 @@ Named arguments:
3535
```
3636

3737
## API usage:
38-
39-
See `converter21/__main__.py` (the source code for the command line tool) for an example of how to get music21 to use converter21's alternate Humdrum and MEI converters in your own code.
38+
Call converter21.register() to get music21 to use converter21's alternate Humdrum and MEI converters in your own code.
4039

4140
## License
4241
The MIT License (MIT)

ReleaseNotes_2.0.0.txt

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
Humdrum import changes (since converter21 v1.4.1):
2+
3+
Support lyrics with *ij (italicize them)
4+
Support ottavas
5+
Support visual duration of tuplet members
6+
More accurate trill/turn/mordent placement
7+
Better duplicate clef handling
8+
More accurate dynamics placement/duration
9+
Dynamics are actually per part (not per staff)
10+
Handle text direction before first barline of first measure
11+
Better unescaping of text
12+
Fix beaming to use visual duration
13+
Improve tempo handling
14+
Improve fermata handling
15+
Improve barline handling
16+
Recip-less grace notes are stemless quarter-notes
17+
Improve stem direction handling
18+
Improve key/keysig handling
19+
Rewrite accidental visibility handling
20+
21+
Humdrum export changes (since converter21 v1.4.1):
22+
23+
Support export of dotted/dashed barlines
24+
Support export of sf and sfz to 'z' and 'zz'
25+
Support visual duration of tuplet members
26+
Improve tempo handling
27+
Improve cresc/decresc (a.k.a. hairpin) handling
28+
More accurate dynamics placement
29+
Dynamics are actually per part (not per staff)
30+
Better escaping of text
31+
Recip-less grace notes are stemless quarter-notes
32+
Fix grace-note positioning around clef/timesig changes
33+
34+
MEI import changes (starting from music21 v7's MEI importer):
35+
36+
Support <fermata>, <trill>, <mordent>, <turn>, <octave>, <arpeggio>, <keysig>, <metersig>
37+
Support tremolos <bTrem> and <fTrem>
38+
Support <hairpin>, <dynam>, <tempo>, <dir>, <ending>
39+
Support staff items with @tstamp/@tstamp2 (things like hairpin, mordent, etc)
40+
Improved text handling in elements:
41+
Support text that is broken up by embedded elements, or embedded in a <rend> element
42+
Support styled text (as described by <rend> element)
43+
Improved beaming (including beam breaks)
44+
Support accidental display status, location, style
45+
Improved lyrics support
46+
Improved note/chord/rest support:
47+
Support cue-sized notes/chords/rests
48+
Support accented vs unaccented grace notes/chords
49+
Support colored notes/chords/rests
50+
Support note head shape, stem direction/length/visibility
51+
Support invisible notes/chords/rests
52+
Better handling of articulations/etc on notes within chords
53+
Improved clef handling
54+
Improved instrument handling
55+
Simple support for editorial elements (user selection for <app> and <choice> is not yet
56+
implemented, I just make a reasonable default choice):
57+
<app>, <lem>, <rdg>, <choice>, <corr>,<reg>, <add>, <del>, <damage>, <expan>, <orig>

ReleaseNotes_3.0.0.txt

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
Changes since 2.0.1:
2+
3+
Require music21 v9 (for several features/fixes)
4+
5+
Add MEI exporter. It exports MEI v5 by default, but can be asked to export MEI v4.
6+
- MEI export is feature-equivalent with MEI import.
7+
8+
MEI import improvements:
9+
- import MEI v4 and v5 (obeying mei@meiversion)
10+
- refactor to share code with MEI exporter and have instance-based state
11+
- handle nested beams (i.e. grace note beams within another beam group)
12+
- fermata placement (above, below)
13+
- fix some clef bugs
14+
- handle rest positioning (@oloc/@ploc)
15+
- fix some octave/Ottava bugs
16+
- fix some gestural duration bugs (including some bugs in tuplets)
17+
- fix @dots.ges handling
18+
- add @dur.ppq handling
19+
- fix activeMeter tracking
20+
- pad layer with spaces if it is shorter than the longest layer in any staff in the measure
21+
- fix handling of missing note@oct/note@oct.ges
22+
- handle missing tuplet@num and tuplet@numbase (default num=3, numbase=2)
23+
- allPartNs now only contains the staffs defined in the initial scoreDef (instead
24+
of all the staffDefs in the score)
25+
- allow first scoreDef to be inside first section
26+
- better handling of scoreDef keysig/timesig vs staffDef (and vs missing staffDef)
27+
- better handling of measure@left (ignore it more)
28+
- better handling of repeat starts
29+
- support ending "numbers" that are non-numeric
30+
- support @unitdur in tremolos (bTrem/fTrem)
31+
- fix bug when there are grace notes within a tuplet
32+
- add @dur.default handling, and rework @dur/@dur.ges/mRest/mSpace/maxBarDuration handling
33+
- better handling of missing @staff
34+
- handle verse@label just like <verse><label>
35+
- handle ties much more accurately, including chord@tie
36+
- stop making up measure numbers
37+
- support unpitched notes, fix percussion clefs, staff lines != 5
38+
- support placement of articulations (e.g. staccato)
39+
- support hairpin with @startid, @endid, or both
40+
- support dir/dynam/tempo with @startid instead of @tstamp
41+
- generate music21 StaffGroups (and PartStaffs if appropriate)
42+
- support tuplet display details
43+
- import of metadata
44+
45+
Humdrum export improvements:
46+
- support ornaments
47+
- support ottavas
48+
- fix export of tuplets, including carefully choosing non-power-of-two recip
49+
- support tuplet display details (*{X}tuplet/*{X}brackettup)
50+
- fix export of articulations with placement
51+
52+
Humdrum import/export improvements:
53+
- support center justification
54+
- tweaks to systemdecoration/StaffGroup code, now shared with MEI import/export
55+
- some metadata fixes
56+
57+
Improvements to all importers/exporters:
58+
- support ornament accidentals (I implemented this in music21 v9)
59+
- support page and system breaks
60+
- improve ottava support (I improved Ottava support in music21 v9)
61+
- support delayed turns (I implemented this in music21 v9)

converter21/HumdrumConverter.py

Lines changed: 23 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,19 @@
66
# Humdrum code derived/translated from humlib (authored by
77
# Craig Stuart Sapp <craig@ccrma.stanford.edu>)
88
#
9-
# Copyright: (c) 2021-2022 Greg Chapman
9+
# Copyright: (c) 2021-2023 Greg Chapman
1010
# License: MIT, see LICENSE
1111
# ------------------------------------------------------------------------------
12-
import typing as t
1312
from pathlib import Path
1413

15-
from music21 import converter
1614
from music21 import common
1715
from music21 import stream
16+
from music21.converter.subConverters import SubConverter
1817

1918
from converter21.humdrum import HumdrumFile
2019
from converter21.humdrum import HumdrumWriter
2120

22-
class HumdrumConverter(converter.subConverters.SubConverter):
21+
class HumdrumConverter(SubConverter):
2322
'''
2423
Simple class wrapper for parsing Humdrum data provided in a file or in a string.
2524
'''
@@ -29,34 +28,13 @@ class HumdrumConverter(converter.subConverters.SubConverter):
2928

3029
def __init__(self, **keywords) -> None:
3130
super().__init__(**keywords)
32-
self.humdrumFile: t.Optional[HumdrumFile] = None
31+
self.humdrumFile: HumdrumFile | None = None
3332

3433
# --------------------------------------------------------------------------
3534

3635
def parseData(self, dataString, number=None) -> stream.Score:
37-
'''Create HumdrumFile object from a string, and create a music21 Stream from it.
38-
39-
>>> humData = ('**kern\\n*M2/4\\n=1\\n24r\\n24g#\\n24f#\\n24e\\n24c#\\n' +
40-
... '24f\\n24r\\n24dn\\n24e-\\n24gn\\n24e-\\n24dn\\n*-')
41-
>>> c = converter.subConverters.HumdrumConverter()
42-
>>> s = c.parseData(humData)
43-
>>> c.stream.show('text')
44-
{0.0} <music21.metadata.Metadata object at 0x7f33545027b8>
45-
{0.0} <music21.stream.Part spine_0>
46-
{0.0} <music21.stream.Measure 1 offset=0.0>
47-
{0.0} <music21.meter.TimeSignature 2/4>
48-
{0.0} <music21.note.Rest rest>
49-
{0.1667} <music21.note.Note G#>
50-
{0.3333} <music21.note.Note F#>
51-
{0.5} <music21.note.Note E>
52-
{0.6667} <music21.note.Note C#>
53-
{0.8333} <music21.note.Note F>
54-
{1.0} <music21.note.Rest rest>
55-
{1.1667} <music21.note.Note D>
56-
{1.3333} <music21.note.Note E->
57-
{1.5} <music21.note.Note G>
58-
{1.6667} <music21.note.Note E->
59-
{1.8333} <music21.note.Note D>
36+
'''
37+
Create HumdrumFile object from a string, and create a music21 Stream from it.
6038
'''
6139
# print("parsing krn string", file=sys.stderr)
6240
hf = HumdrumFile()
@@ -66,10 +44,12 @@ def parseData(self, dataString, number=None) -> stream.Score:
6644
return self.stream
6745

6846
# pylint: disable=arguments-differ
69-
def parseFile(self,
70-
filePath: t.Union[str, Path],
71-
number: t.Optional[int] = None,
72-
**_keywords) -> stream.Score:
47+
def parseFile(
48+
self,
49+
filePath: str | Path,
50+
number: int | None = None,
51+
**_keywords
52+
) -> stream.Score:
7353
'''
7454
Create HumdrumFile object from a file path, and create a music21 Stream from it.
7555
Note that normally, implementing parseData is sufficient, but Humdrum files
@@ -82,10 +62,17 @@ def parseFile(self,
8262
return self.stream
8363

8464
# pylint: disable=arguments-differ
85-
def write(self, obj, fmt, fp=None, subformats=None,
86-
makeNotation=True, addRecipSpine=False,
87-
expandTremolos=True,
88-
**keywords):
65+
def write(
66+
self,
67+
obj,
68+
fmt,
69+
fp=None,
70+
subformats=None,
71+
makeNotation=True,
72+
addRecipSpine=False,
73+
expandTremolos=True,
74+
**keywords
75+
):
8976
if fp is None:
9077
fp = self.getTemporaryFile()
9178
else:

0 commit comments

Comments
 (0)