playing the right chord progressions ...

anamaria's icon

Hi List,

I just wanted to share an idea that I am trying to implement in Max - perhaps some of you have dealt with this before:

I have two people playing two tones of for example a G major scale. Then I would like the computer to come up with the chord that fit those two tones. I have looked at this link that shows which chords work with a G-major scale: http://jguitar.com/harmonizer/scale2chord?scalelist=G+Ionian

- quite many, as you see, and also, when the two people play two other new tones and a new chord should be played that fits this tone combination we may not end up with a nice sounding chords progression ...

Have any of you dealt with this problem before, and have any of you made a "harmonizer" or something like that that would fit my interaction description above?

Thanks for your throughs, ideas and suggestions as to how I can make this work!

Cheers,

Ana

Nikolas K's icon

hello ana,

I think you should narrow down the choice of chords for each possible pair of notes. I once tried to create a harmonizer, short of got it, but it depended on one note, ie the considered tonic.

In my opinion, you should start by using the two notes to determine in which one of the basic chords of the scale they fit! If you try to find any two notes,in which "jazzy" chord they could be into, like maj7, sus 7#9 etc... there are like a bajilion chords they could fit!

So, my advice is to check the interval between the two notes, and see if its a third or a fifth apart. Then check witch one is the tonic! if the notes are B and G, the G is a sitxth from G.. but the B is a Third from G! so the G is the tonic and this would be the Gmajor chord as the G is the tonic of the Gmajor and the B is the third!

This could also be like a Bm aug, Am9,Cmaj7 and many more! I think it is better not to go that way! Just th basic chords!
The same thing sould be appliesif the notes wete a fifth apart!

Anyway, if you hava a basic knowledge of how the scales are formed and their basic chords, it would be really useful in this case!

Hope this helped..
Nikolas

anamaria's icon

Thanks, yes, that was helpful :-) and that's also what I am doing, however, I wondered if anyone have implemented something like this:

a function looking at the last two notes versus the next two notes, and in this way the next chord is determined: if for example there are two or more possibilities for a new chord, then the new chord should be the best sounding chord, when considering that it follows the previous chord ... if you see what I mean?

Thanks again,

Ana

Floating Point's icon

I suggest you google "fuzzy logic" +Lobjects +Elsea

anamaria's icon

Thanks, that was very useful! A good starting point! - also for the other thing that I am doing:

I am also working with analyzing the sequence of tones and pauses when a melody is played:
the length of activated tones and the length of pauses in between. I work with three tone lengths and three pause lengths.

I would like to be able to detect a phrase and see the rhythmical characteristics of this phrase ... did anyone work with this before?

Ana