jazz harmonizer module

comp means two totally different things. in a daw it means making a composite track from multiple takes. In jazz in means accompaniment. Two totally different things.

1 Like

Maybe you and Brian could jam on a pretty swooft module that understands a few styles of jazz harmony, his is well in its way to doing the older style with pizazz.

1 Like

Wow, so many great replies here! Thanks everyone for the pointers and the enthusiasm.

As far as what I’m doing, I think @cubistguitar I think has the right idea. In the example video there is one input for the root (D), and another input that selects the chord type, in this case “min7”, giving Dmin7 — these inputs are not changing in the video example, only the melody input is changing.

From a theory perspective, it sounds good harmonically because building a diminished chord off of some the most common non-chord tones (the 2nd, 4th, and leading tone) all result in a chord that is nearly equivalent to a V (five) chord in the key (i.e. E, G, Bb, C# is like an A7b9 without the A).

To be perfectly honest, the “diminished passing tone” approach doesn’t sound as good with all underlying chord types (or all passing tones), it kind of depends what you are playing. But in a number of situations it works well. I agree with the commenters who suggested that it would be good to have other options for harmony (modal, stacked 4ths, etc) as well, that is something that I have been thinking about for an expanded version of the module but I will probably start by releasing what I’ve got.

Brian

3 Likes

It’s going to be hard to sound “good” if your program doesn’t have any conception about voice leading. “even in jazz” you can’t just bash out block chords on the same voicing going through the changes. While there may not be “rules” of voice leading as unbending as the common practice harmony rules, there are still some things to pay attention too.

1 Like

Yeah the state and voice leading stuff is what I’ve been thinking about. Chord to chord transitions. I think a starting point is a simple comping plugin which just plays the 3 and 7 shell and moves between chords with the minimal leading. At least that’s where I would start since it solves a lot of the technical problems like what your ins and outs are and will be musically useful.

My stack of projects is way too big to take this on now but I do think it is a really interesting project.

3 Likes

I definitely think your idea is worthwhile and very interesting. Perhaps releasing the current module is the way to go, but I would encourage you to give some thought on how you might expand the capabilities in the future, either within the current module or with additional modules, including expanders. In my experience, we need to always remain backward compatible if we enhance existing modules.

How does the user know what root and chord type have been selected? Are you planning on adding any additional panel display widgets before releasing what you have? You might want to look at Aaron Static’s modules for inspiration on how to handle scales and chords. Unfortunately, the developer is not active here since porting the modules to Rack V2 a year ago. Or at least they have not replied to my PMs.

Oh while I’m sharing my “ideas I might do one day” list here the other idea I had for tbis module is that iReal pro (which is a great practice app) represents their lead sheets in an easy to parse compact url format. And they have basically every tune ever charted in their community forums. So a module which consumes that to generate the changes was on my mind. If anyone does this dm me and I think I have a smidge of code which starts pulling apart the sheets but nothing shippable

3 Likes

Great idea, just the shell (3&7) and you have all you need. Generally the voice leading goes down in cycle connected changes, but you get to a point where you have to wraparound, either by getting back to first measure or just starting to go too low and having flip back up. So start by implementing shells moving down, and some mechanism to flip back up and that would satisfy some urges. Especially if that flip up was on a passing chord then falling to a more consonant one, it would sound amazing. Great ideas floating around here. Of course some ability to flipp all these values and have it trend upwards and flip down occasionally would be amazing too.

@Squinky, there are some typical voicings used for this sort of harmony, you could have some voicing selection ( close/drop2/drop3/drop2-4) and keep that type spacing for quite a while, ( so yeah not just bash away in one type voicing, but one kind of spacing ) and there rules of thumb too, always move smallest amount to next chord, no need to repeat the melody note in the harmony, 3rd and 7th are most useful and 5th and root are less useful, voices don’t cross unless for dramatic purpose, the rules could be used to generate the first voicing and get it moving properly, especially if the flip up / flip down mechanism I mention above is present.

Jazz harmony like this is not so much the main harmony of the song, but blocks moving in tandem with melody, it would have the rhythm of the melody and would need to shift chord type according to a slower harmonic rhythm, a brilliant idea for a “jazz harmonizer” module. It would not usually replace the backdrop harmony, but add some excitement to certain passages.

1 Like

Yeah this is really a comping module we are discussing - but I think it could be very interesting

I am imagining someone making an ambient Modular giant steps with this module at the start of the chain. Lol.

I really am itching to write it now we are discussing it! Darn all these good ideas :slight_smile:

3 Likes

If you look at my unreleased Harmony, above, it knows all the common practice rules for voice leading, and always generates legal voicings with full voice leading. Ppl didn’t seem super interested, however.

2 Likes

Oh sorry I missed that! That’s neat!

So many good ideas on this thread! My module isn’t a comping module, but that would be very cool.

I do agree that it would be useful to be able to see what chord type is being selected, and maybe have an extension (or separate module) to do sequencing of underlying chords. I hooked up a SEQ3 to sequence a chord progression and it was doable but a little painful as there is currently no way to see what chord type is being selected other than by ear (or by hooking up a bunch of tuners).

Regarding “releasing what I have”, my original thought was to release a barebones module that just does what you see in the video — CV inputs only, just the one method of harmonization — and then work on a new, bigger, more full-featured module. Mainly because what I’ve built scratches my original itch and it made sense to me to get it out into the world sooner rather than later. But maybe that’s silly and I should build the better module in the first place?

Brian

p.s. @Squinky your unreleased Harmony module sounds cool, is it on Github or somewhere I can try it out?

4 Likes

Anyone ever uses this one

its not jazzy but its easy to modulate with PGMR and get a jazzy thing out of it.

Interesting. Not seen it before, but I cannot imagine the visual resemblance to Qu-Bit Chord is a coincidence.

I missed that module. I will have to play with it. I cannot tell for sure from the documentation, but it appears to be limited to the diatonic major scale. Okay, it is pretty cool. Here is a test patch using Interea with Meander to harmonize the bass line. It works in Cmaj only. I merged the Interea outputs so I could send the chords to a single polyphonic module and I used BGA Assign to create polyphonic gates. I also had to insert an OCT module as the Interea output pitch was too low.

Foristan Interea Chords Test-1.vcv (15.8 KB)

1 Like

Thanks again for your comments everyone! The plugin is on GitHub at GitHub - brianestlin/NestlingVCV: Plugin for VCV Rack if anyone wants to play with it / beta-test it (or code review it). There are example patches in the examples directory.

I’ve only built for Mac OS (intel) so please let me know if you have any trouble on other platforms.

2 Likes

any chance to get a win binary for testing?

forget that

You may find this useful