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

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:


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:

I don’t use a lot of modules because I couldn’t figure them out before I ran out of patience. So that limits the domain of modules to test somewhat. :grin:

I know what you mean. But, I never did figure out how to balance work and play. Over my 40 years as a systems engineer and developer and R&D, I somehow always managed to turn my work into my hobbies and my hobbies into my work, so I would end up working on similar things all my waking hours. That was not always good for my health. Burnout was always an option and real possibility.

Meander has its roots in 1988 when I was doing semiconductor wafer fabrication plant modelling and simulation. In the daytime I developed wafer fab discrete event simulators and at night I developed music composition and performance discrete event schedulers and handlers. Prior to that I was doing expert systems at work and also Meander became an expert system.

So now being retired, I’m still doing the same thing and mixing music with theoretical physics.


I’m sorry man, your post created an itch that I needed to scratch. :smiley:

I patched this up to try to get to what you are after:

Here is the VCV selection file:

Voice Leading.vcvs (13.9 KB)

It works quite well. So you just need to set the scale you are working in, set the low cut range note and high cut range note. If a note goes above the high cut it drops it an octave and if it goes below the low cut, it raises it an octave. Keeping all notes within a certain range.

I don’t have VCV chords, but you can just replace the bogaudio stacks with it.


That’s really cool! I adapted this and had Meander supply the chords. Sounds very good, but, should this constrain the chord notes to C4-B4 as you show it above? It is not for me. I’m probably doing something wrong.

Or does this only handle a single octave input such as from TWELVE-KEY?

I think the issue is that it can only handle adding or subtracting 1V but the notes could be in a higher or lower octave and require multiples of +/- 1V.

Hi k-chaffin. No you can adjust the high and low cutoff as you wish. I was just playing around with low at F3 and high at A3, which is a really small range and it worked with the setup above. I might have been a bit over eager and never tested it properly. If you are using meander in a different scale to what is in the first quantizer, it might not work as planned. I haven’t quite solved that yet.

Yes sorry, this is correct

What I am saying is that I am using the C4-B4 range you used in the selection patch but it is outputting notes outside of that range as I feed meandiering chords to it.

I’m feeding the Meander poly external scale output to Grande Quant so that the current Meander scale will be used. I don’t need to change the low and high cutoffs per scale do I?

Oh, okay, I see your last post.

I would use this selection patch if we could get it working for triad chord notes in any octave. This seems to be what @chaircrusher is wanting also, I think.

Tetrad 4-voice chords would be fun also, in order to do what @Squinky 's Harmony module does.


Yes, you’ve got me thinking now of sample and holds and octave modules to try and solve it. But I’ll keep tinkering.

1 Like

I’ve done some strange patches that used 36 comparators to do a single task. Almost anything can be done. But, hopefully this patch would not have to be so complex. :wink:

1 Like

I’ll give this a go! Using compares to keep the notes within the same octave is a good first approximation. Once again I’m reminded how good it would a sub-patcher feature where you can encapsulate stuff and define inputs and outputs.

1 Like