Releases: celtera/libremidi
Releases · celtera/libremidi
v5.0.0
New features
- 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.
- Using Developer Preview 9: https://github.com/microsoft/MIDI/releases/
- Works on both MSVC and MinGW / MSYS2.
- 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 🎉!
v4.5.0
New features
- Remade and extended the documentation: https://celtera.github.io/libremidi
- Experimental PipeWire back-end
Changes
- MIDI 1 logic refactored across all back-ends to make sure they all behave exactly the same wrt timestamping and filtering.
v4.4.0
New features
- Add Debian (bullseye, bookworm, trixie) to the CI to make sure ALSA UMP and RawMidi support gets tested
- Fix iOS support and add iOS CI (thanks @fwcd !)
- Add compatibility with ni-midi2: the
libremidi::ump
type will convert automatically from / tomidi::universal_packet
and it is possible to send directly some ni-midi2 data types throughlibremidi::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.
Bugfixes
- Fix sysex concatenation on WinMM
- Various MIDI 2-related fixes across the entire stack
- Work-in-progress on RawMidi MIDI2 backend - output should work, input not there yet. Testing and reporting issues highly appreciated!
- Some compatibility bugfixes, better detection of available features in cmake
Other
- Revamp and cleanup the cmake backends in separate files for clarity.
v4.3.0
-
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