Tablature question - how to determine if in a 5 staff line banjo tab or not

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Tablature question - how to determine if in a 5 staff line banjo tab or not

banjobits
I am a new to all this and have a question.

I am working on a bug in StaffType::fretString. I need to know if I am working in a 5 string banjo tablature staff and I'm not sure what the best way to make that test. Would number of staff lines == 5 do it or midi program == 105 or is there a preferred way??

Thanks for any help.
Reply | Threaded
Open this post in threaded view
|

Re: Tablature question - how to determine if in a 5 staff line banjo tab or not

lasconic
Administrator
Hi,

You are working on this one right https://musescore.org/en/node/102186
There is no way to know if a staff is for a banjo or not. Checking the number of staff lines or the midi program are not safe ways.
I believe you need to come up with a more global approach about this problem. Maybe it needs to be solved at the Strings definition level? 

I don't know much about fretted instrument. Are there any other instrument with the same construct? A string with less frets than others? 
I assume the problem is mainly while converting standard notation to tablature. Some people already requested to have a minimum fret for this (See for example https://musescore.org/en/node/35446). I understand it's a bit different, but could it be that a solution can cover both cases?

lasconic




2016-03-15 3:19 GMT+04:00 banjobits <[hidden email]>:
I am a new to all this and have a question.

I am working on a bug in StaffType::fretString. I need to know if I am
working in a 5 string banjo tablature staff and I'm not sure what the best
way to make that test. Would number of staff lines == 5 do it or midi
program == 105 or is there a preferred way??

Thanks for any help.



--
View this message in context: http://dev-list.musescore.org/Tablature-question-how-to-determine-if-in-a-5-staff-line-banjo-tab-or-not-tp7579658.html
Sent from the MuseScore Developer mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
_______________________________________________
Mscore-developer mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mscore-developer


------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
_______________________________________________
Mscore-developer mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mscore-developer
Reply | Threaded
Open this post in threaded view
|

Re: Tablature question - how to determine if in a 5 staff line banjo tab or not

banjobits
Yes, I am working on the problem you noted. I want to add a number of things to MuseScore specifically for banjo tablature so this problem seems like a good place to start.

To make things even more confusing, this fifth string also has it's own capo.

Guitar players sometimes only capo some of the strings, which is another example. See Andy Mckee's Rylynn on youtube.

So to cover every option I can think of, a MuseScore STRING needs it's own capo setting and starting fret. Both would be set to 0 in most cases. So, like you suggested, this problem may not be about determining if its a 5 string banjo, but rather configuring the strings properly at tab staff creation time/ or maybe 'select tuning' time.

This is a good bug to learn the MuseScore code base. If I figure something out I will pass it by you before coding anything.

Thanks for your help
Reply | Threaded
Open this post in threaded view
|

Re: Tablature question - how to determine if in a 5 staff line banjo tab or not

mtherieau
fwiw, I would say that Change String Tuning is the appropriate way to handle a partial or non-standard capo (e.g. a capo that frets only some strings, or one that spans differing frets).  Each string has an "open pitch" which would correspond to the unfingered sound (either fretted by the capo or open to the nut).  I believe this scheme is general enough to handle all possible types of non-standard capos.  All of the "open" pitches would display as fret zero in tab.

But it doesn't handle banjo's fifth string, if the fifth-string's "open" fret number is "5".  However, if the string data editor supported a custom fret number setting for "open" then I think banjo's fifth-string needs would be satisfied.  I think it would also handle cases where the fifth-string is spiked/capo'd.  I'm not a banjo tab expert --I wonder: if the fifth-string were spiked to fret 7, then what fret number would you expect the tab to show for "open" -- would it be 5 or 7?

best regards,
markt


On Wed, Mar 16, 2016 at 9:52 AM, banjobits <[hidden email]> wrote:
Yes, I am working on the problem you noted. I want to add a number of things
to MuseScore specifically for banjo tablature so this problem seems like a
good place to start.

To make things even more confusing, this fifth string also has it's own
capo.

Guitar players sometimes only capo some of the strings, which is another
example. See Andy Mckee's Rylynn on youtube.

So to cover every option I can think of, a MuseScore STRING needs it's own
capo setting and starting fret. Both would be set to 0 in most cases. So,
like you suggested, this problem may not be about determining if its a 5
string banjo, but rather configuring the strings properly at tab staff
creation time/ or maybe 'select tuning' time.

This is a good bug to learn the MuseScore code base. If I figure something
out I will pass it by you before coding anything.

Thanks for your help



--
View this message in context: http://dev-list.musescore.org/Tablature-question-how-to-determine-if-in-a-5-staff-line-banjo-tab-or-not-tp7579658p7579687.html
Sent from the MuseScore Developer mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
_______________________________________________
Mscore-developer mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mscore-developer


------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
_______________________________________________
Mscore-developer mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mscore-developer
Reply | Threaded
Open this post in threaded view
|

Re: Tablature question - how to determine if in a 5 staff line banjo tab or not

Maurizio M. Gavioli
In reply to this post by banjobits
FWIW, as the one who coded most of the tab feature, I second lasconic in his opposition to anything tied to a specific instrument; for instance, the piano Ped. feature is there, but it is not specifically tied to a staff being a piano staff, for it being used or usable (the user is ultimately responsible for using each feature when it musically makes sense!).

I am not very familiar with modern plucked string usages (my background is more on Renaissance and early Baroque instruments), but I am not immediately convinced that the capo concept applies to this case, even a "capo independent for each string" concept.

If I am not mistaken, capo ultimately works in the other direction: with a capo on the, say, 3rd fret, the fourth fret would be numbered 1.

I suspect that having an additional parameter for each string, holding a numerical offset to the resulting fret value, might be one way to go, but I have not given a lot of thinking to this. This would affect how a computed fret value is turned into a textual representation.

I also suspect that:

1) this feature should be incompatible (non-available or automatically set to 0) with the "open" flag

2) it should be separate from a (future) capo feature, but interact with it, as the latter may override the former. Examples: As far as I understand the 5-string banjo case, normally there is a delta of +5 between the first string and the other; assuming a capo on the 1st, 2nd, or 3rd fret, this delta would be reduced to +4, +3, +2 and so on. But from the 5th fret on (capo on the 5th, 6th, ..., fret), the progression does not continue and the delta remains fixed at 0.
___________________________

Another, different, view could be to introduce the concept of "minimum available fret"; in this view, the first string of the 5-string banjo would be tuned on 4th lower than 'G' (at least internally, the value actually displayed to the user in the string table might be adjusted) and frets from 0 to 4 simply non-existent, not usable. This would affect which note can actually be assigned to which string (and, in fact, in this banjo case, it is not possible to place, say, an F# at the 4th fret of the first string: that fret does not exist!).
___________________________

The points IMHO most important to keep in mind while designing this feature (and to choose between these two views above or any other one might think of) are the usual: performance and code maintainability.

Performance: the validity of the cached fret value and its textual representation are computed each time a layout takes place (as a rule of thumb, each time something changes somewhere in the score); the fret value itself is re-computed less frequently, only if the cached value, once checked, turns out to be no longer valid. But please note: if the note belongs to a chord, the invalidity of a single note triggers the recomputing of all the fret values of the chord.

So, all these routines should be as streamlined as possible, with a little preference for the two former steps (validity check and string).

Maintainability: this has to do with proper commenting, meaningful symbols names and so on, as usual. But also with keeping as much as possible with coding patterns and paradigms already used in the rest of the code base (the whole of it, not only the tab feature), to reduce the numbers of "minds" and habits required to understand the code.

Thanks,

M.