Recent Releases of pypianoroll
pypianoroll - Pypianoroll v1.0.4
- Add method
Track.binarize - Remove method
StandardTrack.binarize - Fix a bug in
Multitrack.trim(tempo and downbeat arrays now also get trimmed) Track.standardizenow clips the piano roll to [0, 127] before casting to uint8- Calculate tempo using harmonic mean in MIDI output (#15)
- Show data types of arrays in
Multitrack.__repr__andTrack.__repr__ - Cast
name,programandis_drumto proper types in MIDI input
- Python
Published by salu133445 over 5 years ago
pypianoroll - Pypianoroll v1.0.3
- Fix a bug in MIDI output (#14)
- Python
Published by salu133445 over 5 years ago
pypianoroll - Pypianoroll v1.0.2
- Fix indexing error in
pypianoroll.Multitrack.set_resolutionwhen some pianoroll is empty - Handle
pypianoroll.BinaryTrackandpypianoroll.StandardTrackinpypianoroll.inputs.load - Handle
pypianoroll.StandardTrackinpypianoroll.inputs.read - Remove arguments
binarizedandthresholdfrompypianoroll.inputs.read
- Python
Published by salu133445 over 5 years ago
pypianoroll - Pypianoroll v1.0.1
- Add backward compatibility for
beat_resolutioninpypianoroll.inputs.load(#11)
- Python
Published by salu133445 over 5 years ago
pypianoroll - Pypianoroll v1.0.0
Pypianoroll v1.0.0 Release Notes
Key changes
- Drop support for Python 2.7 and 3.5
- Remove argument
filenamefromMultitrack.__init__(usepypianoroll.readandpypianoroll.loadinstead) - Rename module
pypianoroll.utilitiestopypianoroll.core - Support
pathlib.Pathas filenames - Support method chaining by returning
selfwhenever possible - Add modules
pypianoroll.inputsandpypianoroll.outputsfor input and output interfaces - Add module
pypianoroll.utilsfor utility functions - Add type hints
- Follow duck typing for attributes (do not check attribute types when instantiate a object)
- Drop dependency
moviepyand support for animation - Make dependency
matplotlibrequired
pypianoroll.core (previously pypianoroll.utilities)
- Rename functions
core.assign_constant->core.set_nonzeroscore.downsample->core.set_resolutioncore.trim_trailing_silence->core.trim
- Remove functions
core.check_pianorollcore.copycore.load(usepypianoroll.loadinstead)core.parse(usepypianoroll.readinstead)core.save(usepypianoroll.saveinstead)core.write(usepypianoroll.writeinstead)
pypianoroll.multitrack
- Change
Multitrack.__init__signature- Reorder arguments
- Make all arguments optional for flexibility
- Rename argument
beat_resolutiontoresolution - Remove argument
filename(usepypianoroll.readandpypianoroll.loadinstead)
- Change indexing behavior :
Multitrack[i]returnsMultitrack.tracks[i] - Rename methods
Multitrack.check_validity->Multitrack.validateMultitrack.get_active_length->Multitrack.get_lengthMultitrack.append_track->Multitrack.appendMultitrack.assign_constant->Multitrack.set_nonzerosMultitrack.downsample->Multitrack.set_resolutionMultitrack.merge_tracks->Multitrack.blendMultitrack.get_stacked_pianoroll->Multitrack.stackMultitrack.remove_empty_tracks->Multitrack.remove_emptyMultitrack.trim_trailing_silence->Multitrack.trim
- Add methods
Multitrack.validate_typeMultitrack.is_validMultitrack.is_valid_type
- Remove methods
Multitrack.is_binarizedMultitrack.load(usepypianoroll.loadinstead)Multitrack.parse_midi(usepypianoroll.readinstead)Multitrack.parse_pretty_midi(usepypianoroll.from_pretty_midiinstead)Multitrack.remove_tracks
pypianoroll.track
- Change
Track.__init__signature- Reorder arguments
- Make all arguments optional for flexibility
- Change indexing behavior :
Track[i]returnsTrack.pianoroll[i] - Add
StandardTrackclass for standard track (piano roll of type uint8)StandardTrack.set_nonzerosStandardTrack.clipStandardTrack.binarize
- Add
BinaryTrackclass for binary track (piano roll of type bool)BinaryTrack.set_nonzeros
- Rename methods
Track.check_validity->Track.validateTrack.get_active_length->Track.get_lengthTrack.trim_trailing_silence->Track.trim
- Add methods
Track.validate_typeTrack.is_validTrack.is_valid_typeTrack.standardize
- Remove methods
Track.binarizeTrack.is_binarizedTrack.get_pianoroll_copyTrack.assign_constant
pypianoroll.visualization (new)
- Remove argument
filenameinvisualization.plot_trackandvisualization.plot_multitrack - Add argument
axforvisualization.plot_trackfor plotting on an existing axes - Add argument
axsforvisualization.plot_multitrackfor plotting on existing axes
pypianoroll.inputs (new)
- Functions
inputs.loadinputs.from_pretty_midiinputs.read
pypianoroll.outputs (new)
- Functions
outputs.saveoutputs.to_pretty_midioutputs.write
- Variable
outputs.DEFAULT_TEMPO
pypianoroll.utils (new)
- Functions
utils.decompose_sparseutils.reconstruct_sparse
- Python
Published by salu133445 over 5 years ago
pypianoroll - Pypianoroll v0.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()
- Python
Published by salu133445 over 6 years ago
pypianoroll - Pypianoroll v0.5.2
- Add
Multitrack.downsample()andpypianoroll.downsample() - Fix label-grid misalignment issues in plots
- Python
Published by salu133445 over 6 years ago
pypianoroll - Pypianoroll v0.5.0
- Add
pypianoroll.metricmodule - Support more options in
pypianoroll.parse - Rename methods for
Multitrackget_maximal_length->get_max_lengthget_num_downbeat->count_downbeatget_stacked_pianorolls->get_stacked_pianoroll
- Improve the documentation (mostly docstrings)
- Python
Published by salu133445 over 7 years ago
pypianoroll - Pypianoroll v0.4.0
- Make Matplotlib and Moviepy optional
- Add unit tests
- Fix note off bugs in
pypianoroll.Mutitrack.parse_pretty_midi() - Move all plotting functions to one file (
pypianoroll/plot.py) - Remove normalization arguments from plotting functions (value range now infered from dtype)
- Add argument
dtypetopypianoroll.Track.assign_constant()
- Python
Published by salu133445 about 8 years ago
pypianoroll - Pypianoroll v0.3.0
- Fix downbeat loading bug
- Fix wrong usage of np.issubdtype()
- Fix wrong error types
- Python
Published by salu133445 about 8 years ago
pypianoroll - Pypianoroll v0.2.0
- Change default mode for MultiTrack.parsemidi() and MultiTrack.parsepretty_midi() to 'max'
- Remove mode 'any' from MultiTrack.parsemidi() and MultiTrack.parsepretty_midi()
- Use np.uint8 for the piano-rolls parsed from MIDI files when possible to save disk space
- Python
Published by salu133445 about 8 years ago
pypianoroll - Pypianoroll v0.1.4
- Fix #1 and #2
- Change argument names and orders in plot functions
- Use intersphinx for documentation
- Python
Published by salu133445 about 8 years ago
pypianoroll - First release
Initial release with single-track and multi-track piano-roll supports and some basic visualization utilities.
- Python
Published by salu133445 over 8 years ago