The Midi File Map window appears when you press the Map button in the Source Tracks step of the Import Midi process.
It displays a detailed and precise text listing of the contents of the Midi file, including its track structure, notes and events.
This is valuable for the occasions when you are investigating a corrupt or malformed Midi file that does not import as expected. It is also a very good way to study the structure of Midi files by example.
Because Midi files are binary files, many of the values are shown in hexadecimal, and the file map is similar to the disassembly listings used by software programmers.
The listing is usually quite long, but a couple of typical sections are shown below, followed by explanations of their meaning.
====================================================================================
Offset Delta Data Tick Ch Event Params Comment
====================================================================================
00000000: 4D 54 68 64 MThd
00000004: 00 00 00 06 Length=6
00000008: 00 00 Format=0
0000000A: 00 01 Tracks=1
0000000C: 00 90 TimeDiv=144
====================================================================================
0000000E: 4D 54 72 6B MTrk
00000012: 00 00 0B D0 Length=3024
00000016: 00 F0 0 Sys_Ex {master_vol}
08 Length=8
7F 7F 04 01 >
60 60 F7 F7 > ``÷÷
00000021: 00 FF 51 Meta_Event 0x51 {tempo}
03 Length=3
07 A1 20 > ¡
.
.
.
0000026D: 00 B9 07 48 09 Ctrl_Chg 0x07 72 {volume_c}
00000271: 00 B9 27 00 09 Ctrl_Chg 0x27 0 {volume_f}
00000275: 00 B9 08 40 09 Ctrl_Chg 0x08 64 {balance_c}
00000279: 00 B9 28 00 09 Ctrl_Chg 0x28 0 {balance_f}
0000027D: 00 B9 0A 40 09 Ctrl_Chg 0x0A 64 {pan_pos_c}
00000281: 00 B9 2A 00 09 Ctrl_Chg 0x2A 0 {pan_pos_f}
00000285: 81 10 91 3C 67 144 01 Note_On C5 103
0000028A: 81 10 81 3C 00 288 01 Note_Off C5 0
0000028F: 00 91 40 67 01 Note_On E5 103
00000293: 81 10 81 40 00 432 01 Note_Off E5 0
00000298: 00 91 41 67 01 Note_On F5 103
0000029C: 81 10 81 41 00 576 01 Note_Off F5 0
000002A1: 00 91 43 67 01 Note_On G5 103
000002A5: 00 92 3C 67 02 Note_On C5 103
.
.
.
Each note or other event in the Midi file occupies one line (or sometimes more) in the file map.
The first three columns - Offset, Delta and Data - show the bytes in the file which produce the events, while the rest of the columns - Tick, Ch, Event, Params and Comment - show the same information, but in more readable, human-friendly codes.
Offset
Specifies the offset from the start of the file (in hexadecimal) at which the event occurs.
The offset of the next Midi event may be three or more bytes higher than the one before it, depending on the number of bytes consumed by each event and its delta time.
Delta
Each Midi event is prefixed with a delta time, which is the number of ticks of delay from the prior event. If it occurs at the same time as the prior event, the delta time is zero.
The Midi file starts with a header section, which specifies the TimeDiv (ticks per quarter note) of the file. Together with the tempo events (in quarter notes per minute) this determines how much time is occupied by each tick.
Data
Lists the data bytes which constitute each event. By following this and the Delta columns from top to bottom, you get the total series of bytes which make up the Midi file, giving you a rock-solid audit trail for investigating Midi file problems.
Tick
Gives the absolute tick (timing location) of the event, as an offset from the starting tick of the file. This is calculated by adding all of the delta times together.
For clarity, a tick value is only shown when it changes from the previous tick location.
Ch
Displays the channel number of each event, or is blank for system events which do not apply to a specific channel. Channel numbers shown here are always zero-based, regardless of your preference for Midi values within songs.
Event
Displays the mnemonic, or shorthand code for each event. Most of these should be easy to work out if you know your Midi events. Some examples:
• Patch_Chg = patch change (voice to use for the events of a channel)
• Ctrl_Chg = control change (used for many other Midi controllers)
• Note_On = note on (a piano key has been pressed)
• Note_Off = note off (a piano key has been released)
Params
Most Midi events include parameters such as pitch, velocity, or other Midi values, which are listed after the event mnemonic.
Where appropriate the parameters are converted from their original hexadecimal value (starting with 0x) to a decimal number or pitch name.
Comment
If not already obvious from the mnemonic, the event's purpose or primary parameter is listed as a comment in {braces}.
For example, many Midi controllers are accessed with the control change (Ctrl_Chg) event. To improve clarity, the controller is shown as a comment, such as:
• {volume_c} = Channel volume, coarse value
• {volume_f} = Channel volume, fine adjustment
• {panpos_c} = Pan position, coarse value
• {panpos_f} = Pan position, fine adjustment
Controls
Select All
Selects the entire text listing in the main region of the window. You can also select a portion of the listing using the usual mouse or keystroke (Shift+Arrows) selection methods.
Copy Text
Places a copy of the selected text on the clipboard, where it can be pasted into a text application such as Notepad or WordPad (both supplied with Windows) and printed or saved.
Close
Closes the window and returns to the Source Tracks step of the Import Midi process.
Help
Opens Songtrix Help at this topic.






