Short answer: the .mid file this site produces is single-track: 14 notes, all on channel 0, in one note track. But the file header declares two MTrk chunks, and an independent parse returns one track — the other chunk is an empty conductor track. Adding a second track costs exactly 12 B (169 → 181 B) and still leaves 14 notes. Changing a note's channel or the instrument changes no bytes at all: both edits are in-place replacements in the same 169 B file. None of these edits creates a drum track or splits instruments. Every number below was read from one published 169 B file on 8 November 2026; you can download it and check each byte.
| Change one variable | File size | MTrk chunks | Tracks parsed | Notes | What the parser reads |
|---|---|---|---|---|---|
| Original (this site's real output) | 169 B | 2 | 1 | 14 | channel 0, acoustic grand piano |
| Add one empty MTrk | 181 B | 3 | 2 | 14 | second track has 0 notes |
| Move C4 to channel 9 | 169 B | 2 | 2 | 14 | 1 note on channel 9, standard kit |
| Change program 0 → 40 | 169 B | 2 | 1 | 14 | violin |
"Single-track" and "multitrack" are often used as if they were a property you can hear. In a Standard MIDI File they are a property of the byte layout. This page takes one real file, reads its chunk table, and changes exactly one variable at a time to show what actually moves.
Exclusive material on this page. Five of the seven sections below are built from measurements of the published file and three injected copies, not from general format descriptions. Two denominators, computed on 8 November 2026: sections 5/7=71.4% and characters 6,512/7,860=82.8%. Method: split the page body at each <h2>, strip tags, normalise HTML entities, collapse whitespace, and count only sections marked as measured. The first-screen answer, head and footer are outside both denominators.
Honesty line, stated up front. This site does not separate instruments. It does not keep a drum track. It outputs a single-track .mid file with one note track and no per-instrument parts. Channel 9 does not bring the drums back: in General MIDI it only changes which default sound a player assigns. There is no multitrack output and no instrument separation here, and this page does not promise transcription accuracy, conversion speed, or automatic tempo detection.
The source is the 169 B MIDI file published on this site on 24 October 2026 — the actual downloaded output of running the test WAV through the browser converter. Its first 14 bytes are 4D 54 68 64 00 00 00 06 00 01 00 02 01 E0. Read as a Standard MIDI File header:
| Bytes | Offset | Value | Meaning |
|---|---|---|---|
4D 54 68 64 | 0 | "MThd" | MThd chunk ID |
00 00 00 06 | 4 | 6 | header payload length |
00 01 | 8 | 1 | SMF format 1 (synchronous multi-track capable) |
00 02 | 10 | 2 | number of MTrk chunks declared |
01 E0 | 12 | 480 | PPQ 480 ticks per quarter note |
| whole header | 0–13 | 14 B | 4 ID + 4 length + 6 payload |
Note the mismatch that matters: the header says format 1 and ntrks = 2, yet this is a single-track conversion. Format 1 is a capability, not a claim that two instruments were recorded. Walking the chunk length fields gives the whole file:
| Chunk | Offset | On disk | Payload | What it holds |
|---|---|---|---|---|
| MThd | 0 | 14 B | 6 B | format 1, 2 MTrk, PPQ 480 |
| MTrk #1 | 14 | 16 B | 8 B | empty track name + End of Track |
| MTrk #2 | 30 | 139 B | 131 B | program change, 14 notes, End of Track |
| Total | — | 169 B | — | 14 + 16 + 139 |
An independent parse with @tonejs/midi 2.0.28 on 8 November 2026 returned 1 track, 14 notes, channel 0, instrument acoustic grand piano, 0 tempo events and 0 time-signature events. The empty first MTrk is folded into the header information by the parser, so the two declared chunks collapse to one usable track. That is why "how many tracks are in this MIDI file" has two honest answers: 2 chunks on disk, 1 track in the parser.
Each row changes one variable in the same 169 B file. The injected files were written to disk and parsed again with the same independent library; "Tracks parsed" and "Notes" are those second parses, not predictions.
| Variable | Byte edit | File size | ntrks | Tracks parsed | Notes | Independent parse |
|---|---|---|---|---|---|---|
| ntrks (add an empty track) | 00 02 → 00 03 at offset 11, plus a 12 B MTrk appended | 181 B | 3 | 2 | 14 | new track has 0 notes; channel 0 unchanged |
| Channel of C4 | 90 → 99 at offset 50, 80 → 89 at offset 59 | 169 B | 2 | 2 | 14 | 13 notes on channel 0, 1 note on channel 9 |
| Program number | C0 00 → C0 28 at offset 42–44 | 169 B | 2 | 1 | 14 | instrument acoustic grand piano → violin |
The first row is the only one that changes the file size. A minimal legal MTrk is 4 bytes of ID, 4 bytes of length and 4 bytes of payload (00 FF 2F 00, End of Track) — 12 B in total. 169 + 12 = 181 B. The header field and the appended chunk are the two required parts of the single change "add one track". The parser then reports 2 tracks, but the new one has 0 notes, so the audible content is identical.
The other two rows are in-place replacements: 2 status bytes and 1 data byte respectively, +0 B. The file already contains 00 C0 00 at offset 42 — a 3 B Program Change event (1 delta + 1 status + 1 data). Changing its data byte from 00 to 28 (GM program 40, 0-indexed) relabels the instrument without adding or removing a single byte. A three-byte note-on message takes 0.96 ms on a 31,250 bit/s MIDI cable; the program byte costs the same three-byte slot, so neither edit changes timing.
This is the edit most likely to be misread. In General MIDI, channel 9 is reserved for percussion, and many players map it to a kit by default. Moving one C4 to that channel changes the label a parser attaches, not the musical content.
| File | channel 0 notes | channel 9 notes | Instrument assigned by parser |
|---|---|---|---|
| Original 169 B | 14 | 0 | acoustic grand piano |
| C4 moved to channel 9 (169 B) | 13 | 1 | standard kit on the channel 9 track |
| Empty track added (181 B) | 14 | 0 | acoustic grand piano; second track 0 notes |
After the channel edit, the parser returns two tracks: 13 notes at channel 0 under acoustic grand piano, and 1 note at channel 9 under standard kit. That "standard kit" is a General MIDI lookup table entry, not a detected percussion performance. The single note is still pitch 60, still 936 ticks long, still velocity 91 — the same C4 from the original file. A file that genuinely preserved a drum part would contain percussion notes at their own pitches and times; this one contains one relabelled piano note. No drum track was recovered, and no instrument separation took place.
The same caution applies to the program edit. Changing C0 00 to C0 28 makes the parser say violin, but the 14 notes are byte-for-byte the same events. A program number is a playback hint, not evidence of what was recorded.
Every size on this page comes from a formula applied to the file's own length fields. Download the 169 B source and hash it; the sha256 begins 90795f6ff271.
| Quantity | Formula | Computed | From file |
|---|---|---|---|
| MIDI file size | 14 + (8 + 8) + (8 + 131) | 169 B | 169 B |
| Minimal MTrk chunk | 4 ID + 4 length + 4 End of Track event | 12 B | 12 B appended |
| File after adding a track | 169 + 12 | 181 B | 181 B |
| Program Change event | 1 delta + 1 status + 1 data | 3 B | 00 C0 00 at offset 42 |
| Channel / program edit | in-place replacement: 169 + 0 | 169 B | 169 B |
| Bytes per note | 169 / 14 | 12.07 B/note | parser confirms 14 notes |
| Tick duration | 60 / (120 × 480) | 0.001042 s = 1/960 s | 0 tempo events; 120 is a player default |
| C4 duration | 936 ticks / 960 | 0.975000 s | parser confirms 936 ticks |
| Note-on on the wire | 3 B × 10 bits / 31,250 bit/s | 0.96 ms | constant of the MIDI 1.0 serial spec |
The 120 in the tick-duration row is worth repeating: this file contains no Set Tempo event, so 120 BPM is a default the player supplies, not a value stored in the file. With PPQ 480, one tick is 60 / (120 × 480) = 1/960 second. If your converted file plays at the wrong speed, see MIDI wrong tempo after conversion.
These are the 14 notes parsed from the 169 B source on 8 November 2026, sorted by start tick then pitch. The eight odd-numbered rows are the intended C4–C5 scale; the six even-numbered rows are short octave-ghost artefacts of the transcription. All 14 sit on channel 0 in the original file. Seconds use the formula above.
| # | Note | MIDI | Velocity | Start (ticks) | Duration (ticks) | Channel |
|---|---|---|---|---|---|---|
| 1 | C4 | 60 | 91 | 0 | 936 | 0 |
| 2 | C5 | 72 | 38 | 0 | 100 | 0 |
| 3 | D4 | 62 | 91 | 959 | 947 | 0 |
| 4 | D5 | 74 | 36 | 959 | 89 | 0 |
| 5 | E4 | 64 | 95 | 1,918 | 936 | 0 |
| 6 | E5 | 76 | 34 | 1,918 | 89 | 0 |
| 7 | F4 | 65 | 94 | 2,877 | 937 | 0 |
| 8 | F5 | 77 | 39 | 2,877 | 78 | 0 |
| 9 | G4 | 67 | 96 | 3,837 | 959 | 0 |
| 10 | G5 | 79 | 36 | 3,837 | 78 | 0 |
| 11 | A4 | 69 | 95 | 4,806 | 937 | 0 |
| 12 | A5 | 81 | 32 | 4,806 | 78 | 0 |
| 13 | B4 | 71 | 95 | 5,755 | 959 | 0 |
| 14 | C5 | 72 | 98 | 6,713 | 914 | 0 |
In the channel-9 injected copy, only row 1 moves; rows 2–14 stay on channel 0. That single row is the entire "second track" the parser reports. If you want to remove the six ghost rows from a real conversion, see clean up MIDI.
.mid file with one note track. Every note is written on channel 0 with a piano program; there are no separate instrument parts.