This is a year worth of effort to make rtpmidi more stable and useful.
As always, please report any issue and feature request to the issue tracker, and I will try my best to make it happen.
Featured Improvements
New features
- Raw MIDI devices - Can configure them in the ini file, command line or cli util.
- Optionally use std::format instead of fmt library, where available.
- Improvements to the TUI.
- Improvements to the INI configuration file: rawmidi devices, can set local UDP port for clients. Use regex for auto add to the autodiscover and announcement (positive and negative)
- More tests.
Fixes
- Improved SysEx support. #123 Thanks to sadgitarius.
- Improed Avahi support.
Internal changes
- Full rework of rtpmidi clients, encapsulating UDP use, name resolution and many more items.
- Use a state machine for rtpmidi clients. Improves reliability and simplifies the code.
- Added new rtpmidi packet class to ease testing. This is effectively a second mini implementation of the protocol, so it can be used to test correctness.
- Internal signals, used for raw midi devices to do not open the device until really in use.
Known bugs
- When setting a DNS name for connect_to, it may block everything for some seconds if can not resolve the remote endpoint.
- Once it got into a loop of trying to connect to the remote server, but was properly connected, making the connection reset every 10 seconds. Could not reproduce.
- Avahi / zeroconf / bonjour announcements sometimes are not properly detected.
Contributor changes
- systemd: Wants instead of After avahi-daemon by @jtagcat in #101
- Add cmake option to compile libraries only by @Momomentum in #108
- Fixed naming conflict when library used in QT environment by @kamilica9696 in #110
- able to compile on Manjaro ARM by @sadguitarius in #114
- fix compilation with fmt 11 by @neheb in #116
- added a few fmt::formatter types by @sadguitarius in #118
- Fix
make install
path by @CTXz in #119 - fix compilation with fmt v11 by @sadguitarius in #124
- long sysex messages working by @sadguitarius in #123
- fix all test failures except for 8 by @sadguitarius in #126
New Contributors
- @jtagcat made their first contribution in #101
- @Momomentum made their first contribution in #108
- @kamilica9696 made their first contribution in #110
- @sadguitarius made their first contribution in #114
- @neheb made their first contribution in #116
- @CTXz made their first contribution in #119
Full Changelog: v23.12...v24.12
Thanks to everybody who contributed with pull requests, bug reports and just using rtpmidid. You rock!