While you are learning how to improvise chords, at the beginning you will find it quite challenging and the speed at which you may be able to do stuff may be discouraging.
A comforting thing to remember is that there is always a tempo where you can do whatever you are working on, that tempo might be extremely slow, but the fact that such a tempo exists should allow you Ground yourself to a sense of progression.
Let's say that you were able to determine that you can improvise chords which outline the changes of a backing track or a tune your working on at 20BPM. At such a low speed you might find that it's hard to retain your focus, and connect to the song.
Even though this might be true, each time you play you will get slightly better/faster. Past just practicing there are other things which will allow you to increase the tempo at which you can play.
As with everything we've done so far, the only way to improve what we are doing is by an analysis of our current processes.
We will break down the process of improvising chords over a tune. A common chord progression is "Dmin7 -> G7 -> Cmaj7" and for simplicity sake let's assume that the underlying structure is C major. Note that we're writing it with respect to the standard notation, because this is most likely what you'll see in a tune.
As a beginner, we might still be learning about how we can convert these standard chord symbols into anchor intervals. If you're at this stage in the learning process then you'll recognize that since the key is 0* major, that the notes's number is actually the anchor interval itself, this makes 0* the fastest key to play in, but with time all keys will become equally as fast.
So we see the Dmin7, so our first step is see that our root anchor interval is 2, and that to construct the other anchor intervals we have to use 0 3 7 10 as our relative interval template, so our anchor intervals become 2 5 9 0, a similar process for the G7 gives us 7 11 2 5, and the Cmaj7 is 0 4 7 11.
So this process might take you some time when you first do it, but as time progresses and you continue to work on this then this will be second nature, and just as you're able to add 3 to 4 and tell me that it's 7 almost instantly, you will be able to add 7 and 8 and tell me that that's 3 instantly in our system over time.
As a more intermediate player you might be able to make this conversion quite quickly, and so your main focus would be on how you build this chord on the instrument, so you see the 2 5 9 0, and you have a finger on the 9 on the 0* string, you know that the following is true X 6 X X 9 X since moving 3 <- subtracts 3 from our current ai, then you can make a simple vertical adjustment to grab a 5 instead of the 6, then you also consider that 1 X X X 9 X is true, and also make a similar vertical adjustment, finally we can see that X X X X 9 2 holds as well, thus giving us a full voicing of 2 5 9 0 being improvised across the fretboard. When the next chord comes by we know what anchored intervals are sitting under our fingers and we're able to modify our current chord in combination with a bit of horizontal movement to get to our 7 11 2 5, finally the same process is preformed on the 0 4 7 11.
As an advanced player conversion from standard chord notation into anchor intervals doesn't pose any timing issues and extensions can be added easily, improvisation of the chord on the board is not a time consuming process either and so after the main chord is played, during that chords time you are also able to improvise melodies on top of the chords or just add interest by not just playing the full chord once. On top of that you are able to also consider the next few chords that are coming up during the time that was allocated for the current chord, thus allowing you to move with ease and get into more of a flow. In the advanced comping with someone keeps your thoughts heightened to the level of a solo even though you're soloing.
After thinking about how the progression of chord improvisation looks like at 3 different levels it gives us some insight on how we can move between the levels easier and improve.
The first thing to note is that there are 2 main steps involved in chord improvisation, the first being conversion from standard chord notation into an anchored interval collection, and the second being the construction of the chord on the board. In order to reduce the overall time of the whole process we may minimize the time for each of the two smaller processes.
In order to reduce the amount of time it takes for you to convert standard notation into anchored interval notation, there are a few different things we can do, the first is a passive memorization of the tunes changes by playing the tune multiple times, by playing the tune multiple times it allows us to enjoy the process of learning the tune rather than actually sitting down and trying to memorize it in a vacuum, additionally it allows us to build connections between sounds and our notation. Another thing we can do is just train the translations in a sort of vacuum, which in itself is less fun but will allow you to speed up which will be fun.
The way we will train our translation is by using the web application that was specifically built for this process, the way this application works is that it first defines an anchor note, say Ab (8*) and then throws us a chord, say Emin7 and asks us for the the anchor intervals that this defines, as you might already know the process goes like this, determine the anchor interval of the root of the chord we are trying to find, and then use the relative interval template defined by the chord to determine what the anchor intervals are.
Since E is 4*, then the anchor interval of E is 8, then we apply the relative interval template which is 0 3 7 10 which yields 8 11 3 6 after we've solved the question in our head we type in those anchor intervals into the computer and it verifies if it's correct and then moves onto the next one.
The reason why this type of training is useful is that it covers all the possible chords you will ever see while your playing so that you will never be stuck or surprised while you're playing.
Now that we've covered methods of improving the first component of chord improvisation, we'll move onto optimizing the second half, which is the fretboard construction phase. In order to become fast at this, we simply need to have really good horizontal movement, so in other words given some anchor interval, we have the ability to figure out other ai's on this line with ease.
The larger the horizontal distances you can work with the easier you will be able to construct chords and so being free in this sense will grant you the ability to construct chords quickly. When you are starting your journey with this process you'll probably only be able to consider the distances which are 1 away from your current horizontal position, but through sentient practice where you focus on making larger gaps like horizontal distances of 2 or 3 then you will reap many rewards.
On top of this type of practice we've also built another web application which helps train this horizontal movement. The way this application works is that it shows you a horizontal line across the fretboard which is covered by undiscovered horizontal ai's represented by X's, aside from two positions one of which there is an ai, and the other being a highlighted X.
The highlighted position represents a prompt for the user to fill in what that positions ai would be with respect to the ai' which is numbered, after the user fills this prompt with the correct ai and presses the space bar then a new situation is created and the process continues.
By using these applications to train the two fundamental aspects of chord improvisation you should start to see increases in speed of your improvisation allowing you to play interesting ideas and create music which people will want to listen to.