lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problems with Barré


From: Thomas Morley
Subject: Re: Problems with Barré
Date: Tue, 27 Oct 2020 10:10:04 +0100

Am Di., 27. Okt. 2020 um 09:58 Uhr schrieb <sir.teddy.the.first@gmail.com>:
>
> Hi all,
>
> I’m using this barré-function from the LSR and I’m trying to make it work 
> when the first note (or the last one) is a rest.
>
>
>
> Here’s the code:
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
> \version "2.20.0"
>
> guitbarre =
>
> #(define-music-function (barre location str music) (string? ly:music?)
>
>   (let ((elts (extract-named-music music '(NoteEvent EventChord))))
>
>         (if (pair? elts)
>
>             (let ((first-element (first elts))
>
>                   (last-element (last elts)))
>
>               (set! (ly:music-property first-element 'articulations)
>
>                     (cons (make-music 'TextSpanEvent 'span-direction -1)
>
>                           (ly:music-property first-element 'articulations)))
>
>               (set! (ly:music-property last-element 'articulations)
>
>                     (cons (make-music 'TextSpanEvent 'span-direction 1)
>
>                           (ly:music-property last-element 'articulations))))))
>
>       #{
>
>           \once \override TextSpanner.font-shape = #'upright
>
>           \once \override TextSpanner.staff-padding = #3
>
>           \once \override TextSpanner.style = #'line
>
>           \once \override TextSpanner.to-barline = ##f
>
>           \once \override TextSpanner.bound-details =
>
>                #`((left
>
>                    (text . ,#{ \markup { \raise #-.5 \concat { \bold { #str " 
> " }}} #})
>
>                    (Y . 0)
>
>                    (padding . .25)
>
>                    (attach-dir . -2))
>
>                   (right
>
>                    (text . ,#{ \markup { \draw-line #'( 0 . -1) } #})
>
>                    (Y . 0)
>
>                    (padding . 0.25)
>
>                    (attach-dir . 2)))
>
>          $music
>
>       #})
>
>
>
> \relative c' {
>
>   %1       <-- This one works
>
>   \guitbarre #"VI" { g4 g4 g4 g4 }
>
>
>
>   %2 <-- This one does not
>
>   <<
>
>     \new Voice \guitbarre #"I" {\voiceOne r4 <f' a c>4  4 4}
>
>     \new Voice {\voiceTwo f,1}
>
>   >>
>
> }
>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>
>
>
> What do I have to change or is there some other trick to make it work?
>
>
>
> Thanks In Advance

Change:
   (let ((elts (extract-named-music music '(NoteEvent EventChord))))
to
  (let ((elts (extract-named-music music '(RestEvent NoteEvent EventChord))))

Cheers,
  Harm



reply via email to

[Prev in Thread] Current Thread [Next in Thread]