Skip to content

Releases: salu133445/muspy

MusPy v0.5.0

16 Apr 19:33
Compare
Choose a tag to compare

Release Notes

Changes

  • Add Beat and Barline classes
  • Add Music.trim and Track.trim methods
  • Add Music.__delitem__ and Track.__delitem__ methods
  • Add MuseScore supports for MSCX and MSCZ formats
  • Enhance event representation module
  • Use Zenodo link for MusicNet dataset (#70)

Changelog

v0.4.0...v0.5.0

MusPy v0.4.0

10 Oct 01:54
Compare
Choose a tag to compare

MusPy v0.4.0 Release Notes

Classes

  • Add strict and cast options to Base.from_dict
  • Add Base.fix_type for fixing invalid types
  • Fix Base.remove_duplicate (#46)
  • Base class is now hashable with __hash__ implemented
  • Base class is now sortable with __lt__ and __gt__ implemented
  • Fix Annotation attributes and types (#44)

I/O Interfaces

  • Add performance and REMI event representations (#63)
  • Enhance MusicXML input (lyrics, grace notes, repeats, jumps)
  • Enhance MIDI input interface (control change messages) (#43)
  • Fix key signature reading issues in music21 input interface
  • Fix low volume of synthesized audio (#60)
  • Handle NumPy types in event representation interface (#48)

Datasets

  • Add EMOPIA dataset (#64)
  • Add MAESTRO V3 dataset
  • Enhance download_and_extract (#34)
  • TensorFlow and PyTorch will now be imported only when they are called (#42)
  • Support compressed files in MusicDataset (#59)

Beat Support

  • Add Beat class
  • Add Music.infer_beats and muspy.infer_beats
  • Support beats in music21 input interface

Changelog

v0.3.0...v0.4.0

MusPy v0.3.0

03 Jan 19:11
Compare
Choose a tag to compare

MusPy v0.3.0 Release Notes

Classes

  • Fix unintended print in Base.adjust_time (#14)
  • Add method ComplexBase.extend (#33)
  • Add argument deepcopy to Base.to_ordered_dict (#33)
  • Implement Base.__deepcopy__ to speed up deep copying (#33)
  • Implement ComplexBase.__add__ and ComplexBase.__iadd__ to support + and += operators (#33)
  • Create deep copies in Base.to_ordered_dict by default (#33)

JSON/YAML Interfaces

  • Add argument compressed to load, load_json, load_yaml, save, save_json and save_yaml (#36, #39)
  • Rename argument skip_none to skip_missing in Base.to_ordered_dict, Base.pretty_str, Base.print, save_json and save_yaml
  • Support file object in load, load_json, load_yaml, save, save_json and save_yaml (#39)
  • Use default flow style in YAML dumper
  • Use UTF-8 by default in JSON/YAML interfaces

MIDI Interfaces

  • Enhance MIDI I/O with pretty_midi backend (#41)
  • Increment channel number for each track in write_midi_mido (#40)
  • Change argument use_note_on_as_note_off to use_note_off_message in write_midi_mido and to_mido

Datasets

  • Add datasets HaydnOp20Dataset (#13) and MusicNetDataset
  • Add argument overwrite to Dataset.download and Dataset.download_and_extract (#34)
  • Add argument verbose to Dataset.save, Dataset.download, Dataset.extract, Dataset.download_and_extract, RemoteDataset.__init__, FolderDataset.__init__, RemoteFolderDataset.__init__, RemoteMusicDataset.__init__ and RemoteABCFolderDataset.__init__
  • Support sha256 hash check in datasets.utils.download_url
  • Support xz files in datasets.utils.extract_archives
  • Create dataset root if not exists (#16, #34)

Other changes

  • Fix several bugs in event representation (#15, #21, #22, #23, #24, #25)
  • Fix Note.adjust_time to adjust end time, not duration (#37)
  • Add functions from_music21_part, from_music21_score and from_pypianoroll_track
  • Support different key specifications in outputs.music21.to_music21_key
  • Support parsing velocities in Music21 input
  • read_abc and read_abc_string now return either a music object or a list of music objects

MusPy v0.2.0

06 Nov 02:46
Compare
Choose a tag to compare
  • Fix key signature reading in muspy.from_mido (#5)
  • Fix time overflow issue in note representation (change default dtype from uint8 to int) (#8, #9)
  • Fix music21 parsing in muspy.inputs.music21.parse_key_signatures and muspy.inputs.music21.from_music21_part (#10, #11, #12)
  • Fix several bugs in base class methods (muspy.Base.to_ordered_dict, muspy.Base.validate, muspy.Base.validate_type, muspy.Base.adjust_time and muspy.ComplexBase.remove_invalid)
  • Rename argument target to kind in muspy.to_object
  • Swap ordering of arguments duration and pitch in muspy.Note and muspy.Chord
  • Swap ordering of features duration and pitch in note representation (muspy.to_event_representation and muspy.from_event_representation)
  • Add method to_mido to muspy.Music
  • Add argument rounding to muspy.Music.adjust_resolution
  • Add argument dtype to muspy.to_event_representation
  • Add argument encode_velocity to event representation (affect muspy.to_event_representation and muspy.from_event_representation)
  • Add argument recursive to muspy.Base.validate, muspy.Base.is_valid, muspy.Base.validate_type, muspy.Base.is_valid_type and muspy.Base.adjust_time
  • Add argument skip_none to muspy.Base.print
  • Upgrade Pypianoroll version to 1.0.0

MusPy v0.1.0

05 Sep 18:48
Compare
Choose a tag to compare
  • Fix name of Chord.pitches_str (#3, 536a877) and types of Metadata.creators and Music.downbeats (ed2ed1f)
  • Fix method _validate() of TimeSignature, Note and Chord (3504be3, ed2ed1f)
  • Add wrapper functions list_datasets() and get_dataset() for datasets (9aacae0)
  • Improve Base (121e718) and Dataset (2f24836)
  • Make velocity attributes optional in Note and Chord (3504be3)
  • Make ignore_exception in Dataset.convert() default to True (3504be3)
  • Update dataset information (67fc563) and their md5/sha256 checksums (5821827)

MusPy v0.0.0

28 Aug 21:34
Compare
Choose a tag to compare

First release!