Moving note symbols under frets and glyph limit

• Apr 6, 2018 - 10:31

Hello,
I'm trying to add a font to mscoreTab for Shamisen
The "number" option for the modern notation and if possible, the "letter" option for Nagauta notation
More details here: https://musescore.org/en/node/270063#comment-827947
(Actually the "rest" symbol is just a fret glyph)

There are only 2 major problems with my files actually
• For the nagauta notation: Glyph limit
For option "letter = 1", it seem that after "fret value = 16", it don't works anymore
All glyphs are modified to "?"
But this notation requires a huge amount of glyphs
(ex: .7 → 1 → #1 → 2 → #2 → ... → 7 → 1. → #1. → 2. → 7. → 1..)
Where 1 is C (do) as convention (so, for example, tuning is .7 #4 7)
Is there a solution to "unlock" the glyph limit?

• For both notations (the most major problem): glyph Y-offset
For all shamisen notations (modern and nagauta), the rhythm glyph is UNDER the fret number
Actually, we can adjust the Y-offset of ALL glyphs, but it's not variable
What I need to do is (in the idea, I don't know how to code unfortunately but I don't think it's complicated)

"If font = shamisen font then, (Make this adjustment happen only for "shamisen font", the others don't need it)
if the 3rd string is active (fret number on it),
then adjust the note symbol offset to make the glyph under the 3rd string fret number
if not→ if the 2nd string is active (fret number on it)
then adjust the note symbol offset to make the glyph under the 2nd string fret number
if not→ if the 1st string is active (fret number on it)
then adjust the note symbol offset to make the glyph under the 1st string fret number"

It should be like this because priority of strings is 1 < 2 < 3
(If there is a chord, string 2 and 3 active for example: then the glyph shoud be under the 3rd)

Also, it works like that for quarter note and shorter rhythms
For half note for example, the glyph isn't under the fret number but at it's right
Maybe it can be adjusted too, or (more simple), I add a glyph for the "half note" and it can be done like the "rest" note


Do you have any ideas of how it can be done?
I think it should be implemented in stafftype.cpp

Thanks in advance

Here in description:
1 - Real shamisen score (modern notation)
2 - Debug version score (modern notation)
3 - Audio output
4 - Real shamisen score (nagauta notation)
5 - Debug version score (nagauta notation) (? is what appears for fretvalue > 16)
6 - Audio output (you can find a real version on the web: 島の千歳)

Attachment Size
1.jpg 25.42 KB
1.2.jpg 99.58 KB
1.ogg 130.35 KB
2.jpg 38.28 KB
2.2.jpg 104.38 KB
2.ogg 276.9 KB

Comments

I try to do it but I don't know write c++
I succeed for the 1st point, now only the y-offset of glyphs is a problem

I think the solution should be "like" that
Stafftype.cpp, L918

if (durationfont = shamisen)
if (----- string 3 active----)
ypos += (------string 3 yoffset)
else if (----- string 2 active------)
ypos += (------string 2 yoffset)
else if (----- string 1 active------)
ypos += (--string 1yoffset--)

(ypos or ybb ?)
I don't know the correct arguments though, I try to search

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