lilypond-user
[Top][All Lists]
Advanced

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

Re: stacked markup with parenthesis


From: Kieren MacMillan
Subject: Re: stacked markup with parenthesis
Date: Thu, 29 Jan 2009 09:08:27 -0500

Hi Jean-Alexis,

I finally came up with this solution: i use brackets. My scores starts to look like Jazz ones ;).
Comments or ideas to draw parentheses instead are welcome!

Riffing on Mark Polesky's parentheses (which he calls "quick, dirty, cumbersome, inelegant and inaccurate. Not my usual style to be sure."), I came up with the attached.

Mark: Thanks for the tip. I will see if I can make it slow, clean, nimble, elegant and accurate… someday. =)
Jean-Alexis: I hope this helps.

In the long term, it would be *amazing* if we could come up with a parenthesizing tool which took into account the X- and Y-extent of the object, and self-scaled. That way, we could create the generic \parenthesize function (e.g., for chords, time and key signatures, accidentals, etc.) that we've been wanting for a while.

Regards,
Kieren.

%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.12"
\include "english.ly"

leftPar = \markup {
  \postscript
  #(let ((width 0.75)
         (height 4)
         (edge-thickness 0.1)
         (center-thickness 0.2))
   (ly:format
"/w ~a def /h ~a def /t0 ~a def /t1 ~a def /x1 t1 t0 sub def
/y1 1 3 div h mul def /y2 2 3 div h mul def
currentpoint translate t0 setlinewidth 1 setlinecap 1 setlinejoin
w 0 moveto 0 y1 0 y2 w h curveto x1 y2 x1 y1 w 0 curveto
gsave fill grestore stroke
" width height edge-thickness center-thickness))
}
rightPar = \markup {
  \postscript
  #(let ((width 0.75)
         (height 4)
         (edge-thickness 0.1)
         (center-thickness 0.2))
   (ly:format
"/w ~a def /h ~a def /t0 ~a def /t1 ~a def /x1 w t1 t0 sub sub def
/y1 1 3 div h mul def /y2 2 3 div h mul def
currentpoint translate t0 setlinewidth 1 setlinecap 1 setlinejoin
0 0 moveto w y1 w y2 0 h curveto x1 y2 x1 y1 0 0 curveto
gsave fill grestore stroke
" width height edge-thickness center-thickness))
}

exc = {
    <c e g bf ds' af'>- \markup
    \concat
        { 7 \leftPar \hspace #1.2
        \fontsize #-3 \override #'(direction . 1) \dir-column
                {
                        \concat { \fontsize #-2 \raise #0.6 \sharp \hspace #0.2 
"9" }
                        \concat { \fontsize #-1 \raise #0.3 \flat "13" }
                }
                \rightPar
        }
}
chExceptions = #( append
  ( sequential-music-to-chord-exceptions exc #t)
  ignatzekExceptions)

\score
{
        <<
                \new ChordNames { <c e g bf ds' af'> }
                \new Staff { <c e g bf ds' af'> }
        >>
        \layout
        {
                \context
                {
                        \Score
                        chordNameExceptions = #chExceptions
                }
        }
}





reply via email to

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