Guitar chord karaoke with Vamp, Chordino, and FFmpeg (2022)

(dylanbeattie.net)

35 points | by davekiss 1 day ago

4 comments

  • keymasta 5 hours ago
    What a cool thread! I like how you put the specifics of your workflow and especially details of the commands you used! Particularly with the vamp commands, because as you say, they are somewhat inscrutably named/documented.

    I started dabbling with vamp as well a couple years ago, but lost track of the project as my goals started ballooning. Although the code is still sitting (somewhere), waiting to be resuscitated.

    I have had an idea for many years of the utility of having chord analysis further built out such that a functional chart can be made from it. With vamp most of/all the ingredients are there. I think that's probably what chordify.com does, but they clearly haven't solved segmentation or time to musical time, as their charts are terrible. I don't think they are using chordino, and whatever they do use is actually worse.

    I got as far as creating a python script which would convert audio files in a directory into different midi files, to start to collect the necessary data to construct a chart.

    For your use case, you'd probably just need to quantize the chords to the nearest beat, so you could maybe use:

    vamp-aubio_aubiotempo_beats, or vamp-plugins_qm-barbeattracker_bars

    and then combine those values with the actual time values that you are getting from chordino.

    I'd love to talk about this more, as this is a seemingly niche area. I've only heard about this rarely if at all, so I was happy to read this!

  • snappr021 7 hours ago
    A multi lane Rocksmith like interface, that dynamically adjust the difficulty of the chords based on the performers ability would be amazing.
  • rwmj 18 hours ago
    Very cool indeed! Does anyone know how it's possible for Vamp to extract guitar chords from audio? What if there are multiple guitars, like lead and bass, or lead and rhythm?
    • keymasta 5 hours ago
      That particular algorithm doesn't care whether the instruments are guitar or otherwise. There are other algorithms in vamp that would deal with individual notes. But in terms of separating tracks, vamp doesn't do that. There are some new ML-based solutions for this though. So you could separate them and run vamp on those outputs.

      But to get the chords I don't think you need to worry about that.