MIDI++ v1.0.4.R5 - Release Notes
Highlights
This update significantly enhances core functionality, focusing on improving the Autoplayer and MIDI-to-QWERTY conversion systems.
MIDI2Key v1.1 Improvements
- Complete refactor of MIDI-to-QWERTY conversion logic.
- Major improvements to latency and accuracy, making it the fastest and most precise MIDI-to-QWERTY converter available.
- Comprehensive testing across a wide range of MIDI keyboards (both old and new).
- Upcoming: Transition from WinMM to Kernel Streaming for even lower latency.
Comparison Video 1:
Comparison.video.1.mp4
Comparison Video 2:
Comparison.video.2.mp4
Hardware Comparison (Piano tested: GEM PRP6):
Octave.latency.mp4
As shown in the video, latency with virtual MIDI ports becomes even more noticeable when using real hardware. In this latency test, quickly changing octaves creates an unwanted modulation or "waltzing" effect in MIDI To Qwerty. Right now, MIDI++ is the only software that doesn't have this issue.
Thanks to T3RRON for finding about this issue and his help with testing it.
Compatibility:
- No more AVX2 requirement. This should've been done sooner.
Autoplayer Overhaul
- Fully rewritten playback logic and playback control from scratch.
- Fixed all known issues related to skipping and rewinding (special thanks to @Awokein).
- Improved accuracy and performance under load.
- New highly accurate timer system, combining timestamp counters and Windows waitable timers for maximum precision.
- Adjustable accuracy parameters now available in configuration settings.
UI Enhancements
- Code refactoring and optimization of the current Win32 UI.
- Added COM object styling for a slightly improved look.
- Upcoming: Deprecation of current UI in favor of new, optimized ImGui interface in next major release.
- New Track selection menu:
- New splash screen:
Security & Performance Improvements
Parser:
- Enhanced security through extensive fuzz testing.
Keystroke Injection:
- Optimized keystroke injection by directly invoking the kernel syscall (NtUserSendInput), reducing overhead.
- Eliminated redundant memory reads by dynamically constructing syscall stubs, significantly boosting performance during intensive MIDI playback (e.g., black MIDI).
Known Issues
- Windows limitation causes UI window dragging (WndProc messages) to conflict with NtUserSendInput syscall. This can create input lag or note barrage effects.
- Temporary Workaround: UI movement is locked during playback or when MIDI2Key/MIDIConnect is enabled, ensuring stable performance.
- Upcoming Fix: Improved workaround will be introduced alongside the new ImGui UI in the next update.
Feedback & Reporting
Please report any issues or feedback regarding this release directly. Your input helps improve MIDI++ continuously.
Thank you & Enjoy: