Direkt zum Inhalt

Make Chord Progressions Conform to Project Key?

Posted

Greetings, denizens of the new Synfire forum!

I have a harmony library consisting of at least a thousand chord progressions. It contains only the Harmony parameters from various MIDI collections I've purchased and imported into Synfire, and from progressions I've entered by hand.

The problem is that for any project I'm currently working on, only a small percentage of these progressions are in the proper key. A given progression might be just what my project needs for a B section or bridge if it were transposed into the key of my project, but because I don't recognize the chords by sight as being relevant to the key I'm working in, I'll pass it by instead. 

I know I can place a progression onto the timeline and then transpose it up or down using the Ctrl and arrow keys, but this is hit-or-miss and tedious. 

Is there some way to make a progression automatically conform to the key of my project (or current palette), so that for any progression I place on the timeline (most likely in a container) I am more likely to hear chords that work in my project?

Thanks.

EDIT: Maybe instead of "conform to the key" I should have written "conform to the current palette." Some of those chords will then NOT be in the project key as strictly defined, but they will be musically useful in many cases. That's why they're included in the palette. So when I place a progression on the timeline I want Synfire to change that progression (Harmony parameter) so it uses chords from the current palette as often as possible while maintaining the numerical relationships between the various chords.


Sa., 20.05.2023 - 17:38 Permalink

Oh, I do have as many progression libraries and that inspired me to add a button specifically for what you are looking for (the left green button in this screenshot):

When that link is active, progressions in the library will be transposed to match the key of the progression in your current container (inherited or physically present).

I don't remember right now whether it's only the audible preview or also the display. Anyway, it makes them fit your key good enough to get an idea. Many progressions can be further transposed and still fit the same composition. But that's a thing you can do after you placed the progression in the container.

Sa., 20.05.2023 - 18:02 Permalink

I haven't had a chance to check this out yet, but...very cool! If it works as you say, it will be quite handy. 

And yes, I just want to get the chords to be closer to something I can use in my project, and then I can work it out from there.

Great minds think alike.

Sa., 20.05.2023 - 23:51 Permalink

I've now tried this, but I can't get the left green button to activate. The one on the right does...the chain icon, but not the one on the left.

According to the Tool Tips, that button will:

"Transpose the Harmony of the currently selected phrase to the key that dominates the current container in the arrangement (or a major/minor parallel)."

So I understand that I must have a phrase selected, but I've tried selecting a variety of phrases in multiple libraries, and the button won't light up.

What am I doing wrong?

As I wrote earlier, my Harmony library basically consists of only the Harmony parameters from various MIDI files I've imported into Synfire. Is this supposedly sufficient to cause this procedure to work, or do I have to select a phrase that also contains the common parameters such as Scheme, Tempo, Figure etc? (By the way, I tried this multiple times...it didn't work.) In other words, does selecting only a Harmony parameter qualify as having selected a phrase?

 

 

So., 21.05.2023 - 19:54 Permalink

I tried this again today on a different project. The right button happened the be active, and this time it worked.

This has to be one of the absolute BEST features of Synfire!!!!! 

If both lights are active I can select a Harmony parameter, drag it to the Harmony outlet on the parameter block, and the chords are transposed such that they are  far more likely to work in my project.

Many thanks for this feature.