Re: [tablatures] transposing tablature

[ Thread Index | Date Index | More lilynet.net/tablatures Archives ]




On 1/8/10 12:05 PM, "Patrick Schmidt" <p.l.schmidt@xxxxxx> wrote:

> -------- Original-Nachricht --------
>> Datum: Thu, 7 Jan 2010 15:30:16 -0700
>> Von: Carl Sorensen <c_sorensen@xxxxxxx>
>> An: Patrick Schmidt <p.l.schmidt@xxxxxx>, "tablatures@xxxxxxxxxxx"
>> <tablatures@xxxxxxxxxxx>
>> Betreff: Re: [tablatures] transposing tablature
> 
> 
>> 
>> It seems to me like what you want is more than just a change in the
>> minimum
>> fret, since you want to switch from a 5-note chord to a 4-note chord in
>> this
>> particular instance.
> Well this was just a minor aspect of my idea. I'm sorry for the confusion.. I
> mixed up two separate ideas. I'll try to free them from entanglement (and
> restrict myself to one idea):
> 
>> Instead, you want transposable chords.
> First of all I propose to have transposable tablature because in my opinion
> this function is helpful but does not exist, yet. Let me demonstrate the
> problem:
> 
> What happens in tablature when you transpose a 5-note c major common chord in
> first position to D major?
> 
> \version "2.13.10"
> music = { <c e g c e>1 }
> \score {
>         << 
>           \new Staff = "1" <<
>           \transpose c d {\relative c' {\music }}
>>>  
> 
>           \new TabStaff = "Tab 1" <<
>           \transpose c d {\relative c {\music }}
>>>          
>>> 
> }
> 
> You get an inverted 4-note d major (sixth) chord in first position. The root
> of the former c major chord got lost in transposition by default because the
> root of the resulting d major chord would be on the fifth fret of the fifth
> string. LilyPond tries to find the corresponding pitches in the first four
> frets of the guitar because the default value of minimumFret is zero. In my
> opinion this behaviour is wrong because not all the pitches of the new chord
> can be found in first position.

This is a bug.  Minimum fret should not default to zero.  It should default
to unset, and the code should be able to find the correct chord.

I had missed this problem before in your code.  I apologize for not
understanding it.

I think I can fix this bug.  I'll try to get to it in the next couple of
hours.


> By default there's a discrepancy between the
> transposed traditional notation and tablature because the playing position is
> not transposed. 

It should be able to be transposed.  I'll try to make it work properly, so
you don't need to adjust the minimum fret.

> In the example above it is easy to adjust the minimum fret
> *only* in TabStaff context (leaving the \music-variable untouched).
> 
> \new TabStaff = "Tab 1"
>         <<
>           \transpose c d {
>             \relative c {
>               \set TabStaff.minimumFret = #2
>               \music
>             }
>           }
>>> 
> 
> But what happens if somebody uses lots of \set TabStaff.minimumFret =#x
> in the \music-variable? Here is a fragment of a larger score:
> 
> \version "2.13.10"
> global ={
>         \clef "G_8"
>         \time 2/4
>         \key a \minor
> }
> music = {
>         % 1
>         \set TabStaff.minimumFret = #4
>         <d d'>2\p~( |
>         % 2
>         <d d'>4\<~ <d d'>8
>         <c c'>8 |
>         % 3
>         <b b'>2)~|
>         % 4
>         <b b'>4
>         \set TabStaff.minimumFret = #2
>         <a a'>4\!(
>         % 5
>         \set TabStaff.minimumFret = #7
>         <d d'>2\mf~
>         % 6
>         \times 2/3 { <d d'>8\< <e e'> <d d'> }
>         \set TabStaff.minimumFret = #4
>         \times 2/3 { <c c'> <b b'> <c c'>\! } |
>         % 7
>         <b b'>2)~ |
>         % 8
>         <b b'>4\>
>         \set TabStaff.minimumFret = #2
>         <a a'>\!|
> }
> 
> \score {
>         << 
>           \new Staff = "1" <<
>             \relative c' {
>               \global
>               \music
>             }
>>> 
> 
>           \new TabStaff = "Tab 1" <<
>             \relative c' {
>                 \global
>               \music }
>>> 
>>> 
> }
> 
> \score {
>               <<
>           \new Staff = "2" <<
>             \transpose a g {
>               \relative c' {
>                 \global
>                 \music
>               }
>             }
>>> 
> 
>           \new TabStaff = "Tab 2" <<
>             \transpose a g {
>               \relative c' {
>                 \global
>                 \music
>               }
>             }
>>> 
>>> 
> }
> 
> The octaves were meant to be played on the first and third string in both
> keys. 

Here you say that the octaves are meant to be played on the first and third
string, so I still think that the proper thing to do here is to set the
first and third string (you're not really using the automatic fret position
finder here; you want to override it).

> In this case one would have to alter quite a few things in the original
> score even though everything was fine in the "untransposed" version and
> everything would be fine in the transposed version of this example in g minor
> if the playing positions were adjusted automatically. This is what I mean(t)
> with transposing tablature:
> 
> "to implicitly raise or lower the value of minimumFret by default by the
> interval between the two pitches 'frompitch' and 'topitch' of the
> \transpose-command."
> 
> Of course there should also be the possibility to *only* alter the transposed
> version in case one prefers a different playing position. (I want to produce
> different editions from one source so I would prefer not to alter the original
> version too much). That's why I suggested a new command (e.g.
> \shift(Playing)Position ±x) which is supposed to be included in the original
> source code but was only meant to work in combination with the
> \transpose-command. The "untransposed" version would not be effected.

In my opinion, \shiftPosition should be unnecessary, as if we want the
transpose to shift the position, we should just identify the strings.

> 
> Does that make sense?
> 
>> 
>> We already have transposable chords, in the form of fret diagrams.
> I know and I use them quite a lot. They are a great help.
>>  One of
>> the to-do's on my list for a while (that I haven't got around to since
>> I've
>> been futzing with auto-beaming) is to turn fret diagrams into notes.  Then
>> you'd have a set of chords that you wanted to use in the music.  You'd
>> write
>> the music as a set of chords, and you could get the notes for the regular
>> staff and the tabStaff from the fret diagrams.
>> 
>> I envision it working this way:
>> 
>> myChords = {c1 a g c g:7 c}
>> 
>> transposedChords = \transpose c d {\myChords}
>> 
>> <<
>>   \new Staff {
>>     \getNotes \transposedChords
>>   }
>>   \new TabStaff {
>>     \getNotes \transposedChords
>>   }
>>>> 
>> 
>> It would seem to me that that is a better approach to the problem that
>> you've identified.
>> 
>> Does this make any sense?
> Yes of course this makes sense but the subject is slightly different. If I get
> it right the target group for your function are guitarists who know how to
> play chords but don't know exactly how to jot them down or they want a quick
> and effective way of transcribing them. Sounds promising.
> 
> Thank you for "listening",
> patrick
>> 
>> Thanks,
>> 
>> Carl
>> 
>> 
> 
> --
> GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
> Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/