Re: [tablatures] transposing tablature

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


-------- 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? ;-)

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/