Colored Noteheads

• Jun 27, 2014 - 22:28

I am a Musecore novice. I am writing a curriculum to teach 3rd Graders to play violin. I would like to have the color of the note correspond with the string it is played on i.e. all g-string notes would be yellow. Is there a way to do this?


I don't think anyone has written a plugin to do exactly that yet, but if you're a programmer, or know someone who is, it should be easy enough to modify the existing Color Notes plugin to do this instead of making each note a different a color as it currently does.

You can do this manually by holding down [Ctrl] and selecting each note for a particular string in turn then Right-clicking and changing the color to whatever you want.

Any Plugin would either be simple or horrendously complex. Simple would assume using the lowest position on the strings (since it's for beginners this ought to suffice) and complex would allow changing positions (which would likely not need a Plugin since advanced players wouldn't need colors on all the notes).

If I were to attempt a Plugin (which I'm not), I'd assign colors to the strings:

var E_String = new QColor(255, 0, 0);
var A_String = new QColor(255, 255, 0);
var D_String = new QColor(0, 255, 0)
var G_String = new QColor(0, 0, 255)

Then work out the range of pitches for a group of notes on each string and change the color accordingly based upon pitch. Incorporate basic error-checks for notes out of range (too low for instrument or too high for basic positions).

My violin expert is asleep so I can't ask her advice right now (and she has strict instructions not to invade Mummy and Daddy's bedroom on Sunday morning) but would I be right in assuming the following?:

Violin question:
G String - Notes G3 (open) thru C#4 (1st Position, 3rd finger)
D String - D (open) thru G#4 (1st position, 4th finger)
A String - A (open) thru D#5 (1st position, 4th finger)
E String - everything from E5 upwards (open, 1, 1, 2, 2, 3, 4, 4, etc.)

MuseScore question:
G3 is equivalent to MuseScore pitch 55?
G#3 56 etc.?

Thus the ranges, notes, colors could be:
G String :- pitches 55 thru 61 = notes G3 thru C#4 = Blue
D String :- pitches 62 thru 68 = notes D4 thru G#4 = Yellow
A String :- pitches 69 thru 75 = notes A4 thru D#5 = Green
E String :- pitches 76 and higher = notes E5 and higher = Purple

More Violin questions:
Option to allow (simple) enharmonics, maybe, such as G String, 1st position, 4th finger = D string, 1st position, open? How would a violinist want to handle this? - an option to keep it simple (always use the lower fingerings), allow preference for lower or higher fingerings, avoid open strings where possible or what?

Try this. My violin expert assures me that she is taught to use 4th finger of lower string in preference to an open string. She tells me that it is both easier and sounds better.

This colors in the notes. I don't intend playing about with it to make it any fancier than it is. There is a "Fiddle Fingers" Plugin (by lalov) that can be run in addition and which annotates the score with string names and finger positions but I note that it favours open strings so the two aren't completely in agreement.

In reply to by sammik

Check the current colornotes plugin (in the master branch), the function applyToNotesInSelection(func) can get shortened by quite a bit for MuseScore 3.6 and later (not sure exactly since when the method used there got supported. Edit: it is in MuseScore since 3.3.)
See also and the PR

And it also checks for note.dots before using note.dots.lenght, your plugin doesn't. Not sure whether that is really needed though?

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