4 pointsby nate-gehringer3 hours ago1 comment
  • vunderba2 hours ago
    Good job. Couple things - it seems to struggle with 7th chord inversions, and doesn't appear to handle 9ths at all.

    There's an old online tool called ChordDisplay that handles these a bit better and also uses web midi as well. I think it's also open-source so you could probably take a look at the logic it uses as a reference point.

    https://chord-display.rednet.io

    My first exposure to realtime chord detection was actually on a old Yamaha arranger keyboard from the early 90s. When you are designating the chord for the instruments to follow using your left hand, the LCD display will show the chord in the progression.

    EDIT: My bad, 7ths are working - I'm just used to inversions being expressed as slash chords!

    • nate-gehringer2 hours ago
      I appreciate the feedback and sanity checking!

      I’m definitely planning on add a wider array of chords types now that the app is basically working. As far as the 7th inversions, I essentially “ignored” inversions by flattening the notes into a single octave … there may be an issue with this logic.

      I came across <https://chord-display.rednet.io> myself yesterday and took a cursory look. Nice app. They use a library called `tonal` <https://github.com/tonaljs/tonal> for their music theory logic, which ought to be a good resource to validate against.

      • vunderba2 hours ago
        I've never used tonal but it looks really nice! I updated my original comment BTW - I'm so used to seeing inversions being expressed as slash chords C7/B♭ that I originally thought 7ths weren't working!
        • nate-gehringer2 hours ago
          Ahh—thanks for the update. I’ll look into changing that notation to make it less confusing regarding slash chords.