Re: tablature.ly - please test and comment

2009-06-19 Thread Grammostola Rosea

David Stocker wrote:
I've got some things typed out, but I still need to write explanations 
for the placement and display of objects, and suggestions for the 
program behavior. As soon as I have those written out, I'll post the 
first batch. I'll try to get it done today or tomorrow.


David

Maybe this weekend? ;)

Regards,

\r



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-06-15 Thread Grammostola Rosea

David Stocker wrote:
Thanks, Marc and Carl for making this happen. I'll post some editorial 
suggestions here for how bends should look soon (next week, really! 
I've had occasion to work on it this week)


David

Hi,

Some progress here?


Regards,

\r



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-06-15 Thread David Stocker
I've got some things typed out, but I still need to write explanations 
for the placement and display of objects, and suggestions for the 
program behavior. As soon as I have those written out, I'll post the 
first batch. I'll try to get it done today or tomorrow.


David

Grammostola Rosea wrote:

David Stocker wrote:
Thanks, Marc and Carl for making this happen. I'll post some 
editorial suggestions here for how bends should look soon (next week, 
really! I've had occasion to work on it this week)


David

Hi,

Some progress here?


Regards,

\r






___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-29 Thread Marc Hohl

David Stocker schrieb:

If I may chime in...

This may just be a matter of editorial taste, but would it be possible 
to make it so the 'X' on in the Tab staff is not the musical glyph 
from Feta, but rather the character 'capital X' from the same font set 
being used for tab numbers? For example, instead of #'glyph-name 
#2cross, use whatever command would call the capital X from 
whichever font tab numbers are set to?


I believe that this looks better on the page than mixing music glyphs 
and text glyphs in the tab staff, particularly where tab numbers and 
muted strings are part of the same chord.

Hm, in my opinion, this looks not very convincing. I defined

#(define (xx-tab-format str context event)
 (make-whiteout-markup
   (make-vcenter-markup
 (markup X

so the X matches the font and font-size of the numbers.
I have attached an example.

Marc


inline: xtest.png___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-29 Thread Marc Hohl

Carl D. Sorensen schrieb:

[...]

Here's one way to do it:

deadNote =
#(define-music-function (parser location note) (ly:music?)
(set! (ly:music-property note 'tweaks)
  (acons 'stencil ly:note-head::print
   (acons 'glyph-name 2cross
(acons 'style 'special (ly:music-property note 'tweaks)
note)

{
  f\4 \deadNote f'\1
}

  

There is some drawback/difference: the crosses are drawn without
whiteout, so they look different. Is there a way to change this?
  
Marc, feel free to add this to tablature.ly if you want to.
  

How should we call this? It should be clear that
\deadNotes works as expected, and the new function is meant
to be used inside chord constructs  only.
\chordNoteDeadNote sounds a bit strange ...

The matching case for \palmMute, namely
\chordNotePalmMute seems to be ok for me.

Or just simply use \chordDeadNote /  \chordPalmMute ?

Marc

inline: deadnotes.png___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-29 Thread Grammostola Rosea


Thanks, Marc and Carl for making this happen. I'll post some editorial 
suggestions here for how bends should look soon (next week, really! 
I've had occasion to work on it this week)




Great! Next week, nice.

Take it easy ;)


\r



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-29 Thread Carl D. Sorensen



On 5/29/09 2:05 AM, Marc Hohl m...@hohlart.de wrote:

 Carl D. Sorensen schrieb:
 [...]
 
 Here's one way to do it:
 
 deadNote =
 #(define-music-function (parser location note) (ly:music?)
 (set! (ly:music-property note 'tweaks)
   (acons 'stencil ly:note-head::print
(acons 'glyph-name 2cross
 (acons 'style 'special (ly:music-property note 'tweaks)
 note)
 
 {
   f\4 \deadNote f'\1
 }
 
  
 There is some drawback/difference: the crosses are drawn without
 whiteout, so they look different. Is there a way to change this?

Yes.  Change the stencil so that it is a composite stencil.

  
 Marc, feel free to add this to tablature.ly if you want to.
  
 How should we call this? It should be clear that
 \deadNotes works as expected, and the new function is meant
 to be used inside chord constructs  only.
 \chordNoteDeadNote sounds a bit strange ...

I would recommend \deadNote, since it only applies to the next note.
 
 The matching case for \palmMute, namely
 \chordNotePalmMute seems to be ok for me.


I haven't reviewed the code carefully, but I think that \palmMute should
apply only to the next note, and \palmMuteOn should change all notes to palm
mute notes, or \palmMuteNotes could apply to a whole music expression.
 
 Or just simply use \chordDeadNote /  \chordPalmMute ?

I don't like the \chord* notation because they aren't limited to use in
chords.  They will work for any single note, won't they?

Thanks,

Carl



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-29 Thread Carl D. Sorensen



On 5/29/09 1:56 AM, Marc Hohl m...@hohlart.de wrote:

 David Stocker schrieb:
 If I may chime in...
 
 This may just be a matter of editorial taste, but would it be possible
 to make it so the 'X' on in the Tab staff is not the musical glyph
 from Feta, but rather the character 'capital X' from the same font set
 being used for tab numbers? For example, instead of #'glyph-name
 #2cross, use whatever command would call the capital X from
 whichever font tab numbers are set to?
 
 I believe that this looks better on the page than mixing music glyphs
 and text glyphs in the tab staff, particularly where tab numbers and
 muted strings are part of the same chord.
 Hm, in my opinion, this looks not very convincing. I defined
 
 #(define (xx-tab-format str context event)
   (make-whiteout-markup
 (make-vcenter-markup
   (markup X
 
 so the X matches the font and font-size of the numbers.
 I have attached an example.

Have you tried a sans-serif font for both the numbers and the X?

Carl



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-29 Thread Marc Hohl

Carl D. Sorensen schrieb:


On 5/29/09 1:56 AM, Marc Hohl m...@hohlart.de wrote:

  

David Stocker schrieb:


If I may chime in...

This may just be a matter of editorial taste, but would it be possible
to make it so the 'X' on in the Tab staff is not the musical glyph
from Feta, but rather the character 'capital X' from the same font set
being used for tab numbers? For example, instead of #'glyph-name
#2cross, use whatever command would call the capital X from
whichever font tab numbers are set to?

I believe that this looks better on the page than mixing music glyphs
and text glyphs in the tab staff, particularly where tab numbers and
muted strings are part of the same chord.
  

Hm, in my opinion, this looks not very convincing. I defined

#(define (xx-tab-format str context event)
  (make-whiteout-markup
(make-vcenter-markup
  (markup X

so the X matches the font and font-size of the numbers.
I have attached an example.



Have you tried a sans-serif font for both the numbers and the X?
  
Not yet. Personally, I don't like the idea of using a letter instead of 
a cross,

but I can give it a try.

Marc

Carl


  




___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-29 Thread Marc Hohl

Carl D. Sorensen schrieb:


On 5/29/09 2:05 AM, Marc Hohl m...@hohlart.de wrote:

  

Carl D. Sorensen schrieb:


[...]

Here's one way to do it:

deadNote =
#(define-music-function (parser location note) (ly:music?)
(set! (ly:music-property note 'tweaks)
  (acons 'stencil ly:note-head::print
   (acons 'glyph-name 2cross
(acons 'style 'special (ly:music-property note 'tweaks)
note)

{
  f\4 \deadNote f'\1
}

 
  

There is some drawback/difference: the crosses are drawn without
whiteout, so they look different. Is there a way to change this?



Yes.  Change the stencil so that it is a composite stencil.
  

But how can I find out whether the tweak is called within a normal or a
tab staff? Within a normal staff, a whiteout should surely be avoided ...
  
 
Marc, feel free to add this to tablature.ly if you want to.
 
  

How should we call this? It should be clear that
\deadNotes works as expected, and the new function is meant
to be used inside chord constructs  only.
\chordNoteDeadNote sounds a bit strange ...



I would recommend \deadNote, since it only applies to the next note.
  

The matching case for \palmMute, namely
\chordNotePalmMute seems to be ok for me.




I haven't reviewed the code carefully, but I think that \palmMute should
apply only to the next note, and \palmMuteOn should change all notes to palm
mute notes, or \palmMuteNotes could apply to a whole music expression.
  

Yes, that's how it works now (you can use \palmMute { ... } to treat
several notes at once, or \palmMuteOn ... \palmMuteOff).
 
  

Or just simply use \chordDeadNote /  \chordPalmMute ?



I don't like the \chord* notation because they aren't limited to use in
chords.  They will work for any single note, won't they?
  

No, the tweaks will work only in chord constructs
as far as I know, so I should have a pair of functions
for each feature, i.e.

c4 d \palmMute e f

 c \chordPalmMute e g 4

c4 d \deadNotes e f

 c \chordDeadNotes e g 4


Marc




___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-29 Thread Carl D. Sorensen



On 5/29/09 9:20 AM, Marc Hohl m...@hohlart.de wrote:

 Carl D. Sorensen schrieb:
 
 On 5/29/09 2:05 AM, Marc Hohl m...@hohlart.de wrote:
 
  
 Carl D. Sorensen schrieb:

 [...]
  
 There is some drawback/difference: the crosses are drawn without
 whiteout, so they look different. Is there a way to change this?

 
 Yes.  Change the stencil so that it is a composite stencil.
  
 But how can I find out whether the tweak is called within a normal or a
 tab staff? Within a normal staff, a whiteout should surely be avoided ...

I think you have to do this within the callback, where the context is
available.  Once you have a context, you can see if it's a Voice context or
a TabVoice context.  I'm sure Neil can help with this better than I can.
But if you do a git grep for context, you'll see lots of examples of how to
get information about contexts

  
 
 Marc, feel free to add this to tablature.ly if you want to.
 
  
 How should we call this? It should be clear that
 \deadNotes works as expected, and the new function is meant
 to be used inside chord constructs  only.
 \chordNoteDeadNote sounds a bit strange ...

 
 I would recommend \deadNote, since it only applies to the next note.
  
 The matching case for \palmMute, namely
 \chordNotePalmMute seems to be ok for me.
 

 
 I haven't reviewed the code carefully, but I think that \palmMute should
 apply only to the next note, and \palmMuteOn should change all notes to palm
 mute notes, or \palmMuteNotes could apply to a whole music expression.
  
 Yes, that's how it works now (you can use \palmMute { ... } to treat
 several notes at once, or \palmMuteOn ... \palmMuteOff).
 
  
 Or just simply use \chordDeadNote /  \chordPalmMute ?

 
 I don't like the \chord* notation because they aren't limited to use in
 chords.  They will work for any single note, won't they?
  
 No, the tweaks will work only in chord constructs
 as far as I know, so I should have a pair of functions
 for each feature, i.e.
 
 c4 d \palmMute e f
 
  c \chordPalmMute e g 4
 
 c4 d \deadNotes e f
 
  c \chordDeadNotes e g 4
 

Oh, I wasn't expecting that the new function wouldn't work outside of chord
constructs.

How about using the same function both inside and outside of the chord
constructs, and just including a check to see if the argument is a
NoteEvent.  If it is, use the \tweak method, and if it's not, use the
existing method?

I haven't tried this out, but I think it could be made to work, and if it
could, then it would greatly simplify things for the users.

HTH,

Carl



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-28 Thread Marc Hohl

Carl D. Sorensen schrieb:

[...]

I think it's better to have the duplication and the ability to switch
between \tabNumbersOnly and \tabFullNotation, than to avoid the duplication,
and have \tabFullNotation be a non-undoable setting.
  
As you can see, \tabFullNotation works only locally when included in a 
score:


\version 2.13.0
\include tablature.ly

test = \relative c { c4 d e f g a b c }

\score { \new TabStaff { \clef tab \test } }

\score { \new TabStaff { \clef tab \tabFullNotation \test } }

\score { \new TabStaff { \clef tab \test } }

So according to Neil's proposals, I got rid of the \tabNumbersOnly for
sake of clarity.

Marc


Thanks,

Carl


  




___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-28 Thread Carl D. Sorensen



On 5/28/09 1:21 AM, Marc Hohl m...@hohlart.de wrote:

 Carl D. Sorensen schrieb:
 [...]
 
 I think it's better to have the duplication and the ability to switch
 between \tabNumbersOnly and \tabFullNotation, than to avoid the duplication,
 and have \tabFullNotation be a non-undoable setting.
  
 As you can see, \tabFullNotation works only locally when included in a
 score:
 
 \version 2.13.0
 \include tablature.ly
 
 test = \relative c { c4 d e f g a b c }
 
 \score { \new TabStaff { \clef tab \test } }
 
 \score { \new TabStaff { \clef tab \tabFullNotation \test } }
 
 \score { \new TabStaff { \clef tab \test } }
 
 So according to Neil's proposals, I got rid of the \tabNumbersOnly for
 sake of clarity.
 

OK, I guess.  I still don't like having a command that is not undoable.  I
can't think of a reasonable  application where this would cause a problem,
but LilyPond users regularly try things that I don't consider reasonable.

I guess that we can deal with the problem later if it ever shows up.

I'll publish the patch to rietveld and obtain comments.

Thanks,

Carl



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-28 Thread Julian
 But still not within the tablature staff 
 At the moment, I don't know how to manage this.

I found it,


   % Dead Note 
   \tweak #'stencil #ly:note-head::print
   \tweak #'glyph-name #2cross
   \tweak #'style #'special
   f'\1 
   % End of Dead Note 
   f\4
4

Dead note is applied only to f'\1 as we expect, and X is displayed on both,
staff and tabStaff.

Now i don't have idea how to make it in a lilypond function :) to use
\chordNoteDead instead of add all tweaks lines...
however it don't matters, now we know that it is possible to show X in tab too
by notes instead of chord.

Thanks for your patience.



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-28 Thread Marc Hohl

Julian schrieb:
But still not within the tablature staff 
At the moment, I don't know how to manage this.



I found it,


   % Dead Note 
   \tweak #'stencil #ly:note-head::print

   \tweak #'glyph-name #2cross
   \tweak #'style #'special
   f'\1 
   % End of Dead Note 
   f\4
  

4



  

Wow, great!


Dead note is applied only to f'\1 as we expect, and X is displayed on both,
staff and tabStaff.

Now i don't have idea how to make it in a lilypond function :) to use
\chordNoteDead instead of add all tweaks lines...
  

Try

chordNoteDeadNote =
#(define-music-function (parser location note) (ly:music?)
 (set! (ly:music-property note 'tweaks)
   (acons 'stencil ly:note-head::print
(acons 'glyph-name 2cross
 (acons 'style 'special
  (ly:music-property note 'tweaks)
 note)

it works exactly as your tweaks, within normal and tab staff.

test = \relative c {
 a-0 e'-2 a-3 c-1 e-0 8
 a \chordNoteDeadNote e'  \chordNoteDeadNote a  \chordNoteDeadNote 
c e 

 a e' a c e 
 a \chordNoteDeadNote e' \chordNoteDeadNote a \chordNoteDeadNote c e 
 a e' a c e
 a \chordNoteDeadNote e' \chordNoteDeadNote a \chordNoteDeadNote c e 
 a e' a c e
 a \chordNoteDeadNote e' \chordNoteDeadNote a \chordNoteDeadNote c e 
 a e' a  c  e 1
  }

\score {
   \new Staff{ \clef G_8 \test }
 \new TabStaff {\clef moderntab \test }
 
}

I am not sure about the name - I think it should represent the fact that 
these functions

are to be used inside a chord construct  ... .

Greetings

Marc


however it don't matters, now we know that it is possible to show X in tab too
by notes instead of chord.

Thanks for your patience.



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user

  




___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-28 Thread Julian
Great man!

Thanks for your help



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-28 Thread Carl D. Sorensen



On 5/28/09 7:22 AM, Julian jul...@casadesus.com.ar wrote:

 But still not within the tablature staff
 At the moment, I don't know how to manage this.
 
 I found it,
 
 
% Dead Note
\tweak #'stencil #ly:note-head::print
\tweak #'glyph-name #2cross
\tweak #'style #'special
f'\1
% End of Dead Note
f\4
 4
 
 Dead note is applied only to f'\1 as we expect, and X is displayed on
 both,
 staff and tabStaff.
 
 Now i don't have idea how to make it in a lilypond function :) to use
 \chordNoteDead instead of add all tweaks lines...
 however it don't matters, now we know that it is possible to show X in tab too
 by notes instead of chord.


Here's one way to do it:

deadNote =
#(define-music-function (parser location note) (ly:music?)
(set! (ly:music-property note 'tweaks)
  (acons 'stencil ly:note-head::print
   (acons 'glyph-name 2cross
(acons 'style 'special (ly:music-property note 'tweaks)
note)

{
  f\4 \deadNote f'\1
}


Marc, feel free to add this to tablature.ly if you want to.


HTH,

Carl




 
 Thanks for your patience.
 
 
 
 



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-28 Thread David Stocker

If I may chime in...

This may just be a matter of editorial taste, but would it be possible 
to make it so the 'X' on in the Tab staff is not the musical glyph from 
Feta, but rather the character 'capital X' from the same font set being 
used for tab numbers? For example, instead of #'glyph-name #2cross, 
use whatever command would call the capital X from whichever font tab 
numbers are set to?


I believe that this looks better on the page than mixing music glyphs 
and text glyphs in the tab staff, particularly where tab numbers and 
muted strings are part of the same chord.


In the industry, most houses are currently using Helvetica Condensed 
Bold or some derivative (which, incidentally, matches better with the 
'modern' tab clef) for tab numbers, but I've seen older copy done with a 
Roman font in the tab staff (and a fancier, more rustic looking tab clef).


Thanks, Marc and Carl for making this happen. I'll post some editorial 
suggestions here for how bends should look soon (next week, really! I've 
had occasion to work on it this week)


David

Carl D. Sorensen wrote:


On 5/28/09 7:22 AM, Julian jul...@casadesus.com.ar wrote:

  

But still not within the tablature staff
At the moment, I don't know how to manage this.
  

I found it,


   % Dead Note
   \tweak #'stencil #ly:note-head::print
   \tweak #'glyph-name #2cross
   \tweak #'style #'special
   f'\1
   % End of Dead Note
   f\4


4
  

Dead note is applied only to f'\1 as we expect, and X is displayed on
both,
staff and tabStaff.

Now i don't have idea how to make it in a lilypond function :) to use
\chordNoteDead instead of add all tweaks lines...
however it don't matters, now we know that it is possible to show X in tab too
by notes instead of chord.




Here's one way to do it:

deadNote =
#(define-music-function (parser location note) (ly:music?)
(set! (ly:music-property note 'tweaks)
  (acons 'stencil ly:note-head::print
   (acons 'glyph-name 2cross
(acons 'style 'special (ly:music-property note 'tweaks)
note)

{
  f\4 \deadNote f'\1
}


Marc, feel free to add this to tablature.ly if you want to.


HTH,

Carl




  

Thanks for your patience.









___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


  



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-28 Thread Julian
 Here's one way to do it:
 
 deadNote =
 #(define-music-function (parser location note) (ly:music?)
 (set! (ly:music-property note 'tweaks)
   (acons 'stencil ly:note-head::print
(acons 'glyph-name 2cross
 (acons 'style 'special (ly:music-property note 'tweaks)
 note)

Yes, Marc already replied me ( with exactly same function ) some hours ago

Thanks anyway

Julian



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-28 Thread Carl D. Sorensen



On 5/28/09 6:28 PM, David Stocker dstoc...@thenotesetter.com wrote:

 If I may chime in...
 
 This may just be a matter of editorial taste, but would it be possible
 to make it so the 'X' on in the Tab staff is not the musical glyph from
 Feta, but rather the character 'capital X' from the same font set being
 used for tab numbers? For example, instead of #'glyph-name #2cross,
 use whatever command would call the capital X from whichever font tab
 numbers are set to?

Getting an X from the number font is not hard.  The only challenge would
come in setting the cross notehead for the Staff context, and the number
notehead for the TabStaff context.  But this shouldn't be too hard to do, I
think.  Marc is certainly good enough at programming to make it happen  now,
I'm sure.

Carl



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-27 Thread Marc Hohl

Julian schrieb:

I think you can make this work with parallel music, instead of chords.

 c, \deadNotes{ c ]

HTH,

Carl




I was looking about this. at first it seems to be a good solution
but then i could see that it give some problems managing voices.
it also displays some warning messages:
ignoring too many clashing note columns

if we could tell lilypond that all notes inside   are from
\voiceOne or \voiceTwo it could be definitly a perfect solution..
because we could manage beats by string
something like:
--
% measure 1
 
\voiceOne

%string 1 beats
{ e'4\1 e'4\1 e'4\1 e'4\1 }
%string 2 beats
{ b4\2  b4\2  b4\2  b4\2  }
%string 3 beats
{ g4\3  g4\3  g4\3  g4\3  }
%string 4 beats
{ d4\4  d4\4  d4\4  d4\4  }
%string 5 beats
{ a,4\5 a,4\5 a,4\5 a,4\5 }
%string 6 beats
{ e,4\6 e,4\6 e,4\6 e,4\6 }
  
--


It solves the slide, palm mute, and dead problem.
  

No, I'm afraid it doesn't. I can call


   \override NoteColumn #'ignore-collision = ##t
   %string 1 beats
   {\voiceOne e'4\1 e4\1 e4\1 \glissando f4\1 }
   %string 2 beats
   { \voiceOne b,4\2  b4\2  b4\2 \glissando c4\2 }
   %string 3 beats
   { \voiceOne g4\3  g4\3  g4\3 \glissando as4\3 }
   %string 4 beats
   { \voiceOne d,4\4  d4\4  d4\4 \deadNotes { d4\4 } }
   %string 5 beats
   { \voiceOne a4\5 a4\5 a4\5 \deadNotes { a4\5 } }
   %string 6 beats
   { \voiceOne e4\6 e4\6 e4\6 \palmMute { f4\6 } }


then I don't get any error messages, but the glissando is misplaced, all 
notes on the last beat

are palm mute style and dead note style in tablature. Weird.

Marc



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-27 Thread Julian
 Here, it would be possible to define versions for deadNotes and palmMute 
 that
 works inside  ...  constructs, i.e.

Yes they works fine, i think it is the best way to use now..

Thanks



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-27 Thread Marc Hohl

Julian schrieb:
Here, it would be possible to define versions for deadNotes and palmMute 
that

works inside  ...  constructs, i.e.



Yes they works fine, i think it is the best way to use now..
  

But still not within the tablature staff :-(
At the moment, I don't know how to manage this.

Marc


Thanks



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user

  




___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-27 Thread Neil Puttock
2009/5/23 Marc Hohl m...@hohlart.de:
 Neil Puttock schrieb:

 Since none of this works properly (I suspect it will require more than
 Scheme hacking to get everything working), I don't think it's suitable
 for inclusion.



 Hm, I guess you're right - but as a compromise, how about letting the
 \clearTabTieBreaks as a default, because it is working most of the time, and
 when someone needs a more sophisticated tab staff, he has to write a
 separate
 score for the tablature?

 I would propose to rename it as

 #(define (tie::handle-tied-fret-numbers grob)
       (let* ((tied-fret-nr (ly:spanner-bound grob RIGHT)))
             (ly:grob-set-property! tied-fret-nr 'transparent #t)))

 make it default by

 \override Tie #'after-line-breaking = #tie::handle-tied-fret-numbers

 and use this as a kind of starting point for future improvements?

Oh go on then.  As long as you promise to leave out \markTabTieBreaks. :)

 I'm concerned about the amount of duplication here; this basically
 repeats all the code in \tabNumbersOnly, which is really something we
 should try to avoid in included files.


 But how to avoid this? One possibility would be to just get rid of the
 \tabNumbersOnly, because I don't think that tablatures with and
 without stems will ever be mixed together in a file, and when someone wants
 to do so, he can \override everything manually.

I think that's the only option available, since there's no way of
inserting identifiers into a context definition.

Regards,
Neil


___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-27 Thread Carl D. Sorensen



On 5/27/09 2:50 PM, Neil Puttock n.putt...@gmail.com wrote:

 2009/5/23 Marc Hohl m...@hohlart.de:
 Neil Puttock schrieb:
 
 Since none of this works properly (I suspect it will require more than
 Scheme hacking to get everything working), I don't think it's suitable
 for inclusion.
 
 
 
 Hm, I guess you're right - but as a compromise, how about letting the
 \clearTabTieBreaks as a default, because it is working most of the time, and
 when someone needs a more sophisticated tab staff, he has to write a
 separate
 score for the tablature?
 
 I would propose to rename it as
 
 #(define (tie::handle-tied-fret-numbers grob)
       (let* ((tied-fret-nr (ly:spanner-bound grob RIGHT)))
             (ly:grob-set-property! tied-fret-nr 'transparent #t)))
 
 make it default by
 
 \override Tie #'after-line-breaking = #tie::handle-tied-fret-numbers
 
 and use this as a kind of starting point for future improvements?
 
 Oh go on then.  As long as you promise to leave out \markTabTieBreaks. :)
 
 I'm concerned about the amount of duplication here; this basically
 repeats all the code in \tabNumbersOnly, which is really something we
 should try to avoid in included files.
 
 
 But how to avoid this? One possibility would be to just get rid of the
 \tabNumbersOnly, because I don't think that tablatures with and
 without stems will ever be mixed together in a file, and when someone wants
 to do so, he can \override everything manually.
 
 I think that's the only option available, since there's no way of
 inserting identifiers into a context definition.

I think it's better to have the duplication and the ability to switch
between \tabNumbersOnly and \tabFullNotation, than to avoid the duplication,
and have \tabFullNotation be a non-undoable setting.

Thanks,

Carl



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-26 Thread Julian
 I think you can make this work with parallel music, instead of chords.
 
  c, \deadNotes{ c ]
 
 HTH,
 
 Carl
 

I was looking about this. at first it seems to be a good solution
but then i could see that it give some problems managing voices.
it also displays some warning messages:
ignoring too many clashing note columns

if we could tell lilypond that all notes inside   are from
\voiceOne or \voiceTwo it could be definitly a perfect solution..
because we could manage beats by string
something like:
--
% measure 1
 
\voiceOne
%string 1 beats
{ e'4\1 e'4\1 e'4\1 e'4\1 }
%string 2 beats
{ b4\2  b4\2  b4\2  b4\2  }
%string 3 beats
{ g4\3  g4\3  g4\3  g4\3  }
%string 4 beats
{ d4\4  d4\4  d4\4  d4\4  }
%string 5 beats
{ a,4\5 a,4\5 a,4\5 a,4\5 }
%string 6 beats
{ e,4\6 e,4\6 e,4\6 e,4\6 }

--

It solves the slide, palm mute, and dead problem.

Other problem here is that we need convinate features..
i could see things like:
c4\harmonic   =  not work
c\harmonic4 =  works fine

but then other features don't work if they are inside a  ... 
so it's very hard to export a note when it have some of these features convined.
this is why i'm trying to find a generic way that can be used
to manage beats 

i found the \tweak #'style #'cross works indide   
e.g:
   f, \tweak #'style #'cross b e4 d

it only affect the score.. not sure if is there any way to change X instead of
number by style.

Cheers,
Julian



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-25 Thread Julian
Marc Hohl marc at hohlart.de writes:

 
 [ok, the mail was too big, I removed the attached pdf output]
 I attach the latest version of tablature.ly together with a test file.
 Please have a look at it and reply any corrections/improvements/changes
 /etc.
 before I will send patches to Carl.
 
 Remember that you have to add
 
 (define-public (add-new-clef clef-name clef-glyph clef-position
 octavation c0-position)
Append the entries for a clef symbol to supported clefs and
 c0-pitch-alist
(set! supported-clefs
  (acons clef-name (list clef-glyph clef-position octavation)
 supported-clefs))
(set! c0-pitch-alist
  (acons clef-glyph c0-position c0-pitch-alist)))
 
 into scm/parser-clef.scm (for now, I think it will be part of the next
 release).
 
 tablature.ly provides:
 
 1) two commands to switch between tablature notation with and without stems
 2) a sans serif tab clef
 3) a double stemmed half note (of course only when stems are enabled)
 4) fret numbers that are 'tied to' are now (mostly) invisible.
 5) commands for palm mute and dead notes are available
 6) glissando lines in tablature have now the right slope when sliding from
 higher to lower frets.
 
 Greetings
 
 Marc

Hello Marc,

Well at first, english is no my native lang, so sorry for don't speak it well.

I'm the admin of tuxguitar (a tablature editor) project and now i'm trying to
implement some of these features to the lilypond exporter plugin.

But i'm having some problems, when i try to apply them on only 1 note of a beat
that have more notes.

I'll try to explain them with some examples:

* Dead Notes

I was able to build examples like:
c4 \deadNotes{ c, c4 } c4 c4

But if i try to set the dead to only 1 note of the beat:
c4 c, \deadNotes{ c } 4 c4 c4

lilypond throw me: 
---
test.ly:324:20: error: syntax error, unexpected '{', expecting DRUM_PITCH or
MUSIC_FUNCTION or NOTENAME_PITCH
   c4 c, \deadNotes
{ c } 4 c4 c4
test.ly:324:26: error: syntax error, unexpected 
   c4 c, \deadNotes{ c } 
  4 c4 c4
test.ly:330:3: error: errors found, ignoring music expression
---

So, am i doing something wrong with my sintax, or it is just a non supported
feature ?
( Same thing is happening with palmMute )


* Slides

I'm trying to use glissando to represent the slide.
but is there any way to tell lilypond to what note of next beat it should apply
the line ?
I mean when there are 2 beats, and one note of the first beat has an slide,
to one of some notes of the second beat, i need to set what note of the second
beat is slided with the note of the first.

I'm not sure if i'm clear, i'll add a simple tab here:
||---7
||---5-/-7
||
||
||
||

On this example, there is a slide on the second string
beetween frets 5 and 7.

When i try to write this on the .ly file, i don't have idea how to 
tell lilypond that it should be applied to the note F# ( string 2 | fret 7 )
as default it is applying it to the last note added on the beat.

Is there any way to set this ?


Thanks for all, I hope you could understand my english..

Cheers,
Julian



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-25 Thread Carl D. Sorensen



On 5/25/09 12:13 PM, Julian jul...@casadesus.com.ar wrote:

 
 Hello Marc,
 
 Well at first, english is no my native lang, so sorry for don't speak it well.
 
 I'm the admin of tuxguitar (a tablature editor) project and now i'm trying to
 implement some of these features to the lilypond exporter plugin.
 
 But i'm having some problems, when i try to apply them on only 1 note of a
 beat
 that have more notes.
 
 I'll try to explain them with some examples:
 
 * Dead Notes
 
 I was able to build examples like:
 c4 \deadNotes{ c, c4 } c4 c4
 
 But if i try to set the dead to only 1 note of the beat:
 c4 c, \deadNotes{ c } 4 c4 c4
 
 lilypond throw me:
 ---
 test.ly:324:20: error: syntax error, unexpected '{', expecting DRUM_PITCH or
 MUSIC_FUNCTION or NOTENAME_PITCH
c4 c, \deadNotes
 { c } 4 c4 c4
 test.ly:324:26: error: syntax error, unexpected 
c4 c, \deadNotes{ c }
 4 c4 c4
 test.ly:330:3: error: errors found, ignoring music expression
 ---
 
 So, am i doing something wrong with my sintax, or it is just a non supported
 feature ?
 ( Same thing is happening with palmMute )

I think you can make this work with parallel music, instead of chords.

 c, \deadNotes{ c ]


HTH,

Carl



___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-23 Thread Marc Hohl

Neil Puttock schrieb:

2009/5/22 Marc Hohl m...@hohlart.de:

  

Please have a look at it and reply any corrections/improvements/changes
/etc.
before I will send patches to Carl.



Well done Marc, this is very promising.

  

Thank you!

I still have a few reservations concerning some details (mostly
minor), which I'll comment on below.

  
[...]
  

I will rework the file and adapt the formatting according to your proposals.

% for ties in tablature, fret numbers that are tied to should be invisible
% or -after a line break - put in parentheses. Since this is not (easily?)
% possible in lilypond, we offer three commands:
%
% \clearTabTieBreaks simply makes all tied numbers invisible,
% \drawTabTieBreaks draws numbers that follow a line break
% \markTabTieBreaks draws a red fret number and gives a
% warning message on the terminal, so the user can put the
% parentheses manually and finally changes \mark... with \draw...

#(define (tie::tab-clear-tied-fret-numbers grob)
(let* ((tied-fret-nr (ly:spanner-bound grob RIGHT)))
  (ly:grob-set-property! tied-fret-nr 'transparent #t)))

#(define (tie::tab-draw-tied-fret-numbers grob)
(let* ((original (ly:grob-original grob))
   (tied-fret-nr (ly:spanner-bound grob RIGHT))
   (siblings (if (ly:grob? original)
 (ly:spanner-broken-into original) '() )))

  (if (and (= (length siblings) 2)
   (eq? (car (last-pair siblings)) grob))
  ;; tie is split - make fret number visible
  (ly:grob-set-property! tied-fret-nr 'transparent #f)
  ;; tie is not split - make fret number invisible
  (ly:grob-set-property! tied-fret-nr 'transparent #t

#(define (tie::tab-mark-tied-fret-numbers grob)
(let* ((original (ly:grob-original grob))
   (tied-fret-nr (ly:spanner-bound grob RIGHT))
   (siblings (if (ly:grob? original)
 (ly:spanner-broken-into original) '() )))

  (if (and (= (length siblings) 2)
   (eq? (car (last-pair siblings)) grob))
  ;; tie is split - change fret number color to red and
print a message
  (begin (display \nSplit tie appears in tablature.)
 (display \nAffected fret number is marked red.\n)
 (ly:grob-set-property! tied-fret-nr 'color red))
  ;; tie is not split - make fret number invisible
  (ly:grob-set-property! tied-fret-nr 'transparent #t

clearTabTieBreaks = {
 \override Tie #'after-line-breaking = #tie::tab-clear-tied-fret-numbers
}

drawTabTieBreaks = {
 \override Tie #'after-line-breaking = #tie::tab-draw-tied-fret-numbers
}

markTabTieBreaks = {
 \override Tie #'after-line-breaking = #tie::tab-mark-tied-fret-numbers
}



Since none of this works properly (I suspect it will require more than
Scheme hacking to get everything working), I don't think it's suitable
for inclusion.

  

Hm, I guess you're right - but as a compromise, how about letting the
\clearTabTieBreaks as a default, because it is working most of the time, and
when someone needs a more sophisticated tab staff, he has to write a 
separate

score for the tablature?

I would propose to rename it as

#(define (tie::handle-tied-fret-numbers grob)
   (let* ((tied-fret-nr (ly:spanner-bound grob RIGHT)))
 (ly:grob-set-property! tied-fret-nr 'transparent #t)))

make it default by

\override Tie #'after-line-breaking = #tie::handle-tied-fret-numbers

and use this as a kind of starting point for future improvements?



[...]

  

% the defaults for tablature:
% the clef handler will be included and the tablature
% is displayed \tabNumbersOnly-style:
\layout {
  \context {
 \TabStaff
 % the clef handler
 \override Clef #'stencil = #clef::print-modern-tab-if-set
 % no time signature
 \override TimeSignature #'stencil = ##f
 % behaviour of split ties
 \override Tie #'after-line-breaking = #tie::tab-clear-tied-fret-numbers
  }
  \context {
 \TabVoice
 \override Stem #'stencil = ##f
 \override Beam #'stencil = ##f
 \override Dots #'stencil = ##f
 \override Tie  #'stencil = ##f
 \override Slur #'stencil = ##f
 % the direction for glissando lines will be automatically corrected
 \override Glissando #'extra-dy = #glissando::calc-tab-extra-dy
 \override TupletBracket #'stencil = ##f
 \override TupletNumber #'stencil = ##f
 \override DynamicText #'transparent = ##t
 \override DynamicTextSpanner #'stencil = ##f
 \override TextSpanner #'stencil = ##f
 \override Hairpin #'transparent = ##t
 \override Rest #'stencil = ##f
 \override MultiMeasureRest #'stencil = ##f
 \override Script #'stencil = ##f
 \override TextScript #'stencil = ##f
  }
}



I'm concerned about the amount of duplication here; this 

Re: tablature.ly - please test and comment

2009-05-23 Thread Carl D. Sorensen



On 5/23/09 1:09 AM, Marc Hohl m...@hohlart.de wrote:

 Neil Puttock schrieb:
 2009/5/22 Marc Hohl m...@hohlart.de:
 % for ties in tablature, fret numbers that are tied to should be invisible
 % or -after a line break - put in parentheses. Since this is not (easily?)
 % possible in lilypond, we offer three commands:
 #(define (tie::tab-mark-tied-fret-numbers grob)
 (let* ((original (ly:grob-original grob))
(tied-fret-nr (ly:spanner-bound grob RIGHT))
(siblings (if (ly:grob? original)
  (ly:spanner-broken-into original) '() )))
 
   (if (and (= (length siblings) 2)
(eq? (car (last-pair siblings)) grob))
   ;; tie is split - change fret number color to red and
 print a message
   (begin (display \nSplit tie appears in tablature.)
  (display \nAffected fret number is marked red.\n)
  (ly:grob-set-property! tied-fret-nr 'color red))
   ;; tie is not split - make fret number invisible
 
 Since none of this works properly (I suspect it will require more than
 Scheme hacking to get everything working), I don't think it's suitable
 for inclusion.
 
  
 Hm, I guess you're right - but as a compromise, how about letting the
 \clearTabTieBreaks as a default, because it is working most of the time, and
 when someone needs a more sophisticated tab staff, he has to write a
 separate
 score for the tablature?
 
 I would propose to rename it as
 
 #(define (tie::handle-tied-fret-numbers grob)
 (let* ((tied-fret-nr (ly:spanner-bound grob RIGHT)))
   (ly:grob-set-property! tied-fret-nr 'transparent #t)))
 
 make it default by
 
 \override Tie #'after-line-breaking = #tie::handle-tied-fret-numbers
 
 and use this as a kind of starting point for future improvements?
 
 

Marc,

Have you explored the possibility of calling parentheses-item::print on your
tied fret number?

I don't know if it will work, but it appears it may be possible.  It may
need to be defined public in order to call it.

It's found in scm/output-lib.scm.

I haven't tried it, but it looks to me like it takes a grob and adds
parentheses around it.

Carl




___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-23 Thread Marc Hohl

Carl D. Sorensen schrieb:


On 5/23/09 1:09 AM, Marc Hohl m...@hohlart.de wrote:

  

Neil Puttock schrieb:


2009/5/22 Marc Hohl m...@hohlart.de:
  

% for ties in tablature, fret numbers that are tied to should be invisible
% or -after a line break - put in parentheses. Since this is not (easily?)
% possible in lilypond, we offer three commands:
#(define (tie::tab-mark-tied-fret-numbers grob)
(let* ((original (ly:grob-original grob))
   (tied-fret-nr (ly:spanner-bound grob RIGHT))
   (siblings (if (ly:grob? original)
 (ly:spanner-broken-into original) '() )))

  (if (and (= (length siblings) 2)
   (eq? (car (last-pair siblings)) grob))
  ;; tie is split - change fret number color to red and
print a message
  (begin (display \nSplit tie appears in tablature.)
 (display \nAffected fret number is marked red.\n)
 (ly:grob-set-property! tied-fret-nr 'color red))
  ;; tie is not split - make fret number invisible


Since none of this works properly (I suspect it will require more than
Scheme hacking to get everything working), I don't think it's suitable
for inclusion.

 
  

Hm, I guess you're right - but as a compromise, how about letting the
\clearTabTieBreaks as a default, because it is working most of the time, and
when someone needs a more sophisticated tab staff, he has to write a
separate
score for the tablature?

I would propose to rename it as

#(define (tie::handle-tied-fret-numbers grob)
(let* ((tied-fret-nr (ly:spanner-bound grob RIGHT)))
  (ly:grob-set-property! tied-fret-nr 'transparent #t)))

make it default by

\override Tie #'after-line-breaking = #tie::handle-tied-fret-numbers

and use this as a kind of starting point for future improvements?





Marc,

Have you explored the possibility of calling parentheses-item::print on your
tied fret number?

I don't know if it will work, but it appears it may be possible.  It may
need to be defined public in order to call it.

It's found in scm/output-lib.scm.
  
Carl, thank you for your proposal. I made it public, but I came up with 
an error

message. Apparently

(ly:grob-object tied-fret-nr 'elements)

returns an empty list,so ly:grob-common-refpoint-of-array
complains about an empty second argument.
I didn't understand completely how parentheses-item::print
works, so I can't figure out if there is a workaround to use
this or a similar constructed function.


Marc

I haven't tried it, but it looks to me like it takes a grob and adds
parentheses around it.

Carl



  




___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tablature.ly - please test and comment

2009-05-22 Thread Neil Puttock
2009/5/22 Marc Hohl m...@hohlart.de:

 Please have a look at it and reply any corrections/improvements/changes
 /etc.
 before I will send patches to Carl.

Well done Marc, this is very promising.

I still have a few reservations concerning some details (mostly
minor), which I'll comment on below.

  tablature.ly
 
  source file of the GNU LilyPond music typesetter
 
  (c) 2009 Marc Hohl m...@hohlart.de


 % some publications use the triangled note head
 % for palm mute, so here we go:
 palmMuteOn = { \set shapeNoteStyles = #(make-vector 7 'do) }
 palmMuteOff = { \unset shapeNoteStyles }
 % for single notes (or groups of notes within { ...} :
 palmMute =  #(define-music-function (parser location notes) (ly:music?)

#(define-music-function ... on a new line (see the formatting style
for music functions in music-functions-init.ly).

      #{
         \palmMuteOn
         $notes
         \palmMuteOff
      #})

Fix indentation (two spaces).

 % x-tab-format uses a x instead of the fret number:
 #(define (x-tab-format str context event)
    (make-whiteout-markup
      (make-vcenter-markup
        (markup #:musicglyph noteheads.s2cross

 % dead notes are marked with a cross-shape note head,
 % both in normal notation and in tablature:
 deadNotesOn = {
   \override NoteHead #'style = #'cross
   \set tablatureFormat = #x-tab-format

Indent two spaces only.

 }
 deadNotesOff = {
   \unset tablatureFormat
   \revert NoteHead #'style

Fix indentation.

 }

 % for single notes or groups of notes within {...}:
 deadNotes = #(define-music-function (parser location notes) (ly:music?)
   #{
      \deadNotesOn
      $notes
      \deadNotesOff
   #})

Music function formatting as above.


 % definitions for the moderntab clef:
 % the moderntab clef will be added to the list of known clefs,
 % so it can be used as any other clef:
 %
 % \clef moderntab
 %
 #(add-new-clef moderntab markup.moderntab 0 0 0)

 % this function decides which clef to take
 #(define (clef::print-modern-tab-if-set grob)
    (let* ((glyph (ly:grob-property grob 'glyph)))

Use let here.

 % if the stems are drawn, it is nice to have a double stem for
 % (dotted) half notes to distinguish them from quarter notes:
 #(define-public (tabvoice::draw-double-stem-for-half-notes grob)
   ;; is the note a (dotted) half note?
   (if (= 1 (ly:grob-property grob 'duration-log))
       ;; yes - draw double stem
       (ly:stencil-combine-at-edge
           (ly:stem::print grob) 0   1
           (ly:stem::print grob) 0.5 0 )
       ;; no - draw simple stem
       (ly:stem::print grob)))

Too many (ly:stem::print grob) forms here; better to use let to define
the stencil.


 % as default, the glissando line between fret numbers goes
 % upwards, here we have a function to correct this behavior:
 #(define-public (glissando::calc-tab-extra-dy grob)
   (let* ((original (ly:grob-original grob))
          (left-bound (ly:spanner-bound original LEFT))
          (right-bound (ly:spanner-bound original RIGHT))
          (left-pitch (ly:event-property (event-cause left-bound) 'pitch))
          (right-pitch (ly:event-property (event-cause right-bound) 'pitch))
          (left-staff-position (ly:grob-property left-bound 'staff-position))
          (right-staff-position (ly:grob-property right-bound
 'staff-position)))

     (if (and (= left-staff-position right-staff-position)
              ( (ly:pitch-semitones right-pitch) (ly:pitch-semitones
 left-pitch)))
         -0.75
          0.75 )))

I think it looks better if you leave out the staff-position
comparison, otherwise all glissandos (up or down) between noteheads on
different strings get the same positive 'extra-dy.



 % for ties in tablature, fret numbers that are tied to should be invisible
 % or -after a line break - put in parentheses. Since this is not (easily?)
 % possible in lilypond, we offer three commands:
 %
 % \clearTabTieBreaks simply makes all tied numbers invisible,
 % \drawTabTieBreaks draws numbers that follow a line break
 % \markTabTieBreaks draws a red fret number and gives a
 %     warning message on the terminal, so the user can put the
 %     parentheses manually and finally changes \mark... with \draw...

 #(define (tie::tab-clear-tied-fret-numbers grob)
         (let* ((tied-fret-nr (ly:spanner-bound grob RIGHT)))
               (ly:grob-set-property! tied-fret-nr 'transparent #t)))

 #(define (tie::tab-draw-tied-fret-numbers grob)
         (let* ((original (ly:grob-original grob))
                (tied-fret-nr (ly:spanner-bound grob RIGHT))
                (siblings (if (ly:grob? original)
                              (ly:spanner-broken-into original) '() )))

               (if (and (= (length siblings) 2)
                        (eq? (car (last-pair siblings)) grob))
                   ;; tie is split - make fret number visible
                   (ly:grob-set-property! tied-fret-nr 'transparent #f)
                   ;; tie is not split - make fret number invisible