[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