Copying and pasting across parallel modes

Recently I began copying data in Hookpad, switching to a relative mode, and then pasting that data. When the note/chord data are stored using scale degrees instead of absolute notes, at least two bugs occur:

  1. This Theorytab contains the notes ♯1-♭2-♯2-♭3-♯4-♭5-♯5-♭6-♯6-♭7 in the Major key, copied, and then pasted in the Minor key. Upon saving and refreshing, these notes become ♯6-♭7-♯7-♭1-♯2-♭3-♯3-♭4-♯4-♭5 in the relative Major key. The notes ♯7,♭1, ♯3, ♭4 work properly in Hookpad and in all exported data, except their graphics in Hookpad are messed up, resembling the leading-tone scale degree with an incorrect colour. (They should not be disabled before inline modulation of Theorytabs is supported.)
  2. Chords contain information of which mode they are borrowed from. If chords borrowed from a certain mode are copied and the Theorytab switches to that relative mode, the chords will “borrow” from the current mode resulting in an incorrect supermode.
  3. Chords may be indefinitely pushed to extremely sharpened/flattened supermodes. Consider this: In A Minor the V chord borrowed from the Major key is entered. Switch to the relative Major key, copy, switch to the relative Minor key again, paste. When this process repeats the chord’s borrowed mode will reach the 12-sharp “supermode” in 4 steps. Chords cannot go beyond the 14-accidental supermodes (double accidentals for all scale degrees) upon playing, but it can render Hookpad unstable with certain chords beyond the 14-sharp/-flat supermodes when in modes other than Major. (The chords including not more than 1 accidental should not be disabled before inline modulation of Theorytabs is supported. The jazz chord names also break if the chord goes below the 14-flat supermode in the parallel Major.)

By “unstable” the third bug is what I would call the first critical bug found in Hookpad, because Hookpad tries to access non-existent data (triple accidentals), and the undefined behaviour from this could easily glitch up the interface until that chord is removed from the Theorytab:


In other cases an entire row disappears and the buttons for creating/removing rows are also gone. The Hooktheory staff should be able to put up a quick fix that limits the mode range in the same way modes are limited to 14 flats from the relative Major key, and the relevant fixes to display double sharps in the Roman numerals properly.

EDIT: The similar bug also occurs when the jazz chord names contain triple accidentals, e.g. by transposing the 12-sharp supermode demo I linked above to B Major. The Hookpad can still play chords, however it becomes extremely erratic at that point: chords disappear, space key no longer stops playing, and further editing potentially freezes Hookpad.