💾 Archived View for runjimmyrunrunyoufuckerrun.com › src › foreign › abcmidi › doc › midi2abc-stats.… captured on 2021-12-17 at 13:26:06.

View Raw

More Information

-=-=-=-=-=-=-

The output of midi2abc with the -stats is used by
the midiexplorer application which can by found on
sourceforge.net. The output looks something like this

seymour@corsair:~/abc$ midi2abc summer.mid -stats
ntrks 10
ppqn 120
trk 1 
timesig 4/4   0.00
keysig C 0 0   0.00
tempo 132.00 bpm
trk 2 
metatext 3 Synth Bass 1
program 1 38
trkinfo 1 38 156 774 41022 50468
trk 3 
metatext 3 Brass 1
program 2 61
trkinfo 2 61 102 0 6618 2982
trk 4 
...
trk 10 
metatext 3 Drums
program 10 17
trkinfo 10 17 1390 1158 108340 25777
npulses 58552
tempocmds 1
pitchbends 0
programcmd 0
progs  35 38 50 54 61 80 81 102
progsact  49460 50468 15426 3237 2982 22295 15938 4703
progcolor  0.00  0.00  0.00  0.00  0.00  1.71  0.00  0.26  0.06  0.05  0.00  0.00  0.00  0.65  0.00  0.08  0.00 
drums 36 38 39 42 54 
drumhits 548 287 128 1073 512 
pitches 473 0 1267 216 20 344 36 717 0 321 364 0 
pitchact  0.32  0.00  1.10  0.15  0.03  0.22  0.03  0.51  0.00  0.26  0.20  0.00 
chnact  0.86  0.05  0.06  0.27  0.38  0.26  0.08  0.84  0.00  0.44  0.00  0.00  0.00  0.00  0.00  0.00 
pitchentropy 2.567729


Here is a description of some of the values which are outputted.

timesig 4/4 beat number
is issued each time the time signature is redefined. The beat number
is a decimal number in quarter beats.

The same apples for keysig (key signature) and tempo redefinition.

For each channel, midi2abc prints a trkinfo vector which contains
the following information.

the channel number
the first program number assigned to the channel
the number of notes not appearing inside a chord
the number of notes appearing in a chord
the sum of all the MIDI pitches of the notes
the sum of all the note durations in pulses

Finally, midi2abc outputs the following data.

npulses -- the length of the longest track in pulses
tempocmds - the number of tempo commands encountered
pitchbends - the number of pitchbend commands encountered
programcmd - the number of times the program assignment is
  reassigned
progs vector - list of all the MIDI programs used
progsact vector - the activity for each of the above MIDI programs. The
activity is the sum of the note durations in pulses for each of the
above programs.
progcolor - described below
drums - a list of all the MIDI percussion numbers used
drumhits - the number of note on commands for each of the above percussion
instruments.
pitches - the number of note on commands for each of the 12 pitch
classes (C, C#, D, D# ... B)
pitchact - duration in pulses of all notes grouped by pitch classes
chnact - duration in pulses of all notes grouped by channel
pitchentropy - entropy of the pitchact probability density function


progcolor: The 128 MIDI program numbers are mapped into 17 classes.
These classes group keyboard instruments, brass instruments, guitar
instruments etc into separate groups defined here.
static int progmapper[] = {
 0,  0,  0,  0,  0,  0,  0,  0,
 0,  1,  1,  1,  1,  1,  1,  2,
 3,  3,  3,  3,  3,  3,  3,  3,
 2,  2,  4,  4,  4,  4,  4,  2,
 5,  5,  5,  5,  5,  5,  5,  5,
 6,  6,  6,  6,  6,  2,  7, 10,
 7,  7,  7,  7,  8,  8,  8,  8,
 9,  9,  9,  9,  9,  9,  9,  9,
11, 11, 11, 11, 11, 11, 11, 11,
12, 12, 12, 12, 12, 12, 12, 12,
13, 13, 13, 13, 13, 13, 13, 13,
14, 14, 14, 14, 14, 14, 14, 14,
15, 15, 15, 15, 15, 15, 15, 15,
 2,  2,  2,  2,  2, 12,  6, 12,
 1,  1, 10, 10, 10, 10, 10,  1,
16, 16, 16, 16, 16, 16, 16, 16
};

The activity in each of these programs is measured, normalized to
a unit length vector and returned in the progcolor vector.