Skip to main content

MIDI Playback

Load a standard MIDI file and play it back using browser-synthesized instruments. Each MIDI track becomes a separate timeline track. Drop your own .mid files to add more tracks.

Loading...

About This Example

This example demonstrates:

  • Loading .mid files with useMidiTracks() from @waveform-playlist/midi
  • Multi-track expansion — one MIDI file produces multiple timeline tracks (one per MIDI channel)
  • SoundFont sample playback for realistic instrument sounds
  • Drag-and-drop to add your own MIDI files
  • Per-track close buttons and Clear All

The @waveform-playlist/midi package handles parsing only — it outputs ClipTrack[] with midiNotes on each clip. The playout layer automatically routes these to SoundFontToneTrack (realistic instrument samples) or MidiToneTrack (Tone.js PolySynth fallback) for synthesis.