Pypianoroll

Latest version: v1.0.3

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

Scan your dependencies

Page 1 of 3

1.0.3

- Fix a bug in MIDI output (14)

1.0.2

- Fix indexing error in `pypianoroll.Multitrack.set_resolution` when some pianoroll is empty
- Handle `pypianoroll.BinaryTrack` and `pypianoroll.StandardTrack` in `pypianoroll.inputs.load`
- Handle `pypianoroll.StandardTrack` in `pypianoroll.inputs.read`
- Remove arguments `binarized` and `threshold` from `pypianoroll.inputs.read`

1.0.1

- Add backward compatibility for `beat_resolution` in `pypianoroll.inputs.load` (11)

1.0.0

================================

Key changes
-----------

- Drop support for Python 2.7 and 3.5
- Remove argument `filename` from `Multitrack.__init__` (use `pypianoroll.read` and `pypianoroll.load` instead)
- Rename module `pypianoroll.utilities` to `pypianoroll.core`
- Support `pathlib.Path` as filenames
- Support method chaining by returning `self` whenever possible
- Add modules `pypianoroll.inputs` and `pypianoroll.outputs` for input and output interfaces
- Add module `pypianoroll.utils` for utility functions
- Add type hints
- Follow duck typing for attributes (do not check attribute types when instantiate a object)
- Drop dependency `moviepy` and support for animation
- Make dependency `matplotlib` required

`pypianoroll.core` (previously `pypianoroll.utilities`)
-------------------------------------------------------

- Rename functions
- `core.assign_constant` -> `core.set_nonzeros`
- `core.downsample` -> `core.set_resolution`
- `core.trim_trailing_silence` -> `core.trim`
- Remove functions
- `core.check_pianoroll`
- `core.copy`
- `core.load` (use `pypianoroll.load` instead)
- `core.parse` (use `pypianoroll.read` instead)
- `core.save` (use `pypianoroll.save` instead)
- `core.write` (use `pypianoroll.write` instead)

`pypianoroll.multitrack`
------------------------

- Change `Multitrack.__init__` signature
- Reorder arguments
- Make all arguments optional for flexibility
- Rename argument `beat_resolution` to `resolution`
- Remove argument `filename` (use `pypianoroll.read` and `pypianoroll.load` instead)
- Change indexing behavior : `Multitrack[i]` returns `Multitrack.tracks[i]`
- Rename methods
- `Multitrack.check_validity` -> `Multitrack.validate`
- `Multitrack.get_active_length` -> `Multitrack.get_length`
- `Multitrack.append_track` -> `Multitrack.append`
- `Multitrack.assign_constant` -> `Multitrack.set_nonzeros`
- `Multitrack.downsample` -> `Multitrack.set_resolution`
- `Multitrack.merge_tracks` -> `Multitrack.blend`
- `Multitrack.get_stacked_pianoroll` -> `Multitrack.stack`
- `Multitrack.remove_empty_tracks` -> `Multitrack.remove_empty`
- `Multitrack.trim_trailing_silence` -> `Multitrack.trim`
- Add methods
- `Multitrack.validate_type`
- `Multitrack.is_valid`
- `Multitrack.is_valid_type`
- Remove methods
- `Multitrack.is_binarized`
- `Multitrack.load` (use `pypianoroll.load` instead)
- `Multitrack.parse_midi` (use `pypianoroll.read` instead)
- `Multitrack.parse_pretty_midi` (use `pypianoroll.from_pretty_midi` instead)
- `Multitrack.remove_tracks`

`pypianoroll.track`
-------------------

- Change `Track.__init__` signature
- Reorder arguments
- Make all arguments optional for flexibility
- Change indexing behavior : `Track[i]` returns `Track.pianoroll[i]`
- Add `StandardTrack` class for standard track (piano roll of type uint8)
- `StandardTrack.set_nonzeros`
- `StandardTrack.clip`
- `StandardTrack.binarize`
- Add `BinaryTrack` class for binary track (piano roll of type bool)
- `BinaryTrack.set_nonzeros`
- Rename methods
- `Track.check_validity` -> `Track.validate`
- `Track.get_active_length` -> `Track.get_length`
- `Track.trim_trailing_silence` -> `Track.trim`
- Add methods
- `Track.validate_type`
- `Track.is_valid`
- `Track.is_valid_type`
- `Track.standardize`
- Remove methods
- `Track.binarize`
- `Track.is_binarized`
- `Track.get_pianoroll_copy`
- `Track.assign_constant`

`pypianoroll.visualization` (new)
----------------------------------

- Remove argument `filename` in `visualization.plot_track` and `visualization.plot_multitrack`
- Add argument `ax` for `visualization.plot_track` for plotting on an existing axes
- Add argument `axs` for `visualization.plot_multitrack` for plotting on existing axes

`pypianoroll.inputs` (new)
--------------------------

- Functions
- `inputs.load`
- `inputs.from_pretty_midi`
- `inputs.read`

`pypianoroll.outputs` (new)
----------------------------

- Functions
- `outputs.save`
- `outputs.to_pretty_midi`
- `outputs.write`
- Variable
- `outputs.DEFAULT_TEMPO`

`pypianoroll.utils` (new)
--------------------------

- Functions
- `utils.decompose_sparse`
- `utils.reconstruct_sparse`

0.5.3

- Fix a bug in `pypianoroll.visualization.plot_multitrack()` with mode 'stacked' (8)
- Fix a bug in `pypianoroll.metric._to_chroma()` (9)
- Fix function name typo for `pypianoroll.metric.n_pitch_classes_used()`

0.5.2

- Add `Multitrack.downsample()` and `pypianoroll.downsample()`
- Fix label-grid misalignment issues in plots

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.