\version "2.12.3" \relative c'' { \arpeggioBracket \arpeggio } \markup { "Beispiel 1 - Barreklammer in einer Stimme"} \relative c' { \arpeggioBracket \arpeggio } \markup { "Beispiel 2 - Klammern in zwei Stimmen, unverbunden"} << \clef "treble_8" \relative c { \arpeggioBracket \arpeggio } \\ \relative c, { \arpeggioBracket < fis > \arpeggio } >> \markup { "Beispiel 3 - Verbundene Klammer durch eine versteckte 3. Stimme"} << \relative c' { } \\ \relative c { < fis > } \\ \relative c { \hideNotes \arpeggioBracket < fis cis'' > \arpeggio } >> \markup { "Beispiel 4 - Klammer und Lagenangabe"} << \clef "treble_8" \relative c { } \\ \relative c, { ^ \markup { \fontsize #-1 { "II" }} } \\ \relative c, { \hideNotes \arpeggioBracket < fis cis'' > \arpeggio } >> \markup { "Beispiel 5 - Verschobene Klammer mit padding"} << \clef "treble_8" \relative c { } \\ \relative c, { ^ \markup { \fontsize #-1 { "II" }} } \\ \relative c, { \hideNotes \once \override Arpeggio #'padding = #3 \arpeggioBracket < fis cis'' > \arpeggio } >> \markup { "Beispiel 6 - Verschobene Klammer mit offset"} << \clef "treble_8" \relative c { } \\ \relative c, { ^ \markup { \fontsize #-1 { "II" }} } \\ \relative c, { \hideNotes \once \override Arpeggio #'extra-offset = #' (-3 . 3 ) \arpeggioBracket < fis cis'' > \arpeggio } >> %compers Lösung füe Barreklammern arpBarre = #(define-music-function (parser location grow) (number?) #{ \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-bracket \once \override Arpeggio #'positions = #(lambda (grob) (let ((iv (ly:arpeggio::calc-positions grob)) (grow-hi (max 0 (/ $grow 2))) (grow-lo (min 0 (/ $grow 2)))) (cons (+ (car iv) grow-lo) (+ (cdr iv) grow-hi)))) $(make-music 'EventChord 'elements (list (make-music 'ArpeggioEvent))) #}) << \clef "treble_8" \relative c { \arpBarre #-6 } \\ \relative c, { ^ \markup { \fontsize #-1 { "II" }} } >> arpeggioAsBarre = \once \override Staff.Arpeggio #'stencil = #ly:arpeggio::brew-chord-bracket \markup { "Große Barreklammer Beispiel 1"} \score { \context Staff { \set Staff.connectArpeggios = ##t << {\arpeggioAsBarre g''2 \arpeggio } \\ {\arpeggioAsBarre g 2 \arpeggio } >> } \layout { \context { \Staff \consists "Span_arpeggio_engraver"} } } \markup { "Große Barreklammer Beispiel 2"} \score { \context Staff { \set Staff.connectArpeggios = ##t << \context Voice="1" { \voiceOne \arpeggioAsBarre g''2 \arpeggio } \context Voice="6" { \voiceTwo \arpeggioAsBarre g 2 \arpeggio } \context Voice="1" { s -"III" } >> } \layout { \context { \Staff \consists "Span_arpeggio_engraver"} } } \markup { "Große Barreklammer / kleine Barreklammer"} \score { \context Staff { \set Staff.connectArpeggios = ##t << %\context Voice="1" { \voiceOne \arpeggioAsBarre g'' \arpeggio s \arpeggioAsBarre g'' \arpeggio } \context Voice="2" { \voiceOne \arpeggioAsBarre d'' s \arpeggioAsBarre d'' } %\context Voice="3" { \voiceTwo \arpeggioAsBarre b' s \arpeggioAsBarre bes' \arpeggio } % \context Voice="4" { \voiceTwo \arpeggioAsBarre g' \arpeggio r g' } % \context Voice="5" { \voiceTwo \arpeggioAsBarre d' \arpeggio s d' } \context Voice="6" { \voiceTwo \arpeggioAsBarre g \arpeggio s s } \context Voice="1" { s -"III" } \context Voice="6" { s -"hurray!" } >> } \layout { \context { \Staff \consists "Span_arpeggio_engraver"} } } \markup { "combining chords with different durations" } \context Staff \with { \consists "Span_arpeggio_engraver"} { \clef "treble_8" \key c \major \set Staff.connectArpeggios = ##t \arpeggioAsBarre << { < e' g'> 4 \arpeggio r r 2 } \\ { < c g~ c'> 2 \arpeggio g } >> } %% PostScript ------------------------------- pScript= \markup { \with-dimensions #'(0 . 0.8) #'(0 . 2.0) \postscript #" 0.15 setlinewidth /Times-Roman findfont 2.0 scalefont setfont (C)show %%change with B if you prefer %(B)show %%change with C if you prefer stroke 0.7 -0.5 moveto 0.7 1.7 lineto stroke" } %% Span ----------------------------------- %% Syntax: \bbarre #"text" { notes } - text = any number of box bbarre= #(define-music-function (barre location str music) (string? ly:music?) (let ((spanned-music (let ((first-element #f) (last-element #f) (first-found? #f)) (music-map (lambda (m) (if (eqv? (ly:music-property m 'name) 'EventChord) (begin (if (not first-found?) (begin (set! first-found? #t) (set! first-element m))) (set! last-element m))) m) music) (if first-found? (begin (set! (ly:music-property first-element 'elements) (cons (make-music 'TextSpanEvent 'span-direction -1) (ly:music-property first-element 'elements))) (set! (ly:music-property last-element 'elements) (cons (make-music 'TextSpanEvent 'span-direction 1) (ly:music-property last-element 'elements))))) music))) (make-music 'SequentialMusic 'origin location 'elements (list #{ \once \override TextSpanner #'font-size = #-2 \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 (Y . 0) (padding . 0.25) (attach-dir . -2)) (right (Y . 0) (padding . 0.25) (attach-dir . 2))) \once \override TextSpanner #'bound-details #'right #'text = \markup { \draw-line #'( 0 . -.5) } \once \override TextSpanner #'bound-details #'left #'text = \markup { \pScript $str } %% uncomment this line for make full barred % \once \override TextSpanner #'bound-details #'left #'text = \markup { "B" $str } #} spanned-music)))) %% %%%%%%% Cut here ----- End 'bbarred.ly' %% Copy and change the last line for full barred. Rename in 'fbarred.ly' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Syntaxe: \bbarre #"text" { notes } - text = any number of box \relative c{ \clef "G_8" \stemUp \bbarre #"III" { 16[ c' d c d8] } } %%%% Arp Definition nach comper Barre = #(define-music-function (parser location grow) (number?) #{ \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-bracket \once \override Arpeggio #'positions = #(lambda (grob) (let ((iv (ly:arpeggio::calc-positions grob)) (grow-hi (max 0 (/ $grow 2))) (grow-lo (min 0 (/ $grow 2)))) (cons (+ (car iv) grow-lo) (+ (cdr iv) grow-hi)))) $(make-music 'EventChord 'elements (list (make-music 'ArpeggioEvent))) #}) << \clef "treble_8" \relative c { %\once \override Arpeggio #'padding = #3 \Barre #-5 2 \mark "Comper code" s2 \Barre #5 f'8 a d a } \\ \relative c, { 2^ \markup { \fontsize #-1 { "II"}} s2 d'2 ^ \markup { "X"} } >> barreSpanner = #(define-music-function (parser location StringNumber) (string?) #{ \override TextSpanner #'style = #'solid \override TextSpanner #'font-size = #-2 \override TextSpanner #'(bound-details left stencil-align-dir-y) = #CENTER \override TextSpanner #'(bound-details right text) = \markup { \draw-line #'(0 . -0.5) } \override TextSpanner #'(bound-details left text) = \markup { \override #'(font-name . "URW Bookman L") \number $StringNumber } \override TextSpanner #'(bound-details right padding) = #-1 %Länge nach rechts verlängern!!! #}) << \clef "treble_8" \relative c { \barreSpanner "X " \textSpannerUp 2 s2 s1 f'8 \startTextSpan a d a \stopTextSpan } \\ \relative c, { 2 s2 s1 d'2 } >> barreSpanner = #(define-music-function (parser location StringNumber) (string?) #{ \override TextSpanner #'style = #'solid \override TextSpanner #'font-size = #-1 \override TextSpanner #'(bound-details left stencil-align-dir-y) = #CENTER \override TextSpanner #'(bound-details right text) = \markup { \draw-line #'(0 . -0.5) } \override TextSpanner #'(bound-details left text) = \markup { \override #'(font-name . "URW Bookman L") \number $StringNumber } \override TextSpanner #'(bound-details right padding) = #-1 %Länge nach rechts verlängern!!! #}) << \clef "treble_8" \relative c { \barreSpanner "X " \textSpannerUp 2 s2 s1 f'8 \startTextSpan a d a \stopTextSpan } \\ \relative c, { 2 s2 s1 d'2 } >>