GNMIDI

Table of Contents Keyword Index
.CSV table format
Previous  Top  Next

The csv text ( comma separated text) uses following fields:
Event,Unit,Time,Track,Channel,NoteName,NoteNumber,NoteUnits,NoteDuration,NoteOnVelocity,NoteOffVelocity,ControllerNr,ControllerValue,TextType,Text,Program,TempoBPM,TempoMicroseconds,Pitchbend,Aftertouch,MeterNom,MeterDenom,MeterUnits,MeterNote32,Resolution,MIDIVersion,Sysex,MetaType,MetaData,Key,PolyKey,PolyValue,RealtimeEvent,RealtimeValue,

They are separated by a csv field separator (usually semicolon or comma).

Each line contains the data of a MIDI command. The lines are sorted by time and sequential order as they occur in the MIDI song.

Event is the name of an event. Using option combined event Note is used else separate events for NoteOn NoteOff are used.

All events contain the fields
Unit (position of the event in MIDI units since start of song)  
Time (position of the event in milliseconds since start of song)  
Track (track number 1-255, header has no track number)  
Channel (channel number 1-16, some events have no channel number like Header, Text, Meta, Sysex, Key ...)  

Header is always the first event in the song that uses the fields
MeterNote32 (?)  
Resolution (number of MIDI units per beat)  
MIDIVersion (0=one track that contains all events sorted by time, 1=several tracks that play parallel, 2=each track is a song)  

Text is a META event that contains variable long text of different kind it uses the fields
TextType (name of the text type e.g. trackname, lyric, text, marker, copyright ...)  
Text (the text with special characters encoded as HTML literal e.g. #10; for character 10 that is newline)  
(warning: song text might not necessarily be stored as lyrics, it could be lyrics, text, marker, META data, sysex and could even be encoded)  

Meter is a META event that starts a new bar musical length
MeterNom,MeterDenom ( are the musical length of following bars e.g. 3/4)  
MeterUnits (?)  
MeterNote32 (?)  

Key is a META event that describes the musical key of the following part
Key (key name used for displaying by score sheets e.g. F or Fm)  

Tempo is a META event that sets a new tempo of the following part
TempoBPM (tempo in beats per minute)  
TempoMicroseconds (tempo in microseconds per beat)  

META is a general META event of different types
MetaType (number of meta type)  
MetaData (a list of values with variable length, values have range 0-127 and are not transferred through MIDI cable )  

Sysex is a System exclusive variable length event (has no channel except possibly encoded in its data)
Sysex (a list of hexadecimal values 00-7F, ends with F7)  

Realtime are MIDI events like midi clock, stop, continue, start
RealtimeEvent (number of real time event)  
RealtimeValue (0-127)  

Endtrack is a META event to mark an end of a track

Program is a channel event that sets the program number to be used by the channel
Program (program number 1-128)  

Controller is a channel event that sets different channel settings used by the channel
ControllerNr (controller number 0-127)  
ControllerValue (controller value 0-127)  
(some controllers depend on other controllers set before e.g. RPN, NRPN, data)  

NoteOff is a channel event that turns off a note that was playing on the channel
NoteName (name of the note e.g. e4)  
NoteNumber (number of the note 0-127)  
NoteOffVelocity (note release pressure at end of note 0-127)  

NoteOn
NoteName (name of the note e.g. e4)  
NoteNumber (number of the note 0-127)  
NoteUnits (duration of note in MIDI units)  
NoteDuration (duration of note in milliseconds)  
NoteOnVelocity (note pressure at starting the note 1-127)  

Note when option combine is used contains all NoteOn and NoteOff fields
Hint: the note off position is the note position + duration  
Hint: invalid MIDI songs might contain missing start or end  

Pitchbend is a channel event that changes pitch of notes up or down on the channel
Pitchbend (0 is middle, negative is down, positive is up, default max. is 2 half tones, range might depend on pitch bend range that some devices can change using rpn or system exclusive messages).  

Aftertouch is a channel event that changes pressure of notes that are already playing on the channel
Aftertouch (0-127)  

PolyAftertouch is a channel event that changes pressure of certain notes on the channel
PolyKey (note name)  
PolyValue (0-127)