Usually a feature request is about adding new stuff. This is a request for simplification and removing stuff.
A song can have one or more keys associated. Usually there is just one, but occasionally parts of a song can be in a different key. For example, when a part of the song is modulated. Keys are great for reference and catalogues.
ChordPro songs can have one or more {key} directives, but upon import only the key from the first {key} directive is stored in the Keys metadata. This may be considered a (low priority) bug.
When it comes to transposing, there are two forms: by key and by interval. For example, a song in the key of C can be transposed to the key of D, which would change all occurrences of e.g. a G chord into an A chord. Likewise, a song can be transposed up two chromatic intervals, which would change all occurrences of e.g. the G chord into an A chord.
So, at first sight, both transpositions are the same. But complications quickly arise when a song has multiple keys, and when accidentals come into play.
When a song has a single key, say C, and we transpose it to D, it is clear that all chords will be transposed up two chromatic intervals. Or ten intervals down. But if there is a second key involved, say D, what does "transposition to D" mean for that part of the song? No transposition since it is already in the key of D? Or transposition to E, since that is two chromatic intervals up?
And what will happen with e.g. an E chord? Will it become a F# or Gb chord? A widely accepted convention dictates that the accidentals must fit the transposed key. Since the key of D has sharps, the result of transposing the E chord will be F#. But if the song had a part in the key of E, would that also become F#? Why?
The point I try to make clear is that transposition by key is cumbersome and ambiguous. Transposition by intervals doesn't have these problems. There is, however, a catch. It is no longer determined whether an E chord will become F# or Gb. One convention is to use sharps when transposing up, and flats when transposing down. Transposing up 5 intervals is enharmonically identical to transposing 7 intervals down.
My proposal is to elimintate the "transpose by key" functionality and use "transpose by interval" instead. This also plays nice with the use of a capo.
A song can have one or more keys associated. Usually there is just one, but occasionally parts of a song can be in a different key. For example, when a part of the song is modulated. Keys are great for reference and catalogues.
ChordPro songs can have one or more {key} directives, but upon import only the key from the first {key} directive is stored in the Keys metadata. This may be considered a (low priority) bug.
When it comes to transposing, there are two forms: by key and by interval. For example, a song in the key of C can be transposed to the key of D, which would change all occurrences of e.g. a G chord into an A chord. Likewise, a song can be transposed up two chromatic intervals, which would change all occurrences of e.g. the G chord into an A chord.
So, at first sight, both transpositions are the same. But complications quickly arise when a song has multiple keys, and when accidentals come into play.
When a song has a single key, say C, and we transpose it to D, it is clear that all chords will be transposed up two chromatic intervals. Or ten intervals down. But if there is a second key involved, say D, what does "transposition to D" mean for that part of the song? No transposition since it is already in the key of D? Or transposition to E, since that is two chromatic intervals up?
And what will happen with e.g. an E chord? Will it become a F# or Gb chord? A widely accepted convention dictates that the accidentals must fit the transposed key. Since the key of D has sharps, the result of transposing the E chord will be F#. But if the song had a part in the key of E, would that also become F#? Why?
The point I try to make clear is that transposition by key is cumbersome and ambiguous. Transposition by intervals doesn't have these problems. There is, however, a catch. It is no longer determined whether an E chord will become F# or Gb. One convention is to use sharps when transposing up, and flats when transposing down. Transposing up 5 intervals is enharmonically identical to transposing 7 intervals down.
My proposal is to elimintate the "transpose by key" functionality and use "transpose by interval" instead. This also plays nice with the use of a capo.
Johan
johanvromans.nl — hetgeluidvanseptember.nl — mojore.nl -- howsagoin.nl
Samsung Galaxy Note S7FE (T733) 12.4", Android 13.0, AirTurn Duo & Digit (Gigs).
Samsung Galaxy Note S4 (T830) 10.5", Android 10.0 (maintenance and backup).
Samsung A3 (A320FL), Android 8.0.0 (emergency).
johanvromans.nl — hetgeluidvanseptember.nl — mojore.nl -- howsagoin.nl
Samsung Galaxy Note S7FE (T733) 12.4", Android 13.0, AirTurn Duo & Digit (Gigs).
Samsung Galaxy Note S4 (T830) 10.5", Android 10.0 (maintenance and backup).
Samsung A3 (A320FL), Android 8.0.0 (emergency).