MIDI RealPlayer
Hear the MIDI you are looking at.
An open-source multi-track MIDI player and visual workspace for VS Code.
It preserves note duration, velocity, tempo, program changes, and channel
performance data, then plays them through real SoundFont instruments.


Why MIDI RealPlayer?
Many MIDI previewers draw the right notes but play every event as the same
short sound. MIDI RealPlayer keeps playback and visualization synchronized:
- Notes play for their encoded duration and velocity.
- General MIDI programs and drums use SoundFont instruments, with per-track
preset selection when you want a different sound.
- Track Mute, Solo, and volume controls affect both what you see and hear.
- Piano Roll and Tracks views reveal both note detail and song structure.
- Seeking into a sustained note reconstructs the active sound correctly.
- Tempo, sustain, pitch bend, controllers, banks, and program changes survive
playback.
- The current mix can be rendered directly to WAV without FFmpeg.
Highlights
- Instrument-colored Piano Roll and DAW-style Tracks views for
.mid and .midi
- Original track names and multiple channels from combined MIDI tracks
- Per-track Mute, multi-track Solo, and volume controls up to +6 dB, remembered
for each MIDI file
- Stable piano-roll framing when tracks are muted or soloed
- Per-track SoundFont preset picker with the original MIDI program always one
click away
- Click-to-seek, transport scrubbing, horizontal pan, and pointer-based zoom
- Adjustable pitch-row and arrangement-lane heights
- Adaptive musical ruler with bar, beat, and subdivision marks
- Optional playhead following with Fit-to-song view
- Bundled GeneralUser GS SoundFont, ready on first launch
- Custom
.sf2, .sf3, and .dls SoundFont support
- Offline WAV export of the enabled tracks and current volume mix
- Source-safe workflow that never modifies the MIDI file
Install
Install from the
Visual Studio Marketplace,
or search for MIDI RealPlayer in VS Code.
To install a GitHub release, download its .vsix, run
Extensions: Install from VSIX..., and select the file.
Use
- Open a
.mid or .midi file.
- Press Play or Space.
- Seek, zoom, switch views, change a track's SoundFont preset, mute tracks, or
adjust their volume directly in the viewer.
No SoundFont setup is required.
Controls
| Action |
Control |
| Play / Pause |
Transport button or Space |
| Stop / Go to start |
Transport controls |
| Seek |
Piano roll, transport scrubber, or Left / Right |
| Zoom |
+, −, Fit, or Ctrl/Cmd + mouse wheel |
| Pan |
Shift + mouse wheel or horizontal trackpad gesture |
| Switch view |
Roll / Tracks above the timeline |
| Vertical scale |
↕ slider above the timeline |
| Track preset |
Sound menu beneath the track name |
| Track mix |
M (Mute), S (Solo), and Vol slider |
| Follow playback |
Follow control beside the transport |
| Export current mix |
Export WAV |
SoundFonts
The bundled
GeneralUser GS bank provides
ready-to-play General MIDI instruments. Use the SoundFont selector to switch
between Default and a local .sf2, .sf3, or .dls bank.
Each track's sound label is also a preset menu. Choose another sound from the
same General MIDI instrument family in the active bank, or choose MIDI to
restore the file's original program. The choice is remembered per MIDI file and
is applied consistently to playback, seeking, Solo, and WAV export. The bundled
Concert Choir remains the default choir sound and follows the MIDI's original
timing without an automatic offset.
Sound quality and preset coverage depend on the selected bank. If a requested
preset is unavailable, the track displays the actual fallback sound.
Development
Requires Node.js 22 and VS Code 1.100 or newer.
git clone https://github.com/vaclisinc/midi-realplayer-vscode.git
cd midi-realplayer-vscode
npm install
npm run typecheck
npm test
npm run build
Press F5 to launch an Extension Development Host. Run
npm run package to build a .vsix.
Contributing
Issues and pull requests are welcome. For playback bugs, include a minimal MIDI
file when its license permits redistribution.
License and credits
MIDI RealPlayer is available under the MIT License.
Playback uses
SpessaSynth and the bundled
GeneralUser GS SoundFont by S. Christian Collins. The SoundFont license is
included in media/GeneralUser-GS-LICENSE.txt.
Built by vaclis for musicians, researchers, and
anyone tired of inaccurate MIDI previews.