Changelog¶
Version 0.5.0¶
- considerable changes to
Parse
objects (bugs might still be abundant, please report them) abolished custom DataFrame indices
- behaviour shaped towards ms3’s standard corpus structure
automatic detection of corpora and generation of keys
this enables better matching of files that belong together through
View
objects (access viap['key']
)new method
iter()
for iterating through metadata and files that belong together
all JSON files passed under the
paths
argument are now scanned for a contained list of file paths to be extracted (as opposed to before where the JSON file had to be passed as a single path)new iterator
p.annotation_objects()
- considerable changes to
- new module
transformations
just as
utils
, members can be imported directly viafrom ms3 import
includes a couple of functions that were previously part of
utils
orexpand_dcml
- includes a couple of new functions:
get_chord_sequences()
group_annotations_by_features()
make_gantt_data()
transform_annotations()
transform_multiple()
- new module
handling hierarchical localkeys and pedals (i.e. we can modulate to the key of
V/III
)Renamed column ‘durations_quarterbeats’ to ‘duration_qb’
You can now set
interval_index = True
to add quarterbeat columns and an index with quarterbeat intervalsNew behaviour of the
folder_re
argument: It now gets to all paths matching the regEx rather than stopping at a higher level that doesn’t match. Effectively, this allows, for example, to doParse(path, folder_re='notes')
to select all files from folders called notes.bug fixes (e.g. failing less on incoherent repeat structures)
Version 0.4.10¶
Enabled extraction of score labels.
Made the use of
labels_cfg
more consistent.- improved chord lists:
include system and tempo texts
new algorithm for correct spanner IDs (i.e. for Slurs, Pedal, HairPins, Ottava)
lyrics: still extracts only the last verse but now in the corresponding column, e.g.
lyrics:3
for verse 3.
- new feature (still in beta): extraction of form labels
Score.mscx.form_labels
Parse.form_labels()
added
form_labels
-related parameters toParse.get_lists()
andParse.store_lists()
added
utils.expand_form_labels()
for hierarchical display of form labels
Version 0.4.9¶
enabled
import from ms3
for all utilsnew command
ms3 update
for converting files and moving annotations to the Roman Numeral Analysis layernew command
ms3 metadata
for writing manually changed information frommetadata.tsv
to the metadata fields of the corresponding MuseScore files- improved the
ms3 extract
command: added option
-D
for extracting and updatingmetadata.tsv
andREADME.md
added option
-q
for adding ‘quarterbeats’ and ‘durations_quarterbeats’ columnsincluded default paths for the capital-letter parameters
- improved the
- improved the
ms3 compare
command: now works with ‘expanded’ TSVs, too (not only with ‘labels’)
allows ‘label’ column to include NaN values
- improved the
- improvements to Parse() objects:
attempts to parse scores that need file conversion (e.g. XML, MIDI)
get_lists()
method now allows for adding the columnsquarterbeats
anddurations_quarterbeats
, even without unfolding repeatsadding ‘quarterbeats’ without unfolding repeats excludes voltas
new method
get_tsvs()
for retrieving and concatenating parsed TSV filesParse() now recognizes
metadata.tsv
files, expanded TSVs, and TSVs containing cadence labels onlyparsed
metadata.tsv
files can be retrieved/included via the methodmetadata()
new method
update_metadata()
for the newms3 metadata
commanddecided on standard index levels
rel_paths
andfnames
improved matching of corresponding score and TSV files
- improvements to Score() objects:
new property Score.mscx.volta_structure for retrieving information on first and second endings
- improvements to Annotations() objects:
correct propagation of
localkey
for voltas
- improvements to commandline interface:
added parameter
-o
for specifying output directoryharmonized the interface of the
ms3 convert
commandparameter
exclude_re
now also filters paths passed via-f
- changed logging behaviours:
write only WARNINGs to log file
combine loggers for filenames independently of file extensions
improved extraction of instrument names for metadata
improved
ms3 compare
functionalityrestructured code architecture
renamed master branch to ‘main’
many bug fixes
Version 0.4.8¶
now reads DCML labels with cadence annotations
unified command-line interface file options and included
-f file.json
Parse got more options for creating DataFrame index levels
Parse.measures property for convenience
bug fixes for better GitHub workflows
Version 0.4.7¶
- Labels can be attached to MuseScore’s Roman Numeral Analysis (RNA) layer
parameter label_type=1 in both Score.attach_labels() and Parse.attach_labels()
Annotations.remove_initial_dots() before inserting into the RNA layer
Annotations.add_initial_dots() before inserting into the absolute chord layer
interpret all #vii in major contexts as vii when computing chord tones
code cosmetics and bug fixes
Version 0.4.6¶
ms3 extract and Parse.store_lists() now have the option unfold to account for repeats
minor bug fixes
Version 0.4.5¶
added ‘ms3 compare’ command
support for parsing cap, capx, midi, musicxml, mxl, and xml files through temporary conversion
support for parsing MuseScore 2 files through temporary conversion
Version 0.4.3¶
added ‘ms3 check’ command
support of coloured labels
write coloured labels to score comparing attached and detached labels to each other
better interface for defining log file paths (more options, now conforming to the Parse.store_lists() interface)
fixed erroneous separation of alternative labels
Version 0.4.2¶
small bug fixes
correct computation of chord tones for new DCML syntax elements
+M
,-
,^
, andv
Version 0.4.1¶
ms3 0.4.1 supports parsing (but not storing) compressed MuseScore files (.mscz)
Installs “ms3 convert” command to your system for batch conversion using your local MuseScore installation
“ms3 extract” command now supports creation of log files
take
labels_cfg
into account when creating expanded chord tables
Version 0.4.0¶
The standard column ‘onset’ has been renamed to ‘mc_onset’ and ‘mn_onset’ has been added as an additional standard column.
Parse TSV files as Annotations objects
Parse.attach_labels() for inserting annotations into MuseScore files
Prepare detached labels so that they can actually be attached
Install “ms3 extract” command to the system
Including da capo, dal segno, fine, and coda for calculating ‘next’ column in measures tables (for correct unfolding of repeats)
Simulate parsing and table extraction
Passing labels_cfg to Score/Parse to control the format of annotation lists
Easy access to individual parsed files through Parse[ID] or Parse[ix]
parse annotation files with diverging column names
Version 0.3.0¶
Parse.detach_levels() for emptying all parsed scores from annotations
Parse.store_mscx() for storing altered (e.g. emptied) score objects as MuseScore files
Parse.metadata() to return a DataFrame with all parsed pieces’ metadata
Parse.get_labels() to retrieve labels of a particular kind
Parse.info() has improved the information that objects return about themselves
Parse.key for a quick overview of the files of a given key
Parse can be used with a custom index instead of IDs [an ID is an (key, i) tuple]
Score.store_list() for easily storing TSVs
renamed Score.output_mscx() to store_mscx() for consistency.
improved expansion of DCML harmony labels
Version 0.2.0¶
Beta stage:
attaching and detaching labels
parsing multiple pieces at once
extraction of metadata from scores
inclusion of staff text, dynamics and articulation in chord lists, added ‘auto’ mode
conversion of MuseScore’s encoding of absolute chords
first version of docs
Version 0.1.3¶
At this stage, the library can parse MuseScore 3 files to different types of lists:
measures
- chords (= groups of notes)
including slurs and spanners such as pedal, 8va or hairpin markings
including lyrics
notes
harmonies
and also some basic metadata.
Version 0.1.0¶
Basic parser implemented
Logging
Measure lists