Is there a chord module that makes minimum movement chord changes?

I learned all my music theory by not paying close attention to my mom who’s a composer. So I don’t know how best to describe this, but here goes:

The VCV Chord module (and others like it) takes a root note for a chord. You can sequence the root note, but the chord output will be parallel transposed. That doesn’t sound … terrible, but it isn’t what real composers & jazz pianists do. They transition from chord to chord, minimizing the distance between the notes in the two chords.

As an example, you could have a chord sequence of A minor, C major F Major

That would be (A C E), (C E G), (F A C). You could play those chords with just those notes, but a more musically satisfying way to do it would be to use inversions, so common notes between 2 chords are repeated, in other words something like (A C E), (G C E), (F C A). Or (C E A), (C E G), (C F A).

It gets even more fun with denser chords. I remember seeing Dave Brubeck play live, and he’d construct whole solos out of using inversions on 8 note chords.

So is there a plugin that does that? I know the PS-PurrSoftware Meander is well up on those kind of music-theoretical things, but I haven’t figured out how to use it yet. :grin:

1 Like

I made a module that did that (and much more), in a clumsy attempt to launch a new line of plugins. Ppl didn’t seem very interested, so I never launched the “new line”. (It’s the one called “Harmony”, on the right. It generates four part harmony from an input root node, using a rule-base of common practice harmony rules.)

3 Likes

I tested those for you. I’d test them again if you like. I don’t remember why I stopped. I saw something shiny maybe.

1 Like

nope, no plans to release them. tx.

1 Like

It would generate inversions of chords to try an connect them “well”, but there was a user choice for this: {“DONT_CARE”, “DISCOURAGE_CONSECUTIVE”, “DISCOURAGE”}. The default was the middle option, where would freely generate inverted chords, but would try not to do two or more in a row. In all cases if it couldn’t generate a “valid” chord transition any other way it would still use an inversion.

1 Like

If you haven’t seen it, check out the Meander manual “Quickstart” section. This shows a bare bones patch that does harmony, melody and bass.

You are right, Meander does use chord inversions as you are interested in doing. The transitions may not always be the shortest (fewest finger-key shifts), but it is generally in that direction.

You may have seen in some of my earlier posts that I like to “Stay on I” circle of 5ths degree and use inversions and octave wandering to generate all of the music based on that single I chord.

I have a diagram similar to this I made and stuck it on my wall:

tonnetz

I thought I invented it, but turns out its been around for 3 centuries already :smile:

It helps a lot for composition using chord inversions.

5 Likes

Amalgamated Harmonics module Progress 2 might do (?).

I added this demo patch to my PS-PurrSoftware development topic in case you would like to easily try Meander out.

1 Like

I use harmony, I like it, it definitely makes nice chords.

3 Likes

I think what you’re after is called voice leading.

3 Likes

Exactly, and while Harmony explicitly uses 4 part voice leading, Meander mostly plays triad chords and uses chord inversions to prevent the chord progression from rising or falling in pitch range as the progressions steps around the circle of 5ths by 5ths or 4ths. So, the Meander algorithm tries to keep the chord in the same octave range regardless of which circle degree chord is played. Obviously, this cannot be done perfectly.

Meander does always force the chord tonic-root-bass note into the first channel of the harmony polyphonic output

Meander does use fractal Brownian motion (fBm or 1/f) stochastic time correlated noise to cause the harmony party to “meander” through the parameterized “target octave” and “octave range” at the .“variability” rate of change.

Melody generation is similar in use of the note meandering.

1 Like

Damn Euler, he is always first!

1 Like

As @k-chaffin points out, that is exactly what Harmony does/did. It has a rule base of maybe 10 rules for voice leading and tries to rd progressions that obey all those rules.

1 Like

By the way, I like Squinky’s 4 note voice leading chords so much that I often simulate this in my Meander patches by taking the triad chord polyphonic output, splitting it with SPLIT, taking the first channel bass note, adding 1V to it to raise the note by 1 octave, and then using MERGE to combine the 4 monophonic voices back into a polyphonic cable before sending to the harmony voice module.

It is also fun to take these 4 monophonic chord voices and feed them into sequential switches, etc and do all sorts of chord arpeggios and strumming, etc.

Of course Squinky’s Arpeggiator module does just this with the Harmony module channels.

Yeah, it seemed like some sort of arpeggiation of generated chords is a good idea, so that’s why I made that arp. But probably ppl already have their own way of doing this with switches or shift registers that may be better for a lot of use cases.

1 Like

But something I do all the time is take the output of VCV Chord and pass voices 2 - 4 through signal delays and then merge them. This turns a single chord into a one shot arpeggio. A recent post I made has an example:

2 Likes

Yes, that is a good technique. There are of course things and arpeggiator can easily do that are very difficult to do that way. Initially I’m thinking of all the “arpeggiation mode”, like up&down, or inside-out, or random. They can all be patched with other module, but it would take work, and would be difficult to quickly switch from one to the other. And other stuff of course. None the less- the delay technique is cool.

I think Nysthi Rael could be used to get some very interesting variations in timing.

One technique that was interesting - and musically useful - delay the triggers but not the pitch CV. So then you get chord notes spaced out in time, but if the root note changes, you’re sampling notes from the current chord, not the previous one.

Of course it can be musically useful to delay pitch and gate both, just for the occasional momentary dissonance.

I am really sorry @Squinky that you can’t be tempted into finishing what you were working on.

I also have some cool ideas for a module you could pair with any polyphonic input to do this kind of manipulation. But I resist becoming a plugin developer. Maybe after I retire from coding for a living.

I don’t know how familiar you are with Autechre, but those guys are really Max/MSP programmers who build their own musical tools from scratch. I can see doing that, but I doubt I’ll start writing a plugin until I have wrung all the possibilities out of what we already have to play with.

1 Like

A couple of thousand modules taken 1 to 100 at a time. How many combinations and permutations could there be :wink: