Autor Thema: Probleme mit Titelblatt  (Gelesen 12590 mal)

donblech

  • Gast
Probleme mit Titelblatt
« am: Dienstag, 20. April 2010, 14:42 »
Hallo an alle,

ich möchte ein Bigband-Arrangement mit einem Titelblatt versehen. Es gibt dazu schon einen anderen Thread mit dem ich allerdings Probleme habe. Woran es jetzt im Einzelnen liegt kann ich nicht sagen, jedenfalls gibt es massenhaft Fehlermeldungen, wenn ich das dortige Titelblatt nachbaue.
Könnte es vielleicht mit der Verwendung von \relative zu tun haben?
Und wenn ja, wie kriegt man das in den Griff??
Ich hab mal eine Datei angehängt, vielleicht kann ja jemand was damit anfangen.

Vielen Dank schon mal für Eure Mühe und schönen Tag noch,

der Don


ding-dong

  • Gast
Re:Probleme mit Titelblatt
« Antwort #1 am: Dienstag, 20. April 2010, 15:25 »
welche version hast du?
wenn du eine neuere als die dort angegebene verwendest, solltest du mal convert-ly probieren!

donblech

  • Gast
Re:Probleme mit Titelblatt
« Antwort #2 am: Mittwoch, 21. April 2010, 14:52 »
Hallo DingDong,

.....verdammt, irgendwas vergess ich doch immer.

Version 2.12.2 ist es natürlich.

Schönen Gruß,

der Don

trulli

  • Gast
Re:Probleme mit Titelblatt
« Antwort #3 am: Mittwoch, 21. April 2010, 21:20 »
Hallo Don,

ich habe mal konvertiert (du hattest eine Vorlage in 2.8.1).
Läuft es jetzt ohne Fehler?

Grüße von Mat

RobUr

  • Gast
Re:Probleme mit Titelblatt
« Antwort #4 am: Mittwoch, 21. April 2010, 23:53 »
Zitat von: trulli
du hattest eine Vorlage in 2.8.1
Nein, es ist fälschlicherweise von NoteEdit (in der aktuellen Version 2.8.1!) eingefügt. Die .ly-Datei ist auch vorher schon ohne Fehler, aber mit Warnungen, kompiliert worden. Die Warnungen bezogen sich auf die fehlerhafte Definition der Instrumentennamen, z.B. \set Staff.instrument = #"Alt-Sax 1" statt \set Staff.instrumentName = #"Alt-Sax 1". Das muss von NoteEdit stammen. Durch die Konvertierung sind die Instrumentennamen jetzt doppelt definiert, wobei die zuletzt gemachte Angabe Vorrang hat. Don schrieb ja, dass er LP 2.12.2 verwendet.

Ebenso von NoteEdit dürfte die redundante \relative-Angabe im \score-Block stammen (alle Noten sind bereits vorher in \relative-Blöcken definiert). Allerdings sollte dies einem Titelblatt nicht im Wege stehen! Der grundsätzliche Aufbau ist ja:

\markup { Titelblatt }
\score { Musik }

Am übersichtlichsten ist natürlich die Aufteilung in Buch und Buchblöcke:

\book {
  \bookpart {
    \markup { Titelblatt }
  }
  \bookpart {
    \score { Musik }
  }
}

Welches „dortige“ Titelblatt ist denn eigentlich gemeint? In der Regel sind es funktionierende Snippets! Vielleicht gibt es ein Problem mit dem Querformat (landscape)? Ansonsten muss der Titelblattblock bloß – wie alles andere auch – an der richtigen Stelle eingefügt werden. Am besten postest du deine Datei inklusive des Titelblattversuchs. Im weiteren Verlauf muss aber sichergestellt sein, dass NoteEdit den Code nicht wieder umschmeißt ;) Ich finde es ohnehin heikel, einen mittlerweile 4 Jahre alten Editor (Release v2.8.1: 27. März 2006!) für Lily zu bemühen. In der Zwischenzeit hat sich sehr vieles getan. Woher nur soll NoteEdit die aktuelle Lily-Syntax kennen? Wenn es unbedingt ein grafischer Editor sein soll, würde ich zum Nachfolgeprojekt Canorus raten.

Viele Grüße, Robert

donblech

  • Gast
Re:Probleme mit Titelblatt
« Antwort #5 am: Donnerstag, 22. April 2010, 15:03 »
Hallo nochmal,

nach einigem Rumprobieren siehts jetzt schon mal etwas besser aus, allerdings ist der Titel incl. Komponist von Seite 2 auf das Titelblatt gerutscht. Wenn das gelöst wäre, wäre ich glücklich. Datei ist angehängt.

Zu NoteEdit:

Ich hab mich an das Programm ziemlich gewöhnt, da ich damit schnell und unkompliziert arbeiten kann, und ich brauche es auch zum Probehören. Ausser besagten Warnungen macht es auch sonst keine Zicken.
Canorus hab ich auch installiert, habe aber bis jetzt noch nicht viel mehr als eine weiße Fläche hingekriegt. Warscheinlich brauchts da wohl eine Einarbeitungsphase zu der ich bis jetzt noch keine Zeit gefunden habe.

ding-dong

  • Gast
Re:Probleme mit Titelblatt
« Antwort #6 am: Donnerstag, 22. April 2010, 17:01 »
hallo

das wurde von RobUr schon erklärt.

alternativ geht auch

\markup { \fontsize #9 \bold "das titelblatt" }

\bookpart {
  \score {}
  \header {}
}
hdh
 

donblech

  • Gast
Re:Probleme mit Titelblatt
« Antwort #7 am: Donnerstag, 22. April 2010, 20:51 »
Hallo,

ich bins leider nochmal.
Jetzt müsste ich nur noch wissen, ob das ganze Partitur-Layout, also die Staff-Groups in den \book oder \bookpart -Bereich gehören, ebenso \paper, und wo genau muss der \book-Bereich wieder geschlossen werden.

Ich weiss dass das langsam etwas nervig wird, tut mir auch echt leid, aber vielleicht könnte jemand die angehängte Datei kurz umstellen, danach hab ichs dann auch bestimmt kapiert.

Schönen Abend noch,

der Don

ding-dong

  • Gast
Re:Probleme mit Titelblatt
« Antwort #8 am: Donnerstag, 22. April 2010, 23:01 »
leider kompiliert dein code bei mir immer nur mit fehlern - du müsstest wirklich auf eine neuere version umsteigen und die wörter "instrument" in shortInstrumentName umwandeln oder auskommentieren!

bei der struktur, die das titelblatt einzeln darstellt, hat RobUr den weg gewiesen - sein beispiel ist kurz + übersichtlich!
man könnte höchstens noch die position der \header {} einfügen.

das \paper {} kannst du ausserhalb jeglichen contexts oder eben auch innerhalb eines books oder bookparts platzieren - es hat dann auch nur innerhalb des jeweiligen contexts - oder global -wirkung!

tip: mach dir ein kleines beispiel mit einem oder zwei bookparts und scores und nur einem staff oder voice! bei den noten hast du ja diese prinzip - vorbildlich - angewendet!

natürlich gibt es noch die einschlägige literatur - achtung auf die version, es hat sich einiges geändert (seit 2.8...)

übrigens: mach dir nichts draus, wenn du mal die übersicht verlierst - lilypond bietet sehr viel für viele ansprüche und gerade deshalb ist es nicht immer einfach den einfachsten + besten ( + richtigsten) weg zu finden!

wieterhin viel erfolg + spass! [und mach dir nichts draus wenn du einmal zu viel fragst…]

RobUr

  • Gast
Re:Probleme mit Titelblatt
« Antwort #9 am: Freitag, 23. April 2010, 06:10 »
Hallo Don!

Zitat von: donblech
Ich weiss dass das langsam etwas nervig wird, tut mir auch echt leid, aber vielleicht könnte jemand die angehängte Datei kurz umstellen, danach hab ichs dann auch bestimmt kapiert.
Schon in Ordnung … Ich gebe mir immer Mühe, die Logik hinter Lily verständlich zu machen. Je nach Problem kann es unterschiedlich lange dauern, bis man das Grundsätzliche verstanden hat. Aber wenn dann das Prinzip klar ist, dürfte sich das Brett vorm Kopf von allein verabschieden ;)

Ein entscheidender Grundsatz für dein Titelblatt-Problem ist die klare Trennung von Markup und Musik sowie die Unterteilung des Dokuments in buchähnliche Abschnitte. Ein Roman ist ja auch in mehrere Kapitel unterteilt. Dieses Prinzip greift Lily mit der book-bookpart-Möglichkeit auf, die an sich sehr einleuchtend ist, aber ich erkläre es gleich nochmal mit einigen Ergänzungen, da ich vermute, dass du organisatorisch mit verschiedenen Variablen und \score-Definitionen durcheinander kommst. (Ganz nebenbei hat mich das ebenfalls viele Stunden des Ausprobierens und Grübelns gekostet, aber es ist unerlässlich, wenn man mit umfangreichen Partituren arbeitet. Häufig hilft wiederholtes Lesen der entsprechenden NR-Kapitel und weniger wildes Code-kopieren. In der NR [engl. Originaldokument] habe ich bisher nichts falsches, höchstens schwierig formuliertes oder lückenhaftes gefunden.)

OKAY – wie funktioniert das nun mit diesem buchähnlichen Aufbau, und wohin kommen welche Variablen und Blöcke?
Als Beispiel soll eine komplette Notenausgabe incl. Titelei und zwei verschiedenen Klavierstücken dienen. Ein Inhaltsverzeichnis lasse ich vorerst bewusst weg. Da es um die Struktur geht, fehlen auch Noten etc.

-- Dateianfang --
\version "2.12.3"  % Lily-Version
#(set-global-staff-size 20)  % Die Zeilengröße für das Dokument angeben.
#(set-default-paper-size "a4")  % Papierformat und -ausrichtung für das Dokument angeben.

% Jetzt Variablen definieren, die im gesamten Dokument verwendet werden sollen.
myTitle = "Zwei Etüden"
mySubtitle = "für das Pianoforte zu drei Händen"
myDedication = "Meiner Klavierlehrerin in tiefster Abneigung gewidmet."
myComposer = "Ano Nymus"

% Hier können auch schon die Variablen mit den Noten kommen;
% alternativ in Dateien auslagern und an dieser Stelle per \include einbinden.

EtuedeEinsGlobal = { Tonart, Takt, Taktstriche, Umbrüche etc. für erstes Stück }
EtuedeEinsNotenRH = { Noten für die rechte Hand bzw. obere Zeile des ersten Stücks }
EtuedeEinsNotenLH = { Noten für die linke Hand bzw. untere Zeile des ersten Stücks }

EtuedeZweiGlobal = { Tonart, Takt, Taktstriche, Umbrüche etc. für zweites Stück }
EtuedeZweiNotenRH = { Noten für die rechte Hand bzw. obere Zeile des zweiten Stücks }
EtuedeZweiNotenLH = { Noten für die linke Hand bzw. untere Zeile des zweiten Stücks }

% 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 BETRACHTEN WIR DIE VORDERSEITE DES BUCHES (1. BUCHTEIL: Titelblatt):
  \bookpart {
    \markup \abs-fontsize #20 \fill-line {
      \center-column {
        \myComposer
        \myTitle
        \mySubtitle
      }
    }

    % abweichende Seiteneinstellungen für diesen bookpart:
    \paper {
      oddHeaderMarkup = \markup { \null }
      evenHeaderMarkup = \markup { \null }
      oddFooterMarkup = \markup { \null }
      evenFooterMarkup = \markup { \null }
    }
  }

% JETZT SCHLAGEN WIR DAS BUCH AUF (2. BUCHTEIL: [leere] Titelblattrückseite):
  \bookpart {
    \markup { \null }  % leeres Markup, sonst keine Ausgabe; kann stattdessen auch Herausgeberhinweise, Vorwort u.ä. enthalten
    \paper {
      oddHeaderMarkup = \markup { \null }
      evenHeaderMarkup = \markup { \null }
      oddFooterMarkup = \markup { \null }
      evenFooterMarkup = \markup { \null }
    }
  }

% JETZT ENDLICH KOMMT DAS ERSTE MUSIKSTÜCK (3. BUCHTEIL: Etüde I):
  \bookpart {
    \paper {
      % abweichende Seiteneinstellungen für aktuellen bookpart
    }

    \header {  % Kopfdaten für aktuellen \bookpart-Block
      dedication = \myDedication
      title = "Etüde I"
      subtitle = \markup { "aus" \myTitle \mySubtitle }
      composer = \myComposer
    }

    \score {  % Partiturdefinition
      \context PianoStaff = "Klavier"
      <<
        \context Staff = "rechte Hand" << \EtuedeEinsGlobal \EtuedeEinsNotenRH >>
        \context Staff = "linke Hand" << \EtuedeEinsGlobal \EtuedeEinsNotenLH >>
      >>

      \layout {  % Notenlayout für aktuellen \score-Block; erzeugt Notenausgabe
        indent = #0
      }
    }
  }

% JETZT KOMMT NOCH DAS ZWEITE MUSIKSTÜCK (4. BUCHTEIL: Etüde II):
  \bookpart {
    \paper {
      % abweichende Seiteneinstellungen für aktuellen bookpart
    }

    \header {  % Kopfdaten für aktuellen \bookpart-Block
      dedication = \myDedication
      title = "Etüde II"
      subtitle = \markup { "aus" \myTitle \mySubtitle }
      composer = \myComposer
    }

    \score {  % Partiturdefinition
      \context PianoStaff = "Klavier"
      <<
        \context Staff = "rechte Hand" << \EtuedeZweiGlobal \EtuedeZweiNotenRH >>
        \context Staff = "linke Hand" << \EtuedeZweiGlobal \EtuedeZweiNotenLH >>
      >>

      \layout {  % Notenlayout für aktuellen \score-Block; erzeugt Notenausgabe
        indent = #0
      }
    }
  }

% MITTLERWEILE HABEN WIR (angenommen) 6 SEITEN UND BRAUCHEN NOCH 2 FÜR EINE 8-SEITEN-BROSCHÜRE (letzter BUCHTEIL: Blindseiten):
  \bookpart {
    \markup { \null } \pageBreak \markup { \null }  % leeres Markup, sonst keine Ausgabe
    \paper {
      oddHeaderMarkup = \markup { \null }
      evenHeaderMarkup = \markup { \null }
      oddFooterMarkup = \markup { \null }
      evenFooterMarkup = \markup { \null }
    }
  }

% MIDI-AUSGABE FEHLT NOCH!
% (benötigt keinen eigenen \bookpart, sollte aber innerhalb von \book stehen)
% 2 \score-Blöcke für je 1 MIDI-Datei pro Stück

  \score {  % definiert MIDI-Partitur #1
    \context PianoStaff = "Klavier"
      <<
        \context Staff = "rechte Hand" << \EtuedeEinsGlobal \unfoldRepeats \EtuedeEinsNotenRH >>
        \context Staff = "linke Hand" << \EtuedeEinsGlobal \unfoldRepeats \EtuedeEinsNotenLH >>
      >>

    \midi { }  % erzeugt MIDI-Datei #1
  }

  \score {  % definiert MIDI-Partitur #2
    \context PianoStaff = "Klavier"
      <<
        \context Staff = "rechte Hand" << \EtuedeZweiGlobal \unfoldRepeats \EtuedeZweiNotenRH >>
        \context Staff = "linke Hand" << \EtuedeZweiGlobal \unfoldRepeats \EtuedeZweiNotenLH >>
      >>

    \midi { }  % erzeugt MIDI-Datei #2
  }
}
-- Dateiende --


So – nach diesem Schema baue ich meine Notenausgaben. Ich fahre damit ganz prima, zumal es auf meine Ansprüche maßgeschneidert ist. Die Struktur ist beliebig erweiterbar und kennt kaum Grenzen. Man muss nur den Überblick behalten, aufmerksam die Logausgabe beobachten und Ruhe bewahren, wenn Fehler auftreten, die erfahrungsgemäß fast immer auf falsche bzw. unvollständige Klammerung (seltener Fehlposition bestimmter Blöcke) zurückzuführen sind! Eine umfangreiche Partitur ist nunmal ein großes Unterfangen – wo gehobelt wird, fallen Späne. Experimentieren erwünscht!

Ein Titelblatt ist also nichts weiter als ein separater \bookpart, der den anderen vorangestellt wird und lediglich \markup statt Noten enthält. Im Prinzip enthält die Datei jede Menge Noten (in eigenen Variablen), aber diese werden erst ganz woanders in den \score-Blöcken abgerufen/aktiviert und durch \layout innerhalb des \score-Blocks grafisch ausgegeben. Dieser wichtige Unterschied ist deutlich am Ende des Beispiels erkennbar, wenn zwar \score-Blöcke definiert, aber statt durch \layout mittels \midi verarbeitet werden!

Zwingend notwendig ist jedenfalls, dass wenn man schon mit \bookpart arbeitet, alles mit \book umschlossen werden und die Struktur von vorn bis hinten stimmen muss; selbst „Die unendliche Geschichte“ klappen wir irgendwann zu – und das Buch ist „abgeschlossen“: \book {}!

Würde es verwirren, wenn ich jetzt hinzufügte, man könne auch mehrere \book(s) in einer Datei definieren? :D  Kein Scherz, sondern sogar äußerst praktisch, da jeder weitere \book-Block auch eine weitere, separate Datei erzeugt! Im vorliegenden Beispiel, das eine „Gesamtausgabe“ erzeugt, könnte man noch einen \book-Block nur mit der ersten Etüde und einen weiteren nur mit der zweiten Etüde anlegen, dann erhielte man mit einem einzigen Lily-Durchlauf 3 PDFs: Gesamtausgabe, Etüde I, Etüde II :)

Als Anhang gibt’s noch deine überarbeitete Datei. Ein paar Tipps: Wenn du schon compers „Vorschub“-Funktion einbindest, benutze sie doch auch! Dann hat das ewige „ge\nulle“ ein Ende … Ein weiterer wäre der oft gesehene exzessive Einsatz von \fill-line, um jede Zeile einzeln zu zentrieren: das geht doch prima mit \center-column { "Zeile 1" "Zeile 2" ... }! Um die Spalte mit zentriertem Inhalt zentriert auszurichten, nimmt man \fill-line { \center-column { ... } } – spart ’nen Haufen Tippen. Was uns NoteEdit aber in jedem Fall antut, sind dessen maschinell vergebene Bezeichner: \context Staff = cTrumpetXEIA liest sich doch wesentlich schlechter als \context Staff = "Trumpet 4". Dass dieser Editor die Contexte explizit bis hinunter zum Voice-Context anlegt, kann man ihm ja verzeihen (Lily legt diese im Hintergrund selbst an). Es ist nur sehr unübersichtlich dadurch.

Zitat von: ding-dong
achtung auf die version, es hat sich einiges geändert (seit 2.8...)
Es ist ja eben nicht Lily 2.8.1, sondern NoteEdit 2.8.1. Der Code läuft gut durch – bis auf die Warnungen wegen der fehlerhaften instrument[Name]-Definitionen: die müssen natürlich korrigiert werden! Ich habe das in der angehängten Datei getan. Jetzt würde mich interessieren, ob NoteEdit das wieder rückgängig machen würde. Don: bitte Feedback nach Probelauf!

Ansonsten hoffe ich, dass jetzt vieles klar(er) ist und die beigefügte Datei als gute Vorlage dienen kann.

Beste Grüße, Robert

ding-dong

  • Gast
Re:Probleme mit Titelblatt
« Antwort #10 am: Freitag, 23. April 2010, 08:50 »
super - danke für diese klare, detaillerte darstellung :) - sollte doch in den snippets aufgenommen werden!
meines wissens ist das lilypond manual nicht so übersichtlich

trulli

  • Gast
Re:Probleme mit Titelblatt
« Antwort #11 am: Freitag, 23. April 2010, 13:20 »
Klasse Aufstellung, Rob! 

Gruß von Mat

donblech

  • Gast
Re:Probleme mit Titelblatt
« Antwort #12 am: Freitag, 23. April 2010, 14:20 »
Hallo liebe Gemeinde,

die Datei funktioniert, auch wenn sie mit einer höheren Version gemacht wurde, was zu einer Fehlermeldung führt (return-code 1).
Mittlerweile habe ich es auch geschafft eine andere Datei entsprechend umzubauen. Jetzt würde mich nur noch interessieren ob es möglich ist den Copyright-Hinweis auf der 1. Seite (nach dem Titelblatt) zu wiederholen, weiss das jemand??

Nochmal zu NoteEdit: wenn ich die Noten gesetzt habe hat NoteEdit seine Schuldigkeit getan und ich arbeite mit lily weiter. Ich brauche das nur zur akustischen Kontrolle. NoteEdit kann lily-Dateien auch nur erzeugen, aber nicht einlesen.

Schönen Tag noch,

der Don


RobUr

  • Gast
Re:Probleme mit Titelblatt
« Antwort #13 am: Freitag, 23. April 2010, 23:36 »
Hallo Don,

Zitat
die Datei funktioniert, auch wenn sie mit einer höheren Version gemacht wurde, was zu einer Fehlermeldung führt (return-code 1).
Dann ändere einfach die Versionsnummer in "2.12.2", wenn es deiner installierten Version entspricht.

Zitat
Jetzt würde mich nur noch interessieren ob es möglich ist den Copyright-Hinweis auf der 1. Seite (nach dem Titelblatt) zu wiederholen, weiss das jemand??
Ich weiß es … und ja, es ist möglich ;)  Soll ich auch noch verraten? Dafür gibt es die Abfrage #part-first-page. Du könntest also das Footer-Markup im \paper-Block des \bookpart mit den Noten folgendermaßen ändern/ergänzen:

oddFooterMarkup = \markup {
   \on-the-fly #part-first-page
   \fill-line { \myCopyright }
   \on-the-fly #not-part-first-page
   \fill-line { \fromproperty #'page:page-number-string }
}

Um #not-part-first-page verwenden zu können, muss dies vorher definiert werden:

#(define (not-part-first-page layout props arg)
   (if (= (chain-assoc-get 'page:page-number props -1)
          (ly:output-def-lookup layout 'first-page-number))
       empty-stencil
       (interpret-markup layout props arg)))

Bleibt noch zu erwähnen, dass bei fehlendem evenFooterMarkup die Definition aus oddFooterMarkup angewandt wird.
EDIT: Das gilt natürlich auch für Header-Markup.

Grüße, Robert
« Letzte Änderung: Freitag, 23. April 2010, 23:44 von RobUr »

donblech

  • Gast
Re:Probleme mit Titelblatt
« Antwort #14 am: Samstag, 24. April 2010, 16:40 »
Halleluja,

es hat tatsächlich geklappt....ich bin platt!!!!
Vielen, vielen Dank für Eure unendliche Geduld mit mir.

Ein schönes, sonniges Wochenende wünsche ich Euch,

der Don