I would like to play a bassline and melody on a MIDI controller and have the computer dynamically fill in chords as I'm playing. I assume that there are several choices for each chord that the algorithm may choose from, but perhaps it could do so by giving it some parameters, such as genre, before playing. Is this a feasible idea, and if so, what are some steps necessary to realizing the idea? Thanks!
This system doesn't actually play along - it requires a vocal/lead line to be input first, runs an analysis to determine key and fits chords etc. then plays back. Though this approach could be used if the tune is a continuously repeated chord progression.
It seems to be determining the basic key by building a histogram of pitches, and the chord generation uses a Markov chain to go from one chord to the next. There is a training step based on a database of real songs to build up a statistical model; this might be proprietary, though some simpler substitute may be possible.
Not really. I mean, you could make that, but it's unlikely to sound good without some pretty sophisticated AI. At it's simplest, you could be using any diatonic chord for which the bass note is either the 1st, 5th, or 3rd. But if you step outside really simple pop music, then the bass note could be all kinds of things as many chords are voiced with a bass note that is not an obvious relationship to the upper notes (slash chords, sus chords, altered chords voiced by putting upper structure triads over the bass, etc).