Music / Composition
Piano-Roll Composer: Make and Export Multi-Track MIDI
Add, move, resize and delete notes with quarter, eighth or sixteenth-note snapping. Choose piano, synth or drums for each track and export MIDI or a JSON project.
Piano-Roll Composer: Make and Export Multi-Track MIDI: Draw notes on a piano-roll grid, then move, resize or delete them with snapping to quarter, eighth or sixteenth notes. Use up to four piano, synth or drum tracks, play your composition back, and download it as MIDI or a project file you can reopen later. Runs 100% locally in your browser with zero server file uploads.
- Category
- Everyday tools
- Runs
- In your browser
- Cost
- Free · no sign-up
- Availability
- Ready to use
Runs entirely in your browser
Space: play or stop. Delete: remove selected note. Arrows: move by one snap or semitone. Shift + left/right: resize. Scroll vertically for all 128 pitches; faded notes belong to other tracks.
Autosave is off until you enable it. MIDI import supports files exported here, including empty tracks, tempo, meter, programs and velocity. JSON also preserves editing IDs. MIDI Player can open other MIDI files. Shortening the meter or bar count keeps enough bars for existing notes.
Piano samples: Salamander Grand Piano by Alexander Holm, CC BY 3.0. Tone.js MP3 conversion; samples are pitch-shifted during playback. Sample licence
MIDI representation
Standard MIDI format 1 has a conductor track containing tempo and time signature, plus one track per instrument. This composer uses 480 ticks per quarter note, note-off before note-on at equal ticks, integer velocities 1–127 and channel 10 for drums. MIDI background: https://midi.org/standard-midi-files
Saving and timing
JSON stores versioned project settings and notes in ticks. Sequencer-specific metadata in MIDI preserves empty tracks, exact editor tempo and loop length. No remote service is involved. Playback uses the same locally hosted piano samples and synthesiser as the other TOEA instrument tools.
How to use it
- Choose tempo, time signature, bar count and note snap, then add up to four tracks.
- Click to add notes, drag to move or resize, and use the selected note controls for pitch, timing and velocity.
- Play or loop the composition, save JSON or MIDI, and reload files exported by this composer.
Privacy & limitations
Projects stay in your browser. Autosave is off by default and stores locally only after you enable it. JSON and MIDI downloads are saved to your device.
Related tools
Frequently asked questions
Which MIDI files can I import?
Files exported by this composer round-trip notes, velocity, tracks, instruments, tempo, time signature and bar count. Empty tracks survive using sequencer metadata. Use the existing MIDI Player for other MIDI files.
What are the keyboard shortcuts?
Space plays or stops. Delete removes the selected note. Arrows move by one snap or semitone; Shift plus left or right resizes it. Shortcuts do not intercept typing in inputs.
How do drums work?
Drum tracks play the site’s drum synthesis and export on General MIDI channel 10. Piano exports program 0 and synth exports program 80, using zero-based program numbering.
Can I recover an autosave?
Autosave starts off. If a previous save exists, Restore autosave loads it. Save JSON for a portable project. Shortening the meter or bar count retains enough bars for existing notes; same-pitch overlaps within a track are rejected.
Free tool · runs in your browser · no account required