// Copyright (c) 2020 John Hartman // // Based on "expandChordSymbols_1.qml", Copyright (c) 2020 Mark Shepherd // // This plugin expands chord symbols into notated chords in guitar voicing. // expandChordSymbols_1 generated chords via rules, while the voicing of // guitar chords are determined by the tuning of the strings and the limitations // of the players hands. Some chords will be inversions, different chords // will contain different numbers of notes, etc. // // Many guitarists use a capo to simplify chord fingerings in some keys. // An F-chord played as such contains the notes F2, A3, C4, F4 // An F-chord played as a D-chord, capo three contains the notes F3, C4, F4, A4 // So the capo affects voicing as well (another reason some guitarists use a capo) // // - TODO: add more chords to table // - TODO: may show accidentals sub-optimally: B chord as B, F#, B, Eb vs D# // Limitation is in using MIDI notes vs Note objects. // For simple chords, could do a rule by bass: "C gets flats", // "D gets sharps", but Caug gets G# // - TODO: get capo position from the style (if you can), and apply to the // chords BEFORE lookup, to get the shape. // Then add the capo position to the MIDI note names AFTER lookup to get the pitch. // it's in the XML as