1
1
mirror of https://github.com/wader/fq.git synced 2024-11-22 07:16:49 +03:00

midi: simplifed and cleaned up MIDI 'fq' tests:

- reduced format 0, format 1 and format 2 test files to basic MIDI skeleton
- reworked reference.mid file as a test/development sample only
- added fq tests for the single event MIDI files
- updated examples to use twinkle.mid
This commit is contained in:
twystd 2024-09-01 10:55:39 -07:00
parent a7d0cde9f6
commit a3a0a06932
18 changed files with 2477 additions and 1531 deletions

View File

@ -17,7 +17,7 @@ fq -d midi '.. | select(.event=="tempo")?.tempo' midi/twinkle.mid
3. Extract the key changes from a MIDI file
```
fq -d midi '.. | select(.event=="key_signature")?.key_signature' midi/key-signatures.mid
fq -d midi '.. | select(.event=="key_signature")?.key_signature' midi/twinkle.mid
```
4. Extract NoteOn events:

View File

@ -4,24 +4,24 @@
The test and example MIDI files are located in the _testdata/midi_ folder.
1. _format-0.mid_
MIDI format 0 reference file. Contains a single track with all supported MIDI events.
1. _reference.mid_
Reference MIDI file for testing/development only (it is not a valid MIDI file), with two tracks:
- _Track 0_: _empty_ track with only an _end-of-track_ event
- _Track 1_: _instrument_ track with sequential examples of all decoded MIDI events
2. _format-1.mid_
MIDI format 1 reference file. Contains two tracks:
- _Track 0_, a tempo track with the _Time Signature_ and _Tempo_ events
- _Track 1_, with all the other supported MIDI events
2. _format-0.mid_
Basic MIDI format 0 test file. Contains a single track with only a _track name_ and _end-of-track_ events.
3. _format-2.mid_
MIDI format 2 reference file. Contains two tracks:
- _Track 0_, a track with all supported MIDI events
- _Track 1_, a reversed version of _Track 0_
3. _format-1.mid_
Basic MIDI format 1 test file. Contains two tracks, each with only a _track name_ and _end-of-track_ events.
4. _empty.mid_
4. _format-2.mid_
Basic MIDI format 2 test file. Contains two tracks, each with only a _track name_ and _end-of-track_ events.
5. _empty.mid_
Empty MIDI file to verify MIDI decoder handles empty files.
5. _unknown_chunks.mid_
6. _unknown_chunks.mid_
MIDI file with non-MIDI chunks interleaved between the _MTrk_ track chunks.
6. _key_signatures.mid_
@ -34,7 +34,7 @@ Test file with all supported MIDI notes.
8. _twinkle.mid_
Sample MIDI file for the example queries in the help.
Sample valid MIDI file for the example queries in the help.
## MIDI event files

View File

@ -1,302 +1,30 @@
$ fq -d midi dv midi/format-0.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: midi/format-0.mid (midi) 0x0-0x118 (280)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x000|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x000| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x000| 00 00 | .. | [2]: 0 format 0x8-0xa (2)
0x000| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x000| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x118 (266)
| | | [0]{}: track 0xe-0x118 (266)
0x000| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x010|72 6b |rk |
0x010| 00 00 01 02 | .... | length: 258 0x12-0x16 (4)
| | | events[0:34]: 0x16-0x118 (258)
| | | [0]{}: metaevent 0x16-0x1c (6)
| | | time{}: 0x16-0x17 (1)
0x010| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x010| ff | . | status: 255 0x17-0x18 (1)
0x010| 00 | . | event: "sequence_number" (0) 0x18-0x19 (1)
0x010| 02 | . | length: 2 0x19-0x1a (1)
0x010| 00 17 | .. | sequence_number: 23 0x1a-0x1c (2)
| | | [1]{}: metaevent 0x1c-0x2d (17)
| | | time{}: 0x1c-0x1d (1)
0x010| 00 | . | delta: 0 0x1c-0x1d (1)
| | | tick: 0
0x010| ff | . | status: 255 0x1d-0x1e (1)
0x010| 01 | . | event: "text" (1) 0x1e-0x1f (1)
0x010| 0d| .| text: "This and That" 0x1f-0x2d (14)
0x020|54 68 69 73 20 61 6e 64 20 54 68 61 74 |This and That |
| | | [2]{}: metaevent 0x2d-0x35 (8)
| | | time{}: 0x2d-0x2e (1)
0x020| 00 | . | delta: 0 0x2d-0x2e (1)
| | | tick: 0
0x020| ff | . | status: 255 0x2e-0x2f (1)
0x020| 02| .| event: "copyright" (2) 0x2f-0x30 (1)
0x030|04 54 68 65 6d |.Them | copyright: "Them" 0x30-0x35 (5)
| | | [3]{}: metaevent 0x35-0x41 (12)
| | | time{}: 0x35-0x36 (1)
0x030| 00 | . | delta: 0 0x35-0x36 (1)
| | | tick: 0
0x030| ff | . | status: 255 0x36-0x37 (1)
0x030| 03 | . | event: "track_name" (3) 0x37-0x38 (1)
0x030| 08 46 6f 72 6d 61 74 20| .Format | track_name: "Format 0" 0x38-0x41 (9)
0x040|30 |0 |
| | | [4]{}: metaevent 0x41-0x4f (14)
| | | time{}: 0x41-0x42 (1)
0x040| 00 | . | delta: 0 0x41-0x42 (1)
| | | tick: 0
0x040| ff | . | status: 255 0x42-0x43 (1)
0x040| 04 | . | event: "instrument_name" (4) 0x43-0x44 (1)
0x040| 0a 44 69 64 67 65 72 69 64 6f 6f | .Didgeridoo | instrument_name: "Didgeridoo" 0x44-0x4f (11)
| | | [5]{}: metaevent 0x4f-0x5b (12)
| | | time{}: 0x4f-0x50 (1)
0x040| 00| .| delta: 0 0x4f-0x50 (1)
| | | tick: 0
0x050|ff |. | status: 255 0x50-0x51 (1)
0x050| 05 | . | event: "lyric" (5) 0x51-0x52 (1)
0x050| 08 4c 61 2d 6c 61 2d 6c 61 | .La-la-la | lyric: "La-la-la" 0x52-0x5b (9)
| | | [6]{}: metaevent 0x5b-0x6e (19)
| | | time{}: 0x5b-0x5c (1)
0x050| 00 | . | delta: 0 0x5b-0x5c (1)
| | | tick: 0
0x050| ff | . | status: 255 0x5c-0x5d (1)
0x050| 06 | . | event: "marker" (6) 0x5d-0x5e (1)
0x050| 0f 48| .H| marker: "Here Be Dragons" 0x5e-0x6e (16)
0x060|65 72 65 20 42 65 20 44 72 61 67 6f 6e 73 |ere Be Dragons |
| | | [7]{}: metaevent 0x6e-0x7e (16)
| | | time{}: 0x6e-0x6f (1)
0x060| 00 | . | delta: 0 0x6e-0x6f (1)
| | | tick: 0
0x060| ff| .| status: 255 0x6f-0x70 (1)
0x070|07 |. | event: "cue_point" (7) 0x70-0x71 (1)
0x070| 0c 4d 6f 72 65 20 63 6f 77 62 65 6c 6c | .More cowbell | cue_point: "More cowbell" 0x71-0x7e (13)
| | | [8]{}: metaevent 0x7e-0x88 (10)
| | | time{}: 0x7e-0x7f (1)
0x070| 00 | . | delta: 0 0x7e-0x7f (1)
| | | tick: 0
0x070| ff| .| status: 255 0x7f-0x80 (1)
0x080|08 |. | event: "program_name" (8) 0x80-0x81 (1)
0x080| 06 45 73 63 61 70 65 | .Escape | program_name: "Escape" 0x81-0x88 (7)
| | | [9]{}: metaevent 0x88-0x94 (12)
| | | time{}: 0x88-0x89 (1)
0x080| 00 | . | delta: 0 0x88-0x89 (1)
| | | tick: 0
0x080| ff | . | status: 255 0x89-0x8a (1)
0x080| 09 | . | event: "device_name" (9) 0x8a-0x8b (1)
0x080| 08 54 68 65 54| .TheT| device_name: "TheThing" 0x8b-0x94 (9)
0x090|68 69 6e 67 |hing |
| | | [10]{}: metaevent 0x94-0x99 (5)
| | | time{}: 0x94-0x95 (1)
0x090| 00 | . | delta: 0 0x94-0x95 (1)
| | | tick: 0
0x090| ff | . | status: 255 0x95-0x96 (1)
0x090| 20 | | event: "midi_channel_prefix" (32) 0x96-0x97 (1)
0x090| 01 | . | length: 1 0x97-0x98 (1)
0x090| 0d | . | midi_channel_prefix: 13 0x98-0x99 (1)
| | | [11]{}: metaevent 0x99-0x9e (5)
| | | time{}: 0x99-0x9a (1)
0x090| 00 | . | delta: 0 0x99-0x9a (1)
| | | tick: 0
0x090| ff | . | status: 255 0x9a-0x9b (1)
0x090| 21 | ! | event: "midi_port" (33) 0x9b-0x9c (1)
0x090| 01 | . | length: 1 0x9c-0x9d (1)
0x090| 70 | p | midi_port: 112 0x9d-0x9e (1)
| | | [12]{}: metaevent 0x9e-0xa5 (7)
| | | time{}: 0x9e-0x9f (1)
0x090| 00 | . | delta: 0 0x9e-0x9f (1)
| | | tick: 0
0x090| ff| .| status: 255 0x9f-0xa0 (1)
0x0a0|51 |Q | event: "tempo" (81) 0xa0-0xa1 (1)
0x0a0| 03 | . | length: 3 0xa1-0xa2 (1)
0x0a0| 07 a1 20 | .. | tempo: 500000 0xa2-0xa5 (3)
| | | [13]{}: metaevent 0xa5-0xae (9)
| | | time{}: 0xa5-0xa6 (1)
0x0a0| 00 | . | delta: 0 0xa5-0xa6 (1)
| | | tick: 0
0x0a0| ff | . | status: 255 0xa6-0xa7 (1)
0x0a0| 54 | T | event: "smpte_offset" (84) 0xa7-0xa8 (1)
0x0a0| 05 | . | length: 5 0xa8-0xa9 (1)
| | | smpte_offset{}: 0xa9-0xae (5)
0x0a0| 4d | M | framerate: 25 (1) 0xa9-0xa9.2 (0.2)
0x0a0| 4d | M | hour: 13 0xa9.2-0xaa (0.6)
0x0a0| 2d | - | minute: 45 0xaa-0xab (1)
0x0a0| 3b | ; | second: 59 0xab-0xac (1)
0x0a0| 07 | . | frames: 7 0xac-0xad (1)
0x0a0| 27 | ' | fractions: 39 0xad-0xae (1)
| | | [14]{}: metaevent 0xae-0xb6 (8)
| | | time{}: 0xae-0xaf (1)
0x0a0| 00 | . | delta: 0 0xae-0xaf (1)
| | | tick: 0
0x0a0| ff| .| status: 255 0xaf-0xb0 (1)
0x0b0|58 |X | event: "time_signature" (88) 0xb0-0xb1 (1)
0x0b0| 04 | . | length: 4 0xb1-0xb2 (1)
| | | time_signature{}: 0xb2-0xb6 (4)
0x0b0| 04 | . | numerator: 4 0xb2-0xb3 (1)
0x0b0| 02 | . | denominator: 4 0xb3-0xb4 (1)
0x0b0| 18 | . | ticks_per_click: 24 0xb4-0xb5 (1)
0x0b0| 08 | . | thirty_seconds_per_quarter: 8 0xb5-0xb6 (1)
| | | [15]{}: metaevent 0xb6-0xbc (6)
| | | time{}: 0xb6-0xb7 (1)
0x0b0| 00 | . | delta: 0 0xb6-0xb7 (1)
| | | tick: 0
0x0b0| ff | . | status: 255 0xb7-0xb8 (1)
0x0b0| 59 | Y | event: "key_signature" (89) 0xb8-0xb9 (1)
0x0b0| 02 | . | length: 2 0xb9-0xba (1)
0x0b0| 00 01 | .. | key_signature: "A minor" (1) 0xba-0xbc (2)
| | | [16]{}: metaevent 0xbc-0xc6 (10)
| | | time{}: 0xbc-0xbd (1)
0x0b0| 00 | . | delta: 0 0xbc-0xbd (1)
| | | tick: 0
0x0b0| ff | . | status: 255 0xbd-0xbe (1)
0x0b0| 7f | . | event: "sequencer_specific_event" (127) 0xbe-0xbf (1)
0x0b0| 06| .| length: 6 0xbf-0xc0 (1)
| | | sequencer_specific_event{}: 0xc0-0xc6 (6)
0x0c0|00 00 3b |..; | manufacturer: "Mark Of The Unicorn (MOTU)" (59) 0xc0-0xc3 (3)
0x0c0| 3a 4c 5e | :L^ | data: raw bits 0xc3-0xc6 (3)
| | | [17]{}: midievent 0xc6-0xcb (5)
| | | time{}: 0xc6-0xc8 (2)
0x0c0| 83 60 | .` | delta: 480 0xc6-0xc8 (2)
| | | tick: 480
0x0c0| 80 | . | event: "note_off" (128) 0xc8-0xc8.4 (0.4)
0x0c0| 80 | . | channel: 0 0xc8.4-0xc9 (0.4)
| | | note_off{}: 0xc9-0xcb (2)
0x0c0| 30 | 0 | note: "C3" (48) 0xc9-0xca (1)
0x0c0| 40 | @ | velocity: 64 0xca-0xcb (1)
| | | [18]{}: midievent 0xcb-0xcf (4)
| | | time{}: 0xcb-0xcc (1)
0x0c0| 00 | . | delta: 0 0xcb-0xcc (1)
| | | tick: 480
0x0c0| 90 | . | event: "note_on" (144) 0xcc-0xcc.4 (0.4)
0x0c0| 90 | . | channel: 0 0xcc.4-0xcd (0.4)
| | | note_on{}: 0xcd-0xcf (2)
0x0c0| 30 | 0 | note: "C3" (48) 0xcd-0xce (1)
0x0c0| 48 | H | velocity: 72 0xce-0xcf (1)
| | | [19]{}: midievent 0xcf-0xd3 (4)
| | | time{}: 0xcf-0xd0 (1)
0x0c0| 00| .| delta: 0 0xcf-0xd0 (1)
| | | tick: 480
0x0d0|92 |. | event: "note_on" (144) 0xd0-0xd0.4 (0.4)
0x0d0|92 |. | channel: 2 0xd0.4-0xd1 (0.4)
| | | note_on{}: 0xd1-0xd3 (2)
0x0d0| 31 | 1 | note: "C♯3/D♭3" (49) 0xd1-0xd2 (1)
0x0d0| 48 | H | velocity: 72 0xd2-0xd3 (1)
| | | [20]{}: midievent 0xd3-0xd6 (3)
| | | time{}: 0xd3-0xd4 (1)
0x0d0| 00 | . | delta: 0 0xd3-0xd4 (1)
| | | tick: 480
| | | event: "note_on" (144)
| | | channel: 2
| | | note_on{}: 0xd4-0xd6 (2)
0x0d0| 30 | 0 | note: "C3" (48) 0xd4-0xd5 (1)
0x0d0| 64 | d | velocity: 100 0xd5-0xd6 (1)
| | | [21]{}: midievent 0xd6-0xd9 (3)
| | | time{}: 0xd6-0xd7 (1)
0x0d0| 00 | . | delta: 0 0xd6-0xd7 (1)
| | | tick: 480
0x0d0| a0 | . | event: "polyphonic_pressure" (160) 0xd7-0xd7.4 (0.4)
0x0d0| a0 | . | channel: 0 0xd7.4-0xd8 (0.4)
0x0d0| 64 | d | polyphonic_pressure: 100 0xd8-0xd9 (1)
| | | [22]{}: midievent 0xd9-0xdd (4)
| | | time{}: 0xd9-0xda (1)
0x0d0| 00 | . | delta: 0 0xd9-0xda (1)
| | | tick: 480
0x0d0| b0 | . | event: "controller" (176) 0xda-0xda.4 (0.4)
0x0d0| b0 | . | channel: 0 0xda.4-0xdb (0.4)
| | | controller{}: 0xdb-0xdd (2)
0x0d0| 00 | . | controller: "Bank Select (MSB)" (0) 0xdb-0xdc (1)
0x0d0| 05 | . | value: 5 0xdc-0xdd (1)
| | | [23]{}: midievent 0xdd-0xe1 (4)
| | | time{}: 0xdd-0xde (1)
0x0d0| 00 | . | delta: 0 0xdd-0xde (1)
| | | tick: 480
0x0d0| b0 | . | event: "controller" (176) 0xde-0xde.4 (0.4)
0x0d0| b0 | . | channel: 0 0xde.4-0xdf (0.4)
| | | controller{}: 0xdf-0xe1 (2)
0x0d0| 20| | controller: "Bank Select (LSB)" (32) 0xdf-0xe0 (1)
0x0e0|21 |! | value: 33 0xe0-0xe1 (1)
| | | [24]{}: midievent 0xe1-0xe5 (4)
| | | time{}: 0xe1-0xe2 (1)
0x0e0| 00 | . | delta: 0 0xe1-0xe2 (1)
| | | tick: 480
0x0e0| b0 | . | event: "controller" (176) 0xe2-0xe2.4 (0.4)
0x0e0| b0 | . | channel: 0 0xe2.4-0xe3 (0.4)
| | | controller{}: 0xe3-0xe5 (2)
0x0e0| 65 | e | controller: "Registered Parameter Number (MSB)" (101) 0xe3-0xe4 (1)
0x0e0| 00 | . | value: 0 0xe4-0xe5 (1)
| | | [25]{}: midievent 0xe5-0xe8 (3)
| | | time{}: 0xe5-0xe6 (1)
0x0e0| 00 | . | delta: 0 0xe5-0xe6 (1)
| | | tick: 480
0x0e0| c0 | . | event: "program_change" (192) 0xe6-0xe6.4 (0.4)
0x0e0| c0 | . | channel: 0 0xe6.4-0xe7 (0.4)
0x0e0| 19 | . | program_change: 25 0xe7-0xe8 (1)
| | | [26]{}: midievent 0xe8-0xeb (3)
| | | time{}: 0xe8-0xe9 (1)
0x0e0| 00 | . | delta: 0 0xe8-0xe9 (1)
| | | tick: 480
0x0e0| d0 | . | event: "channel_pressure" (208) 0xe9-0xe9.4 (0.4)
0x0e0| d0 | . | channel: 0 0xe9.4-0xea (0.4)
0x0e0| 07 | . | channel_pressure: 7 0xea-0xeb (1)
| | | [27]{}: midievent 0xeb-0xf0 (5)
| | | time{}: 0xeb-0xed (2)
0x0e0| 81 70 | .p | delta: 240 0xeb-0xed (2)
| | | tick: 720
0x0e0| e0 | . | event: "pitch_bend" (224) 0xed-0xed.4 (0.4)
0x0e0| e0 | . | channel: 0 0xed.4-0xee (0.4)
0x0e0| 00 08| ..| pitch_bend: -8184 0xee-0xf0 (2)
| | | [28]{}: sysex 0xf0-0xf8 (8)
| | | time{}: 0xf0-0xf1 (1)
0x0f0|00 |. | delta: 0 0xf0-0xf1 (1)
| | | tick: 720
0x0f0| f0 | . | event: "sysex_message" (240) 0xf1-0xf2 (1)
0x0f0| 05 | . | length: 5 0xf2-0xf3 (1)
| | | sysex_message{}: 0xf3-0xf8 (5)
0x0f0| 7e | ~ | manufacturer: "Non-RealTime Extensions" (126) 0xf3-0xf4 (1)
0x0f0| 00 09 01 | ... | data: raw bits 0xf4-0xf7 (3)
0x0f0| f7 | . | end_of_message: 247 0xf7-0xf8 (1)
| | | [29]{}: sysex 0xf8-0xfe (6)
| | | time{}: 0xf8-0xf9 (1)
0x0f0| 00 | . | delta: 0 0xf8-0xf9 (1)
| | | tick: 720
0x0f0| f0 | . | event: "sysex_message" (240) 0xf9-0xfa (1)
0x0f0| 03 | . | length: 3 0xfa-0xfb (1)
| | | sysex_message{}: 0xfb-0xfe (3)
0x0f0| 43 | C | manufacturer: "Yamaha" (67) 0xfb-0xfc (1)
0x0f0| 12 00 | .. | data: raw bits 0xfc-0xfe (2)
| | | continued: true
| | | [30]{}: sysex 0xfe-0x108 (10)
| | | time{}: 0xfe-0x100 (2)
0x0f0| 81 48| .H| delta: 200 0xfe-0x100 (2)
| | | tick: 920
0x100|f7 |. | event: "sysex_continuation" (247) 0x100-0x101 (1)
0x100| 06 | . | length: 6 0x101-0x102 (1)
| | | sysex_continuation{}: 0x102-0x108 (6)
0x100| 43 12 00 43 12 00 | C..C.. | data: raw bits 0x102-0x108 (6)
| | | continued: true
| | | [31]{}: sysex 0x108-0x10f (7)
| | | time{}: 0x108-0x109 (1)
0x100| 64 | d | delta: 100 0x108-0x109 (1)
| | | tick: 1020
0x100| f7 | . | event: "sysex_continuation" (247) 0x109-0x10a (1)
0x100| 04 | . | length: 4 0x10a-0x10b (1)
| | | sysex_continuation{}: 0x10b-0x10f (4)
0x100| 43 12 00 | C.. | data: raw bits 0x10b-0x10e (3)
0x100| f7 | . | end_of_message: 247 0x10e-0x10f (1)
| | | [32]{}: sysex 0x10f-0x114 (5)
| | | time{}: 0x10f-0x110 (1)
0x100| 00| .| delta: 0 0x10f-0x110 (1)
| | | tick: 1020
0x110|f7 |. | event: "sysex_escape" (247) 0x110-0x111 (1)
0x110| 02 | . | length: 2 0x111-0x112 (1)
| | | sysex_escape{}: 0x112-0x114 (2)
0x110| f3 01 | .. | data: raw bits 0x112-0x114 (2)
| | | [33]{}: metaevent 0x114-0x118 (4)
| | | time{}: 0x114-0x115 (1)
0x110| 00 | . | delta: 0 0x114-0x115 (1)
| | | tick: 1020
0x110| ff | . | status: 255 0x115-0x116 (1)
0x110| 2f | / | event: "end_of_track" (47) 0x116-0x117 (1)
0x110| 00| | .| | length: 0 0x117-0x118 (1)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: midi/format-0.mid (midi) 0x0-0x26 (38)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 00 | .. | [2]: 0 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x26 (24)
| | | [0]{}: track 0xe-0x26 (24)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 10 | .... | length: 16 0x12-0x16 (4)
| | | events[0:2]: 0x16-0x26 (16)
| | | [0]{}: metaevent 0x16-0x22 (12)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 03 | . | event: "track_name" (3) 0x18-0x19 (1)
0x10| 08 46 6f 72 6d 61 74| .Format| track_name: "Format 0" 0x19-0x22 (9)
0x20|20 30 | 0 |
| | | [1]{}: metaevent 0x22-0x26 (4)
| | | time{}: 0x22-0x23 (1)
0x20| 00 | . | delta: 0 0x22-0x23 (1)
| | | tick: 0
0x20| ff | . | status: 255 0x23-0x24 (1)
0x20| 2f | / | event: "end_of_track" (47) 0x24-0x25 (1)
0x20| 00| | .| | length: 0 0x25-0x26 (1)

View File

@ -1,324 +1,49 @@
$ fq -d midi dv midi/format-1.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: midi/format-1.mid (midi) 0x0-0x137 (311)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x000|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x000| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x000| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x000| 00 02 | .. | [3]: 2 tracks 0xa-0xc (2)
0x000| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:2]: 0xe-0x137 (297)
| | | [0]{}: track 0xe-0x35 (39)
0x000| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x010|72 6b |rk |
0x010| 00 00 00 1f | .... | length: 31 0x12-0x16 (4)
| | | events[0:4]: 0x16-0x35 (31)
| | | [0]{}: metaevent 0x16-0x22 (12)
| | | time{}: 0x16-0x17 (1)
0x010| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x010| ff | . | status: 255 0x17-0x18 (1)
0x010| 03 | . | event: "track_name" (3) 0x18-0x19 (1)
0x010| 08 46 6f 72 6d 61 74| .Format| track_name: "Format 1" 0x19-0x22 (9)
0x020|20 31 | 1 |
| | | [1]{}: metaevent 0x22-0x29 (7)
| | | time{}: 0x22-0x23 (1)
0x020| 00 | . | delta: 0 0x22-0x23 (1)
| | | tick: 0
0x020| ff | . | status: 255 0x23-0x24 (1)
0x020| 51 | Q | event: "tempo" (81) 0x24-0x25 (1)
0x020| 03 | . | length: 3 0x25-0x26 (1)
0x020| 07 a1 20 | .. | tempo: 500000 0x26-0x29 (3)
| | | [2]{}: metaevent 0x29-0x31 (8)
| | | time{}: 0x29-0x2a (1)
0x020| 00 | . | delta: 0 0x29-0x2a (1)
| | | tick: 0
0x020| ff | . | status: 255 0x2a-0x2b (1)
0x020| 58 | X | event: "time_signature" (88) 0x2b-0x2c (1)
0x020| 04 | . | length: 4 0x2c-0x2d (1)
| | | time_signature{}: 0x2d-0x31 (4)
0x020| 04 | . | numerator: 4 0x2d-0x2e (1)
0x020| 02 | . | denominator: 4 0x2e-0x2f (1)
0x020| 18| .| ticks_per_click: 24 0x2f-0x30 (1)
0x030|08 |. | thirty_seconds_per_quarter: 8 0x30-0x31 (1)
| | | [3]{}: metaevent 0x31-0x35 (4)
| | | time{}: 0x31-0x32 (1)
0x030| 00 | . | delta: 0 0x31-0x32 (1)
| | | tick: 0
0x030| ff | . | status: 255 0x32-0x33 (1)
0x030| 2f | / | event: "end_of_track" (47) 0x33-0x34 (1)
0x030| 00 | . | length: 0 0x34-0x35 (1)
| | | [1]{}: track 0x35-0x137 (258)
0x030| 4d 54 72 6b | MTrk | tag: "MTrk" 0x35-0x39 (4)
0x030| 00 00 00 fa | .... | length: 250 0x39-0x3d (4)
| | | events[0:32]: 0x3d-0x137 (250)
| | | [0]{}: metaevent 0x3d-0x43 (6)
| | | time{}: 0x3d-0x3e (1)
0x030| 00 | . | delta: 0 0x3d-0x3e (1)
| | | tick: 0
0x030| ff | . | status: 255 0x3e-0x3f (1)
0x030| 00| .| event: "sequence_number" (0) 0x3f-0x40 (1)
0x040|02 |. | length: 2 0x40-0x41 (1)
0x040| 00 17 | .. | sequence_number: 23 0x41-0x43 (2)
| | | [1]{}: metaevent 0x43-0x54 (17)
| | | time{}: 0x43-0x44 (1)
0x040| 00 | . | delta: 0 0x43-0x44 (1)
| | | tick: 0
0x040| ff | . | status: 255 0x44-0x45 (1)
0x040| 01 | . | event: "text" (1) 0x45-0x46 (1)
0x040| 0d 54 68 69 73 20 61 6e 64 20| .This and | text: "This and That" 0x46-0x54 (14)
0x050|54 68 61 74 |That |
| | | [2]{}: metaevent 0x54-0x5c (8)
| | | time{}: 0x54-0x55 (1)
0x050| 00 | . | delta: 0 0x54-0x55 (1)
| | | tick: 0
0x050| ff | . | status: 255 0x55-0x56 (1)
0x050| 02 | . | event: "copyright" (2) 0x56-0x57 (1)
0x050| 04 54 68 65 6d | .Them | copyright: "Them" 0x57-0x5c (5)
| | | [3]{}: metaevent 0x5c-0x6f (19)
| | | time{}: 0x5c-0x5d (1)
0x050| 00 | . | delta: 0 0x5c-0x5d (1)
| | | tick: 0
0x050| ff | . | status: 255 0x5d-0x5e (1)
0x050| 03 | . | event: "track_name" (3) 0x5e-0x5f (1)
0x050| 0f| .| track_name: "Acoustic Guitar" 0x5f-0x6f (16)
0x060|41 63 6f 75 73 74 69 63 20 47 75 69 74 61 72 |Acoustic Guitar |
| | | [4]{}: metaevent 0x6f-0x7d (14)
| | | time{}: 0x6f-0x70 (1)
0x060| 00| .| delta: 0 0x6f-0x70 (1)
| | | tick: 0
0x070|ff |. | status: 255 0x70-0x71 (1)
0x070| 04 | . | event: "instrument_name" (4) 0x71-0x72 (1)
0x070| 0a 44 69 64 67 65 72 69 64 6f 6f | .Didgeridoo | instrument_name: "Didgeridoo" 0x72-0x7d (11)
| | | [5]{}: metaevent 0x7d-0x89 (12)
| | | time{}: 0x7d-0x7e (1)
0x070| 00 | . | delta: 0 0x7d-0x7e (1)
| | | tick: 0
0x070| ff | . | status: 255 0x7e-0x7f (1)
0x070| 05| .| event: "lyric" (5) 0x7f-0x80 (1)
0x080|08 4c 61 2d 6c 61 2d 6c 61 |.La-la-la | lyric: "La-la-la" 0x80-0x89 (9)
| | | [6]{}: metaevent 0x89-0x9c (19)
| | | time{}: 0x89-0x8a (1)
0x080| 00 | . | delta: 0 0x89-0x8a (1)
| | | tick: 0
0x080| ff | . | status: 255 0x8a-0x8b (1)
0x080| 06 | . | event: "marker" (6) 0x8b-0x8c (1)
0x080| 0f 48 65 72| .Her| marker: "Here Be Dragons" 0x8c-0x9c (16)
0x090|65 20 42 65 20 44 72 61 67 6f 6e 73 |e Be Dragons |
| | | [7]{}: metaevent 0x9c-0xac (16)
| | | time{}: 0x9c-0x9d (1)
0x090| 00 | . | delta: 0 0x9c-0x9d (1)
| | | tick: 0
0x090| ff | . | status: 255 0x9d-0x9e (1)
0x090| 07 | . | event: "cue_point" (7) 0x9e-0x9f (1)
0x090| 0c| .| cue_point: "More cowbell" 0x9f-0xac (13)
0x0a0|4d 6f 72 65 20 63 6f 77 62 65 6c 6c |More cowbell |
| | | [8]{}: metaevent 0xac-0xb6 (10)
| | | time{}: 0xac-0xad (1)
0x0a0| 00 | . | delta: 0 0xac-0xad (1)
| | | tick: 0
0x0a0| ff | . | status: 255 0xad-0xae (1)
0x0a0| 08 | . | event: "program_name" (8) 0xae-0xaf (1)
0x0a0| 06| .| program_name: "Escape" 0xaf-0xb6 (7)
0x0b0|45 73 63 61 70 65 |Escape |
| | | [9]{}: metaevent 0xb6-0xc2 (12)
| | | time{}: 0xb6-0xb7 (1)
0x0b0| 00 | . | delta: 0 0xb6-0xb7 (1)
| | | tick: 0
0x0b0| ff | . | status: 255 0xb7-0xb8 (1)
0x0b0| 09 | . | event: "device_name" (9) 0xb8-0xb9 (1)
0x0b0| 08 54 68 65 54 68 69| .TheThi| device_name: "TheThing" 0xb9-0xc2 (9)
0x0c0|6e 67 |ng |
| | | [10]{}: metaevent 0xc2-0xc7 (5)
| | | time{}: 0xc2-0xc3 (1)
0x0c0| 00 | . | delta: 0 0xc2-0xc3 (1)
| | | tick: 0
0x0c0| ff | . | status: 255 0xc3-0xc4 (1)
0x0c0| 20 | | event: "midi_channel_prefix" (32) 0xc4-0xc5 (1)
0x0c0| 01 | . | length: 1 0xc5-0xc6 (1)
0x0c0| 0d | . | midi_channel_prefix: 13 0xc6-0xc7 (1)
| | | [11]{}: metaevent 0xc7-0xcc (5)
| | | time{}: 0xc7-0xc8 (1)
0x0c0| 00 | . | delta: 0 0xc7-0xc8 (1)
| | | tick: 0
0x0c0| ff | . | status: 255 0xc8-0xc9 (1)
0x0c0| 21 | ! | event: "midi_port" (33) 0xc9-0xca (1)
0x0c0| 01 | . | length: 1 0xca-0xcb (1)
0x0c0| 70 | p | midi_port: 112 0xcb-0xcc (1)
| | | [12]{}: metaevent 0xcc-0xd5 (9)
| | | time{}: 0xcc-0xcd (1)
0x0c0| 00 | . | delta: 0 0xcc-0xcd (1)
| | | tick: 0
0x0c0| ff | . | status: 255 0xcd-0xce (1)
0x0c0| 54 | T | event: "smpte_offset" (84) 0xce-0xcf (1)
0x0c0| 05| .| length: 5 0xcf-0xd0 (1)
| | | smpte_offset{}: 0xd0-0xd5 (5)
0x0d0|4d |M | framerate: 25 (1) 0xd0-0xd0.2 (0.2)
0x0d0|4d |M | hour: 13 0xd0.2-0xd1 (0.6)
0x0d0| 2d | - | minute: 45 0xd1-0xd2 (1)
0x0d0| 3b | ; | second: 59 0xd2-0xd3 (1)
0x0d0| 07 | . | frames: 7 0xd3-0xd4 (1)
0x0d0| 27 | ' | fractions: 39 0xd4-0xd5 (1)
| | | [13]{}: metaevent 0xd5-0xdb (6)
| | | time{}: 0xd5-0xd6 (1)
0x0d0| 00 | . | delta: 0 0xd5-0xd6 (1)
| | | tick: 0
0x0d0| ff | . | status: 255 0xd6-0xd7 (1)
0x0d0| 59 | Y | event: "key_signature" (89) 0xd7-0xd8 (1)
0x0d0| 02 | . | length: 2 0xd8-0xd9 (1)
0x0d0| 00 01 | .. | key_signature: "A minor" (1) 0xd9-0xdb (2)
| | | [14]{}: metaevent 0xdb-0xe5 (10)
| | | time{}: 0xdb-0xdc (1)
0x0d0| 00 | . | delta: 0 0xdb-0xdc (1)
| | | tick: 0
0x0d0| ff | . | status: 255 0xdc-0xdd (1)
0x0d0| 7f | . | event: "sequencer_specific_event" (127) 0xdd-0xde (1)
0x0d0| 06 | . | length: 6 0xde-0xdf (1)
| | | sequencer_specific_event{}: 0xdf-0xe5 (6)
0x0d0| 00| .| manufacturer: "Mark Of The Unicorn (MOTU)" (59) 0xdf-0xe2 (3)
0x0e0|00 3b |.; |
0x0e0| 3a 4c 5e | :L^ | data: raw bits 0xe2-0xe5 (3)
| | | [15]{}: midievent 0xe5-0xea (5)
| | | time{}: 0xe5-0xe7 (2)
0x0e0| 83 60 | .` | delta: 480 0xe5-0xe7 (2)
| | | tick: 480
0x0e0| 80 | . | event: "note_off" (128) 0xe7-0xe7.4 (0.4)
0x0e0| 80 | . | channel: 0 0xe7.4-0xe8 (0.4)
| | | note_off{}: 0xe8-0xea (2)
0x0e0| 30 | 0 | note: "C3" (48) 0xe8-0xe9 (1)
0x0e0| 40 | @ | velocity: 64 0xe9-0xea (1)
| | | [16]{}: midievent 0xea-0xee (4)
| | | time{}: 0xea-0xeb (1)
0x0e0| 00 | . | delta: 0 0xea-0xeb (1)
| | | tick: 480
0x0e0| 90 | . | event: "note_on" (144) 0xeb-0xeb.4 (0.4)
0x0e0| 90 | . | channel: 0 0xeb.4-0xec (0.4)
| | | note_on{}: 0xec-0xee (2)
0x0e0| 30 | 0 | note: "C3" (48) 0xec-0xed (1)
0x0e0| 48 | H | velocity: 72 0xed-0xee (1)
| | | [17]{}: midievent 0xee-0xf2 (4)
| | | time{}: 0xee-0xef (1)
0x0e0| 00 | . | delta: 0 0xee-0xef (1)
| | | tick: 480
0x0e0| 92| .| event: "note_on" (144) 0xef-0xef.4 (0.4)
0x0e0| 92| .| channel: 2 0xef.4-0xf0 (0.4)
| | | note_on{}: 0xf0-0xf2 (2)
0x0f0|31 |1 | note: "C♯3/D♭3" (49) 0xf0-0xf1 (1)
0x0f0| 48 | H | velocity: 72 0xf1-0xf2 (1)
| | | [18]{}: midievent 0xf2-0xf5 (3)
| | | time{}: 0xf2-0xf3 (1)
0x0f0| 00 | . | delta: 0 0xf2-0xf3 (1)
| | | tick: 480
| | | event: "note_on" (144)
| | | channel: 2
| | | note_on{}: 0xf3-0xf5 (2)
0x0f0| 30 | 0 | note: "C3" (48) 0xf3-0xf4 (1)
0x0f0| 64 | d | velocity: 100 0xf4-0xf5 (1)
| | | [19]{}: midievent 0xf5-0xf8 (3)
| | | time{}: 0xf5-0xf6 (1)
0x0f0| 00 | . | delta: 0 0xf5-0xf6 (1)
| | | tick: 480
0x0f0| a0 | . | event: "polyphonic_pressure" (160) 0xf6-0xf6.4 (0.4)
0x0f0| a0 | . | channel: 0 0xf6.4-0xf7 (0.4)
0x0f0| 64 | d | polyphonic_pressure: 100 0xf7-0xf8 (1)
| | | [20]{}: midievent 0xf8-0xfc (4)
| | | time{}: 0xf8-0xf9 (1)
0x0f0| 00 | . | delta: 0 0xf8-0xf9 (1)
| | | tick: 480
0x0f0| b0 | . | event: "controller" (176) 0xf9-0xf9.4 (0.4)
0x0f0| b0 | . | channel: 0 0xf9.4-0xfa (0.4)
| | | controller{}: 0xfa-0xfc (2)
0x0f0| 00 | . | controller: "Bank Select (MSB)" (0) 0xfa-0xfb (1)
0x0f0| 05 | . | value: 5 0xfb-0xfc (1)
| | | [21]{}: midievent 0xfc-0x100 (4)
| | | time{}: 0xfc-0xfd (1)
0x0f0| 00 | . | delta: 0 0xfc-0xfd (1)
| | | tick: 480
0x0f0| b0 | . | event: "controller" (176) 0xfd-0xfd.4 (0.4)
0x0f0| b0 | . | channel: 0 0xfd.4-0xfe (0.4)
| | | controller{}: 0xfe-0x100 (2)
0x0f0| 20 | | controller: "Bank Select (LSB)" (32) 0xfe-0xff (1)
0x0f0| 21| !| value: 33 0xff-0x100 (1)
| | | [22]{}: midievent 0x100-0x104 (4)
| | | time{}: 0x100-0x101 (1)
0x100|00 |. | delta: 0 0x100-0x101 (1)
| | | tick: 480
0x100| b0 | . | event: "controller" (176) 0x101-0x101.4 (0.4)
0x100| b0 | . | channel: 0 0x101.4-0x102 (0.4)
| | | controller{}: 0x102-0x104 (2)
0x100| 65 | e | controller: "Registered Parameter Number (MSB)" (101) 0x102-0x103 (1)
0x100| 00 | . | value: 0 0x103-0x104 (1)
| | | [23]{}: midievent 0x104-0x107 (3)
| | | time{}: 0x104-0x105 (1)
0x100| 00 | . | delta: 0 0x104-0x105 (1)
| | | tick: 480
0x100| c0 | . | event: "program_change" (192) 0x105-0x105.4 (0.4)
0x100| c0 | . | channel: 0 0x105.4-0x106 (0.4)
0x100| 19 | . | program_change: 25 0x106-0x107 (1)
| | | [24]{}: midievent 0x107-0x10a (3)
| | | time{}: 0x107-0x108 (1)
0x100| 00 | . | delta: 0 0x107-0x108 (1)
| | | tick: 480
0x100| d0 | . | event: "channel_pressure" (208) 0x108-0x108.4 (0.4)
0x100| d0 | . | channel: 0 0x108.4-0x109 (0.4)
0x100| 07 | . | channel_pressure: 7 0x109-0x10a (1)
| | | [25]{}: midievent 0x10a-0x10f (5)
| | | time{}: 0x10a-0x10c (2)
0x100| 81 70 | .p | delta: 240 0x10a-0x10c (2)
| | | tick: 720
0x100| e0 | . | event: "pitch_bend" (224) 0x10c-0x10c.4 (0.4)
0x100| e0 | . | channel: 0 0x10c.4-0x10d (0.4)
0x100| 00 08 | .. | pitch_bend: -8184 0x10d-0x10f (2)
| | | [26]{}: sysex 0x10f-0x117 (8)
| | | time{}: 0x10f-0x110 (1)
0x100| 00| .| delta: 0 0x10f-0x110 (1)
| | | tick: 720
0x110|f0 |. | event: "sysex_message" (240) 0x110-0x111 (1)
0x110| 05 | . | length: 5 0x111-0x112 (1)
| | | sysex_message{}: 0x112-0x117 (5)
0x110| 7e | ~ | manufacturer: "Non-RealTime Extensions" (126) 0x112-0x113 (1)
0x110| 00 09 01 | ... | data: raw bits 0x113-0x116 (3)
0x110| f7 | . | end_of_message: 247 0x116-0x117 (1)
| | | [27]{}: sysex 0x117-0x11d (6)
| | | time{}: 0x117-0x118 (1)
0x110| 00 | . | delta: 0 0x117-0x118 (1)
| | | tick: 720
0x110| f0 | . | event: "sysex_message" (240) 0x118-0x119 (1)
0x110| 03 | . | length: 3 0x119-0x11a (1)
| | | sysex_message{}: 0x11a-0x11d (3)
0x110| 43 | C | manufacturer: "Yamaha" (67) 0x11a-0x11b (1)
0x110| 12 00 | .. | data: raw bits 0x11b-0x11d (2)
| | | continued: true
| | | [28]{}: sysex 0x11d-0x127 (10)
| | | time{}: 0x11d-0x11f (2)
0x110| 81 48 | .H | delta: 200 0x11d-0x11f (2)
| | | tick: 920
0x110| f7| .| event: "sysex_continuation" (247) 0x11f-0x120 (1)
0x120|06 |. | length: 6 0x120-0x121 (1)
| | | sysex_continuation{}: 0x121-0x127 (6)
0x120| 43 12 00 43 12 00 | C..C.. | data: raw bits 0x121-0x127 (6)
| | | continued: true
| | | [29]{}: sysex 0x127-0x12e (7)
| | | time{}: 0x127-0x128 (1)
0x120| 64 | d | delta: 100 0x127-0x128 (1)
| | | tick: 1020
0x120| f7 | . | event: "sysex_continuation" (247) 0x128-0x129 (1)
0x120| 04 | . | length: 4 0x129-0x12a (1)
| | | sysex_continuation{}: 0x12a-0x12e (4)
0x120| 43 12 00 | C.. | data: raw bits 0x12a-0x12d (3)
0x120| f7 | . | end_of_message: 247 0x12d-0x12e (1)
| | | [30]{}: sysex 0x12e-0x133 (5)
| | | time{}: 0x12e-0x12f (1)
0x120| 00 | . | delta: 0 0x12e-0x12f (1)
| | | tick: 1020
0x120| f7| .| event: "sysex_escape" (247) 0x12f-0x130 (1)
0x130|02 |. | length: 2 0x130-0x131 (1)
| | | sysex_escape{}: 0x131-0x133 (2)
0x130| f3 01 | .. | data: raw bits 0x131-0x133 (2)
| | | [31]{}: metaevent 0x133-0x137 (4)
| | | time{}: 0x133-0x134 (1)
0x130| 00 | . | delta: 0 0x133-0x134 (1)
| | | tick: 1020
0x130| ff | . | status: 255 0x134-0x135 (1)
0x130| 2f | / | event: "end_of_track" (47) 0x135-0x136 (1)
0x130| 00| | .| | length: 0 0x136-0x137 (1)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: midi/format-1.mid (midi) 0x0-0x45 (69)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 02 | .. | [3]: 2 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:2]: 0xe-0x45 (55)
| | | [0]{}: track 0xe-0x26 (24)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 10 | .... | length: 16 0x12-0x16 (4)
| | | events[0:2]: 0x16-0x26 (16)
| | | [0]{}: metaevent 0x16-0x22 (12)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 03 | . | event: "track_name" (3) 0x18-0x19 (1)
0x10| 08 46 6f 72 6d 61 74| .Format| track_name: "Format 1" 0x19-0x22 (9)
0x20|20 31 | 1 |
| | | [1]{}: metaevent 0x22-0x26 (4)
| | | time{}: 0x22-0x23 (1)
0x20| 00 | . | delta: 0 0x22-0x23 (1)
| | | tick: 0
0x20| ff | . | status: 255 0x23-0x24 (1)
0x20| 2f | / | event: "end_of_track" (47) 0x24-0x25 (1)
0x20| 00 | . | length: 0 0x25-0x26 (1)
| | | [1]{}: track 0x26-0x45 (31)
0x20| 4d 54 72 6b | MTrk | tag: "MTrk" 0x26-0x2a (4)
0x20| 00 00 00 17 | .... | length: 23 0x2a-0x2e (4)
| | | events[0:2]: 0x2e-0x45 (23)
| | | [0]{}: metaevent 0x2e-0x41 (19)
| | | time{}: 0x2e-0x2f (1)
0x20| 00 | . | delta: 0 0x2e-0x2f (1)
| | | tick: 0
0x20| ff| .| status: 255 0x2f-0x30 (1)
0x30|03 |. | event: "track_name" (3) 0x30-0x31 (1)
0x30| 0f 41 63 6f 75 73 74 69 63 20 47 75 69 74 61| .Acoustic Guita| track_name: "Acoustic Guitar" 0x31-0x41 (16)
0x40|72 |r |
| | | [1]{}: metaevent 0x41-0x45 (4)
| | | time{}: 0x41-0x42 (1)
0x40| 00 | . | delta: 0 0x41-0x42 (1)
| | | tick: 0
0x40| ff | . | status: 255 0x42-0x43 (1)
0x40| 2f | / | event: "end_of_track" (47) 0x43-0x44 (1)
0x40| 00| | .| | length: 0 0x44-0x45 (1)

View File

@ -1,596 +1,48 @@
$ fq -d midi dv midi/format-2.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: midi/format-2.mid (midi) 0x0-0x227 (551)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x000|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x000| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x000| 00 02 | .. | [2]: 2 format 0x8-0xa (2)
0x000| 00 02 | .. | [3]: 2 tracks 0xa-0xc (2)
0x000| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:2]: 0xe-0x227 (537)
| | | [0]{}: track 0xe-0x11a (268)
0x000| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x010|72 6b |rk |
0x010| 00 00 01 04 | .... | length: 260 0x12-0x16 (4)
| | | events[0:34]: 0x16-0x11a (260)
| | | [0]{}: metaevent 0x16-0x1c (6)
| | | time{}: 0x16-0x17 (1)
0x010| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x010| ff | . | status: 255 0x17-0x18 (1)
0x010| 00 | . | event: "sequence_number" (0) 0x18-0x19 (1)
0x010| 02 | . | length: 2 0x19-0x1a (1)
0x010| 00 17 | .. | sequence_number: 23 0x1a-0x1c (2)
| | | [1]{}: metaevent 0x1c-0x2d (17)
| | | time{}: 0x1c-0x1d (1)
0x010| 00 | . | delta: 0 0x1c-0x1d (1)
| | | tick: 0
0x010| ff | . | status: 255 0x1d-0x1e (1)
0x010| 01 | . | event: "text" (1) 0x1e-0x1f (1)
0x010| 0d| .| text: "This and That" 0x1f-0x2d (14)
0x020|54 68 69 73 20 61 6e 64 20 54 68 61 74 |This and That |
| | | [2]{}: metaevent 0x2d-0x35 (8)
| | | time{}: 0x2d-0x2e (1)
0x020| 00 | . | delta: 0 0x2d-0x2e (1)
| | | tick: 0
0x020| ff | . | status: 255 0x2e-0x2f (1)
0x020| 02| .| event: "copyright" (2) 0x2f-0x30 (1)
0x030|04 54 68 65 6d |.Them | copyright: "Them" 0x30-0x35 (5)
| | | [3]{}: metaevent 0x35-0x43 (14)
| | | time{}: 0x35-0x36 (1)
0x030| 00 | . | delta: 0 0x35-0x36 (1)
| | | tick: 0
0x030| ff | . | status: 255 0x36-0x37 (1)
0x030| 03 | . | event: "track_name" (3) 0x37-0x38 (1)
0x030| 0a 4c 65 66 74 20 54 72| .Left Tr| track_name: "Left Track" 0x38-0x43 (11)
0x040|61 63 6b |ack |
| | | [4]{}: metaevent 0x43-0x51 (14)
| | | time{}: 0x43-0x44 (1)
0x040| 00 | . | delta: 0 0x43-0x44 (1)
| | | tick: 0
0x040| ff | . | status: 255 0x44-0x45 (1)
0x040| 04 | . | event: "instrument_name" (4) 0x45-0x46 (1)
0x040| 0a 44 69 64 67 65 72 69 64 6f| .Didgerido| instrument_name: "Didgeridoo" 0x46-0x51 (11)
0x050|6f |o |
| | | [5]{}: metaevent 0x51-0x5d (12)
| | | time{}: 0x51-0x52 (1)
0x050| 00 | . | delta: 0 0x51-0x52 (1)
| | | tick: 0
0x050| ff | . | status: 255 0x52-0x53 (1)
0x050| 05 | . | event: "lyric" (5) 0x53-0x54 (1)
0x050| 08 4c 61 2d 6c 61 2d 6c 61 | .La-la-la | lyric: "La-la-la" 0x54-0x5d (9)
| | | [6]{}: metaevent 0x5d-0x70 (19)
| | | time{}: 0x5d-0x5e (1)
0x050| 00 | . | delta: 0 0x5d-0x5e (1)
| | | tick: 0
0x050| ff | . | status: 255 0x5e-0x5f (1)
0x050| 06| .| event: "marker" (6) 0x5f-0x60 (1)
0x060|0f 48 65 72 65 20 42 65 20 44 72 61 67 6f 6e 73|.Here Be Dragons| marker: "Here Be Dragons" 0x60-0x70 (16)
| | | [7]{}: metaevent 0x70-0x80 (16)
| | | time{}: 0x70-0x71 (1)
0x070|00 |. | delta: 0 0x70-0x71 (1)
| | | tick: 0
0x070| ff | . | status: 255 0x71-0x72 (1)
0x070| 07 | . | event: "cue_point" (7) 0x72-0x73 (1)
0x070| 0c 4d 6f 72 65 20 63 6f 77 62 65 6c 6c| .More cowbell| cue_point: "More cowbell" 0x73-0x80 (13)
| | | [8]{}: metaevent 0x80-0x8a (10)
| | | time{}: 0x80-0x81 (1)
0x080|00 |. | delta: 0 0x80-0x81 (1)
| | | tick: 0
0x080| ff | . | status: 255 0x81-0x82 (1)
0x080| 08 | . | event: "program_name" (8) 0x82-0x83 (1)
0x080| 06 45 73 63 61 70 65 | .Escape | program_name: "Escape" 0x83-0x8a (7)
| | | [9]{}: metaevent 0x8a-0x96 (12)
| | | time{}: 0x8a-0x8b (1)
0x080| 00 | . | delta: 0 0x8a-0x8b (1)
| | | tick: 0
0x080| ff | . | status: 255 0x8b-0x8c (1)
0x080| 09 | . | event: "device_name" (9) 0x8c-0x8d (1)
0x080| 08 54 68| .Th| device_name: "TheThing" 0x8d-0x96 (9)
0x090|65 54 68 69 6e 67 |eThing |
| | | [10]{}: metaevent 0x96-0x9b (5)
| | | time{}: 0x96-0x97 (1)
0x090| 00 | . | delta: 0 0x96-0x97 (1)
| | | tick: 0
0x090| ff | . | status: 255 0x97-0x98 (1)
0x090| 20 | | event: "midi_channel_prefix" (32) 0x98-0x99 (1)
0x090| 01 | . | length: 1 0x99-0x9a (1)
0x090| 0d | . | midi_channel_prefix: 13 0x9a-0x9b (1)
| | | [11]{}: metaevent 0x9b-0xa0 (5)
| | | time{}: 0x9b-0x9c (1)
0x090| 00 | . | delta: 0 0x9b-0x9c (1)
| | | tick: 0
0x090| ff | . | status: 255 0x9c-0x9d (1)
0x090| 21 | ! | event: "midi_port" (33) 0x9d-0x9e (1)
0x090| 01 | . | length: 1 0x9e-0x9f (1)
0x090| 70| p| midi_port: 112 0x9f-0xa0 (1)
| | | [12]{}: metaevent 0xa0-0xa7 (7)
| | | time{}: 0xa0-0xa1 (1)
0x0a0|00 |. | delta: 0 0xa0-0xa1 (1)
| | | tick: 0
0x0a0| ff | . | status: 255 0xa1-0xa2 (1)
0x0a0| 51 | Q | event: "tempo" (81) 0xa2-0xa3 (1)
0x0a0| 03 | . | length: 3 0xa3-0xa4 (1)
0x0a0| 07 a1 20 | .. | tempo: 500000 0xa4-0xa7 (3)
| | | [13]{}: metaevent 0xa7-0xb0 (9)
| | | time{}: 0xa7-0xa8 (1)
0x0a0| 00 | . | delta: 0 0xa7-0xa8 (1)
| | | tick: 0
0x0a0| ff | . | status: 255 0xa8-0xa9 (1)
0x0a0| 54 | T | event: "smpte_offset" (84) 0xa9-0xaa (1)
0x0a0| 05 | . | length: 5 0xaa-0xab (1)
| | | smpte_offset{}: 0xab-0xb0 (5)
0x0a0| 4d | M | framerate: 25 (1) 0xab-0xab.2 (0.2)
0x0a0| 4d | M | hour: 13 0xab.2-0xac (0.6)
0x0a0| 2d | - | minute: 45 0xac-0xad (1)
0x0a0| 3b | ; | second: 59 0xad-0xae (1)
0x0a0| 07 | . | frames: 7 0xae-0xaf (1)
0x0a0| 27| '| fractions: 39 0xaf-0xb0 (1)
| | | [14]{}: metaevent 0xb0-0xb8 (8)
| | | time{}: 0xb0-0xb1 (1)
0x0b0|00 |. | delta: 0 0xb0-0xb1 (1)
| | | tick: 0
0x0b0| ff | . | status: 255 0xb1-0xb2 (1)
0x0b0| 58 | X | event: "time_signature" (88) 0xb2-0xb3 (1)
0x0b0| 04 | . | length: 4 0xb3-0xb4 (1)
| | | time_signature{}: 0xb4-0xb8 (4)
0x0b0| 04 | . | numerator: 4 0xb4-0xb5 (1)
0x0b0| 02 | . | denominator: 4 0xb5-0xb6 (1)
0x0b0| 18 | . | ticks_per_click: 24 0xb6-0xb7 (1)
0x0b0| 08 | . | thirty_seconds_per_quarter: 8 0xb7-0xb8 (1)
| | | [15]{}: metaevent 0xb8-0xbe (6)
| | | time{}: 0xb8-0xb9 (1)
0x0b0| 00 | . | delta: 0 0xb8-0xb9 (1)
| | | tick: 0
0x0b0| ff | . | status: 255 0xb9-0xba (1)
0x0b0| 59 | Y | event: "key_signature" (89) 0xba-0xbb (1)
0x0b0| 02 | . | length: 2 0xbb-0xbc (1)
0x0b0| 00 01 | .. | key_signature: "A minor" (1) 0xbc-0xbe (2)
| | | [16]{}: metaevent 0xbe-0xc8 (10)
| | | time{}: 0xbe-0xbf (1)
0x0b0| 00 | . | delta: 0 0xbe-0xbf (1)
| | | tick: 0
0x0b0| ff| .| status: 255 0xbf-0xc0 (1)
0x0c0|7f |. | event: "sequencer_specific_event" (127) 0xc0-0xc1 (1)
0x0c0| 06 | . | length: 6 0xc1-0xc2 (1)
| | | sequencer_specific_event{}: 0xc2-0xc8 (6)
0x0c0| 00 00 3b | ..; | manufacturer: "Mark Of The Unicorn (MOTU)" (59) 0xc2-0xc5 (3)
0x0c0| 3a 4c 5e | :L^ | data: raw bits 0xc5-0xc8 (3)
| | | [17]{}: midievent 0xc8-0xcd (5)
| | | time{}: 0xc8-0xca (2)
0x0c0| 83 60 | .` | delta: 480 0xc8-0xca (2)
| | | tick: 480
0x0c0| 80 | . | event: "note_off" (128) 0xca-0xca.4 (0.4)
0x0c0| 80 | . | channel: 0 0xca.4-0xcb (0.4)
| | | note_off{}: 0xcb-0xcd (2)
0x0c0| 30 | 0 | note: "C3" (48) 0xcb-0xcc (1)
0x0c0| 40 | @ | velocity: 64 0xcc-0xcd (1)
| | | [18]{}: midievent 0xcd-0xd1 (4)
| | | time{}: 0xcd-0xce (1)
0x0c0| 00 | . | delta: 0 0xcd-0xce (1)
| | | tick: 480
0x0c0| 90 | . | event: "note_on" (144) 0xce-0xce.4 (0.4)
0x0c0| 90 | . | channel: 0 0xce.4-0xcf (0.4)
| | | note_on{}: 0xcf-0xd1 (2)
0x0c0| 30| 0| note: "C3" (48) 0xcf-0xd0 (1)
0x0d0|48 |H | velocity: 72 0xd0-0xd1 (1)
| | | [19]{}: midievent 0xd1-0xd5 (4)
| | | time{}: 0xd1-0xd2 (1)
0x0d0| 00 | . | delta: 0 0xd1-0xd2 (1)
| | | tick: 480
0x0d0| 92 | . | event: "note_on" (144) 0xd2-0xd2.4 (0.4)
0x0d0| 92 | . | channel: 2 0xd2.4-0xd3 (0.4)
| | | note_on{}: 0xd3-0xd5 (2)
0x0d0| 31 | 1 | note: "C♯3/D♭3" (49) 0xd3-0xd4 (1)
0x0d0| 48 | H | velocity: 72 0xd4-0xd5 (1)
| | | [20]{}: midievent 0xd5-0xd8 (3)
| | | time{}: 0xd5-0xd6 (1)
0x0d0| 00 | . | delta: 0 0xd5-0xd6 (1)
| | | tick: 480
| | | event: "note_on" (144)
| | | channel: 2
| | | note_on{}: 0xd6-0xd8 (2)
0x0d0| 30 | 0 | note: "C3" (48) 0xd6-0xd7 (1)
0x0d0| 64 | d | velocity: 100 0xd7-0xd8 (1)
| | | [21]{}: midievent 0xd8-0xdb (3)
| | | time{}: 0xd8-0xd9 (1)
0x0d0| 00 | . | delta: 0 0xd8-0xd9 (1)
| | | tick: 480
0x0d0| a0 | . | event: "polyphonic_pressure" (160) 0xd9-0xd9.4 (0.4)
0x0d0| a0 | . | channel: 0 0xd9.4-0xda (0.4)
0x0d0| 64 | d | polyphonic_pressure: 100 0xda-0xdb (1)
| | | [22]{}: midievent 0xdb-0xdf (4)
| | | time{}: 0xdb-0xdc (1)
0x0d0| 00 | . | delta: 0 0xdb-0xdc (1)
| | | tick: 480
0x0d0| b0 | . | event: "controller" (176) 0xdc-0xdc.4 (0.4)
0x0d0| b0 | . | channel: 0 0xdc.4-0xdd (0.4)
| | | controller{}: 0xdd-0xdf (2)
0x0d0| 00 | . | controller: "Bank Select (MSB)" (0) 0xdd-0xde (1)
0x0d0| 05 | . | value: 5 0xde-0xdf (1)
| | | [23]{}: midievent 0xdf-0xe3 (4)
| | | time{}: 0xdf-0xe0 (1)
0x0d0| 00| .| delta: 0 0xdf-0xe0 (1)
| | | tick: 480
0x0e0|b0 |. | event: "controller" (176) 0xe0-0xe0.4 (0.4)
0x0e0|b0 |. | channel: 0 0xe0.4-0xe1 (0.4)
| | | controller{}: 0xe1-0xe3 (2)
0x0e0| 20 | | controller: "Bank Select (LSB)" (32) 0xe1-0xe2 (1)
0x0e0| 21 | ! | value: 33 0xe2-0xe3 (1)
| | | [24]{}: midievent 0xe3-0xe7 (4)
| | | time{}: 0xe3-0xe4 (1)
0x0e0| 00 | . | delta: 0 0xe3-0xe4 (1)
| | | tick: 480
0x0e0| b0 | . | event: "controller" (176) 0xe4-0xe4.4 (0.4)
0x0e0| b0 | . | channel: 0 0xe4.4-0xe5 (0.4)
| | | controller{}: 0xe5-0xe7 (2)
0x0e0| 65 | e | controller: "Registered Parameter Number (MSB)" (101) 0xe5-0xe6 (1)
0x0e0| 00 | . | value: 0 0xe6-0xe7 (1)
| | | [25]{}: midievent 0xe7-0xea (3)
| | | time{}: 0xe7-0xe8 (1)
0x0e0| 00 | . | delta: 0 0xe7-0xe8 (1)
| | | tick: 480
0x0e0| c0 | . | event: "program_change" (192) 0xe8-0xe8.4 (0.4)
0x0e0| c0 | . | channel: 0 0xe8.4-0xe9 (0.4)
0x0e0| 19 | . | program_change: 25 0xe9-0xea (1)
| | | [26]{}: midievent 0xea-0xed (3)
| | | time{}: 0xea-0xeb (1)
0x0e0| 00 | . | delta: 0 0xea-0xeb (1)
| | | tick: 480
0x0e0| d0 | . | event: "channel_pressure" (208) 0xeb-0xeb.4 (0.4)
0x0e0| d0 | . | channel: 0 0xeb.4-0xec (0.4)
0x0e0| 07 | . | channel_pressure: 7 0xec-0xed (1)
| | | [27]{}: midievent 0xed-0xf2 (5)
| | | time{}: 0xed-0xef (2)
0x0e0| 81 70 | .p | delta: 240 0xed-0xef (2)
| | | tick: 720
0x0e0| e0| .| event: "pitch_bend" (224) 0xef-0xef.4 (0.4)
0x0e0| e0| .| channel: 0 0xef.4-0xf0 (0.4)
0x0f0|00 08 |.. | pitch_bend: -8184 0xf0-0xf2 (2)
| | | [28]{}: sysex 0xf2-0xfa (8)
| | | time{}: 0xf2-0xf3 (1)
0x0f0| 00 | . | delta: 0 0xf2-0xf3 (1)
| | | tick: 720
0x0f0| f0 | . | event: "sysex_message" (240) 0xf3-0xf4 (1)
0x0f0| 05 | . | length: 5 0xf4-0xf5 (1)
| | | sysex_message{}: 0xf5-0xfa (5)
0x0f0| 7e | ~ | manufacturer: "Non-RealTime Extensions" (126) 0xf5-0xf6 (1)
0x0f0| 00 09 01 | ... | data: raw bits 0xf6-0xf9 (3)
0x0f0| f7 | . | end_of_message: 247 0xf9-0xfa (1)
| | | [29]{}: sysex 0xfa-0x100 (6)
| | | time{}: 0xfa-0xfb (1)
0x0f0| 00 | . | delta: 0 0xfa-0xfb (1)
| | | tick: 720
0x0f0| f0 | . | event: "sysex_message" (240) 0xfb-0xfc (1)
0x0f0| 03 | . | length: 3 0xfc-0xfd (1)
| | | sysex_message{}: 0xfd-0x100 (3)
0x0f0| 43 | C | manufacturer: "Yamaha" (67) 0xfd-0xfe (1)
0x0f0| 12 00| ..| data: raw bits 0xfe-0x100 (2)
| | | continued: true
| | | [30]{}: sysex 0x100-0x10a (10)
| | | time{}: 0x100-0x102 (2)
0x100|81 48 |.H | delta: 200 0x100-0x102 (2)
| | | tick: 920
0x100| f7 | . | event: "sysex_continuation" (247) 0x102-0x103 (1)
0x100| 06 | . | length: 6 0x103-0x104 (1)
| | | sysex_continuation{}: 0x104-0x10a (6)
0x100| 43 12 00 43 12 00 | C..C.. | data: raw bits 0x104-0x10a (6)
| | | continued: true
| | | [31]{}: sysex 0x10a-0x111 (7)
| | | time{}: 0x10a-0x10b (1)
0x100| 64 | d | delta: 100 0x10a-0x10b (1)
| | | tick: 1020
0x100| f7 | . | event: "sysex_continuation" (247) 0x10b-0x10c (1)
0x100| 04 | . | length: 4 0x10c-0x10d (1)
| | | sysex_continuation{}: 0x10d-0x111 (4)
0x100| 43 12 00| C..| data: raw bits 0x10d-0x110 (3)
0x110|f7 |. | end_of_message: 247 0x110-0x111 (1)
| | | [32]{}: sysex 0x111-0x116 (5)
| | | time{}: 0x111-0x112 (1)
0x110| 00 | . | delta: 0 0x111-0x112 (1)
| | | tick: 1020
0x110| f7 | . | event: "sysex_escape" (247) 0x112-0x113 (1)
0x110| 02 | . | length: 2 0x113-0x114 (1)
| | | sysex_escape{}: 0x114-0x116 (2)
0x110| f3 01 | .. | data: raw bits 0x114-0x116 (2)
| | | [33]{}: metaevent 0x116-0x11a (4)
| | | time{}: 0x116-0x117 (1)
0x110| 00 | . | delta: 0 0x116-0x117 (1)
| | | tick: 1020
0x110| ff | . | status: 255 0x117-0x118 (1)
0x110| 2f | / | event: "end_of_track" (47) 0x118-0x119 (1)
0x110| 00 | . | length: 0 0x119-0x11a (1)
| | | [1]{}: track 0x11a-0x227 (269)
0x110| 4d 54 72 6b | MTrk | tag: "MTrk" 0x11a-0x11e (4)
0x110| 00 00| ..| length: 261 0x11e-0x122 (4)
0x120|01 05 |.. |
| | | events[0:34]: 0x122-0x227 (261)
| | | [0]{}: sysex 0x122-0x12a (8)
| | | time{}: 0x122-0x123 (1)
0x120| 00 | . | delta: 0 0x122-0x123 (1)
| | | tick: 0
0x120| f0 | . | event: "sysex_message" (240) 0x123-0x124 (1)
0x120| 05 | . | length: 5 0x124-0x125 (1)
| | | sysex_message{}: 0x125-0x12a (5)
0x120| 7e | ~ | manufacturer: "Non-RealTime Extensions" (126) 0x125-0x126 (1)
0x120| 00 09 01 | ... | data: raw bits 0x126-0x129 (3)
0x120| f7 | . | end_of_message: 247 0x129-0x12a (1)
| | | [1]{}: sysex 0x12a-0x130 (6)
| | | time{}: 0x12a-0x12b (1)
0x120| 00 | . | delta: 0 0x12a-0x12b (1)
| | | tick: 0
0x120| f0 | . | event: "sysex_message" (240) 0x12b-0x12c (1)
0x120| 03 | . | length: 3 0x12c-0x12d (1)
| | | sysex_message{}: 0x12d-0x130 (3)
0x120| 43 | C | manufacturer: "Yamaha" (67) 0x12d-0x12e (1)
0x120| 12 00| ..| data: raw bits 0x12e-0x130 (2)
| | | continued: true
| | | [2]{}: sysex 0x130-0x13a (10)
| | | time{}: 0x130-0x132 (2)
0x130|81 48 |.H | delta: 200 0x130-0x132 (2)
| | | tick: 200
0x130| f7 | . | event: "sysex_continuation" (247) 0x132-0x133 (1)
0x130| 06 | . | length: 6 0x133-0x134 (1)
| | | sysex_continuation{}: 0x134-0x13a (6)
0x130| 43 12 00 43 12 00 | C..C.. | data: raw bits 0x134-0x13a (6)
| | | continued: true
| | | [3]{}: sysex 0x13a-0x141 (7)
| | | time{}: 0x13a-0x13b (1)
0x130| 64 | d | delta: 100 0x13a-0x13b (1)
| | | tick: 300
0x130| f7 | . | event: "sysex_continuation" (247) 0x13b-0x13c (1)
0x130| 04 | . | length: 4 0x13c-0x13d (1)
| | | sysex_continuation{}: 0x13d-0x141 (4)
0x130| 43 12 00| C..| data: raw bits 0x13d-0x140 (3)
0x140|f7 |. | end_of_message: 247 0x140-0x141 (1)
| | | [4]{}: sysex 0x141-0x146 (5)
| | | time{}: 0x141-0x142 (1)
0x140| 00 | . | delta: 0 0x141-0x142 (1)
| | | tick: 300
0x140| f7 | . | event: "sysex_escape" (247) 0x142-0x143 (1)
0x140| 02 | . | length: 2 0x143-0x144 (1)
| | | sysex_escape{}: 0x144-0x146 (2)
0x140| f3 01 | .. | data: raw bits 0x144-0x146 (2)
| | | [5]{}: midievent 0x146-0x14b (5)
| | | time{}: 0x146-0x148 (2)
0x140| 81 70 | .p | delta: 240 0x146-0x148 (2)
| | | tick: 540
0x140| e0 | . | event: "pitch_bend" (224) 0x148-0x148.4 (0.4)
0x140| e0 | . | channel: 0 0x148.4-0x149 (0.4)
0x140| 00 08 | .. | pitch_bend: -8184 0x149-0x14b (2)
| | | [6]{}: midievent 0x14b-0x14e (3)
| | | time{}: 0x14b-0x14c (1)
0x140| 00 | . | delta: 0 0x14b-0x14c (1)
| | | tick: 540
0x140| d0 | . | event: "channel_pressure" (208) 0x14c-0x14c.4 (0.4)
0x140| d0 | . | channel: 0 0x14c.4-0x14d (0.4)
0x140| 07 | . | channel_pressure: 7 0x14d-0x14e (1)
| | | [7]{}: midievent 0x14e-0x151 (3)
| | | time{}: 0x14e-0x14f (1)
0x140| 00 | . | delta: 0 0x14e-0x14f (1)
| | | tick: 540
0x140| c0| .| event: "program_change" (192) 0x14f-0x14f.4 (0.4)
0x140| c0| .| channel: 0 0x14f.4-0x150 (0.4)
0x150|19 |. | program_change: 25 0x150-0x151 (1)
| | | [8]{}: midievent 0x151-0x155 (4)
| | | time{}: 0x151-0x152 (1)
0x150| 00 | . | delta: 0 0x151-0x152 (1)
| | | tick: 540
0x150| b0 | . | event: "controller" (176) 0x152-0x152.4 (0.4)
0x150| b0 | . | channel: 0 0x152.4-0x153 (0.4)
| | | controller{}: 0x153-0x155 (2)
0x150| 65 | e | controller: "Registered Parameter Number (MSB)" (101) 0x153-0x154 (1)
0x150| 00 | . | value: 0 0x154-0x155 (1)
| | | [9]{}: midievent 0x155-0x159 (4)
| | | time{}: 0x155-0x156 (1)
0x150| 00 | . | delta: 0 0x155-0x156 (1)
| | | tick: 540
0x150| b0 | . | event: "controller" (176) 0x156-0x156.4 (0.4)
0x150| b0 | . | channel: 0 0x156.4-0x157 (0.4)
| | | controller{}: 0x157-0x159 (2)
0x150| 20 | | controller: "Bank Select (LSB)" (32) 0x157-0x158 (1)
0x150| 21 | ! | value: 33 0x158-0x159 (1)
| | | [10]{}: midievent 0x159-0x15d (4)
| | | time{}: 0x159-0x15a (1)
0x150| 00 | . | delta: 0 0x159-0x15a (1)
| | | tick: 540
0x150| b0 | . | event: "controller" (176) 0x15a-0x15a.4 (0.4)
0x150| b0 | . | channel: 0 0x15a.4-0x15b (0.4)
| | | controller{}: 0x15b-0x15d (2)
0x150| 00 | . | controller: "Bank Select (MSB)" (0) 0x15b-0x15c (1)
0x150| 05 | . | value: 5 0x15c-0x15d (1)
| | | [11]{}: midievent 0x15d-0x160 (3)
| | | time{}: 0x15d-0x15e (1)
0x150| 00 | . | delta: 0 0x15d-0x15e (1)
| | | tick: 540
0x150| a0 | . | event: "polyphonic_pressure" (160) 0x15e-0x15e.4 (0.4)
0x150| a0 | . | channel: 0 0x15e.4-0x15f (0.4)
0x150| 64| d| polyphonic_pressure: 100 0x15f-0x160 (1)
| | | [12]{}: midievent 0x160-0x164 (4)
| | | time{}: 0x160-0x161 (1)
0x160|00 |. | delta: 0 0x160-0x161 (1)
| | | tick: 540
0x160| 90 | . | event: "note_on" (144) 0x161-0x161.4 (0.4)
0x160| 90 | . | channel: 0 0x161.4-0x162 (0.4)
| | | note_on{}: 0x162-0x164 (2)
0x160| 30 | 0 | note: "C3" (48) 0x162-0x163 (1)
0x160| 48 | H | velocity: 72 0x163-0x164 (1)
| | | [13]{}: midievent 0x164-0x168 (4)
| | | time{}: 0x164-0x165 (1)
0x160| 00 | . | delta: 0 0x164-0x165 (1)
| | | tick: 540
0x160| 92 | . | event: "note_on" (144) 0x165-0x165.4 (0.4)
0x160| 92 | . | channel: 2 0x165.4-0x166 (0.4)
| | | note_on{}: 0x166-0x168 (2)
0x160| 31 | 1 | note: "C♯3/D♭3" (49) 0x166-0x167 (1)
0x160| 48 | H | velocity: 72 0x167-0x168 (1)
| | | [14]{}: midievent 0x168-0x16b (3)
| | | time{}: 0x168-0x169 (1)
0x160| 00 | . | delta: 0 0x168-0x169 (1)
| | | tick: 540
| | | event: "note_on" (144)
| | | channel: 2
| | | note_on{}: 0x169-0x16b (2)
0x160| 30 | 0 | note: "C3" (48) 0x169-0x16a (1)
0x160| 64 | d | velocity: 100 0x16a-0x16b (1)
| | | [15]{}: midievent 0x16b-0x170 (5)
| | | time{}: 0x16b-0x16d (2)
0x160| 83 60 | .` | delta: 480 0x16b-0x16d (2)
| | | tick: 1020
0x160| 80 | . | event: "note_off" (128) 0x16d-0x16d.4 (0.4)
0x160| 80 | . | channel: 0 0x16d.4-0x16e (0.4)
| | | note_off{}: 0x16e-0x170 (2)
0x160| 30 | 0 | note: "C3" (48) 0x16e-0x16f (1)
0x160| 40| @| velocity: 64 0x16f-0x170 (1)
| | | [16]{}: metaevent 0x170-0x17a (10)
| | | time{}: 0x170-0x171 (1)
0x170|00 |. | delta: 0 0x170-0x171 (1)
| | | tick: 1020
0x170| ff | . | status: 255 0x171-0x172 (1)
0x170| 7f | . | event: "sequencer_specific_event" (127) 0x172-0x173 (1)
0x170| 06 | . | length: 6 0x173-0x174 (1)
| | | sequencer_specific_event{}: 0x174-0x17a (6)
0x170| 00 00 3b | ..; | manufacturer: "Mark Of The Unicorn (MOTU)" (59) 0x174-0x177 (3)
0x170| 3a 4c 5e | :L^ | data: raw bits 0x177-0x17a (3)
| | | [17]{}: metaevent 0x17a-0x180 (6)
| | | time{}: 0x17a-0x17b (1)
0x170| 00 | . | delta: 0 0x17a-0x17b (1)
| | | tick: 1020
0x170| ff | . | status: 255 0x17b-0x17c (1)
0x170| 59 | Y | event: "key_signature" (89) 0x17c-0x17d (1)
0x170| 02 | . | length: 2 0x17d-0x17e (1)
0x170| 00 01| ..| key_signature: "A minor" (1) 0x17e-0x180 (2)
| | | [18]{}: metaevent 0x180-0x188 (8)
| | | time{}: 0x180-0x181 (1)
0x180|00 |. | delta: 0 0x180-0x181 (1)
| | | tick: 1020
0x180| ff | . | status: 255 0x181-0x182 (1)
0x180| 58 | X | event: "time_signature" (88) 0x182-0x183 (1)
0x180| 04 | . | length: 4 0x183-0x184 (1)
| | | time_signature{}: 0x184-0x188 (4)
0x180| 04 | . | numerator: 4 0x184-0x185 (1)
0x180| 02 | . | denominator: 4 0x185-0x186 (1)
0x180| 18 | . | ticks_per_click: 24 0x186-0x187 (1)
0x180| 08 | . | thirty_seconds_per_quarter: 8 0x187-0x188 (1)
| | | [19]{}: metaevent 0x188-0x191 (9)
| | | time{}: 0x188-0x189 (1)
0x180| 00 | . | delta: 0 0x188-0x189 (1)
| | | tick: 1020
0x180| ff | . | status: 255 0x189-0x18a (1)
0x180| 54 | T | event: "smpte_offset" (84) 0x18a-0x18b (1)
0x180| 05 | . | length: 5 0x18b-0x18c (1)
| | | smpte_offset{}: 0x18c-0x191 (5)
0x180| 4d | M | framerate: 25 (1) 0x18c-0x18c.2 (0.2)
0x180| 4d | M | hour: 13 0x18c.2-0x18d (0.6)
0x180| 2d | - | minute: 45 0x18d-0x18e (1)
0x180| 3b | ; | second: 59 0x18e-0x18f (1)
0x180| 07| .| frames: 7 0x18f-0x190 (1)
0x190|27 |' | fractions: 39 0x190-0x191 (1)
| | | [20]{}: metaevent 0x191-0x198 (7)
| | | time{}: 0x191-0x192 (1)
0x190| 00 | . | delta: 0 0x191-0x192 (1)
| | | tick: 1020
0x190| ff | . | status: 255 0x192-0x193 (1)
0x190| 51 | Q | event: "tempo" (81) 0x193-0x194 (1)
0x190| 03 | . | length: 3 0x194-0x195 (1)
0x190| 07 a1 20 | .. | tempo: 500000 0x195-0x198 (3)
| | | [21]{}: metaevent 0x198-0x19d (5)
| | | time{}: 0x198-0x199 (1)
0x190| 00 | . | delta: 0 0x198-0x199 (1)
| | | tick: 1020
0x190| ff | . | status: 255 0x199-0x19a (1)
0x190| 21 | ! | event: "midi_port" (33) 0x19a-0x19b (1)
0x190| 01 | . | length: 1 0x19b-0x19c (1)
0x190| 70 | p | midi_port: 112 0x19c-0x19d (1)
| | | [22]{}: metaevent 0x19d-0x1a2 (5)
| | | time{}: 0x19d-0x19e (1)
0x190| 00 | . | delta: 0 0x19d-0x19e (1)
| | | tick: 1020
0x190| ff | . | status: 255 0x19e-0x19f (1)
0x190| 20| | event: "midi_channel_prefix" (32) 0x19f-0x1a0 (1)
0x1a0|01 |. | length: 1 0x1a0-0x1a1 (1)
0x1a0| 0d | . | midi_channel_prefix: 13 0x1a1-0x1a2 (1)
| | | [23]{}: metaevent 0x1a2-0x1ae (12)
| | | time{}: 0x1a2-0x1a3 (1)
0x1a0| 00 | . | delta: 0 0x1a2-0x1a3 (1)
| | | tick: 1020
0x1a0| ff | . | status: 255 0x1a3-0x1a4 (1)
0x1a0| 09 | . | event: "device_name" (9) 0x1a4-0x1a5 (1)
0x1a0| 08 54 68 65 54 68 69 6e 67 | .TheThing | device_name: "TheThing" 0x1a5-0x1ae (9)
| | | [24]{}: metaevent 0x1ae-0x1b8 (10)
| | | time{}: 0x1ae-0x1af (1)
0x1a0| 00 | . | delta: 0 0x1ae-0x1af (1)
| | | tick: 1020
0x1a0| ff| .| status: 255 0x1af-0x1b0 (1)
0x1b0|08 |. | event: "program_name" (8) 0x1b0-0x1b1 (1)
0x1b0| 06 45 73 63 61 70 65 | .Escape | program_name: "Escape" 0x1b1-0x1b8 (7)
| | | [25]{}: metaevent 0x1b8-0x1c8 (16)
| | | time{}: 0x1b8-0x1b9 (1)
0x1b0| 00 | . | delta: 0 0x1b8-0x1b9 (1)
| | | tick: 1020
0x1b0| ff | . | status: 255 0x1b9-0x1ba (1)
0x1b0| 07 | . | event: "cue_point" (7) 0x1ba-0x1bb (1)
0x1b0| 0c 4d 6f 72 65| .More| cue_point: "More cowbell" 0x1bb-0x1c8 (13)
0x1c0|20 63 6f 77 62 65 6c 6c | cowbell |
| | | [26]{}: metaevent 0x1c8-0x1db (19)
| | | time{}: 0x1c8-0x1c9 (1)
0x1c0| 00 | . | delta: 0 0x1c8-0x1c9 (1)
| | | tick: 1020
0x1c0| ff | . | status: 255 0x1c9-0x1ca (1)
0x1c0| 06 | . | event: "marker" (6) 0x1ca-0x1cb (1)
0x1c0| 0f 48 65 72 65| .Here| marker: "Here Be Dragons" 0x1cb-0x1db (16)
0x1d0|20 42 65 20 44 72 61 67 6f 6e 73 | Be Dragons |
| | | [27]{}: metaevent 0x1db-0x1e7 (12)
| | | time{}: 0x1db-0x1dc (1)
0x1d0| 00 | . | delta: 0 0x1db-0x1dc (1)
| | | tick: 1020
0x1d0| ff | . | status: 255 0x1dc-0x1dd (1)
0x1d0| 05 | . | event: "lyric" (5) 0x1dd-0x1de (1)
0x1d0| 08 4c| .L| lyric: "La-la-la" 0x1de-0x1e7 (9)
0x1e0|61 2d 6c 61 2d 6c 61 |a-la-la |
| | | [28]{}: metaevent 0x1e7-0x1f5 (14)
| | | time{}: 0x1e7-0x1e8 (1)
0x1e0| 00 | . | delta: 0 0x1e7-0x1e8 (1)
| | | tick: 1020
0x1e0| ff | . | status: 255 0x1e8-0x1e9 (1)
0x1e0| 04 | . | event: "instrument_name" (4) 0x1e9-0x1ea (1)
0x1e0| 0a 44 69 64 67 65| .Didge| instrument_name: "Didgeridoo" 0x1ea-0x1f5 (11)
0x1f0|72 69 64 6f 6f |ridoo |
| | | [29]{}: metaevent 0x1f5-0x204 (15)
| | | time{}: 0x1f5-0x1f6 (1)
0x1f0| 00 | . | delta: 0 0x1f5-0x1f6 (1)
| | | tick: 1020
0x1f0| ff | . | status: 255 0x1f6-0x1f7 (1)
0x1f0| 03 | . | event: "track_name" (3) 0x1f7-0x1f8 (1)
0x1f0| 0b 52 69 67 68 74 20 54| .Right T| track_name: "Right Track" 0x1f8-0x204 (12)
0x200|72 61 63 6b |rack |
| | | [30]{}: metaevent 0x204-0x20c (8)
| | | time{}: 0x204-0x205 (1)
0x200| 00 | . | delta: 0 0x204-0x205 (1)
| | | tick: 1020
0x200| ff | . | status: 255 0x205-0x206 (1)
0x200| 02 | . | event: "copyright" (2) 0x206-0x207 (1)
0x200| 04 54 68 65 6d | .Them | copyright: "Them" 0x207-0x20c (5)
| | | [31]{}: metaevent 0x20c-0x21d (17)
| | | time{}: 0x20c-0x20d (1)
0x200| 00 | . | delta: 0 0x20c-0x20d (1)
| | | tick: 1020
0x200| ff | . | status: 255 0x20d-0x20e (1)
0x200| 01 | . | event: "text" (1) 0x20e-0x20f (1)
0x200| 0d| .| text: "This and That" 0x20f-0x21d (14)
0x210|54 68 69 73 20 61 6e 64 20 54 68 61 74 |This and That |
| | | [32]{}: metaevent 0x21d-0x223 (6)
| | | time{}: 0x21d-0x21e (1)
0x210| 00 | . | delta: 0 0x21d-0x21e (1)
| | | tick: 1020
0x210| ff | . | status: 255 0x21e-0x21f (1)
0x210| 00| .| event: "sequence_number" (0) 0x21f-0x220 (1)
0x220|02 |. | length: 2 0x220-0x221 (1)
0x220| 00 17 | .. | sequence_number: 23 0x221-0x223 (2)
| | | [33]{}: metaevent 0x223-0x227 (4)
| | | time{}: 0x223-0x224 (1)
0x220| 00 | . | delta: 0 0x223-0x224 (1)
| | | tick: 1020
0x220| ff | . | status: 255 0x224-0x225 (1)
0x220| 2f | / | event: "end_of_track" (47) 0x225-0x226 (1)
0x220| 00| | .| | length: 0 0x226-0x227 (1)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: midi/format-2.mid (midi) 0x0-0x43 (67)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 02 | .. | [2]: 2 format 0x8-0xa (2)
0x00| 00 02 | .. | [3]: 2 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:2]: 0xe-0x43 (53)
| | | [0]{}: track 0xe-0x28 (26)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 12 | .... | length: 18 0x12-0x16 (4)
| | | events[0:2]: 0x16-0x28 (18)
| | | [0]{}: metaevent 0x16-0x24 (14)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 03 | . | event: "track_name" (3) 0x18-0x19 (1)
0x10| 0a 4c 65 66 74 20 54| .Left T| track_name: "Left Track" 0x19-0x24 (11)
0x20|72 61 63 6b |rack |
| | | [1]{}: metaevent 0x24-0x28 (4)
| | | time{}: 0x24-0x25 (1)
0x20| 00 | . | delta: 0 0x24-0x25 (1)
| | | tick: 0
0x20| ff | . | status: 255 0x25-0x26 (1)
0x20| 2f | / | event: "end_of_track" (47) 0x26-0x27 (1)
0x20| 00 | . | length: 0 0x27-0x28 (1)
| | | [1]{}: track 0x28-0x43 (27)
0x20| 4d 54 72 6b | MTrk | tag: "MTrk" 0x28-0x2c (4)
0x20| 00 00 00 13| ....| length: 19 0x2c-0x30 (4)
| | | events[0:2]: 0x30-0x43 (19)
| | | [0]{}: metaevent 0x30-0x3f (15)
| | | time{}: 0x30-0x31 (1)
0x30|00 |. | delta: 0 0x30-0x31 (1)
| | | tick: 0
0x30| ff | . | status: 255 0x31-0x32 (1)
0x30| 03 | . | event: "track_name" (3) 0x32-0x33 (1)
0x30| 0b 52 69 67 68 74 20 54 72 61 63 6b | .Right Track | track_name: "Right Track" 0x33-0x3f (12)
| | | [1]{}: metaevent 0x3f-0x43 (4)
| | | time{}: 0x3f-0x40 (1)
0x30| 00| .| delta: 0 0x3f-0x40 (1)
| | | tick: 0
0x40|ff |. | status: 255 0x40-0x41 (1)
0x40| 2f | / | event: "end_of_track" (47) 0x41-0x42 (1)
0x40| 00| | .| | length: 0 0x42-0x43 (1)

View File

@ -26,7 +26,7 @@ Sample queries
* Extract the key changes from a MIDI file
fq -d midi '.. | select(.event=="key_signature")?.key_signature' midi/key-signatures.mid
fq -d midi '.. | select(.event=="key_signature")?.key_signature' midi/twinkle.mid
* Extract NoteOn events:

View File

@ -1,4 +1,30 @@
$ fq -d midi '.. | select(.event=="key_signature")?.key_signature' midi/test.mid
exitcode: 2
stderr:
error: midi/test.mid: no such file or directory
$ fq -d midi '.. | select(.event=="key_signature")?.key_signature' midi/twinkle.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0xf0| 00 01 | .. |.tracks[1].events[2].key_signature: "A minor" (1)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x390| 00 01| ..|.tracks[2].events[2].key_signature: "A minor" (1)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x3d0| 00 01 | .. |.tracks[3].events[2].key_signature: "A minor" (1)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x550| 00 01 | .. |.tracks[4].events[2].key_signature: "A minor" (1)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x6d0|00 01 |.. |.tracks[5].events[2].key_signature: "A minor" (1)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x9f0| 00 01 | .. |.tracks[6].events[2].key_signature: "A minor" (1)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0xeb0| 00 01 | .. |.tracks[7].events[2].key_signature: "A minor" (1)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0xfa0| 00 01 | .. |.tracks[8].events[2].key_signature: "A minor" (1)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x1700| 00 01 | .. |.tracks[9].events[2].key_signature: "A minor" (1)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x2080| 00 01 | .. |.tracks[10].events[2].key_signature: "A minor" (1)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x2280| 00| .|.tracks[11].events[2].key_signature: "A minor" (1)
0x2290|01 |. |
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x2460| 00 01 | .. |.tracks[12].events[2].key_signature: "A minor" (1)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x25f0| 00 01 | .. |.tracks[13].events[2].key_signature: "A minor" (1)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x2860| 00 01 | .. |.tracks[14].events[2].key_signature: "A minor" (1)

423
format/midi/testdata/metaevents.fqtest vendored Normal file
View File

@ -0,0 +1,423 @@
$ fq -d midi dv events/sequence-number.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/sequence-number.mid (midi) 0x0-0x1c (28)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1c (14)
| | | [0]{}: track 0xe-0x1c (14)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 06 | .... | length: 6 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x1c (6)
| | | [0]{}: metaevent 0x16-0x1c (6)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 00 | . | event: "sequence_number" (0) 0x18-0x19 (1)
0x10| 02 | . | length: 2 0x19-0x1a (1)
0x10| 00 17| | ..| | sequence_number: 23 0x1a-0x1c (2)
$ fq -d midi dv events/text.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/text.mid (midi) 0x0-0x27 (39)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x27 (25)
| | | [0]{}: track 0xe-0x27 (25)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 11 | .... | length: 17 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x27 (17)
| | | [0]{}: metaevent 0x16-0x27 (17)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 01 | . | event: "text" (1) 0x18-0x19 (1)
0x10| 0d 54 68 69 73 20 61| .This a| text: "This and That" 0x19-0x27 (14)
0x20|6e 64 20 54 68 61 74| |nd That| |
$ fq -d midi dv events/copyright.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/copyright.mid (midi) 0x0-0x1e (30)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1e (16)
| | | [0]{}: track 0xe-0x1e (16)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 08 | .... | length: 8 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x1e (8)
| | | [0]{}: metaevent 0x16-0x1e (8)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 02 | . | event: "copyright" (2) 0x18-0x19 (1)
0x10| 04 54 68 65 6d| | .Them| | copyright: "Them" 0x19-0x1e (5)
$ fq -d midi dv events/track-name.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/track-name.mid (midi) 0x0-0x29 (41)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x29 (27)
| | | [0]{}: track 0xe-0x29 (27)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 13 | .... | length: 19 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x29 (19)
| | | [0]{}: metaevent 0x16-0x29 (19)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 03 | . | event: "track_name" (3) 0x18-0x19 (1)
0x10| 0f 41 63 6f 75 73 74| .Acoust| track_name: "Acoustic Guitar" 0x19-0x29 (16)
0x20|69 63 20 47 75 69 74 61 72| |ic Guitar| |
$ fq -d midi dv events/instrument-name.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/instrument-name.mid (midi) 0x0-0x24 (36)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x24 (22)
| | | [0]{}: track 0xe-0x24 (22)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 0e | .... | length: 14 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x24 (14)
| | | [0]{}: metaevent 0x16-0x24 (14)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 04 | . | event: "instrument_name" (4) 0x18-0x19 (1)
0x10| 0a 44 69 64 67 65 72| .Didger| instrument_name: "Didgeridoo" 0x19-0x24 (11)
0x20|69 64 6f 6f| |idoo| |
$ fq -d midi dv events/lyric.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/lyric.mid (midi) 0x0-0x22 (34)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x22 (20)
| | | [0]{}: track 0xe-0x22 (20)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 0c | .... | length: 12 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x22 (12)
| | | [0]{}: metaevent 0x16-0x22 (12)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 05 | . | event: "lyric" (5) 0x18-0x19 (1)
0x10| 08 4c 61 2d 6c 61 2d| .La-la-| lyric: "La-la-la" 0x19-0x22 (9)
0x20|6c 61| |la| |
$ fq -d midi dv events/marker.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/marker.mid (midi) 0x0-0x29 (41)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x29 (27)
| | | [0]{}: track 0xe-0x29 (27)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 13 | .... | length: 19 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x29 (19)
| | | [0]{}: metaevent 0x16-0x29 (19)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 06 | . | event: "marker" (6) 0x18-0x19 (1)
0x10| 0f 48 65 72 65 20 42| .Here B| marker: "Here Be Dragons" 0x19-0x29 (16)
0x20|65 20 44 72 61 67 6f 6e 73| |e Dragons| |
$ fq -d midi dv events/cuepoint.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/cuepoint.mid (midi) 0x0-0x26 (38)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 02 | .. | [3]: 2 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x26 (24)
| | | [0]{}: track 0xe-0x26 (24)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 10 | .... | length: 16 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x26 (16)
| | | [0]{}: metaevent 0x16-0x26 (16)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 07 | . | event: "cue_point" (7) 0x18-0x19 (1)
0x10| 0c 4d 6f 72 65 20 63| .More c| cue_point: "More cowbell" 0x19-0x26 (13)
0x20|6f 77 62 65 6c 6c| |owbell| |
$ fq -d midi dv events/program-name.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/program-name.mid (midi) 0x0-0x20 (32)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x20 (18)
| | | [0]{}: track 0xe-0x20 (18)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 0a | .... | length: 10 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x20 (10)
| | | [0]{}: metaevent 0x16-0x20 (10)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 08 | . | event: "program_name" (8) 0x18-0x19 (1)
0x10| 06 45 73 63 61 70 65| .Escape| program_name: "Escape" 0x19-0x20 (7)
$ fq -d midi dv events/device-name.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/device-name.mid (midi) 0x0-0x22 (34)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x22 (20)
| | | [0]{}: track 0xe-0x22 (20)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 0c | .... | length: 12 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x22 (12)
| | | [0]{}: metaevent 0x16-0x22 (12)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 09 | . | event: "device_name" (9) 0x18-0x19 (1)
0x10| 08 54 68 65 54 68 69| .TheThi| device_name: "TheThing" 0x19-0x22 (9)
0x20|6e 67| |ng| |
$ fq -d midi dv events/midi-channel-prefix.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/midi-channel-prefix.mid (midi) 0x0-0x1b (27)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1b (13)
| | | [0]{}: track 0xe-0x1b (13)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 05 | .... | length: 5 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x1b (5)
| | | [0]{}: metaevent 0x16-0x1b (5)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 20 | | event: "midi_channel_prefix" (32) 0x18-0x19 (1)
0x10| 01 | . | length: 1 0x19-0x1a (1)
0x10| 0d| | .| | midi_channel_prefix: 13 0x1a-0x1b (1)
$ fq -d midi dv events/midi-port.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/midi-port.mid (midi) 0x0-0x1b (27)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1b (13)
| | | [0]{}: track 0xe-0x1b (13)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 05 | .... | length: 5 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x1b (5)
| | | [0]{}: metaevent 0x16-0x1b (5)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 21 | ! | event: "midi_port" (33) 0x18-0x19 (1)
0x10| 01 | . | length: 1 0x19-0x1a (1)
0x10| 70| | p| | midi_port: 112 0x1a-0x1b (1)
$ fq -d midi dv events/tempo.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/tempo.mid (midi) 0x0-0x1d (29)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 02 | .. | [3]: 2 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1d (15)
| | | [0]{}: track 0xe-0x1d (15)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 07 | .... | length: 7 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x1d (7)
| | | [0]{}: metaevent 0x16-0x1d (7)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 51 | Q | event: "tempo" (81) 0x18-0x19 (1)
0x10| 03 | . | length: 3 0x19-0x1a (1)
0x10| 07 a1 20| | .. | | tempo: 500000 0x1a-0x1d (3)
$ fq -d midi dv events/smpte-offset.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/smpte-offset.mid (midi) 0x0-0x1f (31)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1f (17)
| | | [0]{}: track 0xe-0x1f (17)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 09 | .... | length: 9 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x1f (9)
| | | [0]{}: metaevent 0x16-0x1f (9)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 54 | T | event: "smpte_offset" (84) 0x18-0x19 (1)
0x10| 05 | . | length: 5 0x19-0x1a (1)
| | | smpte_offset{}: 0x1a-0x1f (5)
0x10| 4d | M | framerate: 25 (1) 0x1a-0x1a.2 (0.2)
0x10| 4d | M | hour: 13 0x1a.2-0x1b (0.6)
0x10| 2d | - | minute: 45 0x1b-0x1c (1)
0x10| 3b | ; | second: 59 0x1c-0x1d (1)
0x10| 07 | . | frames: 7 0x1d-0x1e (1)
0x10| 27| | '|| fractions: 39 0x1e-0x1f (1)
$ fq -d midi dv events/time-signature.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/time-signature.mid (midi) 0x0-0x1e (30)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1e (16)
| | | [0]{}: track 0xe-0x1e (16)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 08 | .... | length: 8 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x1e (8)
| | | [0]{}: metaevent 0x16-0x1e (8)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 58 | X | event: "time_signature" (88) 0x18-0x19 (1)
0x10| 04 | . | length: 4 0x19-0x1a (1)
| | | time_signature{}: 0x1a-0x1e (4)
0x10| 04 | . | numerator: 4 0x1a-0x1b (1)
0x10| 02 | . | denominator: 4 0x1b-0x1c (1)
0x10| 18 | . | ticks_per_click: 24 0x1c-0x1d (1)
0x10| 08| | .| | thirty_seconds_per_quarter: 8 0x1d-0x1e (1)
$ fq -d midi dv events/key-signature.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/key-signature.mid (midi) 0x0-0x1c (28)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 02 | .. | [3]: 2 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1c (14)
| | | [0]{}: track 0xe-0x1c (14)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 06 | .... | length: 6 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x1c (6)
| | | [0]{}: metaevent 0x16-0x1c (6)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 59 | Y | event: "key_signature" (89) 0x18-0x19 (1)
0x10| 02 | . | length: 2 0x19-0x1a (1)
0x10| 00 01| | ..| | key_signature: "A minor" (1) 0x1a-0x1c (2)
$ fq -d midi dv events/end-of-track.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/end-of-track.mid (midi) 0x0-0x1a (26)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1a (12)
| | | [0]{}: track 0xe-0x1a (12)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 04 | .... | length: 4 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x1a (4)
| | | [0]{}: metaevent 0x16-0x1a (4)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 2f | / | event: "end_of_track" (47) 0x18-0x19 (1)
0x10| 00| | .| | length: 0 0x19-0x1a (1)
$ fq -d midi dv events/sequencer-specific-event.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/sequencer-specific-event.mid (midi) 0x0-0x20 (32)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x20 (18)
| | | [0]{}: track 0xe-0x20 (18)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 0a | .... | length: 10 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x20 (10)
| | | [0]{}: metaevent 0x16-0x20 (10)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| ff | . | status: 255 0x17-0x18 (1)
0x10| 7f | . | event: "sequencer_specific_event" (127) 0x18-0x19 (1)
0x10| 06 | . | length: 6 0x19-0x1a (1)
| | | sequencer_specific_event{}: 0x1a-0x20 (6)
0x10| 00 00 3b | ..; | manufacturer: "Mark Of The Unicorn (MOTU)" (59) 0x1a-0x1d (3)
0x10| 3a 4c 5e| :L^| data: raw bits 0x1d-0x20 (3)

Binary file not shown.

Binary file not shown.

Binary file not shown.

222
format/midi/testdata/midievents.fqtest vendored Normal file
View File

@ -0,0 +1,222 @@
$ fq -d midi dv events/note-off.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/note-off.mid (midi) 0x0-0x1d (29)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1d (15)
| | | [0]{}: track 0xe-0x1d (15)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 07 | .... | length: 7 0x12-0x16 (4)
| | | events[0:2]: 0x16-0x1d (7)
| | | [0]{}: midievent 0x16-0x1a (4)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| 81 | . | event: "note_off" (128) 0x17-0x17.4 (0.4)
0x10| 81 | . | channel: 1 0x17.4-0x18 (0.4)
| | | note_off{}: 0x18-0x1a (2)
0x10| 70 | p | note: "E8" (112) 0x18-0x19 (1)
0x10| 60 | ` | velocity: 96 0x19-0x1a (1)
| | | [1]{}: midievent 0x1a-0x1d (3)
| | | time{}: 0x1a-0x1b (1)
0x10| 64 | d | delta: 100 0x1a-0x1b (1)
| | | tick: 100
| | | event: "note_off" (128)
| | | channel: 1
| | | note_off{}: 0x1b-0x1d (2)
0x10| 71 | q | note: "F8" (113) 0x1b-0x1c (1)
0x10| 48| | H| | velocity: 72 0x1c-0x1d (1)
$ fq -d midi dv events/note-on.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/note-on.mid (midi) 0x0-0x1d (29)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1d (15)
| | | [0]{}: track 0xe-0x1d (15)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 07 | .... | length: 7 0x12-0x16 (4)
| | | events[0:2]: 0x16-0x1d (7)
| | | [0]{}: midievent 0x16-0x1a (4)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| 92 | . | event: "note_on" (144) 0x17-0x17.4 (0.4)
0x10| 92 | . | channel: 2 0x17.4-0x18 (0.4)
| | | note_on{}: 0x18-0x1a (2)
0x10| 30 | 0 | note: "C3" (48) 0x18-0x19 (1)
0x10| 48 | H | velocity: 72 0x19-0x1a (1)
| | | [1]{}: midievent 0x1a-0x1d (3)
| | | time{}: 0x1a-0x1b (1)
0x10| 40 | @ | delta: 64 0x1a-0x1b (1)
| | | tick: 64
| | | event: "note_on" (144)
| | | channel: 2
| | | note_on{}: 0x1b-0x1d (2)
0x10| 32 | 2 | note: "D3" (50) 0x1b-0x1c (1)
0x10| 48| | H| | velocity: 72 0x1c-0x1d (1)
$ fq -d midi dv events/polyphonic-pressure.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/polyphonic-pressure.mid (midi) 0x0-0x1b (27)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1b (13)
| | | [0]{}: track 0xe-0x1b (13)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 05 | .... | length: 5 0x12-0x16 (4)
| | | events[0:2]: 0x16-0x1b (5)
| | | [0]{}: midievent 0x16-0x19 (3)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| a0 | . | event: "polyphonic_pressure" (160) 0x17-0x17.4 (0.4)
0x10| a0 | . | channel: 0 0x17.4-0x18 (0.4)
0x10| 64 | d | polyphonic_pressure: 100 0x18-0x19 (1)
| | | [1]{}: midievent 0x19-0x1b (2)
| | | time{}: 0x19-0x1a (1)
0x10| 40 | @ | delta: 64 0x19-0x1a (1)
| | | tick: 64
| | | event: "polyphonic_pressure" (160)
| | | channel: 0
0x10| 64| | d| | polyphonic_pressure: 100 0x1a-0x1b (1)
$ fq -d midi dv events/controller.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/controller.mid (midi) 0x0-0x1d (29)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1d (15)
| | | [0]{}: track 0xe-0x1d (15)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 07 | .... | length: 7 0x12-0x16 (4)
| | | events[0:2]: 0x16-0x1d (7)
| | | [0]{}: midievent 0x16-0x1a (4)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| b0 | . | event: "controller" (176) 0x17-0x17.4 (0.4)
0x10| b0 | . | channel: 0 0x17.4-0x18 (0.4)
| | | controller{}: 0x18-0x1a (2)
0x10| 20 | | controller: "Bank Select (LSB)" (32) 0x18-0x19 (1)
0x10| 21 | ! | value: 33 0x19-0x1a (1)
| | | [1]{}: midievent 0x1a-0x1d (3)
| | | time{}: 0x1a-0x1b (1)
0x10| 40 | @ | delta: 64 0x1a-0x1b (1)
| | | tick: 64
| | | event: "controller" (176)
| | | channel: 0
| | | controller{}: 0x1b-0x1d (2)
0x10| 20 | | controller: "Bank Select (LSB)" (32) 0x1b-0x1c (1)
0x10| 22| | "| | value: 34 0x1c-0x1d (1)
$ fq -d midi dv events/program-change.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/program-change.mid (midi) 0x0-0x1b (27)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1b (13)
| | | [0]{}: track 0xe-0x1b (13)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 05 | .... | length: 5 0x12-0x16 (4)
| | | events[0:2]: 0x16-0x1b (5)
| | | [0]{}: midievent 0x16-0x19 (3)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| c0 | . | event: "program_change" (192) 0x17-0x17.4 (0.4)
0x10| c0 | . | channel: 0 0x17.4-0x18 (0.4)
0x10| 19 | . | program_change: 25 0x18-0x19 (1)
| | | [1]{}: midievent 0x19-0x1b (2)
| | | time{}: 0x19-0x1a (1)
0x10| 40 | @ | delta: 64 0x19-0x1a (1)
| | | tick: 64
| | | event: "program_change" (192)
| | | channel: 0
0x10| 20| | | | program_change: 32 0x1a-0x1b (1)
$ fq -d midi dv events/channel-pressure.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/channel-pressure.mid (midi) 0x0-0x1b (27)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1b (13)
| | | [0]{}: track 0xe-0x1b (13)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 05 | .... | length: 5 0x12-0x16 (4)
| | | events[0:2]: 0x16-0x1b (5)
| | | [0]{}: midievent 0x16-0x19 (3)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| d0 | . | event: "channel_pressure" (208) 0x17-0x17.4 (0.4)
0x10| d0 | . | channel: 0 0x17.4-0x18 (0.4)
0x10| 07 | . | channel_pressure: 7 0x18-0x19 (1)
| | | [1]{}: midievent 0x19-0x1b (2)
| | | time{}: 0x19-0x1a (1)
0x10| 40 | @ | delta: 64 0x19-0x1a (1)
| | | tick: 64
| | | event: "channel_pressure" (208)
| | | channel: 0
0x10| 48| | H| | channel_pressure: 72 0x1a-0x1b (1)
$ fq -d midi dv events/pitch-bend.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/pitch-bend.mid (midi) 0x0-0x20 (32)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x20 (18)
| | | [0]{}: track 0xe-0x20 (18)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 0a | .... | length: 10 0x12-0x16 (4)
| | | events[0:3]: 0x16-0x20 (10)
| | | [0]{}: midievent 0x16-0x1a (4)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| e5 | . | event: "pitch_bend" (224) 0x17-0x17.4 (0.4)
0x10| e5 | . | channel: 5 0x17.4-0x18 (0.4)
0x10| 40 00 | @. | pitch_bend: 0 0x18-0x1a (2)
| | | [1]{}: midievent 0x1a-0x1d (3)
| | | time{}: 0x1a-0x1b (1)
0x10| 20 | | delta: 32 0x1a-0x1b (1)
| | | tick: 32
| | | event: "pitch_bend" (224)
| | | channel: 5
0x10| 60 00 | `. | pitch_bend: 4096 0x1b-0x1d (2)
| | | [2]{}: midievent 0x1d-0x20 (3)
| | | time{}: 0x1d-0x1e (1)
0x10| 40 | @ | delta: 64 0x1d-0x1e (1)
| | | tick: 96
| | | event: "pitch_bend" (224)
| | | channel: 5
0x10| 20 00| .| pitch_bend: -4096 0x1e-0x20 (2)

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
$ fq -d midi dv reference.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: reference.mid (midi) 0x0-0x13a (314)
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: reference.mid (midi) 0x0-0x12b (299)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x000|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
@ -7,317 +7,311 @@ $ fq -d midi dv reference.mid
0x000| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x000| 00 02 | .. | [3]: 2 tracks 0xa-0xc (2)
0x000| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:2]: 0xe-0x13a (300)
| | | [0]{}: track 0xe-0x41 (51)
| | | tracks[0:2]: 0xe-0x12b (285)
| | | [0]{}: track 0xe-0x1a (12)
0x000| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x010|72 6b |rk |
0x010| 00 00 00 2b | ...+ | length: 43 0x12-0x16 (4)
| | | events[0:5]: 0x16-0x41 (43)
| | | [0]{}: metaevent 0x16-0x25 (15)
0x010| 00 00 00 04 | .... | length: 4 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x1a (4)
| | | [0]{}: metaevent 0x16-0x1a (4)
| | | time{}: 0x16-0x17 (1)
0x010| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x010| ff | . | status: 255 0x17-0x18 (1)
0x010| 03 | . | event: "track_name" (3) 0x18-0x19 (1)
0x010| 0b 52 65 66 65 72 65| .Refere| track_name: "Reference-1" 0x19-0x25 (12)
0x020|6e 63 65 2d 31 |nce-1 |
| | | [1]{}: metaevent 0x25-0x2c (7)
| | | time{}: 0x25-0x26 (1)
0x020| 00 | . | delta: 0 0x25-0x26 (1)
0x010| 2f | / | event: "end_of_track" (47) 0x18-0x19 (1)
0x010| 00 | . | length: 0 0x19-0x1a (1)
| | | [1]{}: track 0x1a-0x12b (273)
0x010| 4d 54 72 6b | MTrk | tag: "MTrk" 0x1a-0x1e (4)
0x010| 00 00| ..| length: 265 0x1e-0x22 (4)
0x020|01 09 |.. |
| | | events[0:34]: 0x22-0x12b (265)
| | | [0]{}: metaevent 0x22-0x28 (6)
| | | time{}: 0x22-0x23 (1)
0x020| 00 | . | delta: 0 0x22-0x23 (1)
| | | tick: 0
0x020| ff | . | status: 255 0x26-0x27 (1)
0x020| 51 | Q | event: "tempo" (81) 0x27-0x28 (1)
0x020| 03 | . | length: 3 0x28-0x29 (1)
0x020| 07 a1 20 | .. | tempo: 500000 0x29-0x2c (3)
| | | [2]{}: metaevent 0x2c-0x34 (8)
| | | time{}: 0x2c-0x2d (1)
0x020| 00 | . | delta: 0 0x2c-0x2d (1)
0x020| ff | . | status: 255 0x23-0x24 (1)
0x020| 00 | . | event: "sequence_number" (0) 0x24-0x25 (1)
0x020| 02 | . | length: 2 0x25-0x26 (1)
0x020| 00 17 | .. | sequence_number: 23 0x26-0x28 (2)
| | | [1]{}: metaevent 0x28-0x39 (17)
| | | time{}: 0x28-0x29 (1)
0x020| 00 | . | delta: 0 0x28-0x29 (1)
| | | tick: 0
0x020| ff | . | status: 255 0x2d-0x2e (1)
0x020| 58 | X | event: "time_signature" (88) 0x2e-0x2f (1)
0x020| 04| .| length: 4 0x2f-0x30 (1)
| | | time_signature{}: 0x30-0x34 (4)
0x030|04 |. | numerator: 4 0x30-0x31 (1)
0x030| 02 | . | denominator: 4 0x31-0x32 (1)
0x030| 18 | . | ticks_per_click: 24 0x32-0x33 (1)
0x030| 08 | . | thirty_seconds_per_quarter: 8 0x33-0x34 (1)
| | | [3]{}: metaevent 0x34-0x3d (9)
| | | time{}: 0x34-0x35 (1)
0x030| 00 | . | delta: 0 0x34-0x35 (1)
0x020| ff | . | status: 255 0x29-0x2a (1)
0x020| 01 | . | event: "text" (1) 0x2a-0x2b (1)
0x020| 0d 54 68 69 73| .This| text: "This and That" 0x2b-0x39 (14)
0x030|20 61 6e 64 20 54 68 61 74 | and That |
| | | [2]{}: metaevent 0x39-0x41 (8)
| | | time{}: 0x39-0x3a (1)
0x030| 00 | . | delta: 0 0x39-0x3a (1)
| | | tick: 0
0x030| ff | . | status: 255 0x35-0x36 (1)
0x030| 54 | T | event: "smpte_offset" (84) 0x36-0x37 (1)
0x030| 05 | . | length: 5 0x37-0x38 (1)
| | | smpte_offset{}: 0x38-0x3d (5)
0x030| 4d | M | framerate: 25 (1) 0x38-0x38.2 (0.2)
0x030| 4d | M | hour: 13 0x38.2-0x39 (0.6)
0x030| 2d | - | minute: 45 0x39-0x3a (1)
0x030| 3b | ; | second: 59 0x3a-0x3b (1)
0x030| 07 | . | frames: 7 0x3b-0x3c (1)
0x030| 27 | ' | fractions: 39 0x3c-0x3d (1)
| | | [4]{}: metaevent 0x3d-0x41 (4)
| | | time{}: 0x3d-0x3e (1)
0x030| 00 | . | delta: 0 0x3d-0x3e (1)
0x030| ff | . | status: 255 0x3a-0x3b (1)
0x030| 02 | . | event: "copyright" (2) 0x3b-0x3c (1)
0x030| 04 54 68 65| .The| copyright: "Them" 0x3c-0x41 (5)
0x040|6d |m |
| | | [3]{}: metaevent 0x41-0x54 (19)
| | | time{}: 0x41-0x42 (1)
0x040| 00 | . | delta: 0 0x41-0x42 (1)
| | | tick: 0
0x030| ff | . | status: 255 0x3e-0x3f (1)
0x030| 2f| /| event: "end_of_track" (47) 0x3f-0x40 (1)
0x040|00 |. | length: 0 0x40-0x41 (1)
| | | [1]{}: track 0x41-0x13a (249)
0x040| 4d 54 72 6b | MTrk | tag: "MTrk" 0x41-0x45 (4)
0x040| 00 00 00 f1 | .... | length: 241 0x45-0x49 (4)
| | | events[0:31]: 0x49-0x13a (241)
| | | [0]{}: metaevent 0x49-0x4f (6)
| | | time{}: 0x49-0x4a (1)
0x040| 00 | . | delta: 0 0x49-0x4a (1)
0x040| ff | . | status: 255 0x42-0x43 (1)
0x040| 03 | . | event: "track_name" (3) 0x43-0x44 (1)
0x040| 0f 41 63 6f 75 73 74 69 63 20 47 75| .Acoustic Gu| track_name: "Acoustic Guitar" 0x44-0x54 (16)
0x050|69 74 61 72 |itar |
| | | [4]{}: metaevent 0x54-0x62 (14)
| | | time{}: 0x54-0x55 (1)
0x050| 00 | . | delta: 0 0x54-0x55 (1)
| | | tick: 0
0x040| ff | . | status: 255 0x4a-0x4b (1)
0x040| 00 | . | event: "sequence_number" (0) 0x4b-0x4c (1)
0x040| 02 | . | length: 2 0x4c-0x4d (1)
0x040| 00 17 | .. | sequence_number: 23 0x4d-0x4f (2)
| | | [1]{}: metaevent 0x4f-0x60 (17)
| | | time{}: 0x4f-0x50 (1)
0x040| 00| .| delta: 0 0x4f-0x50 (1)
0x050| ff | . | status: 255 0x55-0x56 (1)
0x050| 04 | . | event: "instrument_name" (4) 0x56-0x57 (1)
0x050| 0a 44 69 64 67 65 72 69 64| .Didgerid| instrument_name: "Didgeridoo" 0x57-0x62 (11)
0x060|6f 6f |oo |
| | | [5]{}: metaevent 0x62-0x6e (12)
| | | time{}: 0x62-0x63 (1)
0x060| 00 | . | delta: 0 0x62-0x63 (1)
| | | tick: 0
0x050|ff |. | status: 255 0x50-0x51 (1)
0x050| 01 | . | event: "text" (1) 0x51-0x52 (1)
0x050| 0d 54 68 69 73 20 61 6e 64 20 54 68 61 74| .This and That| text: "This and That" 0x52-0x60 (14)
| | | [2]{}: metaevent 0x60-0x68 (8)
| | | time{}: 0x60-0x61 (1)
0x060|00 |. | delta: 0 0x60-0x61 (1)
0x060| ff | . | status: 255 0x63-0x64 (1)
0x060| 05 | . | event: "lyric" (5) 0x64-0x65 (1)
0x060| 08 4c 61 2d 6c 61 2d 6c 61 | .La-la-la | lyric: "La-la-la" 0x65-0x6e (9)
| | | [6]{}: metaevent 0x6e-0x81 (19)
| | | time{}: 0x6e-0x6f (1)
0x060| 00 | . | delta: 0 0x6e-0x6f (1)
| | | tick: 0
0x060| ff | . | status: 255 0x61-0x62 (1)
0x060| 02 | . | event: "copyright" (2) 0x62-0x63 (1)
0x060| 04 54 68 65 6d | .Them | copyright: "Them" 0x63-0x68 (5)
| | | [3]{}: metaevent 0x68-0x7b (19)
| | | time{}: 0x68-0x69 (1)
0x060| 00 | . | delta: 0 0x68-0x69 (1)
0x060| ff| .| status: 255 0x6f-0x70 (1)
0x070|06 |. | event: "marker" (6) 0x70-0x71 (1)
0x070| 0f 48 65 72 65 20 42 65 20 44 72 61 67 6f 6e| .Here Be Dragon| marker: "Here Be Dragons" 0x71-0x81 (16)
0x080|73 |s |
| | | [7]{}: metaevent 0x81-0x91 (16)
| | | time{}: 0x81-0x82 (1)
0x080| 00 | . | delta: 0 0x81-0x82 (1)
| | | tick: 0
0x060| ff | . | status: 255 0x69-0x6a (1)
0x060| 03 | . | event: "track_name" (3) 0x6a-0x6b (1)
0x060| 0f 41 63 6f 75| .Acou| track_name: "Acoustic Guitar" 0x6b-0x7b (16)
0x070|73 74 69 63 20 47 75 69 74 61 72 |stic Guitar |
| | | [4]{}: metaevent 0x7b-0x89 (14)
| | | time{}: 0x7b-0x7c (1)
0x070| 00 | . | delta: 0 0x7b-0x7c (1)
0x080| ff | . | status: 255 0x82-0x83 (1)
0x080| 07 | . | event: "cue_point" (7) 0x83-0x84 (1)
0x080| 0c 4d 6f 72 65 20 63 6f 77 62 65 6c| .More cowbel| cue_point: "More cowbell" 0x84-0x91 (13)
0x090|6c |l |
| | | [8]{}: metaevent 0x91-0x9b (10)
| | | time{}: 0x91-0x92 (1)
0x090| 00 | . | delta: 0 0x91-0x92 (1)
| | | tick: 0
0x070| ff | . | status: 255 0x7c-0x7d (1)
0x070| 04 | . | event: "instrument_name" (4) 0x7d-0x7e (1)
0x070| 0a 44| .D| instrument_name: "Didgeridoo" 0x7e-0x89 (11)
0x080|69 64 67 65 72 69 64 6f 6f |idgeridoo |
| | | [5]{}: metaevent 0x89-0x95 (12)
| | | time{}: 0x89-0x8a (1)
0x080| 00 | . | delta: 0 0x89-0x8a (1)
0x090| ff | . | status: 255 0x92-0x93 (1)
0x090| 08 | . | event: "program_name" (8) 0x93-0x94 (1)
0x090| 06 45 73 63 61 70 65 | .Escape | program_name: "Escape" 0x94-0x9b (7)
| | | [9]{}: metaevent 0x9b-0xa7 (12)
| | | time{}: 0x9b-0x9c (1)
0x090| 00 | . | delta: 0 0x9b-0x9c (1)
| | | tick: 0
0x080| ff | . | status: 255 0x8a-0x8b (1)
0x080| 05 | . | event: "lyric" (5) 0x8b-0x8c (1)
0x080| 08 4c 61 2d| .La-| lyric: "La-la-la" 0x8c-0x95 (9)
0x090|6c 61 2d 6c 61 |la-la |
| | | [6]{}: metaevent 0x95-0xa8 (19)
| | | time{}: 0x95-0x96 (1)
0x090| 00 | . | delta: 0 0x95-0x96 (1)
0x090| ff | . | status: 255 0x9c-0x9d (1)
0x090| 09 | . | event: "device_name" (9) 0x9d-0x9e (1)
0x090| 08 54| .T| device_name: "TheThing" 0x9e-0xa7 (9)
0x0a0|68 65 54 68 69 6e 67 |heThing |
| | | [10]{}: metaevent 0xa7-0xac (5)
| | | time{}: 0xa7-0xa8 (1)
0x0a0| 00 | . | delta: 0 0xa7-0xa8 (1)
| | | tick: 0
0x090| ff | . | status: 255 0x96-0x97 (1)
0x090| 06 | . | event: "marker" (6) 0x97-0x98 (1)
0x090| 0f 48 65 72 65 20 42 65| .Here Be| marker: "Here Be Dragons" 0x98-0xa8 (16)
0x0a0|20 44 72 61 67 6f 6e 73 | Dragons |
| | | [7]{}: metaevent 0xa8-0xb8 (16)
| | | time{}: 0xa8-0xa9 (1)
0x0a0| 00 | . | delta: 0 0xa8-0xa9 (1)
0x0a0| ff | . | status: 255 0xa8-0xa9 (1)
0x0a0| 20 | | event: "midi_channel_prefix" (32) 0xa9-0xaa (1)
0x0a0| 01 | . | length: 1 0xaa-0xab (1)
0x0a0| 0d | . | midi_channel_prefix: 13 0xab-0xac (1)
| | | [11]{}: metaevent 0xac-0xb1 (5)
| | | time{}: 0xac-0xad (1)
0x0a0| 00 | . | delta: 0 0xac-0xad (1)
| | | tick: 0
0x0a0| ff | . | status: 255 0xa9-0xaa (1)
0x0a0| 07 | . | event: "cue_point" (7) 0xaa-0xab (1)
0x0a0| 0c 4d 6f 72 65| .More| cue_point: "More cowbell" 0xab-0xb8 (13)
0x0b0|20 63 6f 77 62 65 6c 6c | cowbell |
| | | [8]{}: metaevent 0xb8-0xc2 (10)
| | | time{}: 0xb8-0xb9 (1)
0x0b0| 00 | . | delta: 0 0xb8-0xb9 (1)
0x0a0| ff | . | status: 255 0xad-0xae (1)
0x0a0| 21 | ! | event: "midi_port" (33) 0xae-0xaf (1)
0x0a0| 01| .| length: 1 0xaf-0xb0 (1)
0x0b0|70 |p | midi_port: 112 0xb0-0xb1 (1)
| | | [12]{}: metaevent 0xb1-0xb5 (4)
| | | time{}: 0xb1-0xb2 (1)
0x0b0| 00 | . | delta: 0 0xb1-0xb2 (1)
| | | tick: 0
0x0b0| ff | . | status: 255 0xb9-0xba (1)
0x0b0| 08 | . | event: "program_name" (8) 0xba-0xbb (1)
0x0b0| 06 45 73 63 61| .Esca| program_name: "Escape" 0xbb-0xc2 (7)
0x0c0|70 65 |pe |
| | | [9]{}: metaevent 0xc2-0xce (12)
| | | time{}: 0xc2-0xc3 (1)
0x0c0| 00 | . | delta: 0 0xc2-0xc3 (1)
0x0b0| ff | . | status: 255 0xb2-0xb3 (1)
0x0b0| 2f | / | event: "end_of_track" (47) 0xb3-0xb4 (1)
0x0b0| 00 | . | length: 0 0xb4-0xb5 (1)
| | | [13]{}: metaevent 0xb5-0xbc (7)
| | | time{}: 0xb5-0xb6 (1)
0x0b0| 00 | . | delta: 0 0xb5-0xb6 (1)
| | | tick: 0
0x0c0| ff | . | status: 255 0xc3-0xc4 (1)
0x0c0| 09 | . | event: "device_name" (9) 0xc4-0xc5 (1)
0x0c0| 08 54 68 65 54 68 69 6e 67 | .TheThing | device_name: "TheThing" 0xc5-0xce (9)
| | | [10]{}: metaevent 0xce-0xd3 (5)
| | | time{}: 0xce-0xcf (1)
0x0c0| 00 | . | delta: 0 0xce-0xcf (1)
0x0b0| ff | . | status: 255 0xb6-0xb7 (1)
0x0b0| 51 | Q | event: "tempo" (81) 0xb7-0xb8 (1)
0x0b0| 03 | . | length: 3 0xb8-0xb9 (1)
0x0b0| 07 a1 20 | .. | tempo: 500000 0xb9-0xbc (3)
| | | [14]{}: metaevent 0xbc-0xc5 (9)
| | | time{}: 0xbc-0xbd (1)
0x0b0| 00 | . | delta: 0 0xbc-0xbd (1)
| | | tick: 0
0x0c0| ff| .| status: 255 0xcf-0xd0 (1)
0x0d0|20 | | event: "midi_channel_prefix" (32) 0xd0-0xd1 (1)
0x0d0| 01 | . | length: 1 0xd1-0xd2 (1)
0x0d0| 0d | . | midi_channel_prefix: 13 0xd2-0xd3 (1)
| | | [11]{}: metaevent 0xd3-0xd8 (5)
0x0b0| ff | . | status: 255 0xbd-0xbe (1)
0x0b0| 54 | T | event: "smpte_offset" (84) 0xbe-0xbf (1)
0x0b0| 05| .| length: 5 0xbf-0xc0 (1)
| | | smpte_offset{}: 0xc0-0xc5 (5)
0x0c0|4d |M | framerate: 25 (1) 0xc0-0xc0.2 (0.2)
0x0c0|4d |M | hour: 13 0xc0.2-0xc1 (0.6)
0x0c0| 2d | - | minute: 45 0xc1-0xc2 (1)
0x0c0| 3b | ; | second: 59 0xc2-0xc3 (1)
0x0c0| 07 | . | frames: 7 0xc3-0xc4 (1)
0x0c0| 27 | ' | fractions: 39 0xc4-0xc5 (1)
| | | [15]{}: metaevent 0xc5-0xcd (8)
| | | time{}: 0xc5-0xc6 (1)
0x0c0| 00 | . | delta: 0 0xc5-0xc6 (1)
| | | tick: 0
0x0c0| ff | . | status: 255 0xc6-0xc7 (1)
0x0c0| 58 | X | event: "time_signature" (88) 0xc7-0xc8 (1)
0x0c0| 04 | . | length: 4 0xc8-0xc9 (1)
| | | time_signature{}: 0xc9-0xcd (4)
0x0c0| 04 | . | numerator: 4 0xc9-0xca (1)
0x0c0| 02 | . | denominator: 4 0xca-0xcb (1)
0x0c0| 18 | . | ticks_per_click: 24 0xcb-0xcc (1)
0x0c0| 08 | . | thirty_seconds_per_quarter: 8 0xcc-0xcd (1)
| | | [16]{}: metaevent 0xcd-0xd3 (6)
| | | time{}: 0xcd-0xce (1)
0x0c0| 00 | . | delta: 0 0xcd-0xce (1)
| | | tick: 0
0x0c0| ff | . | status: 255 0xce-0xcf (1)
0x0c0| 59| Y| event: "key_signature" (89) 0xcf-0xd0 (1)
0x0d0|02 |. | length: 2 0xd0-0xd1 (1)
0x0d0| 00 01 | .. | key_signature: "A minor" (1) 0xd1-0xd3 (2)
| | | [17]{}: metaevent 0xd3-0xdd (10)
| | | time{}: 0xd3-0xd4 (1)
0x0d0| 00 | . | delta: 0 0xd3-0xd4 (1)
| | | tick: 0
0x0d0| ff | . | status: 255 0xd4-0xd5 (1)
0x0d0| 21 | ! | event: "midi_port" (33) 0xd5-0xd6 (1)
0x0d0| 01 | . | length: 1 0xd6-0xd7 (1)
0x0d0| 70 | p | midi_port: 112 0xd7-0xd8 (1)
| | | [12]{}: metaevent 0xd8-0xde (6)
| | | time{}: 0xd8-0xd9 (1)
0x0d0| 00 | . | delta: 0 0xd8-0xd9 (1)
| | | tick: 0
0x0d0| ff | . | status: 255 0xd9-0xda (1)
0x0d0| 59 | Y | event: "key_signature" (89) 0xda-0xdb (1)
0x0d0| 02 | . | length: 2 0xdb-0xdc (1)
0x0d0| 00 01 | .. | key_signature: "A minor" (1) 0xdc-0xde (2)
| | | [13]{}: metaevent 0xde-0xe8 (10)
| | | time{}: 0xde-0xdf (1)
0x0d0| 00 | . | delta: 0 0xde-0xdf (1)
| | | tick: 0
0x0d0| ff| .| status: 255 0xdf-0xe0 (1)
0x0e0|7f |. | event: "sequencer_specific_event" (127) 0xe0-0xe1 (1)
0x0e0| 06 | . | length: 6 0xe1-0xe2 (1)
| | | sequencer_specific_event{}: 0xe2-0xe8 (6)
0x0e0| 00 00 3b | ..; | manufacturer: "Mark Of The Unicorn (MOTU)" (59) 0xe2-0xe5 (3)
0x0e0| 3a 4c 5e | :L^ | data: raw bits 0xe5-0xe8 (3)
| | | [14]{}: midievent 0xe8-0xec (4)
| | | time{}: 0xe8-0xe9 (1)
0x0e0| 00 | . | delta: 0 0xe8-0xe9 (1)
| | | tick: 0
0x0e0| b0 | . | event: "controller" (176) 0xe9-0xe9.4 (0.4)
0x0e0| b0 | . | channel: 0 0xe9.4-0xea (0.4)
| | | controller{}: 0xea-0xec (2)
0x0e0| 00 | . | controller: "Bank Select (MSB)" (0) 0xea-0xeb (1)
0x0e0| 05 | . | value: 5 0xeb-0xec (1)
| | | [15]{}: midievent 0xec-0xf0 (4)
| | | time{}: 0xec-0xed (1)
0x0e0| 00 | . | delta: 0 0xec-0xed (1)
| | | tick: 0
0x0e0| b0 | . | event: "controller" (176) 0xed-0xed.4 (0.4)
0x0e0| b0 | . | channel: 0 0xed.4-0xee (0.4)
| | | controller{}: 0xee-0xf0 (2)
0x0e0| 20 | | controller: "Bank Select (LSB)" (32) 0xee-0xef (1)
0x0e0| 21| !| value: 33 0xef-0xf0 (1)
| | | [16]{}: midievent 0xf0-0xf3 (3)
| | | time{}: 0xf0-0xf1 (1)
0x0f0|00 |. | delta: 0 0xf0-0xf1 (1)
| | | tick: 0
0x0f0| c0 | . | event: "program_change" (192) 0xf1-0xf1.4 (0.4)
0x0f0| c0 | . | channel: 0 0xf1.4-0xf2 (0.4)
0x0f0| 19 | . | program_change: 25 0xf2-0xf3 (1)
| | | [17]{}: midievent 0xf3-0xf7 (4)
| | | time{}: 0xf3-0xf4 (1)
0x0f0| 00 | . | delta: 0 0xf3-0xf4 (1)
| | | tick: 0
0x0f0| b0 | . | event: "controller" (176) 0xf4-0xf4.4 (0.4)
0x0f0| b0 | . | channel: 0 0xf4.4-0xf5 (0.4)
| | | controller{}: 0xf5-0xf7 (2)
0x0f0| 65 | e | controller: "Registered Parameter Number (MSB)" (101) 0xf5-0xf6 (1)
0x0f0| 00 | . | value: 0 0xf6-0xf7 (1)
| | | [18]{}: midievent 0xf7-0xfa (3)
| | | time{}: 0xf7-0xf8 (1)
0x0f0| 00 | . | delta: 0 0xf7-0xf8 (1)
| | | tick: 0
0x0f0| a0 | . | event: "polyphonic_pressure" (160) 0xf8-0xf8.4 (0.4)
0x0f0| a0 | . | channel: 0 0xf8.4-0xf9 (0.4)
0x0f0| 64 | d | polyphonic_pressure: 100 0xf9-0xfa (1)
| | | [19]{}: midievent 0xfa-0xfd (3)
| | | time{}: 0xfa-0xfb (1)
0x0f0| 00 | . | delta: 0 0xfa-0xfb (1)
| | | tick: 0
0x0f0| d0 | . | event: "channel_pressure" (208) 0xfb-0xfb.4 (0.4)
0x0f0| d0 | . | channel: 0 0xfb.4-0xfc (0.4)
0x0f0| 07 | . | channel_pressure: 7 0xfc-0xfd (1)
| | | [20]{}: midievent 0xfd-0x101 (4)
| | | time{}: 0xfd-0xfe (1)
0x0f0| 00 | . | delta: 0 0xfd-0xfe (1)
| | | tick: 0
0x0f0| 90 | . | event: "note_on" (144) 0xfe-0xfe.4 (0.4)
0x0f0| 90 | . | channel: 0 0xfe.4-0xff (0.4)
| | | note_on{}: 0xff-0x101 (2)
0x0f0| 30| 0| note: "C3" (48) 0xff-0x100 (1)
0x100|48 |H | velocity: 72 0x100-0x101 (1)
| | | [21]{}: midievent 0x101-0x105 (4)
| | | time{}: 0x101-0x102 (1)
0x100| 00 | . | delta: 0 0x101-0x102 (1)
| | | tick: 0
0x100| 92 | . | event: "note_on" (144) 0x102-0x102.4 (0.4)
0x100| 92 | . | channel: 2 0x102.4-0x103 (0.4)
| | | note_on{}: 0x103-0x105 (2)
0x100| 31 | 1 | note: "C♯3/D♭3" (49) 0x103-0x104 (1)
0x100| 48 | H | velocity: 72 0x104-0x105 (1)
| | | [22]{}: midievent 0x105-0x108 (3)
| | | time{}: 0x105-0x106 (1)
0x100| 00 | . | delta: 0 0x105-0x106 (1)
| | | tick: 0
0x0d0| 7f | . | event: "sequencer_specific_event" (127) 0xd5-0xd6 (1)
0x0d0| 06 | . | length: 6 0xd6-0xd7 (1)
| | | sequencer_specific_event{}: 0xd7-0xdd (6)
0x0d0| 00 00 3b | ..; | manufacturer: "Mark Of The Unicorn (MOTU)" (59) 0xd7-0xda (3)
0x0d0| 3a 4c 5e | :L^ | data: raw bits 0xda-0xdd (3)
| | | [18]{}: midievent 0xdd-0xe2 (5)
| | | time{}: 0xdd-0xdf (2)
0x0d0| 83 60 | .` | delta: 480 0xdd-0xdf (2)
| | | tick: 480
0x0d0| 80| .| event: "note_off" (128) 0xdf-0xdf.4 (0.4)
0x0d0| 80| .| channel: 0 0xdf.4-0xe0 (0.4)
| | | note_off{}: 0xe0-0xe2 (2)
0x0e0|30 |0 | note: "C3" (48) 0xe0-0xe1 (1)
0x0e0| 40 | @ | velocity: 64 0xe1-0xe2 (1)
| | | [19]{}: midievent 0xe2-0xe6 (4)
| | | time{}: 0xe2-0xe3 (1)
0x0e0| 00 | . | delta: 0 0xe2-0xe3 (1)
| | | tick: 480
0x0e0| 90 | . | event: "note_on" (144) 0xe3-0xe3.4 (0.4)
0x0e0| 90 | . | channel: 0 0xe3.4-0xe4 (0.4)
| | | note_on{}: 0xe4-0xe6 (2)
0x0e0| 30 | 0 | note: "C3" (48) 0xe4-0xe5 (1)
0x0e0| 48 | H | velocity: 72 0xe5-0xe6 (1)
| | | [20]{}: midievent 0xe6-0xea (4)
| | | time{}: 0xe6-0xe7 (1)
0x0e0| 00 | . | delta: 0 0xe6-0xe7 (1)
| | | tick: 480
0x0e0| 92 | . | event: "note_on" (144) 0xe7-0xe7.4 (0.4)
0x0e0| 92 | . | channel: 2 0xe7.4-0xe8 (0.4)
| | | note_on{}: 0xe8-0xea (2)
0x0e0| 31 | 1 | note: "C♯3/D♭3" (49) 0xe8-0xe9 (1)
0x0e0| 48 | H | velocity: 72 0xe9-0xea (1)
| | | [21]{}: midievent 0xea-0xed (3)
| | | time{}: 0xea-0xeb (1)
0x0e0| 00 | . | delta: 0 0xea-0xeb (1)
| | | tick: 480
| | | event: "note_on" (144)
| | | channel: 2
| | | note_on{}: 0x106-0x108 (2)
0x100| 30 | 0 | note: "C3" (48) 0x106-0x107 (1)
0x100| 64 | d | velocity: 100 0x107-0x108 (1)
| | | [23]{}: midievent 0x108-0x10d (5)
| | | time{}: 0x108-0x10a (2)
0x100| 81 70 | .p | delta: 240 0x108-0x10a (2)
| | | tick: 240
0x100| e0 | . | event: "pitch_bend" (224) 0x10a-0x10a.4 (0.4)
0x100| e0 | . | channel: 0 0x10a.4-0x10b (0.4)
0x100| 00 08 | .. | pitch_bend: -8184 0x10b-0x10d (2)
| | | [24]{}: midievent 0x10d-0x112 (5)
| | | time{}: 0x10d-0x10f (2)
0x100| 83 60 | .` | delta: 480 0x10d-0x10f (2)
| | | note_on{}: 0xeb-0xed (2)
0x0e0| 30 | 0 | note: "C3" (48) 0xeb-0xec (1)
0x0e0| 64 | d | velocity: 100 0xec-0xed (1)
| | | [22]{}: midievent 0xed-0xf0 (3)
| | | time{}: 0xed-0xee (1)
0x0e0| 00 | . | delta: 0 0xed-0xee (1)
| | | tick: 480
0x0e0| a0 | . | event: "polyphonic_pressure" (160) 0xee-0xee.4 (0.4)
0x0e0| a0 | . | channel: 0 0xee.4-0xef (0.4)
0x0e0| 64| d| polyphonic_pressure: 100 0xef-0xf0 (1)
| | | [23]{}: midievent 0xf0-0xf4 (4)
| | | time{}: 0xf0-0xf1 (1)
0x0f0|00 |. | delta: 0 0xf0-0xf1 (1)
| | | tick: 480
0x0f0| b0 | . | event: "controller" (176) 0xf1-0xf1.4 (0.4)
0x0f0| b0 | . | channel: 0 0xf1.4-0xf2 (0.4)
| | | controller{}: 0xf2-0xf4 (2)
0x0f0| 00 | . | controller: "Bank Select (MSB)" (0) 0xf2-0xf3 (1)
0x0f0| 05 | . | value: 5 0xf3-0xf4 (1)
| | | [24]{}: midievent 0xf4-0xf8 (4)
| | | time{}: 0xf4-0xf5 (1)
0x0f0| 00 | . | delta: 0 0xf4-0xf5 (1)
| | | tick: 480
0x0f0| b0 | . | event: "controller" (176) 0xf5-0xf5.4 (0.4)
0x0f0| b0 | . | channel: 0 0xf5.4-0xf6 (0.4)
| | | controller{}: 0xf6-0xf8 (2)
0x0f0| 20 | | controller: "Bank Select (LSB)" (32) 0xf6-0xf7 (1)
0x0f0| 21 | ! | value: 33 0xf7-0xf8 (1)
| | | [25]{}: midievent 0xf8-0xfc (4)
| | | time{}: 0xf8-0xf9 (1)
0x0f0| 00 | . | delta: 0 0xf8-0xf9 (1)
| | | tick: 480
0x0f0| b0 | . | event: "controller" (176) 0xf9-0xf9.4 (0.4)
0x0f0| b0 | . | channel: 0 0xf9.4-0xfa (0.4)
| | | controller{}: 0xfa-0xfc (2)
0x0f0| 65 | e | controller: "Registered Parameter Number (MSB)" (101) 0xfa-0xfb (1)
0x0f0| 00 | . | value: 0 0xfb-0xfc (1)
| | | [26]{}: midievent 0xfc-0xff (3)
| | | time{}: 0xfc-0xfd (1)
0x0f0| 00 | . | delta: 0 0xfc-0xfd (1)
| | | tick: 480
0x0f0| c0 | . | event: "program_change" (192) 0xfd-0xfd.4 (0.4)
0x0f0| c0 | . | channel: 0 0xfd.4-0xfe (0.4)
0x0f0| 19 | . | program_change: 25 0xfe-0xff (1)
| | | [27]{}: midievent 0xff-0x102 (3)
| | | time{}: 0xff-0x100 (1)
0x0f0| 00| .| delta: 0 0xff-0x100 (1)
| | | tick: 480
0x100|d0 |. | event: "channel_pressure" (208) 0x100-0x100.4 (0.4)
0x100|d0 |. | channel: 0 0x100.4-0x101 (0.4)
0x100| 07 | . | channel_pressure: 7 0x101-0x102 (1)
| | | [28]{}: midievent 0x102-0x107 (5)
| | | time{}: 0x102-0x104 (2)
0x100| 81 70 | .p | delta: 240 0x102-0x104 (2)
| | | tick: 720
0x100| 80| .| event: "note_off" (128) 0x10f-0x10f.4 (0.4)
0x100| 80| .| channel: 0 0x10f.4-0x110 (0.4)
| | | note_off{}: 0x110-0x112 (2)
0x110|30 |0 | note: "C3" (48) 0x110-0x111 (1)
0x110| 40 | @ | velocity: 64 0x111-0x112 (1)
| | | [25]{}: sysex 0x112-0x11a (8)
| | | time{}: 0x112-0x113 (1)
0x110| 00 | . | delta: 0 0x112-0x113 (1)
0x100| e0 | . | event: "pitch_bend" (224) 0x104-0x104.4 (0.4)
0x100| e0 | . | channel: 0 0x104.4-0x105 (0.4)
0x100| 00 08 | .. | pitch_bend: -8184 0x105-0x107 (2)
| | | [29]{}: sysex 0x107-0x10f (8)
| | | time{}: 0x107-0x108 (1)
0x100| 00 | . | delta: 0 0x107-0x108 (1)
| | | tick: 720
0x110| f0 | . | event: "sysex_message" (240) 0x113-0x114 (1)
0x110| 05 | . | length: 5 0x114-0x115 (1)
| | | sysex_message{}: 0x115-0x11a (5)
0x110| 7e | ~ | manufacturer: "Non-RealTime Extensions" (126) 0x115-0x116 (1)
0x110| 00 09 01 | ... | data: raw bits 0x116-0x119 (3)
0x110| f7 | . | end_of_message: 247 0x119-0x11a (1)
| | | [26]{}: sysex 0x11a-0x120 (6)
| | | time{}: 0x11a-0x11b (1)
0x110| 00 | . | delta: 0 0x11a-0x11b (1)
0x100| f0 | . | event: "sysex_message" (240) 0x108-0x109 (1)
0x100| 05 | . | length: 5 0x109-0x10a (1)
| | | sysex_message{}: 0x10a-0x10f (5)
0x100| 7e | ~ | manufacturer: "Non-RealTime Extensions" (126) 0x10a-0x10b (1)
0x100| 00 09 01 | ... | data: raw bits 0x10b-0x10e (3)
0x100| f7 | . | end_of_message: 247 0x10e-0x10f (1)
| | | [30]{}: sysex 0x10f-0x115 (6)
| | | time{}: 0x10f-0x110 (1)
0x100| 00| .| delta: 0 0x10f-0x110 (1)
| | | tick: 720
0x110| f0 | . | event: "sysex_message" (240) 0x11b-0x11c (1)
0x110| 03 | . | length: 3 0x11c-0x11d (1)
| | | sysex_message{}: 0x11d-0x120 (3)
0x110| 43 | C | manufacturer: "Yamaha" (67) 0x11d-0x11e (1)
0x110| 12 00| ..| data: raw bits 0x11e-0x120 (2)
0x110|f0 |. | event: "sysex_message" (240) 0x110-0x111 (1)
0x110| 03 | . | length: 3 0x111-0x112 (1)
| | | sysex_message{}: 0x112-0x115 (3)
0x110| 43 | C | manufacturer: "Yamaha" (67) 0x112-0x113 (1)
0x110| 12 00 | .. | data: raw bits 0x113-0x115 (2)
| | | continued: true
| | | [27]{}: sysex 0x120-0x12a (10)
| | | time{}: 0x120-0x122 (2)
0x120|81 48 |.H | delta: 200 0x120-0x122 (2)
| | | [31]{}: sysex 0x115-0x11f (10)
| | | time{}: 0x115-0x117 (2)
0x110| 81 48 | .H | delta: 200 0x115-0x117 (2)
| | | tick: 920
0x120| f7 | . | event: "sysex_continuation" (247) 0x122-0x123 (1)
0x120| 06 | . | length: 6 0x123-0x124 (1)
| | | sysex_continuation{}: 0x124-0x12a (6)
0x120| 43 12 00 43 12 00 | C..C.. | data: raw bits 0x124-0x12a (6)
0x110| f7 | . | event: "sysex_continuation" (247) 0x117-0x118 (1)
0x110| 06 | . | length: 6 0x118-0x119 (1)
| | | sysex_continuation{}: 0x119-0x11f (6)
0x110| 43 12 00 43 12 00 | C..C.. | data: raw bits 0x119-0x11f (6)
| | | continued: true
| | | [28]{}: sysex 0x12a-0x131 (7)
| | | time{}: 0x12a-0x12b (1)
0x120| 64 | d | delta: 100 0x12a-0x12b (1)
| | | [32]{}: sysex 0x11f-0x126 (7)
| | | time{}: 0x11f-0x120 (1)
0x110| 64| d| delta: 100 0x11f-0x120 (1)
| | | tick: 1020
0x120| f7 | . | event: "sysex_continuation" (247) 0x12b-0x12c (1)
0x120| 04 | . | length: 4 0x12c-0x12d (1)
| | | sysex_continuation{}: 0x12d-0x131 (4)
0x120| 43 12 00| C..| data: raw bits 0x12d-0x130 (3)
0x130|f7 |. | end_of_message: 247 0x130-0x131 (1)
| | | [29]{}: sysex 0x131-0x136 (5)
| | | time{}: 0x131-0x132 (1)
0x130| 00 | . | delta: 0 0x131-0x132 (1)
0x120|f7 |. | event: "sysex_continuation" (247) 0x120-0x121 (1)
0x120| 04 | . | length: 4 0x121-0x122 (1)
| | | sysex_continuation{}: 0x122-0x126 (4)
0x120| 43 12 00 | C.. | data: raw bits 0x122-0x125 (3)
0x120| f7 | . | end_of_message: 247 0x125-0x126 (1)
| | | [33]{}: sysex 0x126-0x12b (5)
| | | time{}: 0x126-0x127 (1)
0x120| 00 | . | delta: 0 0x126-0x127 (1)
| | | tick: 1020
0x130| f7 | . | event: "sysex_escape" (247) 0x132-0x133 (1)
0x130| 02 | . | length: 2 0x133-0x134 (1)
| | | sysex_escape{}: 0x134-0x136 (2)
0x130| f3 01 | .. | data: raw bits 0x134-0x136 (2)
| | | [30]{}: metaevent 0x136-0x13a (4)
| | | time{}: 0x136-0x137 (1)
0x130| 00 | . | delta: 0 0x136-0x137 (1)
| | | tick: 1020
0x130| ff | . | status: 255 0x137-0x138 (1)
0x130| 2f | / | event: "end_of_track" (47) 0x138-0x139 (1)
0x130| 00| | .| | length: 0 0x139-0x13a (1)
0x120| f7 | . | event: "sysex_escape" (247) 0x127-0x128 (1)
0x120| 02 | . | length: 2 0x128-0x129 (1)
| | | sysex_escape{}: 0x129-0x12b (2)
0x120| f3 01| | ..| | data: raw bits 0x129-0x12b (2)

Binary file not shown.

92
format/midi/testdata/sysex.fqtest vendored Normal file
View File

@ -0,0 +1,92 @@
$ fq -d midi dv events/sysex-message.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/sysex-message.mid (midi) 0x0-0x1e (30)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1e (16)
| | | [0]{}: track 0xe-0x1e (16)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 08 | .... | length: 8 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x1e (8)
| | | [0]{}: sysex 0x16-0x1e (8)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| f0 | . | event: "sysex_message" (240) 0x17-0x18 (1)
0x10| 05 | . | length: 5 0x18-0x19 (1)
| | | sysex_message{}: 0x19-0x1e (5)
0x10| 7e | ~ | manufacturer: "Non-RealTime Extensions" (126) 0x19-0x1a (1)
0x10| 00 09 01 | ... | data: raw bits 0x1a-0x1d (3)
0x10| f7| | .| | end_of_message: 247 0x1d-0x1e (1)
$ fq -d midi dv events/sysex-continuation.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/sysex-continuation.mid (midi) 0x0-0x2c (44)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x2c (30)
| | | [0]{}: track 0xe-0x2c (30)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 16 | .... | length: 22 0x12-0x16 (4)
| | | events[0:3]: 0x16-0x2c (22)
| | | [0]{}: sysex 0x16-0x1c (6)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| f0 | . | event: "sysex_message" (240) 0x17-0x18 (1)
0x10| 03 | . | length: 3 0x18-0x19 (1)
| | | sysex_message{}: 0x19-0x1c (3)
0x10| 43 | C | manufacturer: "Yamaha" (67) 0x19-0x1a (1)
0x10| 01 23 | .# | data: raw bits 0x1a-0x1c (2)
| | | continued: true
| | | [1]{}: sysex 0x1c-0x25 (9)
| | | time{}: 0x1c-0x1d (1)
0x10| 00 | . | delta: 0 0x1c-0x1d (1)
| | | tick: 0
0x10| f7 | . | event: "sysex_continuation" (247) 0x1d-0x1e (1)
0x10| 06 | . | length: 6 0x1e-0x1f (1)
| | | sysex_continuation{}: 0x1f-0x25 (6)
0x10| 45| E| data: raw bits 0x1f-0x25 (6)
0x20|67 89 ab cd ef |g.... |
| | | continued: true
| | | [2]{}: sysex 0x25-0x2c (7)
| | | time{}: 0x25-0x26 (1)
0x20| 00 | . | delta: 0 0x25-0x26 (1)
| | | tick: 0
0x20| f7 | . | event: "sysex_continuation" (247) 0x26-0x27 (1)
0x20| 04 | . | length: 4 0x27-0x28 (1)
| | | sysex_continuation{}: 0x28-0x2c (4)
0x20| 01 23 45 | .#E | data: raw bits 0x28-0x2b (3)
0x20| f7| | .| | end_of_message: 247 0x2b-0x2c (1)
$ fq -d midi dv events/sysex-escape.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: events/sysex-escape.mid (midi) 0x0-0x1b (27)
| | | header{}: 0x0-0xe (14)
| | | header[0:5]: 0x0-0xe (14)
0x00|4d 54 68 64 |MThd | [0]: "MThd" tag 0x0-0x4 (4)
0x00| 00 00 00 06 | .... | [1]: 6 length 0x4-0x8 (4)
0x00| 00 01 | .. | [2]: 1 format 0x8-0xa (2)
0x00| 00 01 | .. | [3]: 1 tracks 0xa-0xc (2)
0x00| 01 e0 | .. | [4]: 480 divisions 0xc-0xe (2)
| | | tracks[0:1]: 0xe-0x1b (13)
| | | [0]{}: track 0xe-0x1b (13)
0x00| 4d 54| MT| tag: "MTrk" 0xe-0x12 (4)
0x10|72 6b |rk |
0x10| 00 00 00 05 | .... | length: 5 0x12-0x16 (4)
| | | events[0:1]: 0x16-0x1b (5)
| | | [0]{}: sysex 0x16-0x1b (5)
| | | time{}: 0x16-0x17 (1)
0x10| 00 | . | delta: 0 0x16-0x17 (1)
| | | tick: 0
0x10| f7 | . | event: "sysex_escape" (247) 0x17-0x18 (1)
0x10| 02 | . | length: 2 0x18-0x19 (1)
| | | sysex_escape{}: 0x19-0x1b (2)
0x10| f3 01| | ..| | data: raw bits 0x19-0x1b (2)

View File

@ -1,4 +1,51 @@
$ fq -d midi '.. | select(.event=="tempo")?.tempo' midi/test.mid
exitcode: 2
stderr:
error: midi/test.mid: no such file or directory
$ fq -d midi '.. | select(.event=="tempo")?.tempo' midi/twinkle.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x10| 0a 2c 2a | .,* |.tracks[0].events[0].tempo: 666666
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x30| 0a 83 a4 | ... |.tracks[0].events[3].tempo: 689060
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x30| 0a b9 67| ..g|.tracks[0].events[4].tempo: 702823
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x40| 0a f3 dd | ... |.tracks[0].events[5].tempo: 717789
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x40| 0b 30 df | .0. |.tracks[0].events[6].tempo: 733407
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x50| 0b 70 97 | .p. |.tracks[0].events[7].tempo: 749719
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x50| 0b b2 d3 | ... |.tracks[0].events[8].tempo: 766675
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x60|0b f8 87 |... |.tracks[0].events[9].tempo: 784519
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x60| 0c 41 8c | .A. |.tracks[0].events[10].tempo: 803212
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x60| 0c 8e| ..|.tracks[0].events[11].tempo: 822819
0x70|23 |# |
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x70| 0c de 8f | ... |.tracks[0].events[12].tempo: 843407
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x70| 0d 33 1d | .3. |.tracks[0].events[13].tempo: 865053
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x80| 0d 8c 1c | ... |.tracks[0].events[14].tempo: 887836
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x80| 0d e9 64 | ..d |.tracks[0].events[15].tempo: 911716
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x90| 0e 4c 65 | .Le |.tracks[0].events[16].tempo: 937061
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x90| 0e b5 0f | ... |.tracks[0].events[17].tempo: 963855
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x90| 0f| .|.tracks[0].events[18].tempo: 992227
0xa0|23 e3 |#. |
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0xa0| 0f 99 71 | ..q |.tracks[0].events[19].tempo: 1022321
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0xa0| 10 16 58| ..X|.tracks[0].events[20].tempo: 1054296
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0xb0| 10 9b 52 | ..R |.tracks[0].events[21].tempo: 1088338
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0xb0| 11 29 28 | .)( |.tracks[0].events[22].tempo: 1124648
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0xc0| 11 bf ea | ... |.tracks[0].events[23].tempo: 1163242
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0xc0| 12 62 53 | .bS |.tracks[0].events[24].tempo: 1204819
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0xd0|13 10 c7 |... |.tracks[0].events[25].tempo: 1249479

View File

@ -1,4 +1,39 @@
$ fq -d midi '.. | select(.event=="track_name")?.track_name' midi/test.mid
exitcode: 2
stderr:
error: midi/test.mid: no such file or directory
$ fq -d midi '.. | select(.event=="track_name")?.track_name' midi/twinkle.mid
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x20| 07 30 35 37 4b 69 72 61| .057Kira|.tracks[0].events[2].track_name: "057Kira"
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0xe0| 0e 41 63 6f 75 73 74 69 63 20 50 69 61 6e| .Acoustic Pian|.tracks[1].events[0].track_name: "Acoustic Piano"
0xf0|6f |o |
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x380| 0e 41 63 6f 75 73 74 69| .Acousti|.tracks[2].events[0].track_name: "Acoustic Piano"
0x390|63 20 50 69 61 6e 6f |c Piano |
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x3b0| 0e 41 63 6f 75| .Acou|.tracks[3].events[0].track_name: "Acoustic Piano"
0x3c0|73 74 69 63 20 50 69 61 6e 6f |stic Piano |
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x530| 0e 41 63 6f| .Aco|.tracks[4].events[0].track_name: "Acoustic Piano"
0x540|75 73 74 69 63 20 50 69 61 6e 6f |ustic Piano |
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x6b0| 0d 45 6c 65 63| .Elec|.tracks[5].events[0].track_name: "Electric Bass"
0x6c0|74 72 69 63 20 42 61 73 73 |tric Bass |
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x9e0| 06 56 69 6f 6c 69 6e | .Violin |.tracks[6].events[0].track_name: "Violin"
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0xea0| 06 56 69 6f 6c 69 6e | .Violin |.tracks[7].events[0].track_name: "Violin"
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0xf90|0c 53 74 65 65 6c 20 47 75 69 74 61 72 |.Steel Guitar |.tracks[8].events[0].track_name: "Steel Guitar"
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x16f0| 07 44 72 75 6d 6b 69| .Drumki|.tracks[9].events[0].track_name: "Drumkit"
0x1700|74 |t |
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x2070| 05 46 6c| .Fl|.tracks[10].events[0].track_name: "Flute"
0x2080|75 74 65 |ute |
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x2280| 04 4f 62 6f 65 | .Oboe |.tracks[11].events[0].track_name: "Oboe"
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x2440| 12 53 6f 70 72 61| .Sopra|.tracks[12].events[0].track_name: "Soprano Clarinet C"
0x2450|6e 6f 20 43 6c 61 72 69 6e 65 74 20 43 |no Clarinet C |
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x25e0| 0b 46 72 65 6e 63 68 20 48 6f 72 6e | .French Horn |.tracks[13].events[0].track_name: "French Horn"
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x2850| 0c 47 6c 6f 63 6b 65 6e 73 70 69 65 6c | .Glockenspiel |.tracks[14].events[0].track_name: "Glockenspiel"