Skip to content

MIDI++ v1.0.4.R5

Latest
Compare
Choose a tag to compare
@Zephkek Zephkek released this 27 Mar 19:03
· 8 commits to main since this release
ffc3622

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:
    image
  • New splash screen:
    image

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: