Am Mi., 24. März 2021 um 23:03 Uhr schrieb bart deruyter <
[email protected]>:
> hello all,
> I've continued working on my tablature for 4-course renaissance guitar.
> - I've got the old-style rhythm notation, the letters by using a specific
> font (could we get these types of letters implemented in lilypond's default
> font? I guess lute players would feel very happy about it too.)
> - I've got the dots in stroke-finger notation.
> - So far only the diagonal lines are a real puzzle to me.
> [image: image.png]
> Deciphering tablatures I understood that sustained notes are described
> with these lines. Here the note on fret 'c' rings until the note on fret
> 'a' is played.
>
Not sure you're right, Though, I'm not an expert for renaissance-guitar
>
> I've tried to implement them by using glissandi, but I'd have to adjust
> the start and endpoint to get them to look right if it's the right thing to
> use.
> I haven't found it in the manual yet to adjust the glissando line. Does
> anyone here have an idea?
> They're not meant to represent sustained notes of course, but I haven't
> found another line that would better suit the purpose.
> Would it be possible to modify piano sustain markings and use them in
> tablature for this purpose? Or is there some other type of 'line' I could
> use or even create?
>
> thanks in advance,
>
> Bart
>
Sounds more like a use case for DurationLine, a quite new grob/feature for
contemporary music.
But why not use it here as well?
Needs some tweaking, though. The default is always horizontal.
\version "2.22.0"
\score {
<<
\new TabStaff
\with {
\override VerticalAxisGroup.staff-staff-spacing.padding = #5
}
<<
\new TabVoice { r8 <d' g'> q b }
\new TabVoice { g,4.\- r8 }
>>
\new TabStaff
<<
\new TabVoice { r8 <d' g'> q b }
\new TabVoice {
%% see comment below
\override DurationLine.details.line-y-padding = 0.3
g,4.\- r8
}
>>
>>
\layout {
ragged-right = ##t
\context {
\TabVoice
\consists "Duration_line_engraver"
%% adjust to taste
\override DurationLine.bound-details.left.padding = 1.5
%% adjust to taste
\override DurationLine.thickness = 1.2
\override DurationLine.stencil =
#(lambda (grob)
;; see `duration-line::calc', `duration-line::print' in
output-lib.scm
(let* (;; To calculate the stencil, get basic values from
;; `duration-line::calc'
(dur-line-basics (duration-line::calc grob))
(staff-space (assoc-get 'staff-space dur-line-basics))
(x-start (assoc-get 'x-start dur-line-basics))
(x-end (assoc-get 'x-end dur-line-basics))
(scaled-y (* staff-space (assoc-get 'y dur-line-basics)))
;; Provide a new subproperty of 'details to offer
customizable
;; padding between the staff-lines and vertical start/end
of
;; DurationLine
(details (ly:grob-property grob 'details))
(line-y-padding (assoc-get 'line-y-padding details 0.1)))
(ly:line-interface::line
grob
x-start
(+ scaled-y line-y-padding)
x-end
(- (+ scaled-y staff-space) line-y-padding) )))
}
}
}
Cheers,
Harm