Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: stargazer am Sonntag, 10. Januar 2010, 19:41
-
Hallo,
seit der Notenergänzung xyz wird die letzte Blattzeile des Notensystems über den copyright-Eintrag aus dem "\header" gedruckt.
Ich habe schon versucht dem Problem mit bottom-margin und foot-separation im \paper-Block beizukommen; jedoch ohne Erfolg.
Hat jemand eine Idee, wo ich das Problem anpacken kann?
Hier einige Randdaten:
V2.13.10
\book-Block:
\book
{
\header
{
% Widmung - erste Seite oben in der Mitte
dedication = " "
% Musiktitel - mittig unterhalb der Widmung
title = "****"
% Untertitel - mittig unter dem Musiktitel
subtitle = "TUBA SOLO"
% Unteruntertitel - mittig unter dem Untertitel
subsubtitle = " "
% Name des Dichters - links unter dem Untertitel
poet = " "
% Name des Komponisten -rechts unter dem Untertitel
composer = "******"
% Taktart, Metrum - links unter dem Dichter
meter = " "
% Opus/Werk - rechts unterhalb des Komponisten
opus = " "
% Bearbeitet von - rechts unter Opus
arranger = " "
% Name des Instruments - mittig unter arranger
instrument = " "
% Name des Stücks - links unter dem Instrument
piece = " "
% Titel immer auf neuer Seite beginnen ##t (ja) oder ##f (nein)
breakbefore = ##t
% Copyright in der Fußzeile
copyright = "Copyright: XXXXXXXXXX"
% Fußzeile - mittig in der Fußzeile
%tagline = ""
}
\score
{
\new Staff = "VoiceAndTuba"
<<
\new Voice = "SingStimme" { \voiceOne << \ControllLiedsatz \VoiceO >> }
\new Voice = "Tuba" { \voiceTwo << \Tuba >> }
\new Lyrics \with { alignAboveContext = "VoiceAndTuba" } \lyricsto "SingStimme" \TubaVoice
>>
}
\score
{
\new Staff
<<
\set Score.currentBarNumber = #65
\bar "" % Permit first bar number to be printed
\new Voice { \LipBeat }
>>
}
\paper
{
%indent = #0
#(set-paper-size "a4")
%bottom-margin = 3\cm
%foot-separation = 4\cm
indent = #0
}
\layout
{
\context
{
% a little smaller so lyrics
% can be closer to the staff
%\Staff
%\override VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
}
}
}
BTW - Der Fehler tritt noch innerhalb des ersten scores auf.
Viele Grüße
Dieter
= 4\cm
-
Bitte poste doch den kompletten Code! Es fehlen die Variablen "ControllLiedsatz", "VoiceO", "Tuba", "TubaVoice" und "LipBeat".
-
OK & merci
\include "deutsch.ly"
\version "2.13.10"
ControllLiedsatz = {
\tempo "Slow" 4 = 56
\time 4/4
s2 s2 | %01
s2 s2 | %02
s2 s2 | %03
s2 s2 | %04
s2 s2 | %05
s2 s2 | \break
s2 s2 | %07
s2 s2 | %08
s2 s2 | %09
s2 s2 | \break
s2 s2 | %11
s2 s2 | %12
s2 s2 | \break
s2 s2 | %14
s2 s2 | %15
s2 s2 | \break
s2 s2 | %17
s2 s2 | %18
s2 s2 | \break
\time 2/2
s2 s2 | %20
s2 s2 | %21
s2 s2 | %22
s2 s2 | %23
s2 s2 | \break
s2 s2 | %25
s2 s2 | %26
s2 s2 | %27
s2 s2 | %28
s2 s2 | %29
s2 s2 | %30
s2 s2 | %31
s2 s2 | \break
s2 s2 | %33
s2 s2 | %34
s2 s2 | %35
s2 s2 | %36
s2 s2 | %37
s2 s2 | %38
s2 s2 | %39
s2 s2 | \break
s2 s2 | %41
s2 s2 | %42
s2 s2 | %43
s2 s2 | %44
s2 s2 | %45
s2 s2 | %46
s2 s2 | %47
s2 s2 | \break
s2 s2 | %49
s2 s2 | %50
s2 s2 | %51
s2 s2 | %52
s2 s2 | %53
s2 s2 | %54
s2 s2 | %55
s2 s2 | \break
s2 s2 | %57
s2 s2 | %58
s2 s2 | %59
s2 s2 | %60
s2 s2 | %61
s2 s2 | %62
s2 s2 | %63
s2 s2 | \break
}
VoiceSolo =
{
%1
b1^"Sing top note"\glissando\mf |
ces\glissando |
b2\fermata r |
b1\glissando |
fes'\glissando |
b,2\fermata r2 |
%7
b2\glissando d\glissando |
f ~ f4\glissando b8 ~ b |
b4 ~ b ~ b8[g] g \grace {as16 (g} f8) |
g4 ~ g8 es es \grace {f16 (es} des8) es4\fermata |
%11
\times 2/3 {r8 es f} \times 2/3 {ges8\(as \once \override Glissando #'minimum-length = #4 \once \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods a\glissando} b4 ~ \times 2/3 {b8 as(g)\)} |
ges8\( ~ ges ~ \times 2/3 {ges8 f (es)} des4\) ~ \(des16 es f des |
es4\fermata\) ~ es r8 es8 \times 2/3 {es8\( (b') b16 (c)} |
%14
des2 ~ des8\) c16 (b) \times 2/3 {{b8 \grace {c16 (b} as8) as16 b}} |
b2 ~ b8\( es, es( f) |
\times 2/3 {ges16 as b} b8 ~ b4 ~ b as8 ges |
%17
ges2 f8 es des4 ~ |
des8\)[es\(] f8[ \grace {ges16 (f} des8)] des es es4 ~ |
es1 ~ |
%20
es8\) r8 r4 r4 es8 f |
ges4 f8 es des4\( f |
es2 ~ es8\) r8 es8[f] |
ges4 f8 es des4\( f |
es2 ~ es8\) r8 r4 |
%25
es2 es4 es8 f |
ges4 f8 es des4 f |
es2 es4 es |
des4 es es r4 |
es2 es4 es8 f |
ges4 f8 es des4 f |
es2 es4 es |
des es es r4 |
%33
es2 es4 es |
des es es2 |
ges f4 es |
des es es2 |
es2 es4 es |
des es es2 |
ges2 f4 es |
des es r4 es8 ges |
%41
as2 as4 ges |
as2 as4 b |
ges es es des |
es2 ~ es8 r8 ges4 |
as2 as4 ges ||
as2 as4 a |
b4 r4 b2 |
as4 ges es des |
%49
es2 es4 des8 es |
ges4 ges as2 |
es2 es4 des8 es |
as8 es ges2 des4 |
es2 es4 des8 es |
ges4 ges as2 |
b4 as8 ges es4 des |
es2 es4 r4 |
%57
es2 es4 des8 es |
ges4 ges as2 |
es2 es4 des8 es |
as8 es ges2 des4 |
es2 es4 des8 es |
ges4 ges as2 |
b4 as8 ges es4 des |
es2 es4 r4 |
}
TubaVoice = \lyricmode
{
%01
_ | _ | _ | O | E | O |
%07
\set fontSize = #-1
O E
\set ignoreMelismata = ##t O O E O
E O _ _ OE O
E E O OE O EOE
%11
E O _ _ E O _ E O
E O _ _ _ E O _ E O
E O _ O E O _
%14
_ _ _ _ OE O O E
O E _ _ _
_ O E O E O _ _
%17
O _ _ O
E _ E O O E O
E
%20
O _ _
_ _ _ O E
OE O _ _
_ _ _ O E
OE O
%25
OE O _ _
EO _ _ O E
OE _ _
_ _ _
OE O _ _
EO _ _ O E
OE _ _
_ _ _
%33
}
TubaSolo =
{
%1
b1_"Very long gliss" ~ |
b ~ |
b2. r4 |
b1 ~ |
b ~ |
b2. r4 |
%7
b1_"Slightly faster" ~ |
b2\< ~ (b4\glissando es, |
es2\!\f) ~ es8[es] ~ es \grace {as16 (g} des8) |
es4 es8 es es \grace {as16 (g} des8) es4_"Long!" |
%11
\times 2/3 {r8 es f} \times 2/3 {ges8 as b ~} b4 ~ \times 2/3 {b8 as ges} |
ges4 ~ \times 2/3 {ges8 f es} des4\> ~ des16 es f des |
es2\mp\! r8 es8\f \times 2/3 {es4 es16([f])} |
%14
ges2 ~ ges8 f16 es \times 2/3 {es8 \grace {f16 (es} des8) des16 es} |
es2 ~ es8 es es(f\f) |
\times 2/3 {ges16 as b} b8 ~ b2 as8 ges |
%17
ges2 f8 es des4 ~ |
des8[es] f8[ \grace {ges16 (f} des8)] des es es4 ~ |
es1\< ~ |
%20
es8\!\f r8 r4 r4 es8 f |
ges4 f8 es des4 f |
es2 ~ es8 r8 es8[f] |
ges4 f8 es des4 f |
es2 ~ es8 r8 r4 |
%25
es2 es4 es8 f |
ges4 f8 es des4 f |
es2 es4 es |
des4 es es r4 |
es2 es4 es8 f |
ges4 f8 es des4 f |
es2 es4 es |
des es es r4 |
%33
es2 es4 es |
des es es2 |
ges f4 es |
des es es2 |
es2 es4 es |
des es es2 |
ges2 f4 es |
des es r4 es8 ges |
%41
as2\mp as4 ges |
as2 as4 b |
ges es es des |
es2 ~ es8 r8 ges4 |
as2 as4 ges ||
as2 as4 a |
b4 r4 b2 |
as4\< ges es des\! |
%49
es2\ff es4 des8 es |
ges4 ges as2 |
es2 es4 des8 es |
as8 es ges2 des4 |
es2 es4 des8 es |
ges4 ges as2 |
b4 as8 ges es4 des |
es2 es4 r4 |
%57
es2\f es4 des8 es |
ges4 ges as2 |
es2 es4 des8 es |
as8 es ges2 des4 |
es2 es4 des8 es |
ges4 ges as2 |
b4 as8 ges es4 des |
es2 es4 r4 | \bar "||"
}
Lip =
{
\override NoteHead #'style = #'cross
%65
as4 as8 as es'4 as,8 as |
as8 [as] as as es' [as,] as as |
as4 as8 as es'4 as,8 as |
as4 as8 as es' [as,] as as |
as4 as8 as es'4. as,8 |
as4 as8 as es' [as,] as as | \break
%71
as4 as8 as es'4. as,8 |
as8 [as] as4 es' r4 |
as,4. as8 es'4. as,8 |
as8 as as4 es'8 [as,] as4 |
as8 [as] as as es' as, as4 |
as8 as as4 es' r4 | \break
%77
\revert NoteHead #'style es,,2->\> \override NoteHead #'style = #'cross es''4.->\! as,8-> ~ |
as8 as4 as8 es'4 as, |
\revert NoteHead #'style es,2->\> \override NoteHead #'style = #'cross es''4\! r4 |
as,8 as as4 es' r4 |
\revert NoteHead #'style es,,2->\> \override NoteHead #'style = #'cross es''4.\! as,8 ~ |
as as4 as8 es'4 as, |
\revert NoteHead #'style es,2->\> \override NoteHead #'style = #'cross es''4\! r4 |
as,8 as as4 es'-> r4 | \bar "|."
}
VoiceO =
{
\clef bass
\key es \major
\relative c
\VoiceSolo
}
Tuba =
{
\clef bass
\key es \major
\relative c
\TubaSolo
}
LipBeat =
{
\clef bass
\key es \major
\relative c
\Lip
}
\book
{
\header
{
% Widmung - erste Seite oben in der Mitte
dedication = " "
% Musiktitel - mittig unterhalb der Widmung
title = "***"
% Untertitel - mittig unter dem Musiktitel
subtitle = "*******"
% Unteruntertitel - mittig unter dem Untertitel
subsubtitle = " "
% Name des Dichters - links unter dem Untertitel
poet = " "
% Name des Komponisten -rechts unter dem Untertitel
composer = "**************"
% Taktart, Metrum - links unter dem Dichter
meter = " "
% Opus/Werk - rechts unterhalb des Komponisten
opus = " "
% Bearbeitet von - rechts unter Opus
arranger = " "
% Name des Instruments - mittig unter arranger
instrument = " "
% Name des Stücks - links unter dem Instrument
piece = " "
% Titel immer auf neuer Seite beginnen ##t (ja) oder ##f (nein)
breakbefore = ##t
% Copyright in der Fußzeile
copyright = "Copyright: XYZ"
% Fußzeile - mittig in der Fußzeile
%tagline = ""
}
\score
{
\new Staff = "VoiceAndTuba"
<<
\new Voice = "SingStimme" { \voiceOne << \ControllLiedsatz \VoiceO >> }
\new Voice = "Tuba" { \voiceTwo << \Tuba >> }
\new Lyrics \with { alignAboveContext = "VoiceAndTuba" } \lyricsto "SingStimme" \TubaVoice
>>
}
\score
{
\new Staff
<<
\set Score.currentBarNumber = #65
\bar "" % Permit first bar number to be printed
\new Voice { \LipBeat }
>>
}
\paper
{
%indent = #0
#(set-paper-size "a4")
%bottom-margin = 3\cm
%foot-separation = 4\cm
indent = #0
}
\layout
{
\context
{
% a little smaller so lyrics
% can be closer to the staff
%\Staff
%\override VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
}
}
}
BTW - am "ControllLiedsatz" liegt es auch nicht, den habe ich schon mal testweise aus dem score genommen.
Viele Grüße
Dieter
-
Hallo Dieter,
ich kann den "Fehler" leider nicht reproduzieren, weil es bei mir einwandfrei kompiliert. Ich interpretiere deine Beschreibung so, dass die letzte Notenzeile der ersten Seite den Copyright-Vermerk überlagert, richtig?
Mein Lily (2.12.3) meckert zumindest am \paper-Block rum: du solltest diesen außerhalb des \book-Blocks notieren oder den \book-Block gänzlich weglassen.
Bei solch umfangreichem Code kannst du ihn ruhig als Datei anhängen …
Grüße, Robert
-
Hallo Robert,
Ich interpretiere deine Beschreibung so, dass die letzte Notenzeile der ersten Seite den Copyright-Vermerk überlagert, richtig?
Bingo ;D
Liegt dann offensichtlich an der V2.13.10 - werde mal drüber schlafen, ob ich wieder die 12-er installiere, oder auf die nächste Entwicklerversion warte.
Die book-Sektion war eigentlich mehr ein Versuch, dem Problem beizukommen, werde ich wieder rausmachen.
Viele Grüße
Dieter
-
Komisch. Das Problem sind die ungenutzte Sachem im \header: dedication, subsubtitle, poet, meter, opus, arranger, instrument, piece. Wenn die nicht mehr da sind, da gibt's kein Problem.
-
Ich hab' auch heut ein Bug and die Bug-liste gemeldet
-
Heißt im Klartext, die ungenutzten Header-Angaben zu deaktivieren (subsubtitle = ##f) oder gar nicht erst zu notieren?
Wenn ich eine der Angaben nicht brauche, lasse ich diese immer weg (bis auf "tagline = ##f", um sie zu unterbinden).
-
Also der Hinweis mit dem Header war Gold wert ;D
Ist aber trotzdem ein Bug der V2.13.10.
Ich habe noch etwas weiter experimentiert - hier die Ergebnisse (auch wenn es Banalitäten sind):
- Die " " werden als Leerzeichen und damit als Platzhalter interpretiert; mit "" trat das Problem nicht auf.
- Werden alle Header-Felder mit ASCI-Zeichen gefüllt, ist der Fehler ebenfalls da (und das sollte eigentlich erlaubt sein).
- Je mehr Header-Felder genutzt werden, desto mehr nähert sich das Notensystem dem Copyright.
- Das Problem trat erst auf, nachdem sich die Abstände der Systeme durch Lyrics, Slurs etc. vergrößert haben.
Noch eine Frage zu dem von mir verwendeten "ControllLiedsatz" - ich habe keine Ahnung woher ich den Tipp her habe. Finde ich irgendwo in der Doku etwas darüber, bzw. unter welchem Namen?
Ich finde es recht praktisch, an einer zentralen Stelle über mehrere Stimmen oder Staffs hinweg die Zeilenumbrüche festlegen zu können.
Unsicher bin ich mir, wo im Score ich den "/ControllLiedsatz" platzieren soll/kann. So wie ich es gemacht habe, ist es eine Verkettung mit VoiceO, also erst der Inhalt vom ControllLiedsatz danach der Inhalt von VoiceO, aber diese Theorie stimmt so nicht :)
\score
{
\new Staff = "VoiceAndTuba"
<<
\new Voice = "SingStimme" { \voiceOne << \ControllLiedsatz \VoiceO >> }
\new Voice = "Tuba" { \voiceTwo << \Tuba >> }
\new Lyrics \with { alignAboveContext = "VoiceAndTuba" } \lyricsto "SingStimme" \TubaVoice
>>
}
Viele Grüße
Dieter
-
Ich empfehle allen das Handbuch zum Lernen komplett durchzulesen. Es antwortet die meisten Fragen, und gibt einem die Werkzeuge um Antworte selbst zu finden. Egal ob die 2.12 oder 2.13 Dokumentation (aber die 2.13 Dokumentation haben eine mehr umfangreicher Übersetzung), das Handbuch zum Lernen hat fast alles drin.
Auch, ausser das irgendwelche Befehl, bzw, Funktion nicht im aktuellen stabile-Version nicht vorhanden ist, rate ich gegen Benutzung von die unstabile Versionen. (Aber in diesem Fall ist es gut, das es eine ziemliche grobe Fehler der neuen Abstands-Rechnung gefunden hat.
-
Oh, und wurde als Issue 974 (http://code.google.com/p/lilypond/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Priority%20Stars%20Owner%20Summary&sort=&id=974) zum Tracker zugefügt.
-
Na ja - bislang hatte ich mit den jeweiligen Developerversionen keine Probleme - und unstabil (im Sinn anderer Programmtestversionen) kamen sie mir auch nicht vor.
Um in der Doku mit meinem "ControllLiedsatz" weiter zu kommen fehlt mir aber offensichtlich das passende Stichwort für die Suche.
Kannst du mir mit einem Stichwort auf die Sprünge helfen?
Viele Grüße
Dieter
-
Es gibt keine Stichworte zu suchen für ControllLiedsatz. Was ich empfehlen wollte ist dass du das Handbuch zum Lernen einmal komplett durchliest.
-
Handbuch zum Lernen (Learning Manual – LM) und anschließend Notationsreferenz (Notation Reference – NR) lesen kann gar nicht oft genug wiederholt werden. Ich betone: lesen und nicht überfliegen. Alles ist kompakt, weswegen jeder kleine Satz genauso wichtig ist wie jeder lange Abschnitt. Eingehende Lektüre beider Dokumente stellt nämlich u.a. eines klar:
Der Ausdruck { \ControllLiedsatz \VoiceO } entspricht zwei nacheinander verarbeiteten Variablen.
Der Ausdruck { << \ControllLiedsatz \VoiceO >> } entspricht zwei gleichzeitig verarbeiteten Variablen.
Ganz allgemein: Alles innerhalb << >> steht für parallel passierende Ereignisse. Das muss endlich mal klar sein – und beantwortet auch deine Frage, wo "\ControllLiedsatz" in deiner \score-Definition zu notieren ist: innerhalb von << >> gemeinsam mit der Musikdefinition (wobei die Reihenfolge, weil gleichzeitig stattfindend, keine Rolle spielt). Im übrigen taugt diese "zentrale Stelle" zu weit mehr als nur Zeilenumbrüchen: man kann dort RehearsalMarks (\mark), Tempoangaben, globale Overrides und alles andere, was für alle Stimmen gelten soll, definieren! (In der Doku ist das unter "4.3.7 Using an extra voice for breaks" beschrieben; was alles möglich ist, liest und lernt man an anderen Stellen und beim ausprobieren.)
Der Bug durch Headerangaben ist sicherlich blöd, aber es ist nichts neues, dass " " ein Leerzeichen produziert und "" nicht. Es ist eindeutig dokumentiert, dass innerhalb der [doppelten] Anführungszeichen Text als Text interpretiert wird. Du hast aber völlig Recht, dass selbst bei belegten Headervariablen das gewohnte Spacing korrekt funktionieren muss.
Dank an dich und alle anderen Versionstester, die solche neu-alten Bugs an’s Tageslicht bringen! Mein bescheidener Beitrag dazu ist, dass es mit der letzten stabilen Version noch ging ;)
Grüße, Robert
-
Der Ausdruck { << \ControllLiedsatz \VoiceO >> } entspricht zwei gleichzeitig verarbeiteten Variablen.
Ups - hab ich ignoriert - sind ja auch in spitzen Doppelklammern, und werden damit parallel bearbeitet :-[
Damit ist alles klar - merci :D
Viele Grüße
Dieter