lilypond-user
[Top][All Lists]
Advanced

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

Re: Question to Mats


From: Daniel Leidisch
Subject: Re: Question to Mats
Date: Wed, 15 Aug 2007 14:54:29 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1.50 (gnu/linux)

Mats Bengtsson <address@hidden> writes:

> Could you please provide links to the emails you have in mind.
> I guess that the first one is
> http://lists.gnu.org/archive/html/lilypond-user/2007-04/msg00039.html
> but I have posted too many "ugly solutions" to different problems to be
> able to recall them or find them when searching the mailing list archives.
>
>   /Mats
>

Sure, its:

http://www.nabble.com/No-clef-and-key-each-line-tf1469580.html#a4014024

Sorry for not providing it in my first post. I have included a minimal
example of what I want to do. My sectionNumber Problem is not related
to your code, but the Clef and TimeSignature stencil = ##f, which
messes up spacing. I commented that out in the example. The problem is
that when I insert \bar "||", the beginning bar lines get messed up.

If you uncomment the lines containing the sectionNumber and \override
commands, you'll see what I wanted to do: Remove time signatures and
clefs from everything but the first line, and insert my section
letters, in order to achieve a “real-book-like” look.

Regards,

dhl



\version "2.10.25"

#(define-public (index-cell cell dir)
  (if (equal? dir 1)
      (cdr cell)
      (car cell)))


#(define-public (bar-line::my-calc-glyph-name grob)
  (let* (
         (glyph (ly:grob-property grob 'glyph))
         (dir (ly:item-break-dir grob))
         (result (assoc glyph
                       '((":|:" . (":|" . "|:"))
                         ("||:" . ("||" . "|:"))
                         ("|" . ("|" . "|"))
                         ("||:" . ("||" . "|:"))
                         ("|s" . (() . "|"))
                         ("|:" . ("|" . "|:"))
                         ("|." . ("|." . ()))

                         ;; hmm... should we end with a bar line here?
                         (".|" . ("|" . ".|"))
                         (":|" . (":|" . ()))
                         ("||" . ("||" . ()))
                         (".|." . (".|." . ()))
                         ("" . ("" . ""))
                         (":" . (":" . ""))
                         ("." . ("." . ()))
                         ("empty" . (() . ()))
                         ("brace" . (() . "brace"))
                         ("bracket" . (() . "bracket"))  )))
         (glyph-name (if (= dir CENTER)
                         glyph
                         (if (and result (string? (index-cell (cdr
result) dir)))
                             (index-cell (cdr result) dir)
                             #f)))
         )

    (if (not glyph-name)
        (ly:grob-suicide! grob))

    glyph-name))


sectionLetter =
#(define-music-function (parser location letter) (string?)
        #{
          \once \override Score.RehearsalMark #'extra-offset = #'(-9 . 1)
          \mark \markup{\box{\bold{ $letter }}}
        #})

harmonies = \chords {
        c1 c c c c c c c c c c c c c c c
}

melody = \relative c' {
%       \sectionLetter "A"
        c1 c c c \bar "||" \break
%       \override Staff.Clef #'stencil = ##f
%       \override Staff.TimeSignature #'stencil = ##f
        c c c c \break
%       \sectionLetter "B"
        c c c c \bar "||" \break
        c c c c \bar "|."
}

\score {
        <<
                \new ChordNames \harmonies
                \new Staff \melody
        >>
        
        \layout {
                indent = 0.0\cm
                \context {
                        \Score
                        \remove "Bar_number_engraver"
                        \override BarLine #'glyph-name = 
#bar-line::my-calc-glyph-name
                }
        }
}









reply via email to

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