Quick summary
Virtual MIDI Piano Keyboard (VMPK) is a cross-platform MIDI utility that acts as both a generator and receiver of MIDI events. It provides a virtual piano interface that you can control with a computer keyboard or a mouse. VMPK itself does not create audio — instead, it sends MIDI data to external hardware or software synthesizers and can also show incoming MIDI activity from other sources.
Core functionality
VMPK combines several useful capabilities for composers, performers, and developers:
- Customizable mapping between the computer’s alphanumeric keys and piano notes, with configurations stored in XML files.
- Ability to transmit program change messages and controller data to connected MIDI devices.
- Visual feedback of MIDI input, so it can reflect notes played by external instruments or MIDI file players.
- Operation as both a sender and a receiver of MIDI events, making it suitable for routing and testing MIDI setups.
Interface and configuration
The application features a modern, responsive graphical interface built with the Qt5 toolkit. The UI emphasizes clarity and low resource usage so it remains snappy on a variety of systems. Users can tailor the keyboard mapping to their preferences and save multiple layouts for later recall.
Connectivity and platform support
VMPK runs on macOS and other major platforms. Since it generates MIDI messages but does not synthesize audio, you connect it to either hardware synths or software instruments to produce sound. It exposes input and output ports so you can route MIDI between applications and devices.
Language layouts and customization
Multiple keyboard layouts are supported to match regional conventions — for example Spanish, German, and French mappings are available. In addition to these presets, VMPK lets you define and persist your own key-to-note assignments.
Development status
VMPK is an open-source project under active development. A list of planned improvements and outstanding tasks is maintained in its TODO file, and contributors are welcome to submit patches and suggestions.
Feature snapshot
- XML-based storage for custom keymaps and settings
- MIDI program change and controller message support
- Incoming MIDI visualization from connected sources
- Lightweight Qt5-based graphical front end
- Cross-platform compatibility for macOS and other systems
Technical
- Windows
- Mac
- Czech
- German
- English
- Spanish
- French
- Dutch
- Russian
- Swedish
- Chinese (Simplified)
- Free