This application returns a key anlysis of a midi file that can be uploaded with the form above. The output is a table (see picture below) where each row represents an analysis of the complete midi file. Time goes from left to right and is measured in quarter beats (indicated below the picture). Each cell shows a key analysis of a time window around the cell. The window width is shown to the left of the row (in quarter beats, it is the same for each cell in a row). The shading of a cell represents the confidence in the key (dark shades indicate low confidence). When two keys are close together on the line of fifth their colors are close together in rainbow order. The top row has one cell. Its window covers the complete midi file.
In the bottom row the window width (of each cell) is twice the time spacing between the cells: 2 * 4.6 = 9.2 (shown left of the bottom row). The time spacing in the bottom row is 4.6 quarter notes (= 184 quarters / 40 cells). When more cells are specified in the form, the spacing decreases.
The key analysis follows a method proposed by C.L. Krumhansl. The idea of the key scape is due to C.S. Sapp and described in this paper.
This page makes a chordal analysis of a MIDI file.
The chordal analysis computes an optimal assignment of jazz chord labels to areas of notes. Each chord label gets a score representing how well the chord matches the notes in the labeled area. The areas are chosen in such a way that the sum of the scores of all chord labels is maximal. (trying all possible areas with all possible chord labels). The algorithm is described by Pardo and Birmingham in: Algorithms for chordal analysis.
To approximate a correct spelling of the chord labels (e.g. C#7 or Db7) in the analysis, the overall key of the music is determined with a method originally proposed by C.L. Krumhansl and R.N. Shepard (in: pdf). The method uses the overall pitch class histogram to match the best key. Depending on the distance of the best matching key to the next best match a confidence percetage is calculated.
In the output (shown below) note areas are called chord segments (19 in the figure).
Each segment is made up of several note groups, which are all notes presently sounding (on). There
are a total of 72 note groups in the figure.
The time column shows the number of quarter notes passed at the start of a segment. The time is shown as a fractional number. For instance, at time 25 1/2 we see chord Bdom7 in the illustration. The means that the segment Bdom7 starts 25 quaters and 1 eight note after the start of the music.
The score column shows how well a chord label matches all notes in the segment. A score of 100% means that every note in the segment matches the chord label. The pitch classes in each segment are shown in the last column. Note that one pitch class can represent multiple notes (e.g. the pitch classes of C D D C C are C D). The score of the first segment in the figure is 100% because all pitch classes (G, B, D) are explained by the chord label Gmaj.