+ if (scherzo->pedal_pressed)
+ note_group = &scherzo->notes_pedaled;
+ else
+ note_group = &scherzo->notes_pressed;
+
+ num_notes = note_group->num_notes;
+
+ struct { modified_degree_t degrees[1]; const char *name; } octaves[] = {
+ { {{1, 0}}, "Octave"}
+ };
+
+ struct { modified_degree_t degrees[2]; const char *name; } intervals[] = {
+ { {{1, 0}, {2, -1}}, "Minor 2nd"},
+ { {{1, 0}, {2, 0}}, "Major 2nd"},
+ { {{1, 0}, {3, -1}}, "Minor 3rd"},
+ { {{1, 0}, {3, 0}}, "Major 3rd"},
+ { {{1, 0}, {4, 0}}, "Perfect 4th"},
+ { {{1, 0}, {5, -1}}, "Diminished 5th"},
+ { {{1, 0}, {5, 0}}, "Perfect 5th"},
+ { {{1, 0}, {6, -1}}, "Minor 6th"},
+ { {{1, 0}, {6, 0}}, "Major 6th"},
+ { {{1, 0}, {7, -1}}, "Minor 7th"},
+ { {{1, 0}, {7, 0}}, "Major 7th"}
+ };
+
+ struct { modified_degree_t degrees[3]; const char *name; } triads[] = {
+ { {{1, 0}, {3, 0}, {5, +1}}, "Augmented triad" },
+ { {{1, 0}, {3, 0}, {5, 0}}, "Major triad" },
+ { {{1, 0}, {3, -1}, {5, 0}}, "Minor triad" },
+ { {{1, 0}, {3, -1}, {5, -1}}, "Diminished triad" }
+ };
+
+ struct { modified_degree_t degrees[4]; const char *name; } sevenths[] = {
+ { {{1, 0}, {3, 0}, {5, +1}, {7, 0}}, "Augmented/major 7" },
+ { {{1, 0}, {3, 0}, {5, +1}, {7, -1}}, "Augmented 7" },
+ { {{1, 0}, {3, 0}, {5, 0}, {7, 0}}, "Major 7" },
+ { {{1, 0}, {3, 0}, {5, 0}, {7, -1}}, "Dominant 7" },
+ { {{1, 0}, {3, -1}, {5, 0}, {7, 0}}, "Minor/major 7" },
+ { {{1, 0}, {3, -1}, {5, 0}, {7, -1}}, "Minor 7" },
+ { {{1, 0}, {3, -1}, {5, -1}, {7, 0}}, "Diminished/major 7" },
+ { {{1, 0}, {3, -1}, {5, -1}, {7, -1}}, "Half-diminished 7" },
+ { {{1, 0}, {3, -1}, {5, -1}, {7, -2}}, "Diminished 7" }