lilypond-user
[Top][All Lists]
Advanced

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

Re: Parenthesis/bracket/brace questions


From: Brent Annable
Subject: Re: Parenthesis/bracket/brace questions
Date: Mon, 21 May 2018 15:29:15 +1000

Hey Robin!

Thank you, this works just fine in this case. What would be really neat now would be the ability to parenthesize entire chordal passages, so with the left half around one chord and the right half around some other chord later on in the music. So like a combination of this function:

startParenthesis = {
  \once \override ParenthesesItem.stencils = #(lambda (grob)
        (let ((par-list (parentheses-item::calc-parenthesis-stencils grob)))
          (list (car par-list) point-stencil )))
}

endParenthesis = {
  \once \override ParenthesesItem.stencils = #(lambda (grob)
        (let ((par-list (parentheses-item::calc-parenthesis-stencils grob)))
          (list point-stencil (cadr par-list))))
}


And this function:


parch =  #(define-music-function (parser location gap) (number?) 
#{
   \once \override Arpeggio #'stencil = #(lambda (grob)
     (ly:stencil-add
       (ly:arpeggio::brew-chord-slur grob)
       (ly:stencil-translate-axis 
         (ly:stencil-rotate (ly:arpeggio::brew-chord-slur grob) 180 0 0)
         gap X)))
   \once \override Arpeggio #'X-extent = #(lambda (grob)
     (ly:stencil-extent (ly:arpeggio::brew-chord-slur grob) X))
   \once \override Arpeggio #'positions = #(lambda (grob) 
     (interval-widen (ly:arpeggio::calc-positions grob) 0.5))
   $(make-music 'EventChord 'elements (list (make-music 'ArpeggioEvent)))
#})


Here's a sample of the startParenthesis/endParenthesis in use:

\version "2.19.65"
startParenthesis = {
  \once \override ParenthesesItem.stencils = #(lambda (grob)
        (let ((par-list (parentheses-item::calc-parenthesis-stencils grob)))
          (list (car par-list) point-stencil )))
}
endParenthesis = {
  \once \override ParenthesesItem.stencils = #(lambda (grob)
        (let ((par-list (parentheses-item::calc-parenthesis-stencils grob)))
          (list point-stencil (cadr par-list))))
}

\relative c' { \override ParenthesesItem.font-size = #2
                   c d \startParenthesis \parenthesize e f 
                   g a \endParenthesis \parenthesize b c
                  }


Any takers?

Regards,

Brent.

On 21 May 2018 at 06:14, Robin Bannister <address@hidden> wrote:
Brent Annable wrote:

2. I would like to parenthesize a couple of two-note chords in the tenor
part. Has anybody come up with a decent way to put parentheses around
entire chords yet? I've rummaged around the old threads but can't really
find anything that fits the bill.


Maybe you can make do with the \parch function given (at the end of)
https://archiv.lilypondforum.de/index.php/topic,347.msg10786/topicseen.html#msg10786

Then you would just write
>
> \parch #2.5 <f as>4 \parch #3.7 <bes es,>2.
>

But this hack doesn't prevent the right bracket colliding with things.


Cheers,
Robin

Attachment: parentheses.pdf
Description: Adobe PDF document


reply via email to

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