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:
RtMidi
ModernMIDI
Additionally, for MIDI 2 parsing support we use cmidi2!
Homepage
Download
Recent Releases
4.5.003 Mar 2024 21:25
minor feature:
4.4.011 Feb 2024 23:37
major feature:
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 / 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.
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.
4.3.008 Feb 2024 14:23
major feature:
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
|