Skip to content

Commit

Permalink
Fixed incorrect labeling of 13th intervals
Browse files Browse the repository at this point in the history
  • Loading branch information
aure committed Apr 11, 2024
1 parent f93a8b5 commit 58651a5
Show file tree
Hide file tree
Showing 5 changed files with 274 additions and 267 deletions.
286 changes: 143 additions & 143 deletions Sources/Tonic/ChordType.swift
Original file line number Diff line number Diff line change
Expand Up @@ -148,53 +148,53 @@ public enum ChordType: String, CaseIterable, Codable {

public var intervals: [Interval] {
switch self {
case .majorTriad: return [.M3, .P5]
case .minorTriad: return [.m3, .P5]
case .diminishedTriad: return [.m3, .d5]
case .flatFive: return [.M3, .d5]
case .augmentedTriad: return [.M3, .A5]
case .suspendedSecondTriad: return [.M2, .P5]
case .suspendedFourthTriad: return [.P4, .P5]
case .sixth: return [.M3, .P5, .M6]
case .minorSixth: return [.m3, .P5, .M6]
case .halfDiminishedSeventh: return [.m3, .d5, .m7]
case .diminishedSeventh: return [.m3, .d5, .d7]
case .dominantSeventh: return [.M3, .P5, .m7]
case .dominantSeventhSuspendedFourth: return [.P4, .P5, .m7]
case .dominantSeventhSuspendedSecond: return [.M2, .P5, .m7]
case .majorSeventh: return [.M3, .P5, .M7]
case .minorSeventh: return [.m3, .P5, .m7]
case .minorMajorSeventh: return [.m3, .P5, .M7]
case .halfDiminishedNinth: return [.m3, .d5, .m7, .m9]
case .dominantNinth: return [.M3, .P5, .m7, .M9]
case .dominantNinthSuspendedFourth: return [.P4, .P5, .M9]
case .flatNinth: return [.M3, .P5, .m7, .m9]
case .sharpNinth: return [.M3, .P5, .m7, .A9]
case .majorNinth: return [.M3, .P5, .M7, .M9]
case .minorFlatNinth: return [.m3, .P5, .m7, .m9]
case .minorNinth: return [.m3, .P5, .m7, .M9]
case .majorAddNine: return [.M3, .P5, .M9]
case .minorAddNine: return [.m3, .P5, .M9]
case .sixOverNine: return [.M3, .P5, .M6, .M9]
case .majorEleventh: return [.M3, .P5, .M7, .M9, .P11]
case .dominantEleventh: return [.M3, .P5, .m7, .M9, .P11]
case .minorEleventh: return [.m3, .P5, .m7, .M9, .P11]
case .halfDiminishedEleventh: return [.m3, .d5, .m7, .m9, .P11]
case .majorSeventhFlatFifth: return [.M3, .d5, .M7]
case .minorSeventhSharpFifth: return [.M3, .A5, .M7]
case .majorNinthSharpEleventh: return [.M3, .P5, .M7, .M9, .A11]
case .dominantFlatNinthSharpEleventh: return [.M3, .P5, .m7, .m9, .A11]
case .dominantFlatFifth: return [.M3, .d5, .m7]
case .dominantSharpFifth: return [.M3, .A5, .m7]
case .dominantSharpNinthSharpEleventh: return [.M3, .P5, .m7, .A9, .A11]
case .minorSeventhFlatNinthAddEleventh: return [.m3, .P5, .m7, .m9, .P11]
case .majorThirteenth: return [.M3, .P5, .M7, .M9, .P11, .P13]
case .minorThirteenth: return [.m3, .P5, .m7, .M9, .P11, .P13]
case .minorFlatThirteenthFlatNinth: return [.m3, .P5, .m7, .m9, .P11, .d13]
case .majorThirteenthSharpEleventh: return [.M3, .P5, .M7, .M9, .A11, .P13]
case .dominantThirteenth: return [.M3, .P5, .m7, .M9, .P11, .P13]
case .minorEleventhFlatThirteenth: return [.m3, .P5, .m7, .M9, .P11, .d13]
case .halfDiminishedFlatThirteenth: return [.m3, .d5, .m7, .m9, .P11, .d13]
case .majorTriad: return [.M3, .P5]
case .minorTriad: return [.m3, .P5]
case .diminishedTriad: return [.m3, .d5]
case .flatFive: return [.M3, .d5]
case .augmentedTriad: return [.M3, .A5]
case .suspendedSecondTriad: return [.M2, .P5]
case .suspendedFourthTriad: return [.P4, .P5]
case .sixth: return [.M3, .P5, .M6]
case .minorSixth: return [.m3, .P5, .M6]
case .halfDiminishedSeventh: return [.m3, .d5, .m7]
case .diminishedSeventh: return [.m3, .d5, .d7]
case .dominantSeventh: return [.M3, .P5, .m7]
case .dominantSeventhSuspendedFourth: return [.P4, .P5, .m7]
case .dominantSeventhSuspendedSecond: return [.M2, .P5, .m7]
case .majorSeventh: return [.M3, .P5, .M7]
case .minorSeventh: return [.m3, .P5, .m7]
case .minorMajorSeventh: return [.m3, .P5, .M7]
case .halfDiminishedNinth: return [.m3, .d5, .m7, .m9]
case .dominantNinth: return [.M3, .P5, .m7, .M9]
case .dominantNinthSuspendedFourth: return [.P4, .P5, .M9]
case .flatNinth: return [.M3, .P5, .m7, .m9]
case .sharpNinth: return [.M3, .P5, .m7, .A9]
case .majorNinth: return [.M3, .P5, .M7, .M9]
case .minorFlatNinth: return [.m3, .P5, .m7, .m9]
case .minorNinth: return [.m3, .P5, .m7, .M9]
case .majorAddNine: return [.M3, .P5, .M9]
case .minorAddNine: return [.m3, .P5, .M9]
case .sixOverNine: return [.M3, .P5, .M6, .M9]
case .majorEleventh: return [.M3, .P5, .M7, .M9, .P11]
case .dominantEleventh: return [.M3, .P5, .m7, .M9, .P11]
case .minorEleventh: return [.m3, .P5, .m7, .M9, .P11]
case .halfDiminishedEleventh: return [.m3, .d5, .m7, .m9, .P11]
case .majorSeventhFlatFifth: return [.M3, .d5, .M7]
case .minorSeventhSharpFifth: return [.M3, .A5, .M7]
case .majorNinthSharpEleventh: return [.M3, .P5, .M7, .M9, .A11]
case .dominantFlatNinthSharpEleventh: return [.M3, .P5, .m7, .m9, .A11]
case .dominantFlatFifth: return [.M3, .d5, .m7]
case .dominantSharpFifth: return [.M3, .A5, .m7]
case .dominantSharpNinthSharpEleventh: return [.M3, .P5, .m7, .A9, .A11]
case .minorSeventhFlatNinthAddEleventh: return [.m3, .P5, .m7, .m9, .P11]
case .majorThirteenth: return [.M3, .P5, .M7, .M9, .P11, .M13]
case .minorThirteenth: return [.m3, .P5, .m7, .M9, .P11, .M13]
case .minorFlatThirteenthFlatNinth: return [.m3, .P5, .m7, .m9, .P11, .m13]
case .majorThirteenthSharpEleventh: return [.M3, .P5, .M7, .M9, .A11, .M13]
case .dominantThirteenth: return [.M3, .P5, .m7, .M9, .P11, .M13]
case .minorEleventhFlatThirteenth: return [.m3, .P5, .m7, .M9, .P11, .m13]
case .halfDiminishedFlatThirteenth: return [.m3, .d5, .m7, .m9, .P11, .m13]
}
}
}
Expand All @@ -203,108 +203,108 @@ extension ChordType: CustomStringConvertible {
/// Adornment to the Root NoteClass (letter+accidental) that defines the chord type
public var description: String {
switch self {
case .majorTriad: return ""
case .minorTriad: return "m"
case .diminishedTriad: return "°"
case .flatFive: return "♭5"
case .augmentedTriad: return ""
case .suspendedSecondTriad: return "sus2"
case .suspendedFourthTriad: return "sus4"
case .sixth: return "6"
case .minorSixth: return "m6"
case .halfDiminishedSeventh: return "ø7"
case .diminishedSeventh: return "°7"
case .dominantSeventh: return "7"
case .dominantSeventhSuspendedFourth: return "7sus4"
case .dominantSeventhSuspendedSecond: return "7sus2"
case .majorSeventh: return "maj7"
case .minorSeventh: return "m7"
case .minorMajorSeventh: return "mMaj7"
case .halfDiminishedNinth: return "ø9"
case .dominantNinth: return "9"
case .dominantNinthSuspendedFourth: return "9sus4"
case .flatNinth: return "7♭9"
case .sharpNinth: return "7♯9"
case .majorNinth: return "maj9"
case .minorFlatNinth: return "m7♭9"
case .minorNinth: return "m9"
case .majorAddNine: return "add9"
case .minorAddNine: return "mAdd9"
case .sixOverNine: return "6/9"
case .majorEleventh: return "maj11"
case .dominantEleventh: return "11"
case .minorEleventh: return "m11"
case .halfDiminishedEleventh: return "ø11"
case .majorSeventhFlatFifth: return "maj7♭5"
case .minorSeventhSharpFifth: return "maj7♯5"
case .majorNinthSharpEleventh: return "maj9♯11"
case .dominantFlatFifth: return "7♭5"
case .dominantSharpFifth: return "7♯5"
case .dominantFlatNinthSharpEleventh: return "7♭9♯11"
case .dominantSharpNinthSharpEleventh: return "7♯9♯11"
case .minorSeventhFlatNinthAddEleventh: return "m7♭9(add11)"
case .majorThirteenth: return "maj13"
case .minorThirteenth: return "m13"
case .minorFlatThirteenthFlatNinth: return "m♭13♭9"
case .majorThirteenthSharpEleventh: return "maj13♯11"
case .dominantThirteenth: return "13"
case .minorEleventhFlatThirteenth: return "m11♭13"
case .halfDiminishedFlatThirteenth: return "ø♭13"
case .majorTriad: return ""
case .minorTriad: return "m"
case .diminishedTriad: return "°"
case .flatFive: return "♭5"
case .augmentedTriad: return ""
case .suspendedSecondTriad: return "sus2"
case .suspendedFourthTriad: return "sus4"
case .sixth: return "6"
case .minorSixth: return "m6"
case .halfDiminishedSeventh: return "ø7"
case .diminishedSeventh: return "°7"
case .dominantSeventh: return "7"
case .dominantSeventhSuspendedFourth: return "7sus4"
case .dominantSeventhSuspendedSecond: return "7sus2"
case .majorSeventh: return "maj7"
case .minorSeventh: return "m7"
case .minorMajorSeventh: return "mMaj7"
case .halfDiminishedNinth: return "ø9"
case .dominantNinth: return "9"
case .dominantNinthSuspendedFourth: return "9sus4"
case .flatNinth: return "7♭9"
case .sharpNinth: return "7♯9"
case .majorNinth: return "maj9"
case .minorFlatNinth: return "m7♭9"
case .minorNinth: return "m9"
case .majorAddNine: return "add9"
case .minorAddNine: return "mAdd9"
case .sixOverNine: return "6/9"
case .majorEleventh: return "maj11"
case .dominantEleventh: return "11"
case .minorEleventh: return "m11"
case .halfDiminishedEleventh: return "ø11"
case .majorSeventhFlatFifth: return "maj7♭5"
case .minorSeventhSharpFifth: return "maj7♯5"
case .majorNinthSharpEleventh: return "maj9♯11"
case .dominantFlatFifth: return "7♭5"
case .dominantSharpFifth: return "7♯5"
case .dominantFlatNinthSharpEleventh: return "7♭9♯11"
case .dominantSharpNinthSharpEleventh: return "7♯9♯11"
case .minorSeventhFlatNinthAddEleventh: return "m7♭9(add11)"
case .majorThirteenth: return "maj13"
case .minorThirteenth: return "m13"
case .minorFlatThirteenthFlatNinth: return "m♭13♭9"
case .majorThirteenthSharpEleventh: return "maj13♯11"
case .dominantThirteenth: return "13"
case .minorEleventhFlatThirteenth: return "m11♭13"
case .halfDiminishedFlatThirteenth: return "ø♭13"
}
}
/// Adornment to the Root NoteClass (letter+accidental) that defines the chord type

/// Adornment to the Root NoteClass (letter+accidental) that defines the chord type
/// using specialized Chord Symbol Fonts Norfolk or Pori from
/// NotationExpress: https://www.notationcentral.com/product/norfolk-fonts-for-sibelius/
public var chordFontDescription: String {
switch self {
case .majorTriad: return ""
case .minorTriad: return "m"
case .diminishedTriad: return "º"
case .flatFive: return "b5"
case .augmentedTriad: return "&"
case .suspendedSecondTriad: return "“2"
case .suspendedFourthTriad: return "“4"
case .sixth: return "6"
case .minorSixth: return "m6"
case .halfDiminishedSeventh: return "Ø7"
case .diminishedSeventh: return "º7"
case .dominantSeventh: return "7"
case .dominantSeventhSuspendedFourth: return "7sus4"
case .dominantSeventhSuspendedSecond: return "7sus2"
case .majorSeventh: return "^7"
case .minorSeventh: return "m7"
case .minorMajorSeventh: return "m^7"
case .halfDiminishedNinth: return "Ø9"
case .dominantNinth: return "9"
case .dominantNinthSuspendedFourth: return "9sus4"
case .flatNinth: return "7b9"
case .sharpNinth: return "7#9"
case .majorNinth: return "^9"
case .minorFlatNinth: return "m7b9"
case .minorNinth: return "m9"
case .majorAddNine: return "@9"
case .minorAddNine: return "m@9"
case .sixOverNine: return "%"
case .majorEleventh: return "^11"
case .dominantEleventh: return "11"
case .minorEleventh: return "m11"
case .halfDiminishedEleventh: return "Ø11"
case .majorSeventhFlatFifth: return "^7b5"
case .minorSeventhSharpFifth: return "^7#5"
case .majorNinthSharpEleventh: return "^9#11"
case .dominantFlatFifth: return "7b5"
case .dominantSharpFifth: return "7#5"
case .dominantFlatNinthSharpEleventh: return "7âÅ"
case .dominantSharpNinthSharpEleventh: return "7åÅ"
case .minorSeventhFlatNinthAddEleventh: return "m7b9(@11)"
case .majorThirteenth: return "^13"
case .minorThirteenth: return "m13"
case .minorFlatThirteenthFlatNinth: return "máÆ"
case .majorThirteenthSharpEleventh: return "^13#11"
case .dominantThirteenth: return "13"
case .minorEleventhFlatThirteenth: return "m11b13"
case .halfDiminishedFlatThirteenth: return "Øb13"
case .majorTriad: return ""
case .minorTriad: return "m"
case .diminishedTriad: return "º"
case .flatFive: return "b5"
case .augmentedTriad: return "&"
case .suspendedSecondTriad: return "“2"
case .suspendedFourthTriad: return "“4"
case .sixth: return "6"
case .minorSixth: return "m6"
case .halfDiminishedSeventh: return "Ø7"
case .diminishedSeventh: return "º7"
case .dominantSeventh: return "7"
case .dominantSeventhSuspendedFourth: return "7sus4"
case .dominantSeventhSuspendedSecond: return "7sus2"
case .majorSeventh: return "^7"
case .minorSeventh: return "m7"
case .minorMajorSeventh: return "m^7"
case .halfDiminishedNinth: return "Ø9"
case .dominantNinth: return "9"
case .dominantNinthSuspendedFourth: return "9sus4"
case .flatNinth: return "7b9"
case .sharpNinth: return "7#9"
case .majorNinth: return "^9"
case .minorFlatNinth: return "m7b9"
case .minorNinth: return "m9"
case .majorAddNine: return "@9"
case .minorAddNine: return "m@9"
case .sixOverNine: return "%"
case .majorEleventh: return "^11"
case .dominantEleventh: return "11"
case .minorEleventh: return "m11"
case .halfDiminishedEleventh: return "Ø11"
case .majorSeventhFlatFifth: return "^7b5"
case .minorSeventhSharpFifth: return "^7#5"
case .majorNinthSharpEleventh: return "^9#11"
case .dominantFlatFifth: return "7b5"
case .dominantSharpFifth: return "7#5"
case .dominantFlatNinthSharpEleventh: return "7âÅ"
case .dominantSharpNinthSharpEleventh: return "7åÅ"
case .minorSeventhFlatNinthAddEleventh: return "m7b9(@11)"
case .majorThirteenth: return "^13"
case .minorThirteenth: return "m13"
case .minorFlatThirteenthFlatNinth: return "máÆ"
case .majorThirteenthSharpEleventh: return "^13#11"
case .dominantThirteenth: return "13"
case .minorEleventhFlatThirteenth: return "m11b13"
case .halfDiminishedFlatThirteenth: return "Øb13"
}
}
}
Loading

0 comments on commit 58651a5

Please sign in to comment.