Skip to main content

libremidi

Build status

Packaging status

libremidi is a cross-platform C++20 library for real-time and MIDI file input and output.

This is a fork / rewrite based on two libraries:

Additionnally, for MIDI 2 parsing support we use cmidi2!

Read the documentation here.

Citation

If you use this work as part of academic research, please kindly cite the paper:

@inproceedings{celerier2024libremidi,
  title={libremidi: a cross-platform library for real-time MIDI 1 and 2},
  author={Celerier, Jean-Micha{\"e}l},
  booktitle={Proceedings of the Sound and Music Computing Conference (SMC)},
  year={2024},
  address={Porto, Portugal}
}

Changelog

Since v5.4

  • ALSA: observation will now slightly be delayed as otherwise udev fields are sometimes not populated yet.
  • Port the Android backend from RtMidi, developed by @YellowLabrador.
  • C++: add initial C++ modules support: import libremidi;. So far compilers other than Clang 20+ crash. Enable with -DLIBREMIDI_LIBRARY_MODE=MODULE. Note that one cannot mix a module-based and a non-module based API. An example is provided in examples/modules.cpp
  • Add a utility libremidi::set_client_name / client_name function to simplify construction of an API object with a custom client name.
  • Many improvements to MIDI 1 <-> MIDI 2 conversion, every MIDI 1 message is supported now.
  • Port information: add as much metadata as we can get from the host API.
  • Port information: remove sorting and comparison as there's no generally correct way to compare two port_information / input_port / output_port objects. Multiple ways of doing this comparison depending on the use case have been provided as examples in <libremidi/port_comparison.hpp>.
  • Port information: added a heuristics-based libremidi::find_closest_port(query, existing_ports) utility function which tries to lookup the most likely candidate for a MIDI port across backends with the lookup information that can be provided.
  • Python: add a pyproject.toml to facilitate integration with the Python ecosystem. Thanks @TheStaticTurtle!
  • Windows MIDI Services: support updated to the RC1 release headers.
  • Windows MIDI Services: add support for the newly introduced COM fast-path to provide maximum performance.

Since v5.3

  • Minor bugfixes
  • More MinGW CI
  • Add an example of converting MIDI files to .pat format
  • MSVC ARM64 CI

Since v5.2

  • Minor bugfixes
  • Support detecting presence of ALSA sequencer at runtime
  • Add conversion functions for MIDI 1 <-> 2

Since v5.1

  • Report USB device identifiers with ALSA and udev
  • PipeWire and JACK UMP support (requires PipeWire v1.4+)

Since v5

  • Use stdx::error for error reporting until C++26 and std::error are widely available :-)
  • Hunt exceptions down
  • MIDI 2 support on Windows with the Windows MIDI Services.
  • WinUWP support on MinGW / MSYS2.
  • Getters for USB location, etc. in libremidi::port_information.
  • Reverse-engineered implementation of Mackie Control Universal & Logic Control protocols. Tested with TouchMCU and a BCF2000.
  • C API for bindings to other languages (libremidi-c.h).
  • Python binding.
  • Haskell binding courtesy of @ejconlon λ!
  • Java binding courtesy of @atsushieno!
  • Support for getting raw, unfiltered MIDI data (e.g. no SYSEX recombination logic).
  • Computer Keyboard backend to easily map scancodes to keyboard-like MIDI maps ⌨.
  • Network backend to send MIDI 1 and UMP packets over OSC 🛜.
  • libremidi finally supports MIDI 2 on all desktop platforms 🎉!

Since v4.5

  • Input logic refactored across all backends.
    • e.g. previously not backends had the same rules wrt timestamping, sysexes, etc. Now there is a single MIDI state machine which processes this.
  • PipeWire support.
  • Many bugfixes across the stack.

Since v4.4

  • iOS support restored (thanks @fwcd)
  • CI work: added Debian Bullseye, Bookworm, Trixie and make sure UMP code is being built.
  • Add compatibility with ni-midi2: the libremidi::ump type will convert automatically from / to midi::universal_packet and it is possible to send directly some ni-midi2 data types through libremidi::midi_out.
  • Added an example of very basic MIDI-CI interoperation with MIDI2.0Workbench: https://github.com/jcelerier/libremidi/blob/master/examples/midi2_interop.cpp
  • Observer: add a track_any flag to track MIDI ports that are not reported as being hardware or software.
  • UMP: allow send_ump to handle UMP streams, not only single UMP packets.

Since v4.3

  • Improvements to timing handling.
    • Added a Custom timestamping mechanism which allows the user to provide a custom callback to run timestamping as close as possible to the event's reception.
    • Added midi_in::absolute_timestamp() to get the origin timestamp for driver-provided ticks as accurately as possible.
      • e.g. in practice this is taking the time just near the ALSA queue creation or WinMM MIDI open.
    • Bugfixes in JACK
    • Many warning fixes - thanks @lilggamegenius for the extensive work!
    • Fix MIDI dump example - thanks @chdiesch!
    • Add SOVERSION to dynamic library

Since v4.2

  • More robust MIDI 2.0 support.
    • On macOS through CoreMIDI (input / output, requires macOS 11+).
    • On Linux through ALSA sequencer API (input / output, requires kernel 6.5+ and latest libasound).
    • The API can be used through MIDI 1 or MIDI 2 affordances, e. g. one can send UMP packets to a MIDI 1 API, they will get converted automatically.
    • More backends to come, in particular with the new Windows MIDI Services started here!
    • Sysex handling on MIDI 2.0 is the responsibility of the user of the library, which simplifies the design immensely and allows the library to be used in stricter real-time contexts (as an UMP message has a fixed size, unlike MIDI 1 sysex which required potentially unbounded dynamic allocations with the previous design).
    • See midi_echo.cpp for a complete example.
  • Linux: libasound and udev are now entirely loaded at run-time through dlopen. This is necessary for making apps that will run on older Linux versions which do not have the ALSA UMP APIs yet. Note that to make an app which supports MIDI 2 on recent Linuxes and still runs on older ones, you will need to use the latest ALSA library headers as part of your build on an older distribution, by building alsa-lib yourself (as the old distributions with an old glibc that you want to build against to make compatible software of course also ship an old libasound which won't have the UMP API...).

Since v4

  • Experimental MIDI 2.0 support.
  • A neat configuration system which enables to pass options to the underlying backends.
  • Possibility to share the contexts across inputs and outputs to avoid creating multiple clients in e.g. JACK.
  • Hotplug support for all the backends!
  • Reworked port opening API which now uses handles instead of port indices to increase robustness in the face of disconnection / reconnection of MIDI devices.
  • Integer timestamps everywhere, and in nanoseconds. Additionnally, it is now possible to choose different timestamping methods (e.g. relative, absolute monotonic clock...).
  • Experimental API to allow to poll manually in ALSA (Sequencer and Raw), in order to give more control to the user and enable processing events on any kind of Linux event-loop.
  • Increase the checks done by the MIDI parser.
  • Internally it's pretty much a complete rewrite. Standard threading primitives are now used, as well as modern Linux facilities for polling control (eventfd, timerfd). Most of the code has been refactored.
  • Ability to set a fixed message size for zero-allocation scenarios, with -DLIBREMIDI_SLIM_MESSAGE=<NBytes> (in CMake or directly to the compiler)

Since v3

  • Allow to pass span when available (C++20) or (uint8_t* bytes, std::size_t size) pairs whenever possible to reduce copying.

Since v1

  • The library can be used header-only, as explained in the docs
  • Callbacks are passed by std::function and generally simplified.
  • Ability to use boost::small_vector to pass midi bytes instead of std::vector to reduce allocations.
  • Less indirections, virtuals and memory allocations.
  • Simplify usage of some functions, use C++ return style everywhere.
  • Use of standard C++ snake_case.
  • Simplification of exceptions.
  • Passes clean through clang-tidy, clang analyzer, GCC -Wall -Wextra, ASAN, UBSAN etc etc.
  • Support chunking of output data (only supported on raw ALSA backend so far).

New & improved backends

  • JACK support on Windows.
  • JACK support through weakjack to allow runtime loading of JACK.
  • UWP MIDI support on Windows
  • Emscripten support to run on a web browser with WebMIDI.
  • Raw ALSA support in addition to the existing ALSA sequencer support.

Roadmap

  • Migrate to std::expected instead of exceptions for error handling.
  • Finish MIDI 2 implementations, provide helpers, etc.
  • More tests and compliance checks
  • Work even more towards this library being a zero-cost abstraction on top of native MIDI APIs
  • Rethink some design issues with the original RtMidi, for instance the way port numbers work is not reliable
  • Refactor duplicated code across backends

They use this library

Metadata

Release files for pylibremidi 5.4.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pylibremidi 5.4.3
File Size Uploaded
pylibremidi-5.4.3.tar.gz 15.7 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for pylibremidi 5.4.3
File
pylibremidi-5.4.3-cp314-cp314-win_arm64.whl CPython 3.14 CPython 3.14 Windows ARM64 Details
pylibremidi-5.4.3-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
pylibremidi-5.4.3-cp313-cp313-win_arm64.whl CPython 3.13 CPython 3.13 Windows ARM64 Details
pylibremidi-5.4.3-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
pylibremidi-5.4.3-cp312-cp312-win_arm64.whl CPython 3.12 CPython 3.12 Windows ARM64 Details
pylibremidi-5.4.3-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
pylibremidi-5.4.3-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 abi3 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pylibremidi-5.4.3-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 abi3 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details
pylibremidi-5.4.3-cp312-abi3-macosx_11_0_arm64.whl CPython 3.12 abi3 macOS 11.0+ ARM64 Details
pylibremidi-5.4.3-cp312-abi3-macosx_10_14_x86_64.whl CPython 3.12 abi3 macOS 10.14+ x86-64 Details
pylibremidi-5.4.3-cp311-cp311-win_arm64.whl CPython 3.11 CPython 3.11 Windows ARM64 Details
pylibremidi-5.4.3-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
pylibremidi-5.4.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pylibremidi-5.4.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details
pylibremidi-5.4.3-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
pylibremidi-5.4.3-cp311-cp311-macosx_10_14_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.14+ x86-64 Details
pylibremidi-5.4.3-cp310-cp310-win_arm64.whl CPython 3.10 CPython 3.10 Windows ARM64 Details
pylibremidi-5.4.3-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
pylibremidi-5.4.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
pylibremidi-5.4.3-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.26+ ARM64, Linux glibc 2.28+ ARM64 Details
pylibremidi-5.4.3-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
pylibremidi-5.4.3-cp310-cp310-macosx_10_14_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.14+ x86-64 Details

Total release size: 42.8 MB

Release files / pylibremidi-5.4.3.tar.gz

Download URL pylibremidi-5.4.3.tar.gz
Size 15.7 MB
Tags Source
SHA-256 checksum
How to use checksums
30a35fc38f46477263a4ee94966cdc2fd47bf74ee2cb17784f8cb99692977617
BLAKE2b-256 checksum
How to use checksums
2ed63855709c3d44f5aed41db68561fdd26aa89af15ed333429cfb8b0ab20b53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp314-cp314-win_arm64.whl

Download URL pylibremidi-5.4.3-cp314-cp314-win_arm64.whl
Size 601.2 kB
Tags CPython 3.14 Windows ARM64
SHA-256 checksum
How to use checksums
f6745fe76a7d7e21b31dc5e49fc638c85a7a0c0020391b9c4c5d5528ebddf9d4
BLAKE2b-256 checksum
How to use checksums
e9e73886163e9996da5778d73bdec2b7b8a32895fa17d46e66fab84604a9f8c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp314-cp314-win_amd64.whl

Download URL pylibremidi-5.4.3-cp314-cp314-win_amd64.whl
Size 649.8 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
f36817e3c70a2c6e52632ebf76b77473b413c272f23aee928760433d67813206
BLAKE2b-256 checksum
How to use checksums
e7d2dc9466f9f7f9ab991385f904d0b28867b37afb047a71a49dd63aa1952e94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp313-cp313-win_arm64.whl

Download URL pylibremidi-5.4.3-cp313-cp313-win_arm64.whl
Size 592.1 kB
Tags CPython 3.13 Windows ARM64
SHA-256 checksum
How to use checksums
97c01708c95a5f02fcbe54d8f372cd263d8f3a9b7f0b5ca4ff3e32418d26513c
BLAKE2b-256 checksum
How to use checksums
ebb7746f28f4c7b03c2bb5af99c1c6e221c689dce06d882a0356ae2d045baf74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp313-cp313-win_amd64.whl

Download URL pylibremidi-5.4.3-cp313-cp313-win_amd64.whl
Size 637.9 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
9d7f0f184dd7cfa907da5cfedf117df22da977548c6afffe0f9bec0baa7df6eb
BLAKE2b-256 checksum
How to use checksums
30e889829fca585d70db19189b76d952d94b4b9a71d562178472ec67e8b2c254
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp312-cp312-win_arm64.whl

Download URL pylibremidi-5.4.3-cp312-cp312-win_arm64.whl
Size 592.2 kB
Tags CPython 3.12 Windows ARM64
SHA-256 checksum
How to use checksums
690479dbbabc771cb7dfe49290acd2e7313694b215ae2757aee7ff34327e7f9b
BLAKE2b-256 checksum
How to use checksums
ef2a646a315bf4467cb0a5ce84a14e5c37bade99b8f3f9cf02a366430b64188a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp312-cp312-win_amd64.whl

Download URL pylibremidi-5.4.3-cp312-cp312-win_amd64.whl
Size 638.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
beb20823adbefc678f360060a0f8e87ee5ddaa9aedbd32f7e1b61c4a8d7e5f75
BLAKE2b-256 checksum
How to use checksums
96fc3a4908b239a84a17e2c438daf0fc5339333d4eb8ce9b46f27182b7f96a83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pylibremidi-5.4.3-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
c55737457bb2ebb9f80b25464be22866103b2b0c092cc07915dcd86d7b24cbe9
BLAKE2b-256 checksum
How to use checksums
9bda3d5dd5d4c6a9ff3d9b81b7a2af8623e8a9ee32c3f642af69bf35ae1dc74b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL pylibremidi-5.4.3-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.12 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
3a63e84d789188302f5903e78f58aa45750d3e7efd8594add52be29a1f2706e6
BLAKE2b-256 checksum
How to use checksums
d9946527c0ab36599064800cbafc2acf147f515ea30daae9dd33666c5e89b08d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp312-abi3-macosx_11_0_arm64.whl

Download URL pylibremidi-5.4.3-cp312-abi3-macosx_11_0_arm64.whl
Size 432.8 kB
Tags CPython 3.12 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
38089ac19dfaa0c16dcd4aa83eb206813a28bf9e813ffb5b06817527d26b693d
BLAKE2b-256 checksum
How to use checksums
a74650849da21bee4fac014359c72bd16f4ed2c01b3205c61e8779c9e7a5fa1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp312-abi3-macosx_10_14_x86_64.whl

Download URL pylibremidi-5.4.3-cp312-abi3-macosx_10_14_x86_64.whl
Size 442.0 kB
Tags CPython 3.12 abi3 macOS 10.14+ x86-64
SHA-256 checksum
How to use checksums
63dde1aec8f5ce2bf6c765ecd23e788cc2d60522db77c0d56a568c6e37d411fb
BLAKE2b-256 checksum
How to use checksums
a9a17ec8e806752345d737e84bda14905d04ac9e0327b8783868d9d3b44446c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp311-cp311-win_arm64.whl

Download URL pylibremidi-5.4.3-cp311-cp311-win_arm64.whl
Size 592.8 kB
Tags CPython 3.11 Windows ARM64
SHA-256 checksum
How to use checksums
5d6a659cf7bde02913819075b306764c4b57614a7ac26192781ec1ff50a1d872
BLAKE2b-256 checksum
How to use checksums
c676317da9553af0246384491265594b5b4bd45f4b71f2ff6baec5e7864838bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp311-cp311-win_amd64.whl

Download URL pylibremidi-5.4.3-cp311-cp311-win_amd64.whl
Size 638.3 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
fc8ad3a2d4bc10d90ccb6a7c90d69dc737ce38545b75e8c84cecb8de2bafe71d
BLAKE2b-256 checksum
How to use checksums
6ac604d3c89b8991f14208c6d7fbe1c85e24b340defa320358a4fa4c71d2f281
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pylibremidi-5.4.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f32adb3b6e0a973b13c1b381bd40cd1a668e74b696e608fe50c493625e454b2e
BLAKE2b-256 checksum
How to use checksums
4b5227b052fa5aceda1014f9e07d43fbf428a0174614af363eb1e4a4bf50870e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL pylibremidi-5.4.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.11 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
876c901d5894e3b630d304676bf261531a065deba110c33be08b48ee817fe497
BLAKE2b-256 checksum
How to use checksums
e649be27bf330dc7939c96fd69549243feafde65d07d7fcbb4bb0ca71306f5a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp311-cp311-macosx_11_0_arm64.whl

Download URL pylibremidi-5.4.3-cp311-cp311-macosx_11_0_arm64.whl
Size 433.5 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
538ad87a89246915777310d5d027e0b0952f0e4e7a1e5e33163e8b03b389b30e
BLAKE2b-256 checksum
How to use checksums
9a55ee73036b717fb257fde161e50af6fec1903fb8ae0607ee29c5cb3477c856
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp311-cp311-macosx_10_14_x86_64.whl

Download URL pylibremidi-5.4.3-cp311-cp311-macosx_10_14_x86_64.whl
Size 441.5 kB
Tags CPython 3.11 macOS 10.14+ x86-64
SHA-256 checksum
How to use checksums
8586474a2752175ff9967b2ca313053f18d82bbaca392138caef8a07554dd6f6
BLAKE2b-256 checksum
How to use checksums
33705ab7e6a6b7c6b34a442ab8b7db46c3a8ae679bb28456d3b28264840c54a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp310-cp310-win_arm64.whl

Download URL pylibremidi-5.4.3-cp310-cp310-win_arm64.whl
Size 592.7 kB
Tags CPython 3.10 Windows ARM64
SHA-256 checksum
How to use checksums
1c9355c114f00b5e611ef51ce28ac84de869b992a4815ec3b61e307dd930eff3
BLAKE2b-256 checksum
How to use checksums
8a41a7a258d74b0ee2f4bd1dc27f59ee8ddcffb4d9828b14e8c38849c2e8a5e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp310-cp310-win_amd64.whl

Download URL pylibremidi-5.4.3-cp310-cp310-win_amd64.whl
Size 638.1 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
5054539bf3e92e545bac8ae081b11ac152d8e81b144541d0dd29378a65faa103
BLAKE2b-256 checksum
How to use checksums
1c762c7ee988dac8a638d46ec6dc6945d93b64924e753c8b0f66491736e214b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pylibremidi-5.4.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.1 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
715bf51966d895b83d882f095aee0cbfa2d0d8866d546eaa166560751297514c
BLAKE2b-256 checksum
How to use checksums
a526fe7a79ef5af62d3b4bbbb4dd77a63d365fe9d07c80b5077f778363b7afdd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl

Download URL pylibremidi-5.4.3-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.10 Linux glibc 2.26+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
6ff2c7c5352b3b36ffe620fede8851b2c84f4841bf946532f065a3dc349731d5
BLAKE2b-256 checksum
How to use checksums
c2dbb10132ee9b2b096caa5f6650b6d8e10a8feaf43185f74f1953e99833be89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp310-cp310-macosx_11_0_arm64.whl

Download URL pylibremidi-5.4.3-cp310-cp310-macosx_11_0_arm64.whl
Size 433.2 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e09dff37b9891e786a29fda6adb11a6384c108539b64634ec3c735e6cd5cc2d9
BLAKE2b-256 checksum
How to use checksums
d8ab76e5415ebb437de942d7d80efe94f4762913a8235db685708e7e466523be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release files / pylibremidi-5.4.3-cp310-cp310-macosx_10_14_x86_64.whl

Download URL pylibremidi-5.4.3-cp310-cp310-macosx_10_14_x86_64.whl
Size 441.1 kB
Tags CPython 3.10 macOS 10.14+ x86-64
SHA-256 checksum
How to use checksums
848acfda301105907143253194c5f3708f08749b95d93f00306abfec92e98809
BLAKE2b-256 checksum
How to use checksums
9c1530568898bbe76c8d3c990ee10a5173cd221bdeaa0537c6fd50c838b4c032
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 18, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

5.4.3 This release

23 release files

5.4.2

19 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page