MIDI note timeline query
Convert local SMF 0/1 ticks through the full tempo map into note seconds, then query a time range, track and channel and save every original event and note.
- 1Add input
- 2Adjust settings
- 3Get your result
Tool input and files are processed in this browser without being uploaded.
Before you start
Find the notes overlapping a specific second in an exported MIDI file. Changes of tempo affect every later tick, so the report integrates the complete global tempo map before applying your filters.
How to use this tool
- Select an original SMF 0/1 PPQN MIDI file.
- Optionally set start/end seconds, track or channel; leave a field blank to keep it unconstrained.
- Review selected note spans and warnings, then save the complete JSON and all-note CSV.
Supported inputs and limits
One .mid or .midi up to 5 MiB; SMF 0/1 with a positive PPQN division, at most 64 tracks, 50,000 events and 25,000 notes. Cumulative ticks in each track are at most 4,294,967,295. Type 2, SMPTE/drop-frame division, SYX dumps, truncated chunks, invalid running status and missing final end-of-track reject.
All tempo changes contribute to one global tick-to-second map, with a default 500,000 microseconds per quarter note. Different tempos at one tick across different tracks reject; identical changes collapse. Multiple changes within the same track and tick use the last source event.
Time queries use the half-open interval [start, end). Notes are selected when their key-release spans overlap that interval; zero-length notes use their start point. Blank start/end/track/channel fields impose no corresponding constraint. Track and channel numbers start at 0; track indices must exist. Filters never remove events or duplicate notes in downloads: each complete note carries selected true/false.
Repeated pitch on one track/channel closes FIFO. Velocity-zero note-on means note-off. Unmatched note-offs produce a warning and no note; unclosed note-ons end at their own track end with a warning. CC64 is preserved as an event and does not extend note duration. Program state is scoped to each track/channel; no sound synthesis, score rendering or acoustic duration is inferred.
Complete JSON and CSV combined are limited to 24 MiB and reject atomically if exceeded. The table shows the first 200 selected notes; text and copy show the summary and first 20 selected notes. Downloads retain all source events, track totals, tempo points, notes, warning details and filter flags. No MIDI device or network service is accessed.
Worked example
Example input
Select tempo.mid
Example options
{"params":{"startSeconds":0.25,"endSeconds":1,"track":1,"channel":0}}Example output
{
"format": 1,
"ppqn": 480,
"trackCount": 2,
"eventCount": 9,
"noteCount": 2,
"selectedNoteCount": 1,
"endSeconds": 2.5,
"tempoPointCount": 2,
"warningCount": 0,
"query": {
"from": 0.25,
"to": 1,
"track": 1,
"channel": 0
},
"preview": [
{
"track": 1,
"channel": 0,
"pitch": 60,
"velocity": 90,
"program": 7,
"startTick": 0,
"startSeconds": 0,
"endTick": 960,
"endSeconds": 1.5,
"endPolicy": "key-release",
"selected": true
}
]
}When something does not work
Re-export a complete SMF 0/1 file with PPQN timing. Resolve conflicting simultaneous tempos or malformed events at the producer. Use existing 0-based track/channel indices and a positive end-after-start interval; clear filters to inspect all notes. Reduce the input if count or combined-output limits are exceeded.
Frequently asked questions
Why does multiplying ticks by one tempo give the wrong seconds?
Every tempo change alters the conversion for the following tick interval. The complete map is integrated before querying notes.
Are sustained notes extended until the pedal is released?
No. Durations represent note-on to note-off, with explicit handling of unmatched events. Pedal control events remain in the complete report.
Does the CSV contain only matching notes?
No. The CSV contains every note once with selected true/false. The page table contains matching notes only.
Documentation & further reading
Related tools
Audio to WAV
Convert supported MP3 or WAV audio to 16-bit PCM WAV, with optional rate and channel settings.
Trim audio
Select one part of a WAV or MP3 recording and download the excerpt as WAV.
Merge audio
Put recordings or sound clips in order and join them into one WAV file.
Adjust audio volume
Raise or lower the volume and save a new WAV file.