Help from a musican sought

• Jan 11, 2012 - 14:00

Im a programmer who likes music and im using Musescore (which is excellent) to partly help me to understand
music structure by developing plugins.
Im trying to produce a plugin that will take a selection from a simple staff conaining only rests and
single note chords, and change the notes to full chords (triads etc.). The idea is that you go through a
melody and just enter root notes where you want chords. Then usingthe plugin you select regions
to change to chords of different types and experiment.
I would appreciate comments n the following. Please free to correct my terminology etc.

1. By taking the MIDI pitch value of a note and dividing it by 12, the remainder is 0 for C, 1for C# etc.
By converting the key signature to the same number I can then determine the interval position
of the note in the key by subtracting the key from the note (or note + 12.
(Im aware that a key signiture of C may indicate a mixture of keys and so will allow a choice.)
2. Having got the interval of the note in the key I can use it as the root note for the common type of chords:
0, 5 and 7 are major I, IV and V
2, 4 and 9 are minor II, III and VI
11 is diminished VII
Im not sure if I should do any thing with ther other intervals???

3. Given the root and the chord type I can then obtain generate the rest of each chord.
Major is 0 (Root), +4 (Third) +7 (Fifth) and +11 (Seventh)
Minor 0, +3, +7 and +10
Dim 0, +3, +6 and +10

4. The menu options are currently:
Triad RTF as above
1st Inversion TFR +3, +7 and +12
Base RFT 0, +7 and +15
Strings FTR +7, +15 and +24???? or +7, +12 and +15???
Plus the option of adding a seventh which I assume would be the same note regardless of the order
of the others but which octave?

Is the above correct?
Should I add or change anything?
Thanks in advance


Interesting idea! Just a couple of notes:

2. Since you seem to actually be talking about seventh chords and not triads, be aware that V is a dominant seventh, not a major seventh like I and IV (all are major triads, though). Dominant seventh uses 10 instead of 11 (insert Spinal Tap joke here :-).

Also, FWIW, you can often determine a useful chord to place on other roots, but it takes a certain amount of ingenuity. For instance, a chord built on 1 is probably diminshed if resolving up to 2, dominant seventh if resvolving down to 0. Actually, that rule - diminshed if resolving up by 1, dominant if resolving down by 1 - is useful for other scale degrees too, although diminshed chords resolving down by 1 are common on 3 and 8. The most common resolution for chords built on scale degrees other than those you have listed, though, is down by 7 (= up by 5). In that case, use dominant seventh if the target chord is minor and vice versa. And to really make the results seem more natural, consider making the chords on 4, 9, and 11 dominant if they are resolving down by 7 / up by 5 to minor chords. At least sometimes, for variety.

Maybe this is more than you want to deal with, but you did ask.

3. The chord you list is actually half-diminished, not fully diminished. Both types can happen on 11, and the half-diminished fits the scale better, but the fully diminshed may be more common, at least when resolving to 0. But dominant seventh is probably more common, as this chord is more likely to reaolve to a mimor chord on 4.

4. You are correct anout the seventh - it's the same regardless of inversion. I'm not sure, though, what "base" and
"strings" are supposed to indicate here. One of the opportunities for a little creativity in writing this algorithm would be for the program to figure out the most appropriate voicing based on creating the smoothes voice leading from the previous chord, as opposed to having the user select it from a limited palette. Because all sorts of possibilities exist - RTF, RFT, TFR, TRF, FRT, FTR just for triads, and that many more when including sevenths.

In reply to by Marc Sabatella

Thanks again Marc

1. My idea is to have a choice from the variuos triads and then an option of adding a seventh.
Re V being a dominant seventh. To be pedanic [if you ask a programmer to pass the sugar you
wont get the bowl] the sevenths [I to VII] are
+11, +10, +10, +11, +10, +10 & +10

2. RTFS is ok but is TFRS [for I] +3, +7, +11,+12 or +3, +7, +12, +23
i.e. is it TFSR or TFRS?

3. Given the root may move up an octave [or 2] should the whole chord be lowered an octave?
As an option?

4. My 3. on prev post - are you talking about the VIi only i.e. anoption to replace +10 by +11?

5. Dont know where I got Base and Strings from - will drop them.
Is RTF etc ok termanology?
Are these all 'inversions'?
Do I refere to them as 'chord forms' 'chord types' or ....?

6. Your comments about developing a chord from the previuos seems sensible.
Would this be per measure i.e. smooth after the first note?
Not sure if this can be put into an algorithm but willing to try [with help] _as a second version.

7 Will use RTF combinations you state. Each with an optional seventh.

8 Your FWIW comment on other roots seems worth it but Im afraid my understanding of
music lets me down. however if you are happy to persevere Im happy to provide the braun to
your brain.

9. FTR gives a span of +7, +15 and +24 surely this is too wide - is it +7, +12 and +15 but thats FRT!
And where does the seventh go?

BTW Have dropped the idea of copying the staff. Will offer suggestions in the plugin help.

I do really appreciate your time. Im keen on putting somethong back into the MuseScore
community. Im retired and programming is one of my hobies.

BTW Im away at the moment without internet on my laptop sp using my Kindle hence
typos and I cant send code. Back home end of next week.

In reply to by johnhenry

2. Notes may be placed in any octave - any order, any spacing. A voicing with all notes within the span of a single octave is called a "close position" voicing; anything else is "open", but both are common.

3. Choosing the best octave for each note is most properly done by considering voice leading - how each "voice" would move from chord to chord if we imagine the chords being sung a group of musicians. Top note connecting smoothly to top note, second to top note connecting smoothly to second to top note, etc.

4. I'm saying the the chord built on the seventh scale degree is most commonly a fully diminished seventh chord, even though that involves a note not in the key.

5. "RTF" et al is not common terminology. All that is common is the word "inversion", and it defines on the bottom note. Anything with a third on the bottom is "first inversion", regardless of the order and spacing of notes above. But see #2 above - antying with notes clustered within an octave is "close position", anything else is "open". That's about as far as terminology goes

6. That's the subject of entire college courses.

9. Who says what is too wide? Depends entirely on the instrumentation. What makes sense on piano might not on guitar; what makes sense when arranged for a string ensemble might not for a trumpet section, etc. And stop calling me Shirley :-)

Could I make a suggestion for a plug-in that would get you in the correct area and would certainly help me?

I've been posting some tunes for accordion to is one example. In accordion music there is a convention that the chords in the left hand are not fully spelled out; only the root note is indicated. The type of chord is indicated above the staff where necessary (I always put all of the chord names. It helps me as a guitarist).

The convention is also that root notes are indicated with their stem down, chords are indicated with stem up.

There are only four chord types available on the Stradella system, major, minor, dominant 7 and diminished. These chords are all created within a single octave. This means that some are in root position, some are in first and some in second inversion. You can get the full story here:…

The plug-in that I would like is one that works through the score completing the chords according to the above chart so I could hear the proper effect. It would be brilliant if the notes that aren't shown by the convention were also invisible.

I think this would be a useful plug-in from your point of view because the basic mechanism for working through a score would be much the same. Even the way chords are formed could remain because the unique advantage of the Stradella system is that voice-leading is more-or-less automatic. If you don't like it you can't do anything about it anyway!

Voice-leading is important to produce sensible harmony, and you would need to accomodate it in your plug-in for it to be really useful. This plug-in would certainly get you on the way.

I hope you like this idea.


In reply to by cwhysall

Thanks for your suggestion. As you will gather from the posts with Marc, I am somewhat limitted in my musical ability.
In the short term I will concentrate on suggestions, corrections, improvements to createchords but am happy to have a look at your requirement once this is over.
Perhaps you could look at it and then comment if its approach would be the starting point for another plugin.

In reply to by johnhenry

So, I'm facinated with your project.
I love tech
I love music theory
I love composing
I love being a NEWBIE on the Muse!

I teach beginning & intermediate piano to adult individuals & groups.
I'd love to work with you on your project.
I'd like to start you over a bit to fill in some of the gaps for both of us so we end up with the same knowledge base.
What do you think?

Lesson #1. Each key has the following: 1 Major Scale; 3 Minors Minor Scales; Many kinds of chords with many kinds of progressions (the first set of progressions to learn is called "The Circle of Fifths"); 2nd's, 3rd's, 4th's ... 7th's, 8ve... ; each chord in each scale could conceivably be composed of as many as 20 notes or only 2 all played on the same beat at the same time AND inverted & reconfigured to form a chord using the same notes but each in a different voice. AND THERE'S MORE!!!

I love to teach and Iove to learn! May we work together sharing our expertise's with each other? I love tech & there's SO MUCH I need to learn. Let me know!

Take care.

Lots of theory to install in this plugin..

but... It still comes down to the user to specify what he/she wants.

If you don't know how chords work this is also one area where it would be interesting to approach from a brand new angle.

Assuming the urser does not know what a minor/major/7th/augmented chord ect can sound like,... Why not also specify more human associations with each option as a sort of semi automated selection.


1) You plant your root note
2) fire up the plugin
3) select from

* Normal
* Sad
* Passing
* Extra
* Strange

So, with 5 basic options the plugin would decide how to achieve the described result. ??????

Normal = Major Chords
Sad = Minor Chords
Passing = Passing Chords
Extra = 7ths / 9ths
Strange = Augmented/Dissonant

ermm... or something like that.

In reply to by its_jon

Thanks a lot for your suggestion.
That does sound a sensible idea.
I'm just about to release an up date to createchords which has more flexiblitiy and a better user interface I hope.
When I do, could I ask you to look at it (and everyone else reading this) and comment please?
I have learnt a lot of theory doing this but would still need help to pursue your suggestion.

Do you still have an unanswered question? Please log in first to post your question.