Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>MIDI RealPlayerNew to Visual Studio Code? Get it now.
MIDI RealPlayer

MIDI RealPlayer

vaclis

|
5 installs
| (0) | Free
A real multi-track MIDI player and viewer for VS Code with SoundFont instruments, exact note duration and velocity, and a synchronized piano roll.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

MIDI RealPlayer

A real multi-track MIDI player and viewer for VS Code with SoundFont instruments, exact note duration and velocity, program changes, and a synchronized piano roll.

Open multi-track .mid and .midi files directly in VS Code, inspect them as a unified piano roll, and play them with a real SoundFont instrument bank.

Why this exists

Many MIDI preview extensions render useful piano rolls but reduce playback to short, identical note onsets. MIDI RealPlayer keeps the visualization and the audio engine in agreement:

  • Note-on and note-off timing determine the audible note length.
  • Velocity is preserved.
  • The original tempo map and tempo changes are preserved.
  • Program changes, bank selection, drums, sustain, pitch bend, and controller events are passed to the synthesizer.
  • Turning a track off hides and silences its corresponding MIDI channel or track events.
  • Seeking reconstructs the sequence state at the selected position.
  • Named empty tracks remain visible so the track list matches the source MIDI structure.

Open and play

  1. Open a .mid or .midi file.
  2. Press Play or use the Space bar.

GeneralUser GS is bundled as the default General MIDI instrument bank, so no first-run download or file selection is required.

Select the SoundFont name in the bottom-right corner to override the built-in bank with a local .sf2, .sf3, or .dls file. The selected path is remembered in the VS Code setting midiRealPlayer.soundFontPath. Clear that setting to return to the bundled bank.

Controls

  • Play: Play button or Space while paused
  • Pause: Pause button or Space while playing
  • Stop: stop button
  • Seek: timeline slider or click the piano roll
  • Fine seek: focus the piano roll and use Left/Right Arrow
  • Five-second seek: Shift + Left/Right Arrow
  • Zoom: +, −, and Fit controls; Ctrl/Cmd + mouse wheel
  • Track On/Off: the switch beside each track

Current scope

Version 0.1 is a read-only research previewer. It is optimized for typical 10–20 track transcription outputs.

MIDI note, velocity, and instrument editing with save support is planned for a later version.

Development

npm install
npm run typecheck
npm test
npm run build

Press F5 in VS Code to start an Extension Development Host, then open a MIDI file.

To build an installable package:

npm run package

Playback engine

Playback uses SpessaSynth, an Apache-2.0 SoundFont/DLS synthesizer running in an AudioWorklet. Piano-roll parsing uses @tonejs/midi.

The bundled GeneralUser GS SoundFont is by S. Christian Collins and is distributed under its own license, included in the extension package as media/GeneralUser-GS-LICENSE.txt.

Known limitations

  • Sound quality and instrument coverage depend on the selected SoundFont.
  • Controller-only tracks are not shown as rows, although their metadata remains in the MIDI sequence.
  • Rapid track changes are applied to playback sequentially to avoid corrupting the active sequencer state.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft