Skip to content

Releases: CPJKU/partitura

Release v1.8.0

06 Feb 14:59
e01626b

Choose a tag to compare

Version 1.8.0

This version introduces the following changes. As of this version, the minimum required Python version is Python 3.10. Use Partitura version ≤ 1.7.0 for Python 3.7 to 3.9.

New Features

  • Add GitHub Codespace support #474
  • Add work metadata to MusicXML export #473
  • Configurable aggregations for get_time_maps_from_alignment #479
  • Support <sound> tags in MusicXML with tempo and dynamics #477

Bug Fixes

  • Update version in docs #476
  • Fix note shifting due to invisible note objects in MusicXML #484
  • Safe parsing of lark trees with missing column attributes #489
  • Fix handling of chord attributes #488
  • Safe pandas type checking in tests #486

Other

  • Remove dependence on deprecated pkg_resources #476
  • Clean up tests (remove deprecated files and update tests to new options) #476
  • Deprecate setup.py in favor of pyproject.toml #481
  • Bump the minimum supported Python version to 3.10 #481

v1.7.0

20 Sep 05:51
a9a5689

Choose a tag to compare

Release 1.7.0

This version introduces the following changes:

New Features

  • Add support for tuplet-dot and normal dot when parsing tuplets in MusicXML #429
  • Add exporting for ornaments in MusicXML #435
  • Method for segmenting PerformedPart objects by time. #438
  • Allow cls parameter of iter_all to take an iterable of classes #457
  • Adding pathlib.Path to PathLike #465
  • Alow parsing mxl when using Pathlib #467

Bug fixes

  • Fix parsing incorrectly formatted fingering #414
  • Fix default value for articulations/technical/ornaments #433
  • Correct adjustment of sound off for pedal notes #440
  • Fixed performance notes with negative tick duration #441
  • Fix issue removing last point #444
  • Fix transposition issues #449
  • Fix offset units in exported matchfiles #454
  • Fix handling midi track info in matchfiles #458
  • Fix incorrect MIDI ticks from due to rounding errors #459
  • Fix issues loading compressed MusicXML files #468
  • Fix consistent numbering for default MIDI channel #469
  • Fix integer casting for offset in scores from matchfiles #470

Other

  • Swap concatenation for hstack for numpy>1.21 compatibility #408
  • Add a warning when tuplet.start_note.voice != tuplet.end_note.voice #423
  • Use int64 for onset_div in note arrays #442
  • Speed up Part.iter_all() when called without cls. Although the order in
    which simultaneously starting/ending objects are returned is an implementation
    detail, note that this update may change that order with respect to previous
    versions. #451
  • Add Sphinx config to Read the Docs setup #453
  • In load_score_midi, keep all time/key sig events, also when they occur at a
    single time point. In earlier versions, when e.g. a 4/4 and 3/4 event would
    both occur at time t, only the 4/4 event would be maintained. #456
  • Remove hardcoded recursion limits #460
  • Unified Markdown formatting in CHANGES.md according to rule MD003, and add .markdownlint.json for handling rule MD024 in code editors.

Release 1.6.0

27 Feb 10:27
bfaac43

Choose a tag to compare

What's New

This new version addresses multiple changes, bug fixes and new features:

New features

  • Measure refactor for musicxml, match, midi, note array to part in #376
  • Measure feature #377
  • Clef feature #382
  • Clef map #384 #396
  • Stem direction #392
  • Support for cross staff voices in mei #397
  • Improved parsing of Kern scores #413
  • Fixed import for performance pedal #399
  • Tick Units are now supported for pianoroll creation #412
  • Scores can be loaded directly for URL #404
  • Support for invisible objects in musicxml import #401
  • Support for Fingering annotations in MusicXML and MEI import/export #403

Bug fixes

  • Corrected get_time_maps_from_alignment #360
  • Corrected metrical strength features #364
  • Corrected offsets for tied notes #366
  • Fixed import issue #368
  • Fixed Kern parsing #370
  • Duration of Chord Notes #418
  • Corrected symbolic note duration #372
  • Fixed tuplet bug #387
  • Addressed sorting for enharmonic notes #407
  • Fixes eq bug on performed notes #422
  • Fixed timing-tempo change bug #427

Other Changes

  • Added check for empty note array #361
  • Improved documentation #362 #364
  • Removed default voice estimation #373
  • Added warning #379
  • Removed ordering in musicxml export #391
  • Improved Fingering parsing in MusicXML that could result to errors #416
  • Replaced Deprecated Scipy Function #417
  • Improved support for input and export in musicxml tuplet object
  • New option to force add new segments #410

Thanks to all contributors for this release!

Stay tuned for the next one!!

Release 1.5.0

17 Jul 17:34
76f18c1

Choose a tag to compare

Release 1.5.0

The new version of Partitura includes some exciting new features!

Some highlights include Mei export, Kern import/export, export to WAV via fluidsynth, and import of DCML tabular format.

New features

  • DCML format input in #345
  • New kern import for faster and more robust in #344
  • Barebones Kern export in #344
  • MEI export in #347 and #351
  • Estimate symbolic durations update in #352
  • New harmony classes and checks for Roman numerals, Chord Symbols, Cadences and Phrases in #345
  • Intervals as partitura classes in #345
  • transposition of parts in #345
  • Export wav with fluidsynth #353

Other Changes

  • improved documentation
  • improved typing
  • New tests
  • optional dependency of pandas

Release 1.4.1

25 Oct 12:28
8812ca6

Choose a tag to compare

Bug Fixes

  • remove unnecessary escape character for correct parsing of sharp accidentals in nakamura match files.
  • don't consider the propriety doc_order for sorting notes in the matchfile_from_alignment function if it is not present. This propriety is only present in parts from musicxml scores and previously resulted in an exception for other score formats. This solves #326
  • during matchfile parsing, voice info is now parsed as follows: If there is no voice info, all notes get assigned voice number 1. If there is only voice info for the solo voice, the non-solo voiced notes get voice 2. If multiple notes have different voices, but not every note has a voice annotated, those with voice annotation get the annotated voice number and those without voice annotation get assigned the max voice+1 voice number. Previously all notes were assigned to voice 1 if there were any None voiced note
  • during matchfile parsing, all note classes are now matched correctly. Previously classes MatchSnoteTrailingScore and MatchSnoteNoPlayedNote were always marked as MatchSnoteDeletion and MatchHammerBounceNote, MatchTrailingPlayedNote, MatchTrillNote always ended up as MatchInsertionNote. This solves #286
  • during matchfile parsing, lines which can't be parsed are removed. Before they ended up as None in the output.

Release 1.4.0

26 Sep 08:47
ef67b95

Choose a tag to compare

New Features

  • new class for performed notes
  • minimal unfolding for part
  • updated Musescore parser for version 4
  • load_score auto-selects parser based on file type
  • new attributes for Score object for capturing meta information
  • new score note attributes in matchfile export (grace, voice_overlap)
  • new tempo_indication score property line in matchfile export

Bug Fixes

Other Changes

  • new unit test for cross-staff beaming for musicxml

Version 1.3.1

07 Jul 09:30
81d1884

Choose a tag to compare

New Features

  • (Partial) match note ID validation.
  • Normalization module and (partial) normalization defaults for note and performance features.

Bug Fixes

  • Fixed bug: #289
  • Fixed bug: #277
  • Fixed bug: #275
  • Fixed several bugs of fixed-size note feature array extraction: #270, #271, #272
  • Fixed bug: #269

Other Changes

  • Encoding of Dynamic Score Markings in note feature arrays changed to a simple ramp from 0 to 1, starting at the start position of the marking and ending at the end.
  • Refactor all alignment-related processing to performance_codec.

Release 1.3.0

10 Jun 09:50
2f20289

Choose a tag to compare

New Release 1.3.0 (new features)

This PR addresses release 1.3.0, it includes several bug fixes, code cleaning, documentation, and new functionality.

New Features

  • Enhanced Performance features in the same fashion as the note features. Use:
    partitura.musicanalysis.make_performance_features(score, performance, alignment, feature_functions);
  • Fixed-size option for Note features. Use:
    partitura.musicanalysis.make_note_features(score, force_fixed_size=True)
  • Create a score from a note array functionality. Call:
    partitura.musicanalysis.note_array_to_score(note_array);

New Optional Features

  • If music21 is installed : Import music21 to Partitura by calling partitura.load_music21(m21_score)
  • If MidiTok is installed : Export Partitura Score to Tokens by calling partitura.utils.music.tokenize(score_data, tokenizer)

Bug Fixes

Other Changes

  • Minor Changes to the Documentation
  • Addition of Docs link to the GitHub header
  • Upgraded Python version requirements to Python>= 3.7

Release 1.2.2

10 May 15:56
9834601

Choose a tag to compare

New features

  • slicing performed parts
  • roman numeral analysis
  • harmony class for part and export
  • staff with custom number of lines
  • transposition by intervals

Bug fixes

  • file naming bug in load_musicxml()
  • fixed bug in score part unfolding
  • bugfix for fine, ritenuto parsing and unfolding
  • bugfix for performance codec

Other changes

  • Improved documentation
  • Added contributing file

Release 1.2.1

09 Feb 11:42

Choose a tag to compare

Release date: 2023-02-09

This is an minor update with bug fixes.

Bug fixes