[tablatures] transposing tablature |
[ Thread Index |
Date Index
| More lilynet.net/tablatures Archives
]
Hi all (happy new year btw),
I often use the \transpose-function in combination with TabStaffs. Here is an example of some of the problems I encounter in this context:
\version "2.13.10"
music = {
<b fis' b\3>1
\set TabStaff.minimumFret = #2
<b fis' b\3>1
%\set TabStaff.minimumFret = #2
<b fis' b>1
\set TabStaff.minimumFret = #0
<c e g c e>1
}
\score {
<<
\new Staff = "1" <<
\relative c' {\music }
>>
\new TabStaff = "Tab 1" <<
\relative c {\music }
>>
\new Staff = "2" <<
\transpose c d {\relative c' {\music } }
>>
\new TabStaff = "Tab 2" <<
\transpose c d {\relative c {\music } }
>>
>>
}
The first two systems show the chords the way I want them to look like. The second two systems show the results of the transposition. Some fret numbers get lost in transposition. Well, I know the reason: By default pitches are assigned to the lowest playing position on the fret-board. This behavior is perfect as long as you stay in fixed positions and don't change key. But as soon as you wanted to transpose your musical expression *and* move the position of the chords up or down the fret board you would have to alter the content of the musical expression for each and every transposition – thereby destroying your original.
This could be solved by implementing (at most) two new commands which should only work in the context of transposing tablature:
\keepPosition and \movePosition
Both commands could be used in a musical expression with or without minimumFret. In combination with e.g. \transpose c d {} \movePosition would automatically move the playing position / chord shape up two frets (in this case). \keepPosition could be used to switch off \movePosition and to try and find the pitches in a transposed TabStaff without moving position (which is hard if not impossible if I'm not mistaken). \keepPosition might not even be necessary if one could use \once\movePosition, e.g.:
music = {
\movePosition
<c e g c e>1
}
\score {
<<
\new TabStaff = "Tab 1" <<
\transpose c d {\relative c { \music }
>>
>>
}
So what do you think of this idea? Would it be useful to you? Is it hard to implement? Could I even do it myself? Where to start?
Thanks for any hint!
patrick
--
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01