Hi Jon,

Am 15.10.21 um 21:10 schrieb Jon Arnold:
Here's an example:
\version "2.22.1"

\score {
  \new Staff {
    {
      <<
        {f''8 e'' d'' c'' b'2 |
         f''8 e'' d'' c'' b'2 }
        \new FiguredBass {
          \figuremode {
          \bassFigureExtendersOn
          <[_!]>8 <_!> <_>8 q8 s2 |
          <[_!]>8 <_!> s16 <_> q8
          }
        }
      >>
    }
  }
}

I would like the note-spacing of the first bar combined with the continuation line of the second (or maybe something in between). I do not want the note spacing of the second measure.

Thanks!

First: With the new LilyPond 2.23.4 which should be released any day now (if I'm not mistaken), it will be possible to do <_[-]> instead of <[_-]>, i.e. put a bracket around the accidental specifically. For accidental-only figures, this gives a much closer spacing which may be closer to what you want:

\version "2.23.4"

<<
  \new Staff { s1 }
  \new FiguredBass \figuremode {
    \set implicitBassFigures = #'(99)
    \bassFigureExtendersOn
    <_[-]>2 <_->
  }
>>

Now, if you actually want to change the starting position of the bass figure extender line, I think the only "officially" supported property is BassFigureContinuation.padding, overriding which unfortunately shortens the continuation line on _both_ sides, which is not what you want. There's probably a more intelligent solution, but the first thing I could come up with was to partially re-implement the drawing routine for the continuation line with configurable left- and right-shorten-lengths:

\version "2.22.1"

shortenContinuationLine =
#(define-music-function (left-shorten right-shorten) (real? real?)
   #{
     \override BassFigureContinuation.stencil =
     #(lambda (grob)
        (let*
         ((default (ly:figured-bass-continuation::print grob))
          (thick (* (ly:output-def-lookup (ly:grob-layout grob) 'line-thickness)
                    (ly:grob-property grob 'thickness 1)))
          (default-ext (ly:stencil-extent default X)))
         (make-line-stencil
          thick
          (+ (car default-ext) left-shorten) 0
          (- (cdr default-ext) right-shorten) 0)))
   #})


\score {
  \new Staff {
    {
      <<
        {
          f''8 e'' d'' c'' b'2 |
          f''8 e'' d'' c'' b'2
        }
        \new FiguredBass {
          \figuremode {
            \bassFigureExtendersOn
            <[_!]>8 \once \shortenContinuationLine 1 0 <_!> <_>8 q8 s2 |
            <[_!]>8 <_!> s16 <_> q8
          }
        }
      >>
    }
  }
}

Lukas


Reply via email to