Hello Mason,
I just have an idea how I *would* try to approach a solution. Once I
needed a lyrics syllable attached to an extender line at a given time.
So I used the extender stencil and first attached the syllable on top of
it at a given x-offset. Then I added a property to the corresponding
note to receive an accurate x-offset. I'll have a look into that code later.
I can't say if it is easy to apply this technique on the
*non*-horizontal glissando-line. We'll see.
Jan-Peter
Am 19.05.2018 um 23:16 schrieb Mason Hock:
In my music, I frequently use
- glissandi during which the performer rearticulates with a particular rhythm,
represented with headless steams
- glissandi that extend longer than a bar or otherwise require intermediate
headless stems to clarify duration, with a slur indicating that the performer
should not rearticulate
My current solution is based on the hack[1] recommended in the documentation.
Here is an example:
------------------------------------------------------------------------
\version "2.19.81"
\language "english"
% starts an extended glissand
glon = {
\override NoteColumn.glissando-skip = ##t
\hide NoteHead
\override NoteHead.no-ledgers = ##t
\override Stem.thickness = #0.5
\override Accidental #'stencil = ##f
}
% terminates an extended glissando
gloff = {
\revert NoteColumn.glissando-skip
\undo \hide NoteHead
\revert Glissando #'stencil
\revert NoteHead.no-ledgers
\revert Stem.thickness
\revert Accidental #'stencil
}
% slightly increase slope of glissando so that line is
% not perfectly horizontal when glissing between notes
% on same staff line/space
glup = { \once\override Glissando.extra-dy = #0.5 }
gldown = { \once\override Glissando.extra-dy = #-0.5 }
\relative c' {
\glup c8 \glissando \glon c-_ d-_ e-_ \tuplet 5/4 { e-_ f-_ g g a } |
\gloff a a \gldown a \glissando \glon a a a \gloff af4 |
\gldown af2 \glissando \gldown g4( \glissando \glon f |
e) \gloff e r2 |
}
------------------------------------------------------------------------
This hack has several flaws.
- The stems are all different distances from the glissando line.
- Articulations have a noticably inconsistent slope.
- Selecting the least-bad pitch for each hidden note is tedious.
- Even slight changes to horizontal spacing can ruin the vertical position of
the hidden notes.
- The position of a stem is not musical content and should not be represented
by a pitch.
These flaws add up to a serious problem: Not only is the stem placement
regardless of which hidden pitches I choose, but because horizontal spacing
affects which pitches are least-bad, there is no way to choose the hidden
pitches to be optimal for multiple editions. In order to fix this with edition
engraver, I would have to tweak each stem individually for each edition, which
would not realistically be maintainable.
A proper implementation of extended glissandi would place each intermediate
stem a fixed distance from the gliss line. It would also be nice to tweak the
slope of all gliss lines globally, something I can not do now because the
extra-dy value is different for ascending and descending glissandi, but this
would be a convenience, not a necessity.
The ideal syntax would resemble this:
c8 \gliss-end c c c c \gliss-end f
and result in a gliss from c to f, where
- the intermediate eighth note stems are all exactly the same distance from the
gliss line
- the slope of the gliss line is slightly increased like in my example above
However, the bare minimum I need is for the stems to be automatically
positioned vertically, and (if I need to tweak the slope manually) for them to
be positioned relative to the gliss line *after the slope tweak*.
I don't understand Scheme or Lilypond's internals well enough to do this
myself. If the solution is non-trivial for someone who does know Scheme and and
Lilypond well, enough, I am willing to pay them for their time spent on the
solution. The solution could be in the form of an include, or a feature of 2.19.
If anyone can help me with this, please let me know approximately how many
hours of work you would expect it to take and what you would consider fair
compensation for the amount of time spent.
Thanks,
Mason
[1]
http://lilypond.org/doc/v2.19/Documentation/notation/expressive-marks-as-lines#glissando
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user