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