Bugs in Hookpad

  1. Guitar charts for embellished chords other than seventh chords barely exist. Guitar charts change according to the chord’s inversion only for the basic chords from I to vi without embellishment. Moreover, many borrowed chords have incorrect pitch labels even though their fingerings are correct: puu.sh/9Dwzb/e795bb9317.png
  2. ♯7 in supermode chords are raised by an octave as in this Theorytab (♯V, ♯vii°, ♯iii). Switching to Locrian mode also shows that ♭1 in supermode chords are lowered by an octave (♭iv, ♭VI, ♭i).
  3. In the Theorytab just shown the Flash player does not have enough space to show the menus unless they are clicked on.
  4. There are still only 19 levels of undo history as of version 1.1.1.
  5. Guitar charts for IVsus4 assume a perfect fourth whereas according to the Hookpad’s handling of suspended chords, the correct chord is sus♯4.
  6. The guitar charts for maj6 and m6 chords are not shown.
  7. When both chords and rest chords are selected, pressing ‘e’ will change all chords into seventh chords regardless of their original embellishments.
  8. When a supermodal chord is selected and left or right arrow keys are used to select adjacent chords in a different supermode, the borrowed chord drop-down menu shows multiple supermodes.
  9. After a rest note is inserted, the next note assumes the middle octave instead of that of the previous note.
  10. The tempo between the Hookpad editor and viewer sometimes differs by 1. My guess is that the editor rounds off while the viewer rounds down.

Wow, thank you so much for such a thorough report!

I’m going to take some time to go through these with the team and make sure that all these issues are properly addressed.


  1. Roman numerals for inversions of seventh chords cannot distinguish between major seventh and dominant seventh. The third inversion can be identified by observing the chord’s colour which represents the lowest pitch in the chord (figured bass requires the bassline anyway), but appropriate accidentals should be added to “5” in 56 and to “3” in 34: http://www.hooktheory.com/hookpad/view/zDzV5lfeFO7V
  2. Playing a rest chord causes the piano chart to show a “n♭♭” note in Hookpad, and “0” in a public Theorytab: puu.sh/9L83W/ccd63de91c.png
  3. The first inversion of sus4 chords and 7sus4 chords uses the incorrect colour.
  4. is missing from 7 in minor seventh chords; for example, when borrowing from Minor in the Major key, i♭7 means C-E♭-G-B♭ whereas i7 is the minor major seventh chord C-E♭-G-B. (This is not really an important issue right now since mM7 is still unsupported.)
  5. The sus42 chord is incorrectly voiced; sometimes the fourth is gone and sometimes the suspending notes have an unusually high octave: http://www.hooktheory.com/hookpad/view/q-RSiK-YJk19 (as does 46(add9))

I’m sorry, your previous post got munged when we created the change log. We were looking into the following comment:

This bug still persists; changing a key from the following ranges of modes to a relative mode outside these ranges will lower all notes by an octave:

D♭ Major - B♭ Minor
A♭ Major - B♭ Dorian
E♭ Major - B♭ Mixolydian
B♭ Major
B♭ Lydian

As far as we can tell, we can’t reproduce the octave bug simply by changing modes (we are aware that some enharmonic chords have voicing problems still, which is a separate problem).

Quite disappointed that Magic Chord is immediately disabled after one chord has been entered from it, when at the same time the Trends API is freely accessible for anyone. That paywall seems like an unnecessary blockade for non-Plus users.

Bugs with the new features in version 1.1.0:

  1. In popular style, secondary chords remove the accidentals of the destination chords and then add the accidental of the secondary part as if it is part of the original scale. For example, vii°/V in Major mode becomes ♭vii°/VII in Minor mode, whereas the correct form should be vii°/♭VII.
  2. In a borrowed major / dominant seventh chord, the accidental preceding the Roman numeral follows the popular style but the accidental preceding the 7 continues to refer to the current mode’s scale degrees instead of the Ionian mode.
  3. Chords that are supermodal in the relative Major mode are not recognized by Magic Chord, and chords that are identical are still realized as distinct chords (e.g. I and Mixolydian I, the latter of which I removed from all Theorytabs to remove false borrowed chords).
  4. Magic Chords seems to append “add9”, “sus4”, or “sus2” to the current chord when the random example Theorytabs are clicked on, and is able to distinguish these embellishments from the chords without them, but these do not seem to be recognized by the Trends API, and Magic Chords does not distinguish these in the preceding chord.
  5. About the bug where changing to a relative key will move all notes by an octave, try changing the verse in this Theorytab from C Minor to E♭ Major.
  6. Lyrics are not submitted to the database.
  7. When the song in Hookpad is being played and the mouse clicks the lyrics field, the melody cursor freezes in place and loses control. The song can only be stopped by pressing the stop button on the screen but not the space key.
  8. The record mode uses the popular style even when both the current Hookpad and the Theorytab default settings use the common practice style.
  9. In recording mode, when the current note / chord is released while another note is already playing in Hookpad, and then no key is pressed, part of the note will become empty space that collapses once notes / chords are added or deleted.
  10. In MIDI export, when two adjacent chords contain the same note, sometimes the NoteOff event of the common note happens before the NoteOn event, resulting in an overlapping note with zero duration.
  11. Theorytabs containing suspended diminished chords cannot be exported to guitar chart or sheet score.
  12. Lilypond renders sus42 chords as “sus4” in the chord symbols, and does not render the major IVsus4 and iiisus2 as sus♯4 and sus♭2 respectively. (this can be overridden)
  13. The Jazz plugin may insert notes outside the normally allowed range (±2 octaves from the middle). Moreover, by using the comma and period keys, notes outside this range can be transposed to outside the usable range (A0 - C8) at which point the Theorytab could not be played.
  14. On the Hookpad viewer, when the piano is selected for playing and the piano roll switches from diatonic to chromatic, the moving cursor retains its height without adopting the new piano roll.
  15. On the Hookpad viewer, the displayed tempo is usually different by 1 from the value obtained by clicking “Reset tempo to default”.

Thank you for the bug report:

  1. We’ve identified the source of this problem and a fix will be pushed shortly.

  2. We’ve identified the source of this problem and a fix will be pushed shortly. We’ve decided that figured bass ultimately is describing the intervals that each chord note makes with the chord bass, which is assumed to be in the current scale. Therefore, the accidental preceding the 7 in 7 chords will only occur if the scale degree is altered from the parent scale, regardless of popular vs common practice style notation.

  3. This is a symptom of a larger issue that we have discussed regarding the way that we store supermodal chords. We plan to revamp our chord database to resolve issues like these.

  4. Magic chord and the Trends API use slightly different databases. The magic chord database preserves information regarding add9, sus4, sus2, etc, whereas the Trends API does not. Magic chord looks both forwards and backwards for matching progressions, however when chord statistics are not available (for less common chords) it may not find a sufficient match in one direction or the other.

  5. We finally tracked down this bug, which, as you noticed, was affecting key changes when one of the keys had a flat in it. This will be fixed shortly.

  6. Lyrics will not be added to the TheoryTab database at the moment.

  7. We will push a fix to this shortly.

  8. We will push a fix to this shortly.

Thanks again for all of your help!