Mido Versions Save

MIDI Objects for Python

1.3.2

5 months ago

Get it fresh from PyPI: https://pypi.org/project/mido/1.3.2/

Acknowledgments

Special thanks to the contributors to this release:

  • Drew Edwards @almostimplemented
  • Mehdi Lauters @mehdilauters

Changes

Bugfixes

  • Bugfix Midifile: skip_checks were missing on MetaMessage (@almostimplemented, pull request #571, @mehdilauters issue #570)

  • Bugfix Scripts/mido-play: UnboundLocalError (@rdoursenaud)

Project

  • Minor documentation cleanup (@rdoursenaud)

1.3.1

5 months ago

Get it fresh from PyPI: https://pypi.org/project/mido/1.3.1/

Acknowledgments

Special thanks to the contributors to this release:

  • Aarni Koskela @akx
  • Drew Edwards @almostimplemented
  • Michael Mayers @tweakoz

Changes

Important

  • Python 3.12 official support

Bugfixes

  • Backends/portmidi: SysEx messages were generating an error (@tweakoz, pull request #523)

  • Midifile: Defer computing merged_track (@akx, pull request #565)

  • Midifile: Improved merged_track performance (@almostimplemented, pull request #474)

  • pip release: Scripts can now be executed properly (@rdoursenaud)

Project

  • Linting now uses ruff (@akx, pull requests #564, #566)

  • Minor documentation improvements (@rdoursenaud)

1.3.0

10 months ago

"10 years anniversary edition"

Did you know it's been 10 years since version 1.0 has been released?

Let's celebrate with a new release!

Get it fresh from PyPI: https://pypi.org/project/mido/1.3.0/

-- Raphaël Doursenaud @rdoursenaud

Acknowledgments

Special thanks to the contributors to this release:

  • Aarni Koskela @akx
  • Andrii Oriekhov @andriyor
  • Drew Edwards @almostimplemented
  • @Frnot
  • @gulaki
  • @kyleclaassen
  • Maciej Sokołowski @matemaciek
  • Morgan Kenyon @morgankenyon
  • M. Vondano @m-vo
  • @nomadbyte
  • Ole Martin Bjørndalen @olemb
  • Radovan Bast @bast
  • Raphaël Doursenaud @rdoursenaud
  • Sebastian Böck @superbock
  • Simon Waloschek @sonovice
  • Yinan Lang @langyinan

A few stats: 16 contributors, 149 files changed, 107 commits.

Changes

Important

  • Removed support for Python 2.7. * Mido now requires Python 3.7 or higher. (Ole Martin Bjørndalen, pull request #408, with additional cleanup from @rdoursenaud)

Bugfixes

  • Backends: The rtmidi and python-rtmidi 1.2.10 sometimes returned duplicate port names. (Bug introduced in 1.2.10. Fix by Maciej Sokołowski, pull request #321)

  • Backends/rtmidi: Prevent virtual port name mangling (@rdoursenaud, thanks to @digitalsignalperson for reporting)

  • Backends/rtmidi: Remove callback before closing the port to avoid a race condition (@rdoursenaud)

  • Backends/Portmidi (@akx, pull request #483)

  • Backends/Socket: Disable buffering (@m-vo, pull request #342)

  • Backends/Socket: In Python 3, PortServer used to crashe when a socket client disconnects. (issue #290) (@kyleclaassen, pull request #291)

  • MidiFile: Properly decode/encode SMPTE hours in the SMPTE offset Meta (Thanks to @laori93 for reporting and @heilei for investigating. Issue #156)

  • MidiFile: BPM <-> MIDI tempo conversions (@superbock, pull request #114)

Features & Enhancements

  • MidiFile: Move merging track out of __iter__() to prevent hanging on first call (@Frnot, pull request #470)

  • MidiFile: play() can now use an optional custom clock source (@almostimplemented, pull request #153)

  • MidiFile: Make UnknownMetaMessage robust to faulty MIDI files (@sonovice, pull request #286)

  • MidiFile: Added from_bytes() to MetaMessage (@gulaki, pull request #149)

Project

  • Installation: support the "extras" syntax to install optional dependencies (@rdoursenaud)

  • Documentation: updated, overhauled and proofread (@rdoursenaud, @nomadbyte, @superbock)

  • The project is now REUSE compliant. See https://reuse.software/ for details (@rdoursenaud)

  • Packaging is now PEP-518 compliant (@rdoursenaud)

  • New project co-maintainers: @bast & @rdoursenaud