Iterative Music Theory: Paint by numbers...

Arrangement, instrumentation, lyric writing, music theory, inspiration… it’s all here.

Iterative Music Theory: Paint by numbers...

Hi Folks.

I'm building a chord Sequencer!
However, as a self taught (and pretty pathetic excuse of) a musician,
I never quite got a grip on music theory beyond the basics.
Sure hope this is the right place to ask for help, a short glimpse into this forum
subsection and i'm already baffled by the combined knowledge pool.!
I imagine as I slowly sieve through the back catalog here many of my questions will be answered and more.

In short, A 32" touch screen is used to control a simple chord progression, with arpeggiations.
You provide a root note and a mode, it provides you a I - II --- VII chord progression,
which you can then rearrange as required over a 32 step sequence.

I was hoping anyone reading through might see how I'm trying to calculate scales + chords and tell me how I'm doing it all wrong. To this point i've only diatonic triads and 7ths
in the major and three minor modes.
I've for many years struggled to "click" with music theory, I'll take any advice/criticism i can get.

The process so far:

1st Process - Determine Chord Choices:

major = (Maj, Min, Min, Maj, Maj, Min, Dim)
natural minor = (Min, Dim, Maj, Min, Min, Maj, Maj)
harmonic minor = (Min, Dim, Aug, Min, Maj, Maj, Dim)
melodic minor = (Min, Min, Aug, Maj, Maj, Dim, Dim)

2nd Process - Apply rules of Major Scale from root:
Rules - TTSTTTS.
#Output in C - { 0,2,4,5,7,9,11,12)**

3rd process - Arrage scale degrees for chords
Rules : Tonic, Mediant, Dominant, LeadingTone,
Supertonic(+oct), Subdominant(+oct), Submediant(+oct)
#Output in C - { 0,4,7,11,14,17,21)

4th process - Build the chord from degrees:
1. Major - R,3,5
2. Minor - R,b3,5
3. Diminished - R,b3,b5
4. Augmented - R,3,5#
5. Sus4 - R,4,5
6. Sus2 - R,2,5
7th Chords:
7. Maj7 - R,3,5,7
8. Min7 - R,b3,5,b7
9. Dom7 - R,3,5,b7
10. Min7b5 - R,b3,b5,b7
11. Min/Maj7 - R,b3,5,7
12. Dim7 - R,b3,b5,6
13. Maj6 - R,3,5,6
14. Min6 - R,b3,5,6
15. Maj7#5 - R,3,#5,7
16. Maj7b5 - R,3,b5,7 ( also maj7(#11) )
17. Dom7b5 - R,3,b5,b7
18. Dom7#5 - R,3,#5,b7
Extended Chords:
This is where i'm getting stuck with voicings, sound can get real muddy
and my understanding of the theory lets me down.
http://www.simplifyingtheory.com/extended-chords/
19. 9th - R,3,5,7,9
20. 11th - R,3,5,7,11
21. 13th - R,3,5,7,13

If anyone here has any useful references or learning resources for where I might continue to understand how to build chord progressions..
I really need to address my understanding of this, before I can continue programming it's abilities.
I've taken on more than I can chew :)

**Seperate Process for Arpeggiators:
Apply current mode rules to Major scale
Ionian = unedited.
Dorian = b3, b7
Phrygian = b2, b3, b6, b7
Lydian = #4
Mixolydian = b7
Aeolian = b3, b6, b7
Locrian = b2, b3, b5, b6, b7
Aeolian (nat Min) = b3, b6, b7

Thanks for your time! Kind regards
Poster
Posts: 17
Joined: Sat May 23, 2020 3:28 pm

Re: Iterative Music Theory: Paint by numbers...

I usually come at it from the melody and then organise the chords underneath it and try and avoid too many root positions.
Good luck with your chord progression route though.
MOF
Frequent Poster
Posts: 1140
Joined: Thu Mar 06, 2003 1:00 am
Location: United Kingdom

Re: Iterative Music Theory: Paint by numbers...

That's kind of the intended idea. User provides a Root and a Mode, it generates chord choices to organize.

Avoiding root positions, something i'd skipped entirely in it's infancy!
As a pretty poor guitarist, I recall about 6 chord voicings per chord?
Inversions are fairly easy to impliment later, when I get the chord theory right.

Is this kind of what you were getting at?
Regards
Poster
Posts: 17
Joined: Sat May 23, 2020 3:28 pm

Re: Iterative Music Theory: Paint by numbers...

I'm not quite clear what you are trying to achieve. You have listed the mechanics of how to construct chords, but you will soon discover that it is rare that all the notes of a chord are played, as well as the issue of inversions that MOF has mentioned.

For example a jazz pianist might play a C15 chord as E Bflat D A. Not only is this an inversion (typically a bass player would handle the root if necessary) but the chord has some notes missing (C G F).

The player might play each of those notes in different octaves, possibly doubling notes too.

Which notes are played, and which are omitted comes down to style, musical context, voice leading etc. Playing chords 'by numbers' will lead to rather turgid results I suspect.
GilesAnt
Regular
Posts: 118
Joined: Tue Feb 18, 2003 1:00 am

Re: Iterative Music Theory: Paint by numbers...

GilesAnt wrote:For example a jazz pianist might play a C15 chord as E Bflat D A. Not only is this an inversion (typically a bass player would handle the root if necessary) but the chord has some notes missing (C G F).

This is probably the biggest pitfall. Especially when you factor guitar players into the mix. We might play a 13 chord as 3,7,9 so C13 would be E,B,D which, on it's own, sounds identical to E7no3rd.

Django's beloved m6 chord is played R,6,m3 but can also function as a dom 7th (5,3,b7) and a dim

Sam Spoons
Jedi Poster
Posts: 13006
Joined: Thu Jan 23, 2003 1:00 am
Location: Manchester UK
Finally taking this recording lark seriously (and recording my Gypsy Jazz CD)........

Re: Iterative Music Theory: Paint by numbers...

Giles :) Yes, I might really struggle trying to program the mind of a jazz musician.
I'd even welcome turgid (wonderful word) results at times. This'll be used experimentally.
Programming inversions and chord options is easy enough to achieve, I'm thankful for the reminder of their importance and have since implemented it into the code :)

For clarification, it's these options you're describing that i'm trying to get an idea of.
I figure what you're saying is that there is no fixed rule to determine, due to variety in style.
I think what I'm hoping to achieve, is to give some of the rules that do exist as options for the program to decide between.
Currently, it'll make choices (blindly and fairly randomly for now) on octave, inversion, velocity of 3rd/5th, and chord voicing within a range of parameters.
Unfortunately, it's in these confusions you both describe - where it becomes really hard to narrow down some of these rules.
Eg, Should I emit the Root for all Maj/Min 9th chords if there is a bass present?
With 11th chords, should I emit root + 3rd?
Someone got any quick tips where and why when altering chords in a cycle of 7ths?

Maybe I need to make more time and clearly define my questions individually?
My original thought was someone might have a plethora of online resources that would help me, maybe correct some of my thinking had it been so far incorrect.

Poster
Posts: 17
Joined: Sat May 23, 2020 3:28 pm

Re: Iterative Music Theory: Paint by numbers...

It sounds like you are trying to reduce the voicing to the top 3 or 4 notes of a chord but without understanding the relevance of the different notes in there?

Speaking as a guitar player, the theory is fairly simple for most chords, 1,3,5 makes a major chord, 1,b3,5 makes a minor chord, 1,3,5,b7 = dom 7th most extensions above the octave are in addition to the 7th and so on. leaving out the 3rd makes a chord ambiguous, the root is usually either there but played by another instrument or implied by the other notes in relation to the melody. Guitar players only have 6 strings and 4 fingers so certain chords can only be played by leaving some notes out. Pianists have 10 fingers and far too many notes so have an easier time of it.....

I don't know it that helps and I guess you probably know it anyway but sometimes a different viewpoint helps bring things into perspective....

Sam Spoons
Jedi Poster
Posts: 13006
Joined: Thu Jan 23, 2003 1:00 am
Location: Manchester UK
Finally taking this recording lark seriously (and recording my Gypsy Jazz CD)........

Re: Iterative Music Theory: Paint by numbers...

I'm with Sam here (and MOF). Guitarists and pianists will voice chords entirely differently, if only because of the physical limitations/possibilities of the instruments (and the players!). Knowing which notes to leave out is as important as knowing which ones to include. And yes, the same set of notes can have different names depending on harmonic context, e.g. C6/Amin7

But there is musical subtlety here too - otherwise known as voice leading - making chords flow together rather than being a set of bricks underpinning a melody. I don't think there is a quick way to learn this - you need either a lot of practical experience, or you can do some text book study of harmony (e.g. Bach chorales).

But I'm sure what you are doing will be instructive in itself - wherever it leads.
GilesAnt
Regular
Posts: 118
Joined: Tue Feb 18, 2003 1:00 am

Re: Iterative Music Theory: Paint by numbers...

That's basically it. Or one of the things at least.
I am trying to reduce the voicing to the most required notes in the chord.
It's the nuances you describe like leaving out the 3rd makes a chord ambiguous, i've used but was never taught to see.
So that linked me to this:
https://sleepfreaks-dtm.com/en/music-theory-beginner/omit/

It provided a perfect example , where I can program options "why" to omit a 3rd during a progression (or add a suspension in this instance).
Thank you, this will certainly help.

Giles :) The computer can't determine between naming conventions, I've got to keep it fairly simple in that regard.
Now voice leading is something I can work with, a topic i've seen in passing but never explored in any detail. Fully aware there is no quick way to learn this... an that I cannot code what a human can do.. I am certainly enjoying the journey learning and the results of the sequencer at hand.
Poster
Posts: 17
Joined: Sat May 23, 2020 3:28 pm

Re: Iterative Music Theory: Paint by numbers...

2 minutes into a video on voice leading, this is exactly the kind of awareness my life has been void of until this point. Regards :) it'll certainly help me program some simple rule sets for modulation and chord options within a phrase.
Poster
Posts: 17
Joined: Sat May 23, 2020 3:28 pm

Re: Iterative Music Theory: Paint by numbers...

Interesting project, I enjoyed learning about chord theory and this is making me think about some of the more subtle elements in more depth so thanks and good luck.

Sam Spoons
Jedi Poster
Posts: 13006
Joined: Thu Jan 23, 2003 1:00 am
Location: Manchester UK
Finally taking this recording lark seriously (and recording my Gypsy Jazz CD)........

Re: Iterative Music Theory: Paint by numbers...

Wow, good luck with this! Personally, I think it would be easier to just take a music theory course. :)

“Chords” are just one concept when it comes to expressing harmony. When you study music theory, first you learn the rules of counterpoint. Counterpoint is the blueprint upon which all harmony is based (I am oversimplifying). There are reasons why some notes resolve upwards, and others downwards, for example. There are also rules as to where you can punch ‘holes’ in the harmony and which notes can be doubled, and why.

And that’s without even getting into cadences, modal theory, clusters, chord substitutes, ‘inside’ and ‘outside’ chords, atonalism, etc.

What I love about learning music theory is that it literally follows the evolution of music itself.
Ben Asaro
Frequent Poster
Posts: 772
Joined: Thu Feb 26, 2009 1:00 am
Location: NYC

Re: Iterative Music Theory: Paint by numbers...

Yes, it had crossed my mind. But wasn't that practical an option for my financial situation.
But youtube has taught me well enough for now!
for anyone reading in the future, Musictheory.net covers much of the basics.
"Walk that bass" channel has been exceedingly helpful too.

I'm at the point now where it'll determine available chord substitutions depending on root and mode.
Voicings can now be applied too.

Now i'd like to improve it when it comes to "expressing harmony".
Counterpoints are very math friendly, difficult as we're generating chord progressions, not pre-arranging.
So I'm considering ways to approach this at the moment.

My current thinking is something like...
# Every chord played will have available tensions
# The frequency of each note within the "melody arp" is checked.
# The most frequent note will be used to determine the "leading voice" (to offer, or automatically generate chord substitutes and voicing for the next chord )
(I'd like to find a better way in the future to determine other than frequency, baby steps)
#In manual mode, here we lose control. However in automatic generation, i'd like the next chord option to generate a "riff" based on these "leading voices". But I've much more reading into modulation first.

Its these rules, of "why" - to resolve upwards or downwards, which notes can be doubled etc Where I'm looking for further reading/videos. If you have any useful references please share away.

Pretty terrible poc video of my progress before I had to rip it up and rebuild.
It takes basic canon progression, occasionally it generates a variation in the progression each bar. https://www.youtube.com/watch?v=Ezh03sCQcYg Skip a few bars you'll get an idea of where i'm trying to go.

:)

Kind regards!
Poster
Posts: 17
Joined: Sat May 23, 2020 3:28 pm

Re: Iterative Music Theory: Paint by numbers...

Ryhad Laurentus wrote:Its these rules, of "why" - to resolve upwards or downwards, which notes can be doubled etc Where I'm looking for further reading/videos. If you have any useful references please share away.

What you are describing is covered in counterpoint. Counterpoint is divided by 'species' and they describe 'rules' by which you compare two notes, how they resolve. The more complex the harmony, the more 'mini counterpoints' you have in play.

After counterpoint, harmony is then covered in SATB*, in which the same rules are applied but across 4 voices. Most modern orchestration and harmony is closer to SATB than traditional counterpoint which typically uses two voices.
*SATB = Soprano, Alto, Tenor, Bass

You should look on Udemy, they are always running sales. I can highly recommend anything by Jason Allen, and I think you will find his courses far more affordable than you think.
Ben Asaro
Frequent Poster
Posts: 772
Joined: Thu Feb 26, 2009 1:00 am
Location: NYC

Re: Iterative Music Theory: Paint by numbers...

Ah ok - Ben the Boss! Thank you for your time.
Counterpoint. Sounds like that's the direction I need to head next.
I'll admit I was surprised at the cost! currently £13.99 a package I can scramble enough together for a one off.
It's really hard to justify, but knowledge is power... I must keep reminding myself i'm trying to code something I don't completely understand, it wont happen overnight.
I Appreciate the recommendation.

REF for onlookers : https://www.udemy.com/user/janthonyallen/

https://www.udemy.com/course/music-theo ... art-4-5-6/

This one looks more than appropriate.