MIDI++ v1.0.4 is an advanced MIDI Autoplayer and MIDI to Qwerty conversion program, developed over five months of intensive optimization and real-world testing. It combines the fastest MIDI-to-QWERTY conversion engine available with an also unmatched auto-player system, setting new standards for both live play and automated performance.
- Live Players: Experience true 1:1 MIDI input with zero perceptible delay, and support for velocity sensitive qwerty keyboards.
- Auto-Performance: Load and play complex MIDI files with perfect timing
- Hybrid Use: Seamlessly switch between live play and auto-performance
- Built from the ground up for maximum performance
- Optimized specifically for virtual piano applications
- Maintains perfect timing even under extreme load
- Developed and tested by professional virtual pianists and Audio engineers.
- Input Latency: < 0.5ms from MIDI input to key press
- Note Processing: Up to 128 simultaneous notes with zero allocation
- Memory Footprint: ~50MB baseline, minimal GC impact
- CPU Usage: 2-5% average on modern processors
- Timing Precision: Nanosecond accuracy using advanced Timing algorithms that have been tested for months.
- Throughput: Can handle millions of notes per minute while maintaining stability and accuracy.
MIDI++ uses a 32-key velocity mapping system that converts MIDI velocities (0-127) into keyboard inputs. This system provides precise control over note dynamics while maintaining ultra-low latency.
The velocity system uses this key sequence for mapping:
1234567890qwertyuiopasdfghjklzxc
Each character represents a different velocity level, where:
- Numbers (1-0): Lower velocity range
- Top row (q-p): Medium velocity range
- Home row (a-l): Medium-high velocity range
- Bottom row (z-c): Maximum velocity range
When playing, MIDI++ will automatically send "Alt + [key]" combinations based on the incoming MIDI velocity, allowing for precise dynamic control on games that support velocity sensitivty
You can create your own velocity curves through the configuration file. Each curve needs 32 values that map to the key sequence above.
Example custom curve configuration:
{
"CUSTOM_CURVES": [
{
"name": "MyCustomCurve",
"values": [
1,4,8,12,16,20,24,28,32,36, First 10 values (number keys)
40,45,50,55,60,65,70,75,80,85, Next 10 values (q-p)
90,95,100,105,110,115,120,125, Next 8 values (a-l)
126,126,127,127 Final 4 values (z-c)
]
}
]
}
- Values must be between 1-127
- Must provide exactly 32 values
- Values should generally increase or stay the same
- Consider your playing style when designing curves
- Test curves with different musical genres
- Gentle Curve - For soft playing styles:
"values": [1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,35,40,45,50,60,70,80,90,100,110,115,120,123,125,127]
- Aggressive Curve - For dramatic dynamics:
"values": [1,2,4,8,16,24,32,40,48,56,64,72,80,88,96,104,110,115,120,124,126,127,127,127,127,127,127,127,127,127,127,127]
- Precision Control - For fine control in middle velocities:
"values": [1,2,4,8,16,24,32,40,48,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,122,124,125,126,127,127]
The system will automatically interpolate between these values to ensure smooth velocity transitions during play.
- Windows 10/11 64-bit
- Visual C++ Redistributable 2022
- CPU that supports AVX2
Load - MIDI loading
Play - playback initiation
Stop - Immediate key release with state cleanup and shutdown
Restart - Instant playback reset
Skip/Rewind - Precise temporal navigation
Speed - Real-time playback rate adjustment
Custom lightweight interface with intuitive controls designed purely for functionality ease of use
2025-01-23_01-50-25.mp4
Miditoqwerty.Vs.Midi++.mp4
Thanks to the amazing feedback of our community and especially Testers MIDI++'s stability has been enhanced through all kinds of scenarios
2025-02-15.13-11-37.mp4
Comprehensive track control allowing you to mute, solo any track in real time with instrument detection capabilities
We would like to extend our deepest gratitude to all the individuals who have contributed to the development of MIDI++ v1.0.4. Your support, feedback, and dedication have been invaluable in bringing this project to life.
- Gene
*For your unwavering support, insightful feedback, and continuous encouragement throughout the development cycle.
-
The Amazing Community
Your testing, suggestions, and enthusiasm have significantly enhanced MIDI++'s stability and performance. -
Contributors & Collaborators
Thank you for your code contributions, bug reports, and feature requests that have helped shape MIDI++.