Re: [tablatures] transposing tablature |
[ Thread Index |
Date Index
| More lilynet.net/tablatures Archives
]
On 1/7/10 7:47 AM, "Patrick Schmidt" <p.l.schmidt@xxxxxx> wrote:
>
>
> -------- Original-Nachricht --------
>> Datum: Wed, 6 Jan 2010 16:38:30 -0700
>> Von: Carl Sorensen <c_sorensen@xxxxxxx>
>> An: Patrick Schmidt <p.l.schmidt@xxxxxx>, "tablatures@xxxxxxxxxxx"
>> <tablatures@xxxxxxxxxxx>
>> Betreff: Re: [tablatures] transposing tablature
>
>>
>>
>>
>> On 1/6/10 3:55 PM, "Patrick Schmidt" <p.l.schmidt@xxxxxx> wrote:
>>
>>> 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 } }
>>>>>
>>>>>
>>> }
>>>
>>
>> As I see it, the problem is that you aren't telling LilyPond what you
>> want.
>> If you want to keep the notes on the same strings and just shift the
>> fretboard position, you should just specify the string for each note.
>>
>> version "2.13.10"
>>
>> music = {
>> <b\5 fis'\4 b\3>1
>> \set TabStaff.minimumFret = #2
>> <b\5 fis'\4 b\3>1
>> %\set TabStaff.minimumFret = #2
>> <b\5 fis'\4 b\3>1
>> \set TabStaff.minimumFret = #0
>> <c\5 e\4 g\3 c\2 e\1>1
>> }
>>
>> \score {
>> <<
>> \new Staff = "1" {
>> %\override StringNumber #'stencil = ##f
>> \override StringNumber #'transparent = ##t
>> \relative c' {\music }
>> }
>>
>> \new TabStaff = "Tab 1" <<
>> \relative c {\music }
>>>>
>>
>> \new Staff = "2" {
>> %\override StringNumber #'stencil = ##f
>> \override StringNumber #'transparent = ##t
>> \transpose c d {\relative c' {\music } }
>> }
>>
>> \new TabStaff = "Tab 2" <<
>> \transpose c d {\relative c {\music } }
>>>>
>>>>
>> }
>>
>>
>> Once you do that, everything works properly.
>>
>> I don't see a need for any new commands.
> Carl,
>
> Thanks for your solution! It does work properly at least for small scores
> and if you don't have to use it very often. On the other hand this means to do
> without the automatic string calculation even though this function is
> extremely helpful and saves a lot of work. This means that I have to assign an
> individual string number indication to each pitch before I can transpose a
> score. Afterwards I might have to remove/correct some string number
> indications in the original score to achieve a different playing position.. I'm
> trying to produce different editions from one source. My fictional command
> \move(Tab)Position (or maybe even better: \shift(Tab)Position) aims at keeping
> the automatic string calculation but 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. This is meant to work only with the
> \transpose-command. It is actually meant to be a tablature-transposing-command
> with which one could also alter a playing position of a single chord relative
> to the interval of transposition, like so: \shiftPosition -2 {<c e g c
> e>}resulting in a different chord shape (In this case (in combination with
> \transpose c d {}) it would be d major in first position (chord of four notes)
> instead of c major chord type in second position (chord of five notes)). This
> way one wouldn't have to alter the original score (the new command(s) in the
> source file would only have an effect on transposed scores).
>
> So are you still convinced that there is no need for this command? ;-)
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.
Instead, you want transposable chords.
We already have transposable chords, in the form of fret diagrams. 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?
Thanks,
Carl