Hallo Manuela,
weiter unten der veränderte Inhalt Deines 01.ly-files. Es kompiliert jetzt auf meinem nicht besonders starken laptop innerhalb von fünf Minuten.
Wie schon vermutet lag es im wesentlichen an der Unzahl neu erschaffener Contexte.
Setze Contexte fort (wenns geht), erschaffe nicht jedesmal neue.
Darüberhinaus habe ich `MeinHeader' so geändert, daß nicht eine extra Leerzeile entsteht, nur um ein markup zu platzieren, mit der Notwendigkeit diese Zeile dann wieder weitgehend unsichtbar zu machen.
`annotateKey' ist verändert, um zusätzlichen Text vor und hinter die ausgelesene Tonart zu setzen.
Btw, das original `format-key-info-markup' gab auch das ausgelesene Tongeschlecht zurück. Warum hast Du es geändert nur um dann das Tongeschlecht manuell anzugeben? (Hab' ich aber nicht geändert.)
`multipleTransposes' habe ich durch eine andere procedure ersetzt, um einen transpoierbaren pitch in ein markup zu kriegen. Das erfolgt ganz am Ende und ist tatsächlich eine weitere Möglichkeit sowas ins markup zu bekommen, allerdings ist jegliche Variabilität natürlich dahin und deshalb nur in einem Sonderfall wie diesem einsetzbar.
Inwieweit es möglich wäre in diesem Deinem Sonderfall den engraver durch ähnliche Funktionalität zu ersetzen habe ich nicht erforscht.
Ganz generell habe ich die Geschichte nur kompilierbar gemacht.
Du wirst feststellen, daß sich z.B. das horizontale Spacing geändert hat, etc.
Aber einerseits wollte ich Dir nicht vorgreifen, andererseits betrachte es Hausaufgabe

Zum Beispiel all diese zusätzlichen Klammern.
Du weißt, das <<>>/{} eine Bedeutung haben! Das sind nur Kleinigkeiten aber in der Masse erhöhen sie irgenwann die Kompilierungszeit ...
Soweit das (unvollständige

) change-log. Hier der code:
\version "2.19.37"
#(use-modules (scm display-lily))
\language "deutsch"
\include "myExceptions.ily"
\include "myScheme.ily"
\include "myChordList.ily"
#(set-global-staff-size 18)
#(define format-key-info-markup
(lambda (root-1 scale-1 root-2 scale-2 root-3 scale-3)
(markup
;#:bold
(let ((german-strg
(format #f "~a"
root-1
(symbol->string scale-1))))
(if (eq? scale-1 'Moll)
german-strg
german-strg)))))
myContext = \layout {
\context {
\Score
\remove "Bar_number_engraver" % Taktnummerierung
\override RehearsalMark.self-alignment-X = #LEFT
\override KeyCancellation.break-visibility = #'#(#f #f #f)
\override NonMusicalPaperColumn.page-break-permission = ##f
proportionalNotationDuration = #(ly:make-moment 1/2)
}
\context {
\ChordNames
chordNameLowercaseMinor = ##f
chordRootNamer = #germanChords
chordNoteNamer = #note-name->german-markup
\override ChordName.font-name = #"Monospac821 BT"
chordNameExceptions = #chExceptions
\override ChordName.font-size = #1
\override ChordName.font-series = #'bold
}
\context {
\Staff
\remove "Time_signature_engraver"
\override TextScript.direction = #UP
\override KeySignature.break-visibility = #begin-of-line-visible
printKeyCancellation = ##f
explicitKeySignatureVisibility = ##(#f #f #t)
}
\context {
\Voice
\override TextScript.padding = #0
\override TextScript.direction = #UP
\override TextScript.font-size = #3
\override TextScript.font-series = #'bold %normal
}
}
annotateKey =
#(define-music-function (mrkp-1 mrkp-2)(markup? markup?)
#{
\once \override TextScript.before-line-breaking =
#(lambda (grob)
(ly:grob-set-property! grob 'text
(markup #:line (mrkp-1 (ly:grob-property grob 'text) mrkp-2))))
\once \override TextScript.annotate-key = ##t
#})
MeinHeader =
#(define-music-function (Pitch1 Pitch2 mkup mus)
(ly:pitch? ly:pitch? markup? ly:music?)
#{
\context Voice = "up" \with { \consists #annotate-key-engraver }
{
\break
\undo \omit Staff.StaffSymbol
\key $Pitch2 \major
\annotateKey
\markup #(format #f "Mehrklänge mit Grundton ~a in "
(string-upcase (symbol->string (note-name->lily-string Pitch1))))
$mkup
%\grace s1
$mus
}
#})
MehrKlang =
#(define-music-function (tonic)(ly:pitch?)
#{
\context Staff = "main" {
\MeinHeader $tonic g "-Dur"
<<
\context Voice = "up"
{
\key g \major
\CChordsGDur \bar "|." \break
}
\context ChordNames = "chrds" \CChordsGDur
>>
\MeinHeader $tonic c "-Dur"
<<
\context Voice = "up"
{
\key c \major
\CChordsCDur \bar "|." \break
}
\context ChordNames = "chrds" \CChordsCDur
>>
\MeinHeader $tonic f "-Dur"
<<
\context Voice = "up"
{
\key f \major
\CChordsFDur \bar "|." \break
}
\context ChordNames = "chrds" \CChordsFDur
>>
\MeinHeader $tonic b "-Dur"
<<
\context Voice = "up"
{
\key b \major
\CChordsBDur \bar "|." \break
}
\context ChordNames = "chrds" \CChordsBDur
>>
\MeinHeader $tonic es "-Dur"
<<
\context Voice = "up"
{
\key es \major
\CChordsEsDur \bar "|." \break
}
\context ChordNames = "chrds" \CChordsEsDur
>>
\MeinHeader $tonic as "-Dur"
<<
\context Voice = "up"
{
\key as \major
\CChordsAsDur \bar "|." \break
}
\context ChordNames = "chrds" \CChordsAsDur
>>
\MeinHeader $tonic des "-Dur"
<<
\context Voice = "up"
{
\key des \major
\CChordsDesDur
\bar "|."
\stopStaff
\omit Staff.StaffSymbol
s1 *5 s1 s1 s1
\once \omit Staff.BarLine
\startStaff
\break
}
\context ChordNames = "chrds" \CChordsDesDur
>>
\pageBreak
}
#})
\book {
%% book paper, which is inherited by all children bookparts
\paper {
#(set-paper-size "a4")
ragged-last-bottom = ##t
line-width = 190
left-margin = 10
bottom-margin = 10
top-margin = 10
ragged-right = ##f
%annotate-spacing = ##t
%system-system-spacing.basic-distance = #10
%system-system-spacing.minimum-distance = #8
%system-system-spacing.extra-distance = #0
%system-system-spacing.padding = #1
%score-system-spacing.basic-distance = #0
%last-bottom-spacing.basic-distance = #20
print-first-page-number = ##f
indent = 0
}
\header {
title = ""
%copyright = "Copyright Manuela Gößnitzer"
parttagline = "Part tagline"
copyright = \markup \fill-line {
\abs-fontsize #9 { \FootLeft }
% \abs-fontsize #7.0 { \italic { \FootCenter } }
\abs-fontsize #9 { \FootRight }
}
copyright =\markup \abs-fontsize #7 "Copyright Manuela G."
tagline = ""
}
\bookpart {
%% a different page breaking function may be used on each part
\paper { page-breaking = #ly:minimal-breaking }
\header {
%subtitle = "Alle leitereigenen Drei-, Vier- und Fünfklänge"
title = \markup \fontsize #10 \center-column
{
" " " "
\fontsize #1.4 {
"(Fast Alle)"
"Mehrklänge"
"zu"
"einem Grundton"
{ "in" }
"verschiedenen"
"Tonleitern"
}
}
copyright = \markup \fill-line {
\abs-fontsize #9 { \FootLeft }
% \abs-fontsize #7.0 { \italic { \FootCenter } }
\abs-fontsize #9 { \FootRight }
}
tagline = ""
}
%\markup \fontsize #20 { The first book part }
%\markup { a page break }
\pageBreak
\markup { first part last page }
%\markuplist \table-of-contents
%\markup \wordwrap { with ragged-last-bottom (see the space below this text) }
}
\bookpart {
\score {
%\multipleTransposes { c g d a e h, fis ges des as es b f } \MehrKlang
$(make-sequential-music
(map
(lambda (p)
#{ \transpose c $p \MehrKlang $(ly:pitch-transpose p #{ c #}) #})
(event-chord-pitches #{ <c g d a e h, fis ges des as es b f> #})))
}
}
\myContext
}
HTH,
Harm
P.S.
Bitte ändere den Titel dieses Threads.
Er ist ja ganz witzig, aber im Archiv kaum wiederfindbar.
Ist aber nicht Absicht, sondern schlichte Dummheit. Oder Unfähigkeit.
Weder noch!