Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: fairsein am Sonntag, 18. März 2012, 16:39
-
Hallo liebe Forengemeinde,
Ich brauch eure Hilfe. Ich möchte ein Songbuch erstellen, aber bekomme es nicht hin. Ich habe schon das hier (https://liarchiv.joonet.de/index.php?topic=1057.0) probiert, aber das funktioniert irgendwie nicht. Meine Lilypond- Dateien haben eine ganz einfache Struktur, die wie folgt aussieht:
\version "2.14.2"
#(set-global-staff-size 23 )
\paper{
page-top-space= 2\mm
top-margin= 5\mm
after-title-space= 2\mm
head-separation = 2\mm
ragged-last-bottom = ##f
}
\header
{
dedication = "Interpret:"
title = "Titel"
poet= "Text"
composer = "Musik"
meter = "Orginal- Tonart"
arranger = "Notenbearbeitung"
}
<<
\chords
{\set majorSevenSymbol = \markup { "maj7" }
c1
}
\relative c'
{\time 4/4 \tempo 4 =106
c4 c c c
}
\addlyrics
{\set stanza = "1."
da da da da
}
>>
Nun wollte ich diese Dateien in eine Große packen. Allerdings hatte ich dann dort das Problem, dass ich dort nicht immer das richtige Format für die Noten hatte. Ich hoffe, dass ihr mir helfen könnt. Wenn euch noch Daten fehlen, fragt einfach.
Gruß fairsein
-
Hallo fairsein,
herzlich willkommen im Forum!
Bitte beschäftige dich vorab mit diesem Beitrag (https://liarchiv.joonet.de/index.php?topic=678.msg3692#msg3692).
Grüße, Robert
-
Danke, das sieht viel versprechend aus. Ich werde mir das mal anschauen.
Gruß fairsein
-
Danke für den Hinweis. Das hat so weit geklappt. Allerdings ist nun das Problem, dass ich mit #(set-global-staff-size 20) immer alles verändere. Wie kann ich das nun in den einzelnen Dateien machen? Ich habe es so versucht:
\version "2.14.2"
#(set-global-staff-size 23 )
\paper{
page-top-space= 2\mm
top-margin= 5\mm
after-title-space= 2\mm
head-separation = 2\mm
ragged-last-bottom = ##t
}
<<
\chords
{...}
\relative c'
{...}
\layout {
#(layout-set-staff-size 15)
}
\addlyrics
{...}
>>
Das erzeugt aber folgenden Fehler:Der den uich will.ly:217:0: Fehler: syntax error, unexpected \layout
\layout {
Der den uich will.ly:218:5: Fehler: GUILE signalisierte einen Fehler für den hier beginnenden Ausdruck
#
(layout-set-staff-size 15 pt)
Unbound variable: pt
Der den uich will.ly:25:0: Fehler: Fehler gefunden, musikalischer Ausdruck wird ignoriert
Ich hoffe, ihr könnt mir helfen.
Gruß fairsein
-
das \layout { … } gehört nicht in das << … >> konstrukt!
-
Die Fehlermeldung passt nicht zum Code! Im Code steht eindeutig #(layout-set-staff-size 15); die Fehlermeldung meckert an der zusätzlichen Einheit pt: Unbound variable: pt
Wenn Konsolenausgaben gepostet werden, dann bitte auch 1:1 den Code posten, der genau diese Fehlermeldung erzeugt!
Grüße, Robert
-
So. Der Fehler, den Robert angesprochen hatte ist weg. Aber dieser Fehler ist noch da:
Der den uich will.ly:262:0: Fehler: Für Papier-Block wird \paper benötigt
\layout {
Ich habe das \layout jetzt wie folgt eingebunden:
\version "2.14.2"
\paper{
page-top-space= 2\mm
top-margin= 5\mm
after-title-space= 2\mm
head-separation = 2\mm
ragged-last-bottom = ##t
}
<<
\chords
{...}
\relative c'
{...}
\addlyrics
{...}
>>
\layout {
#(layout-set-staff-size 15)
line-width = #150
}
Dabei wird nun der \paper- Block im \bookpart unwirksam...
Danke für eure Hilfe schon bis jetzt.
Gruß fairsein
-
Dabei wird nun der \paper- Block im \bookpart unwirksam...
wo ist der \bookpart?
es ist wirklich wichtig den genauen code anzugeben, sonst kann man nur mutmassen, was da schief läuft!
gruss
ding-dong
-
Oh. Der ist in einer anderen Datei: Genau genommen hier:
% JETZT NEHMEN WIR DAS BUCH AUS DEM REGAL:
\book {
% Welche gemeinsamen Seiteneinstellungen hat das BUCH?
% (Format, Ausrichtung und staff size sind schon auf oberster Ebene definiert.)
\paper {
left-margin = 2\cm
line-width = 17\cm
ragged-last-bottom = ##f
first-page-number = #-1 % Titelblatt = -1, dann [leere] Rückseite = 0, dann erst Seite "1"
% optional globales even[/odd]Header[/Footer]Markup
% falls Fonts umdefiniert werden: hier! (myStaffSize = ... #(define fonts ...) etc.)
}
% Welche gemeinsamen Header-Optionen sollen für das BUCH gelten?
\header {
tagline = ##f
breakbefore = ##t % Titel auf einer neuen Seite beginnen
}% JETZT ENDLICH KOMMT DAS ERSTE MUSIKSTÜCK (3. BUCHTEIL: Etüde I):
\bookpart {
\include{"test.ly"}
}
}
-
und nun: wo ist das file test.ly? ;D
-
Das ist die Datei aus dem Beitrag davor. Also die Der den uich will.ly...
-
So. Wie dem auch sei. Ich hab die \layout- Befehle in den \paper- Block getan. Nun bin ich zum nächsten Stück gegangen und habe folgendes Problem:
(http://1.1.1.2/bmi/img17.imageshack.us/img17/7956/bildschirmfotoam2012032.png)
Wie man erkennt, stimmen die Ränder links und unten nicht. Woran liegt das?
Gruß fairsein
-
Lieber fairsein,
ich hänge auch immer wieder mal an diesem Thema. Den richtigen Tip für dein Problem kann ich dir jedoch leider auch nicht geben.
ABER:
Wir haben hier eine tolle Gemeinschaft - Experten, die hier ihre sicher auch kostbare Zeit für andere zur Verfügung stellen. DANKEDANKEDANKE!!! Um so wichtiger ist folgende, unten schon mehrfach geäußerte Bitte - besser Notwendigkeit:
Du musst einen Quelltext liefern, der mit möglichst wenig Text das Problem deutlich macht. Am besten in einer Datei, die sich ohne Nacharbeit und eigene Ergänzungen des Helfers erst mal kompilieren lässt. (z.B.: problem.ly)
Das macht dir sicher auch erst mal "zusätzliche" Arbeit. Aber in der Summe kommen alle schneller ans Ziel.
Solche Schnipsel, machen zuviel zusätzliche Arbeit ...
In diesem Sinne
schönes Wochenende
Matthias
-
Kein Problem. Das werde ich mal tun. Ich weiß nur nicht, wie das rechtlich so ist, weil die Noten ja eigentlich geschützt sind.
Gruß fairsein
-
::)
ein schnipsel eben!
M.
-
Hallo ihr,
Ich habe jetzt wie aufgefordert ein Schnippel erstellt. Es geht weiter um das oben beschriebene Phänomen.
Gruß fairsein
-
Wenn das bisherige nicht ausreicht, dann kann ich auch weitere Infos liefern. Also fragt ruhig nach...
Gruß fairsein
-
schick doch einfach nur das teilchen (schön minimiert) das den fehler enthält :D
-
Hallo fairsein,
was wir am liebsten hätten ist ein "Tiny Example" in diesem (http://lilypond.org/website/tiny-examples.html) Sinne.
Folgender Code verdeutlicht das Problem. (Er ist kurz aber tatsächlich nicht tiny)
\version "2.14.2"
#(set-default-paper-size "a4")
firstPiecePaper = \paper {
line-width = #100
ragged-last-bottom = ##f
}
secondPiecePaper = \paper {
line-width = #195
right-margin = 10\mm
left-margin = 10\mm
ragged-last-bottom = ##f
}
mI = \repeat unfold 30 { c''1 \break }
mII = \repeat unfold 30 { cis''1 \break }
\book {
\bookpart {
\paper { \firstPiecePaper }
{ \mI }
}
\bookpart {
\paper { \secondPiecePaper }
{ \mII }
}
}
Wenn Du ihn so verkürzt hättest wären Dir vielleicht ein paar Sachen aufgefallen.
- Welche Version benutzt Du überhaupt? Im Original stehen zwei verschiedene.
- In 2.14.2 sind die meisten Deiner paper-Variablen unwirksam.
- #(set-default-paper-size "a4"), left-margin, right-margin und line-width gleichzeitig zu setzen kann nur dann funktionieren, wenn die Zeile dann auch noch auf das Blatt paßt, sonst zeigt lily Dir einen Vogel.
- Und das tut es ja auch im log: Warnung: Ränder passen nicht zur Zeilenbreite, setze Standardwerte
Für demnächst:
Bitte poste was zur Problem-Darstellung notwendig ist. Nicht mehr und nicht weniger.
Ansonsten: http://www.tty1.net/smart-questions_de.html (http://www.tty1.net/smart-questions_de.html)
HTH,
Harm
EDIT:
Defekte Verlinkung korrigiert.
-
Hallo ihr,
Ich habe nun mal den Rat befolgt. Hier ist der Code:
\version "2.14.2" % Lily-Version
#(set-global-staff-size 25) % Die Zeilengröße für das Dokument angeben.
#(set-default-paper-size "a4") % Papierformat und -ausrichtung für das Dokument angeben.
\book {
\paper {
page-top-space= 2\mm
top-margin= 5\mm
after-title-space= 2\mm
head-separation = 2\mm
ragged-last-bottom = ##t
line-width = #195
}
\header {
tagline = ##f
breakbefore = ##t % Titel auf einer neuen Seite beginnen
}
\bookpart {
\version "2.14.2"
% #(set-global-staff-size 23 )
\paper{
page-top-space= 2\mm
top-margin= 5\mm
after-title-space= 2\mm
head-separation = 2\mm
ragged-last-bottom = ##t
line-width = #195
#(layout-set-staff-size 25.7)
}
\header
{
title = "Titel 1"
poet= "Text"
composer = "Musik"
}
<<
\relative c'
{\time 3/4 \tempo 4 =106
\set Timing.beamExceptions = #'()
<<e2.\\ c2>>
}
>>
}
\bookpart {
\version "2.14.2"
% #(set-global-staff-size 18.6)
\paper{
page-top-space= 2\mm
top-margin= 5\mm
after-title-space= 2\mm
head-separation = 2\mm
ragged-last-bottom = ##t
line-width = #195
#(layout-set-staff-size 18)
}
\header
{
title = "Titel 2"
poet= "Text"
composer = "Musik"
}
<<
\relative c'{
\times 4/4 \tempo 4=89
d'8
}
>>
}
}
Zum Hintergrund lade ich nochmal die komplette Datei hoch. Man sieht auch oben, dass der zweite Titel nicht komplett richtig dargestellt wird. Es fehlt das Musik an der rechten Seite. Nun könnte man #(layout-set-staff-size 18) einfach auf #(layout-set-staff-size 25.7) ändern. Allerdings geht das nicht, da die Musik Titel 2 wie in test.ly zu sehen auf eine Seite passen sollte.
PS: Um test.ly zu kompilieren zu können, sind 01.ly und 02.ly erforderlich.
Gruß fairsein
-
den rat? ;)
schau dir bitte nochmals den vorschlag von harm6 an! er beinhaltet wahrscheinlich schon die lösung für das problem.
aber vor allem: schmeiss alles raus, was nicht zur problemdarstellung gehört: der \header, alles, was das vertikale verhalten betrifft; die noten sind nebensächlich, harms vorschlag zeigt das. und noch dazu: das bookpart 01 funktionert doch, oder!?
und zuletzt: wenn du LilyPond files sendest, dann bitte mit der erweiterung .ly!!!
und wenn dir hier etwas nicht klar ist, dann sag es, dann können wir das näher erläutern!
ding-dong
-
Hallo fairsein,
grundsätzlich scheint es Dir um die Frage zu gehen wie man in einem book die einzelnen scores in ihrem layout selektiv einstellen kann. Z.B Zeilenlänge, rechter/linker Rand, Größe etc
Mir ist nachwievor nicht klar was Du für Deine beiden scores eigentlich eingestellt haben möchtest. Also frag bitte präziser!!
Aber zum Thema:
Du hast Dich zu sehr auf layout-set-staff-size eingeschossen. Ich habe ehrlich gesagt bislang noch nie eine _sinnvolle_ Anwendung hierfür gesehen. Also verwende ich es nie!
Um die Größe einer Partitur (im Vergleich mit anderen Partituren eines books) oder die Größe eines Staffs (im Vergleich mit anderen Staffs derselben Partitur) zu verändern verwende ich folgende Befehlskombination:
fontSize = #-1
\override StaffSymbol #'staff-space = #(magstep -1)
\override StaffSymbol #'thickness = #(magstep -1)
in einer \with Konstruktion. z.B.:
\new Staff \with {
fontSize = #-1
\override StaffSymbol #'staff-space = #(magstep -1)
\override StaffSymbol #'thickness = #(magstep -1)
}
{ <music> }
Darüber hinaus kann man im paper-Block page-count = 1 angeben, um lily zu veranlassen alles (wofür der paper-Block gilt) auf eine Seite zu setzen.
Und/oder das vertikale Spacing mit z.B. system-system-spacing #'basic-distance = #9 verändern.
In diesem Sinne habe ich Deine files mal bearbeitet.
Es geht natürlich noch viel mehr. Lies dazu in der NR über \paper- und \layout-Variablen.
Gruß,
Harm
-
Danke für den Tipp. Ich habe das Gefühl, dass es in die richtige Richtung geht. Nun beinhalten meine Noten auch Akkorde und Text. Wie bekommen ich den kleiner? Und wie kommt das Akkordsymbol wieder nach oben. Das ist mit der \new Staff \with {- Angabe auf einmal nach unten gerutscht.
\version "2.14.2"
\book {
\header {
tagline = ##f
}
\bookpart {
\version "2.14.2"
\paper {
top-margin= 5\mm
ragged-last-bottom = ##t
page-count = 1
right-margin = 10\mm
left-margin = 10\mm
system-system-spacing #'basic-distance = #8
}
\header
{
title = "Titel"
}
\score{
\new Staff \with {
fontSize = #-10
\override StaffSymbol #'staff-space = #(magstep -10)
\override StaffSymbol #'thickness = #(magstep -10)
}
<<
\chords{\set majorSevenSymbol = \markup { "maj7" }
c1 c
}
\relative c'{
\times 4/4 \tempo 4=89
c1 \break
c1
}
\addlyrics
{
da da
}
>>
}
}
}
Ich hoffe, dass ich es mit euer Hilfe schaffe.
Gruß fairsein
-
hallo!
nun ist die anordnung der einzelenen elemente etwas durcheinanergeraten; so funktionierts:
\score {
<<
\chords { \set majorSevenSymbol = \markup { "maj7" }
c1 c
}
\new Staff \with {
fontSize = #-10
\override StaffSymbol #'staff-space = #(magstep -10)
\override StaffSymbol #'thickness = #(magstep -10)
}
\relative c' {
\times 4/4 \tempo 4=89
c1 \break
c1
}
\addlyrics { da da }
>>
}
mach weiter so!
ding-dong
-
Super. Das behebt aber nicht das Problem, das der Titel, der Liedtext und die Akkorde immer noch zu groß sind.
Gruß fairsein
-
\override LyricText #'font-size = #-3
\override ChordName #'font-size = #-3
beim titel kenn ich keinen globalen befehl
-
Super. Danke dafür. Irgendwie muss jetzt noch der Rest kleiner werden. Also die Bindestriche und die Taktnummer.
(http://img840.imageshack.us/img840/4951/003jsl.jpg)
Hier ist der dazugehörige Code:
\version "2.14.2" % Lily-Version
%#(set-global-staff-size 25) % Die Zeilengröße für das Dokument angeben.
%#(set-default-paper-size "a4") % Papierformat und -ausrichtung für das Dokument angeben.
\book {
\header {
tagline = ##f
}
\bookpart {
\version "2.14.2"
\paper {
top-margin= 5\mm
ragged-last-bottom = ##t
page-count = 1
right-margin = 10\mm
left-margin = 10\mm
ragged-last-bottom = ##t
system-system-spacing #'basic-distance = #8
}
\header
{
title = "Titel"
}
\score{
<<
\chords{\set majorSevenSymbol = \markup { "maj7" }
\override ChordName #'font-size = #-10
c1 c:7+ c
}
\new Staff \with {
fontSize = #-10
\override StaffSymbol #'staff-space = #(magstep -10)
\override StaffSymbol #'thickness = #(magstep -10)
}
\relative c'{
\times 4/4 \tempo 4=89
c1
c1\break
c1
}
\addlyrics
{
\override LyricText #'font-size = #-10
da -- da
}
>>
}
}
}
Dazu noch eine Frage. Man hat ja jetzt überall diese Zahlen. Kann man die in eine Variable packen?
Gruß fairsein
-
Danke für eure Hilfe. Ich habe mich nun dafür entschieden alle Dateien einzeln zu belassen und nur die Seitenzahl manuell zu ändern.
first-page-number = Seitenzal
print-first-page-number = ##t So konnte ich weiterhin mit #(set-global-staff-size 20.1) arbeiten. Nun habe ich das Songbuch erstellt.
Gruß fairsein