I have been developing LilyPond code to enable the generation of "Chord
Charts" such as the one attached here.
They differ from conventional music notation by being short, comprising
only Chord Symbols with one or two chord durations, and, ideally, a
fixed measure spacing, usually four to a line.
Various tweaks have been applied in this example to suit very small
displays.
The remaining outstanding difficulty is controlling the measure width -
ideally all the bar lines would align vertically down the screen (the
chord symbols would be made smaller if they didn't fit).
I have set

\set Score.proportionalNotationDuration = #(ly:make-moment 1/4)

which helps make the measures more even in width, but not entirely.

Can anyone suggest something that would essentially turn off the fancy
spacing algorithms that are running? Or perhaps point me to some scheme
code governing the spacing which I could tweak?

Richard



%% LilyPond file generated by Denemo version 1.1.9

%%http://www.gnu.org/software/denemo/

\version "2.18.0"

DenemoGlobalTranspose = #(define-music-function (parser location arg)(ly:music?) #{\transpose c c #arg #})
AutoBarline = {}
AutoEndMovementBarline = \bar "|."

\defineBarLine "|-RepeatEndHorned" #'(":|]" "" "")

\defineBarLine ":|]-RepeatEnd" #'(":|]" "|" "")

\defineBarLine "[|:-RepeatStart" #'("||" "[|:" "")

\defineBarLine "||-Double" #'("||" "|" "")

\defineBarLine "|-Single" #'("|" "|" "")

\defineBarLine "|" #'("|" "|" "|")
\markup \teeny "v 2"BarRepeatEndHorned = \bar "|-RepeatEndHorned"
BarRepeatEnd = \bar ":|]-RepeatEnd"
BarRepeatStart = \bar "[|:-RepeatStart"
BarDouble = \bar "||-Double"
BarSingle = \bar "|-Single"
% The music follows

MvmntIVoiceI = {
         <c' e' gis' bes'>1 -\markup \super "+7"         <f' aes' ees''>1 -\markup \super {{\bold  "–"} "7"}         <c'' e'' gis''>1 -\markup \super \bold "+"         <c'' ees'' g''>1 -\markup \super \bold "–"%5
         <ees' d''>1  -\markup {\hspace #0.5 \super \override #'(thickness . 0.6) \scale #'(0.6 . 0.8)\triangle ##f }}



\addQuote "Unnamed Mvmnt 1" \MvmntIVoiceI


MvmntIIVoiceI = {
         \BarSingle   \once \override Score.RehearsalMark #'self-alignment-X = #center \mark \markup {\line\large{\bold \box \fontsize #6 A }
} <f' aes' ees''>2 <bes' aes''>\AutoBarline
         <f' aes' ees''> <bes' aes''>\AutoBarline
         <ees' c''> <d' fis' ais' c''>\AutoBarline
         <ees' c''> <c'' e'' gis''>\AutoBarline
%5
         <f' ees''>1\AutoBarline
         <f' aes' ees''>2 <bes' aes''>\AutoBarline
         <ees' d''>1\AutoBarline
         
            \set Score.repeatCommands = #'((volta ""))
            <> ^\markup\scale #'(1.5 . 1.5)\column{\line\large{1.}
} <f' aes' ees''>2 <bes' aes''> 
\set Score.repeatCommands = #'((volta #f))
 \BarRepeatEndHorned  \break         \skip 1 \bar ""%10
         \skip 1 \bar ""         \skip 1\AutoBarline
         
            \set Score.repeatCommands = #'((volta ""))
            <> ^\markup\scale #'(1.5 . 1.5)\column{\line\large{2.}
} <bes' aes''>2 <ees' des''> \BarDouble  \break         
\set Score.repeatCommands = #'((volta #f))
  \once \override Score.RehearsalMark #'self-alignment-X = #center \mark \markup {\line\large{\bold \box \fontsize #6 B}
} <aes' g''>1\AutoBarline
         <c'' bes''>\AutoBarline
%15
         <f' aes' ees''>\AutoBarline
         <a' c'' ees'' ges''> \break         <c'' ees'' g''>2 <aes' ges''>\AutoBarline
         <f' ees''>1\AutoBarline
         <bes' aes''>2 <bes' des'' fes'' aeses''>\AutoBarline
%20
         <bes' aes''>1 \BarDouble          \break \newSpacingSection
\revert Score.SpacingSpanner.spacing-increment
  \once \override Score.RehearsalMark #'self-alignment-X = #center \mark \markup {\line\large{\bold \box \fontsize #6 "A2"}
} <f' aes' ees''>2 <bes' aes''>\AutoBarline
         <f' aes' ees''> <bes' aes''>\AutoBarline
         <ees' c''> <d' fis' ais' c''>\AutoBarline
         <ees' c''> <c'' e'' gis''>\AutoBarline
%25
         <f' ees''>1\AutoBarline
         <g' bes' f''>2 <c'' bes''>\AutoBarline
         
            \set Score.repeatCommands = #'((volta ""))
             <f' aes' ees''>2 <bes' aes''>\AutoBarline
         \once \override ChordName.extra-offset =#'(1 . -2) < \tweak  font-size #6 ees'  \tweak  font-size #6 c''>4 \once \override ChordName.extra-offset =#'(1.5 . -2) < \tweak  font-size #6 bes' aes''>4 \once \override ChordName.extra-offset =#'(2 . -2) < \tweak  font-size #6 bes' des'' aes''>4 ^\markup\scale #'(1.5 . 1.5)\column{\line\large{back to \bold \box A}
} \tweak ChordName.extra-offset  #'(0.5 . -2) < \tweak  font-size #6 c'' bes''>4 
\set Score.repeatCommands = #'((volta #f))
 \bar "||" \break         \skip 1 \bar ""%30
         \skip 1 \bar ""         \skip 1\AutoBarline
         
            \set Score.repeatCommands = #'((volta ""))
            <> ^\markup\scale #'(1.5 . 1.5)\column{\line\large{last time}
} <f' aes' ees''>2 <bes' aes''>\AutoBarline
         <ees' c''>1\AutoBarline
         <des' ces''>2 <ees' c''> 
\set Score.repeatCommands = #'((volta #f))
 \BarDouble }



\addQuote "Unnamed Mvmnt 2" \MvmntIIVoiceI



%Default Score Layout
\header{DenemoLayoutName = "Default Score Layout"}

\header {
tagline = \markup {"/home/rshann/musicScores/dom/As time goes by v 2.denemo" on \simple #(strftime "%x" (localtime (current-time)))}
title =  \markup { \with-url #'"scheme:(d-ScoreTitle)"  "As Time Goes By"}


}
\layout {indent = -7}
#(set-default-paper-size "a4")
#(set-global-staff-size 24)
\paper {

print-all-headers = ##t

page-limit-inter-system-space = ##t
page-limit-inter-system-space-factor = 1.2
system-system-spacing #'padding = #3

}
\void 
\score { %Start of Movement
 <<

<< \override Score.BarNumber.break-visibility = #end-of-line-invisible
                \set Score.barNumberVisibility = #(every-nth-bar-number-visible 10000) 
<< 
<< \set Score.proportionalNotationDuration = #(ly:make-moment 1/4)

<< 
%Start of Staff
\new Staff = "Unnamed"  << \set Staff.instrumentName = \markup {  \with-url #'"scheme:(d-GoToPosition 1 1 1 1)(let ((choice (d-PopupMenu (list (cons (_ \"Change Name\") d-InstrumentName)   (cons (_ \"Change Indent\") d-ScoreIndent)))))
                    (if choice (choice)))    " \transparent {"Unnamed" }}
 \new Voice = "VoiceIMvmntI"  { 
  \clef treble 
{ \key c \major}
{ \time 4/4 }
 \MvmntIVoiceI                } %End of voice
                
>>
%End of Staff

>>
>>
>>
>>
>>

\header {
title = ##f
instrument = ##f

}

} %End of Movement

\score { %Start of Movement
 <<

<< \override Score.BarNumber.break-visibility = #end-of-line-invisible
                \set Score.barNumberVisibility = #(every-nth-bar-number-visible 10000) 
<< 
<< \set Score.proportionalNotationDuration = #(ly:make-moment 1/4)

<<  \new ChordNames \with {
chordNameExceptions = #(append
  (sequential-music-to-chord-exceptions MvmntIVoiceI #t)
  ignatzekExceptions)
                 \consists "Bar_engraver"
                 \consists "Script_engraver"
                 \consists "Text_engraver"
                 \consists "Time_signature_engraver"
                 \consists "Multi_measure_rest_engraver"
                 \override ChordName.font-size=#8
                 \override ChordName.extra-offset = #'(0 . -2)
                 \override BarLine.bar-extent = #'(-2 . 2)
                 \override BarLine #'hair-thickness = #6     
                 \numericTimeSignature 
            }
                                 

 \MvmntIIVoiceI
>>
>>
>>
>>
>>

\header {
title = ##f
instrument = ##f
composer = \markup { \with-url #'"scheme:(d-GoToPosition 2 1 1 1)(d-MovementComposer)" "Herman Hupfeld"}
subsubtitle = \markup { \with-url #'"scheme:(d-GoToPosition 2 1 1 1)(d-MovementSubtitle)" "in F"}

}

\layout {
\set noChordSymbol = \markup \smaller \bold  "/"
}

} %End of Movement



_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to