mirror of
https://github.com/sshlien/abcmidi.git
synced 2025-12-06 06:55:06 +00:00
107 lines
3.4 KiB
Plaintext
107 lines
3.4 KiB
Plaintext
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.
|
|
|
|
|