MIDI Piano Roll Editor

MIDI Piano Roll Editor

MIDI is event data, not audio. This preview uses sine waves; your MIDI player controls final instrument sounds.

1. Start a sequence

MIDI 1 .mid/.midi format 0 or 1, PPQ 24–1920; up to 1 MB, 16 bars, 128 notes and 4 note tracks.

1 tracks · 0 notes · 1 tempo events · 32.00s through bar 16

2. Draw and inspect notes

Click an empty cell to add a one-beat note, or a colored note to select it. The exact form and note list below also work by keyboard. The view shows four bars and two octaves at a time.

No note selected. Click the roll or use the form to add a note.

3. Edit an exact note

Start and length are in quarter-note beats; 0.25 beat is one sixteenth note. Editing an existing note preserves its identity. Overlapping identical pitch on one track and channel is rejected.

All notes

There are no notes yet.

4. Tempo map and preview

The first event at beat 0 sets the starting tempo. Enter a beat to add or replace an event; only the event at beat 0 is mandatory.

  • Beat 0.00: 120.00 BPM

Sine-wave preview only, including channel 10; your MIDI instrument's timbre is not embedded.

Load an example, import MIDI or add a note.

5. Save sequence

MIDI is format 1 with a separate tempo track. PNG shows the current four-bar and pitch view. CSV lists every note with calculated seconds.

Comments & questions

MIDI Piano Roll Editor

A MIDI file stores timed musical messages, not recorded sound. This editor maps 16 bars of 4/4 onto a piano roll where notes have exact MIDI pitch, start, length, velocity, channel and track. Add a note by clicking the grid or use the numerical inspector, arrange simultaneous notes on separate pitches, and add tempo events at any beat. Browser playback uses simple sine tones so you can check timing; another MIDI player may sound different. Import MIDI 1 Standard MIDI File formats 0 and 1 in the supported PPQ subset, and export format 1 with a conductor tempo track and one note track per editable track.

Key features

  • Draw and select notes across 16 four-beat bars, with four bars and two octaves visible at a time.
  • Edit start, length, MIDI pitch 0–127, velocity 1–127, channel 1–16 and up to four tracks.
  • Add, replace or remove a tempo-map event at a beat from 0 to 64, with 40–240 BPM.
  • Preview the sequence with Web Audio sine tones that follow tempo changes and overlap across different pitches.
  • Import Standard MIDI File format 0 or 1 and export a valid format-1 .mid, roll PNG and note-timing CSV.

How to use

  1. Load the two-track example, import a .mid file, or click an empty roll cell to add a note.
  2. Choose a track, four-bar view and pitch range, then select a note in the roll or list and edit its exact values.
  3. Set or replace tempo events at their beat positions; play and stop the local preview to hear the timing.
  4. Download the MIDI file, labeled roll PNG or CSV of note start and end times, and reimport MIDI if needed.

Use cases

  • Sketch a short melody and bass part with separate tracks and channels.
  • Move a note by a sixteenth beat and compare note length and velocity.
  • Inspect and revise a small existing MIDI file's notes and tempo map before using other music software.

Frequently asked questions

Is the preview the same sound as the exported MIDI?

No. This page previews notes as sine tones using Web Audio. The .mid file stores note, velocity, channel, track and tempo events but no samples. The receiving instrument determines its sound; percussion on channel 10 is also previewed as a sine tone here.

Which MIDI files can I import?

MIDI 1 Standard MIDI File format 0 or 1 with PPQ timing from 24 to 1920 is supported, up to 1 MB, 16 bars, 128 notes, four note tracks and 32 tempo events. SMPTE time division, MIDI 2.0 UMP, SysEx editing and unsupported or ambiguous overlapping identical-pitch notes are excluded. Other channel events are skipped.

Can two notes overlap?

Yes, different pitches, tracks or channels may overlap and play together. Two overlapping notes with the same pitch on the same track and channel are rejected because their MIDI note-off pairings are ambiguous.

How are tempo changes represented?

Tempo events store integer microseconds per beat, starting at tick zero. Playback integrates each segment. Export places Set Tempo meta events in a conductor track; the note ticks keep their exact positions and lengths.

What if an imported file has more data than the editor supports?

The file is rejected with a clear error rather than silently truncating notes or tempo. A supported import retains note pitch, timing, velocity, channel and tempo. Program changes, controllers and other unsupported events are not preserved on export.

Are MIDI files uploaded?

No. Parsing, editing, preview and file generation happen in browser memory. Downloads are created only when you choose an export button.

Privacy

Imported MIDI data stays in this browser tab and is not sent to an application API. The local preview creates temporary Web Audio oscillators; leaving the page stops them.

References

Related Tools

Sample Instrument BuilderMetronomePitch Recognition PracticeImage Super ResolutionHDR Exposure MergerPhoto Colorization LabPanorama StitcherSheet Nesting PlannerEdit Decision WorkbenchTeleprompter StudioBilingual Video Study PlayerChord Progression LabMusic Score EditorSubtitle WorkbenchSpatial Audio DesignerMusic Chord Candidate AnalyzerImpulse Response LabAudio Waveform EditorDTMF Signal LabSpectrogram Sound PainterAudio Spectrum AnalyzerAudio DenoiserAudio Source SeparatorSound Effect SynthesizerMultitrack Audio MixerAudio Transient SlicerAudio Loop Seam FinderAudio Loudness AuditorAudio Pitch Tempo StudioStereo Anaglyph MakerPhoto Mosaic MakerImage Frequency SpectrumSimilar Photo FinderLenticular InterlacerPBR Texture Map LabPanorama Tour BuilderImage Calibration TargetsImage Steganography LabVector Morph EditorDocument Perspective CorrectorImage Inpainting StudioKnitting Chart EditorSVG Boolean WorkbenchSVG Path EditorSeamless Pattern MakerScreenprint Separation StudioQuilt Layout PlannerPerspective Mockup StudioLow Poly Mesh MakerFont Subset BuilderFocus Stacking LabImage Depth EstimatorCross Stitch Chart MakerAnimation Timeline EditorPixel Paint StudioImage Difference HeatmapImage Quality LabID photo makerBarcode scannerVideo to GIFVideo Chroma KeyerVideo StabilizerVideo Reframe StudioStop Motion StudioVideo Timecode ConformerVideo Quality ComparatorHLS and DASH Manifest ValidatorVideo Speed Ramp EditorVideo Container InspectorVideo Storyboard MakerVideo Privacy MaskerRotoscope Mask EditorVideo Motion TrackerVideo Frame InterpolatorAudio Description EditorVideo Audio Sync LabVideo TrimmerGIF Frame ExtractorSVG to PNG / JPEGImage to SVG VectorPixel Art ConverterCircle Profile CropPhoto and Polaroid FrameRound Image CornersJPEG EXIF Viewer and RemoverImage Color Vision SimulatorImage to ASCII ArtPhoto CollageInstagram 9-Tile SplitterLong Image SplitterImage CropRotate and Flip ImagesImage FiltersMeme GeneratorScreenshot BeautifierBarcode GeneratorQR Code GeneratorImage CompressorImage ResizeImage ConverterFavicon GeneratorYouTube Thumbnail ExtractorHEIC to JPGSignature & Stamp MakerImage WatermarkGIF MakerImage Color PickerImage to Text (OCR)Merge ImagesPhoto Blur & MosaicQR Code ScannerMP4 to MP3 ConverterVideo CompressorBackground Remover
Explore all Image/Media tools →Text/Convert →Life/Fun →Dev Tools →