Muspy

Latest version: v0.4.0

Safety actively analyzes 681775 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

0.4.0

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

https://github.com/salu133445/muspy/compare/v0.3.0...v0.4.0

0.3.0

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

0.2.0

- 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

0.1.0

- 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)

0.0.0

First release!

Links

Releases

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.