🎼 Renders real engraved notation

Sheet Music Composer

A very cut-down, Sibelius-style notation editor. Build a single-line melody, hear it played back, and export a PNG or a real .mid file. Nothing is uploaded — it all runs in your browser.

How it works

Each note you add is split into measures by converting every duration to a fraction of a quarter note and filling each measure up to the capacity implied by your time signature, then handed to the VexFlow notation library (loaded from a CDN) to engrave real, properly-beamed sheet music as SVG. Playback computes each pitch's frequency from its MIDI note number using 440 × 2^((midi−69)/12) and plays it with a Web Audio sine-wave oscillator. Exporting a .mid file writes a genuine Standard MIDI File byte-by-byte in JavaScript — format 0, one track, variable-length delta-time encoding and a tempo meta-event — rather than faking the extension.

FAQ

Does the exported .mid file actually work in real music software like GarageBand or MuseScore?
Yes — it's a real Standard MIDI File (format 0, single track) built byte-by-byte in JavaScript, with proper variable-length delta-time encoding and a tempo meta-event, not a fake file with a .mid extension; any standard MIDI-reading software can open it.
Why do notes sound slightly plain or synthetic during playback?
Playback uses simple sine-wave oscillators from the Web Audio API rather than sampled instrument sounds, so it's accurate for pitch and rhythm but won't sound like a real piano or any other acoustic instrument — the exported MIDI file, on the other hand, will play back with whatever instrument sound your MIDI software assigns to it.

Free, unlimited, no account. If this saved you a paid tool, a small thanks is appreciated.

Say thanks — $3