A documented format for note-based projects
The output uses MIDI Viewer schemaVersion 1, with header, tempoChanges, timeSignatures and tracks. Each track contains notes with MIDI pitch, velocity, channel, startTicks, endTicks, startSeconds and durationSeconds.
Channels in JSON are zero-based (0–15); the Analyzer displays them as 1–16. Velocity and pitch use MIDI numbers, not normalized audio values. Track program is the last detected program on its lowest-numbered channel, not a history of instrument changes.
This is not a lossless MIDI archive. Controllers, sustain interpretation, SysEx, raw events and a complete program-change history are not exported. Keep your original MIDI. Other tools such as Tone.js or rhythm games may require their own JSON schema and an explicit mapping.