lilypond-user
[Top][All Lists]
Advanced

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

Re: Adding right side to volta bracket spanner


From: Thomas Morley
Subject: Re: Adding right side to volta bracket spanner
Date: Thu, 17 Jul 2014 22:57:40 +0200

2014-07-17 21:51 GMT+02:00 Guido <address@hidden>:
> Hi,
>
> I’ve been transcribing a modern partiture in Lilypond. I’ve come quite far 
> but some details are missing. For one thing in particular I have not been 
> able to find a solution. The composer used volta bracket spanners to indicate 
> that a group of notes should be played the second time only. To have an 
> accurate transcription I would like to show the right vertical line of the  
> volta bracket spanner. How can I trigger that line to be drawn?
>
> ----------------------------
>
> \version "2.18.2"
>
> voltaText = \markup { \text  {2x only} }
>
> Alower = \relative c {
>
>         \clef bass
>         \set Staff.keySignature = #`(((-2 . 6) . , FLAT))
>         \override Staff.TimeSignature #`transparent = ##t
>         \set Timing.measureLength = #(ly:make-moment 4/4)
>
>         \cadenzaOn
>
>         r8.
>
>         \override Score.VoltaBracketSpanner.no-alignment = ##f
>
>         \set Score.repeatCommands = #(list(list 'volta voltaText) 
> 'start-repeat)
>
>         r16 bes'8[ e,16] g,4
>
>         \set Score.repeatCommands = #'((volta #f) end-repeat)
>
>         % Should the vertical line be triggered here? How?
>
>         r8. r16 bes'8[\( e,16]( e[) g,8\) bes'16\( f8]( f16[) e g,8]\) r16  
> \bar ":|."
>
>     \cadenzaOff
> }
>
> \layout {
>   \context {
>         \Score
>         \remove "Timing_translator"
>         \remove "Default_bar_line_engraver"
>         \remove "Bar_number_engraver"
>         \remove "Volta_engraver"
>  }
>
>   \context {
>         \Staff
>         \consists "Timing_translator"
>         \consists "Default_bar_line_engraver"
>   }
> }
>
> \score {
>
>         \new Staff \with {
>                 \consists "Volta_engraver"
>         }
>         {
>         \Alower
>     }
>  }
>
> ----------------------------
>
> Best regards,
>
> Guido


Hi,

the so called 'volta-hook' is allowed only for certain types of BarLines.
You can watch them by compiling the following code in a .ly file:

#(use-modules (ice-9 pretty-print))
#(pretty-print (@@ (lily) volta-bracket-allow-volta-hook-list))

You  can use one of them and make the stencil invisible. Would result to:

voltaText = \markup { \text  { 2x only } }

\relative c {
        \clef bass
        \cadenzaOn
        r8
        \set Score.repeatCommands = #(list(list 'volta voltaText))
        r16 bes'8[ e,16] g,4
        \once \override Staff.BarLine.stencil = #point-stencil
        \set Score.repeatCommands = #'((volta #f) end-repeat)
        r8.
        \cadenzaOff
}

Or you can append "" to the 'volta-bracket-allow-volta-hook-list':

#(allow-volta-hook "")

voltaText = \markup { \text  { 2x only } }

\relative c {
        \clef bass
        \cadenzaOn
        r8
        \set Score.repeatCommands = #(list(list 'volta voltaText))
        r16 bes'8[ e,16] g,4
        \set Score.repeatCommands = #'((volta #f) end-repeat)
        \bar ""
        r8.
        \cadenzaOff
}

Using this method will result to _every_ volta-hook is allowed at this
bar-line in the whole file.

Though,
'allow-volta-hook' isn't mentioned in the docs, afaik.
Additionally, I think one should make it a context-property, with the
possibility to set _and_ unset or to use \once.

I'll file a bugreport for a documentation and enhancement, if I don't forget.

Cheers,
  Harm



reply via email to

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