Layout-Probleme mehrere Partituren untereinander

Begonnen von Steppenwoelfin, Freitag, 14. Januar 2022, 10:39

« vorheriges - nächstes »

Steppenwoelfin

Hallo zusammen :)
Ich bin neu in diesem Forum, weil ich Lilypond für meine Doktorarbeit brauche und etwas überfordert bin. Ich habe bereits ausgiebig das Handburch und das Forum durchstöbert und vermute, dass es eine relativ einfache Lösung für mein Problem gibt, aber ich finde sie einfach nicht. Daher würde ich mich freuen, wenn ihr mir helfen könnt.
Ich möchte kurze viertaktige Akkordbeispiele für eine Abbildung setzen. Die Beispiele an sich sind auch nicht das Problem. Ich lege einfach mehrere Klavier-Partituren an und schreibe diese untereinander. Leider führt das dazu, dass die Notenbeispiele unterschiedlich lang sind. Das zweite ist minimal länger als das erste, da es zwei und nicht nur ein Vorzeichen im dritten Takt enthält.
Die einzige Möglichkeit, die ich bisher gefunden habe, die Taktlänge aneinander anzupassen, ist beide Beispiele in eine Partitur zu schreiben. Allerdings ist das für meine Abbiildung irreführend, da die Akkordbeispiele niemals gleichzeitig erklingen, sondern einfach nur aufgelistet werden sollen.

Hier ein Minimalbeispiel:


% 1. Akkordsequenz

% oberes System

upper = \relative c' {
  \clef treble
  \key c \major
  \time 4/4

  <e a>1 <fis a> <d gis> <e a>
}

% unteres System

lower = \relative c {
  \clef bass
  \key c \major
  \time 4/4

  <a' cis>1 <d d,> <e, b'> <a, cis'>
}

\score {
  \new PianoStaff \with { instrumentName = "Piano" }
  <<
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
\addlyrics { T S "D7" T}
  >>
  \layout { }
}

% 2. Akkordsequenz

% oberes System

upper = \relative c' {
  \clef treble
  \key c \major
  \time 4/4

  <e a>1 <fis a> <fis gis> <e a>
}

% unteres System

lower = \relative c {
  \clef bass
  \key c \major
  \time 4/4

  <a' cis>1 <d d,> <e, d'> <a, cis'>
}

\score {
  \new PianoStaff \with { instrumentName = "Piano" }
  <<
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
\addlyrics { T S "D9/5" T}
  >>
  \layout { }
}


Gibt es eine Möglichkeit, die Taktlänge (in cm o.ä.) einheitlich im Layout festzulegen? Für zwei Akkordbeispiele mag es vielleicht noch nicht so gravierend aussehen, aber bei 32 untereinander stört es schon sehr, wenn die Taktstriche nicht exakt untereinander stehen.
Ich würde mich freuen, von euch zu hören. Sollte diese Frage schon an einer anderen Stelle im Forum beantwortet sein, verweist mich gerne darauf.

Liebe Grüße und einen schönen Freitag
Steppenwoelfin

amateur

Vielleicht hilft dir diese Seite: https://lilypond.org/doc/v2.21/Documentation/notation/changing-horizontal-spacing.de.html
So angewandt, sind zwar die 2. Taktstriche nicht untereinander, aber der Rest wäre OK:
\version "2.23.5"

% 1. Akkordsequenz

% oberes System

upper = \relative c' {
  \clef treble
  \key c \major
  \time 4/4

  <e a>1 <fis a> <d gis> <e a>
}

% unteres System

lower = \relative c {
  \clef bass
  \key c \major
  \time 4/4

  <a' cis>1 <d d,> <e, b'> <a, cis'>
}

\score {
 
  \new PianoStaff \with { instrumentName = "Piano" }
  <<
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
\addlyrics { T S "D7" T}
  >>
  \layout {
    \context {
      \Score
    \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/64)
    }
  \override Score.SpacingSpanner.strict-note-spacing = ##t
  }
}

% 2. Akkordsequenz

% oberes System

upper = \relative c' {
  \clef treble
  \key c \major
  \time 4/4

  <e a>1 <fis a> <fis gis> <e a>
}

% unteres System

lower = \relative c {
  \clef bass
  \key c \major
  \time 4/4

  <a' cis>1 <d d,> <e, d'> <a, cis'>
}

\score {
  \new PianoStaff \with { instrumentName = "Piano" }
  <<
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
\addlyrics { T S "D9/5" T}
  >>
  \layout {
    \context {
      \Score
    \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/64)
    }
  \override Score.SpacingSpanner.strict-note-spacing = ##t
 
  }
}


Wahrscheinlich hat harm aber noch die perfekte Lösung  :)

Steppenwoelfin

Vielen herzlichen Dank für den Tipp und die Umsetzung. Es sieht auf alle Fälle schon viel besser aus. So könnte ich es mit deutlich besserem Gefühl in meine Arbeit aufnehmen, auch wenn eine weitergehende Lösung natürlich toll wäre. :)

harm6

Zitat von: amateurWahrscheinlich hat harm aber noch die perfekte Lösung

Wenn ich schon angesprochen werde...
Eine perfekte Lösung gibt es nicht und kann es auch nicht geben. Denkt dran, daß es ja auch in einem Beispiel Vorzeichenwechsel, Taktwechsel u.ä. geben kann (mit dem entsprechenden Platzbedarf) und in einem anderen Beispiel aber nicht. Unterschiedliche Anzahl der Noten mit eventuell unterschiedlicher Dauer führen ebenfalls zu unterschiedlichem Platzbedarf, unterschiedlichem spacing und damit unterschiedlicher Länge eines Notensystems.

Insoweit
Zitat von: SteppenwoelfinGibt es eine Möglichkeit, die Taktlänge (in cm o.ä.) einheitlich im Layout festzulegen?
ist eine solche Möglichkeit nicht sinnvoll und nicht implementiert.


Nachdem nun dargestellt ist was nicht geht..., man kann sehr wohl anderes versuchen.

amateur hat vorgeschlagen den SpacingSpanner anzugehen. Ich würde jedoch davon abraten, nicht weil es die Sache nicht verbessert (das tut es sehr wohl), sondern weil es wahrscheinlich keine Lösung ist, die wirklich immer gelten wird.
Ich habe es allerdings nicht umfassend getestet, kann da also auch falsch liegen.

Ich würde eher
a) in jedem Beispiel ragged-right auf #f setzen und die line-width so verändern, bis alle Beispiele die gleiche Länge haben.
Kritik: Dadurch erreichst Du zwar in der Tat dieselbe Zeilenlänge, aber innerhalb der Beispiele sind die Noten und Taktstriche natürlich nicht senkrecht stimmig angeordnet.
b) wirklich alles in einen score schreiben und die Akkoladen so verändern, daß die Beispiele als einzelne scores erscheinen.
Für ein Beipiel, siehe auch https://lsr.di.unimi.it/LSR/Item?id=873
Kritik: Es ist dann problematisch zusätzlichen Text zwischen die einzelnen Beispiele zu setzen. Ich könnte mir auch gut vorstellen, daß es bei vielen Beispieln nicht auf eine Seite passt.
Beide Möglichkeiten sind hier dargestellt.


\version "2.22.1"

myLayout =
\layout {
  ragged-right = ##f
  line-width = 80
}

% 1. Akkordsequenz

% oberes System

upper = \relative c' {
  \clef treble
  \key c \major
  \time 4/4

  <e a>1 <fis a> <d gis> <e a>
}

% unteres System

lower = \relative c {
  \clef bass
  \key c \major
  \time 4/4

  <a' cis>1 <d d,> <e, b'> <a, cis'>
}

firstPiano =
\new PianoStaff \with { instrumentName = "Piano" }
  <<
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
\addlyrics { T S "D7" T}
  >>

\score {
  \firstPiano
  \layout { \myLayout }
}

% 2. Akkordsequenz

% oberes System

upper = \relative c' {
  \clef treble
  \key c \major
  \time 4/4

  <e a>1 <fis a> <fis gis> <e a>
}

% unteres System

lower = \relative c {
  \clef bass
  \key c \major
  \time 4/4

  <a' cis>1 <d d,> <e, d'> <a, cis'>
}

secondPiano =
\new PianoStaff \with { instrumentName = "Piano" }
  <<
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
\addlyrics { T S "D9/5" T}
  >>

\score {
  \secondPiano
  \layout { \myLayout }
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\score {
  <<
    \firstPiano
    \secondPiano
  >>
  \layout {
    \context {
      \PianoStaff
      systemStartDelimiterHierarchy =
        #'(SystemStartBracket (SystemStartBrace a b))
    }
    \context {
      \Score
      \override SystemStartBracket.style = #'bar-line
      \omit SystemStartBar
      \override SystemStartBracket.padding = #-0.1
      \override SystemStartBrace.thickness = #1.6
      \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #15
    }
  }
}


Zitat von: Steppenwoelfinweil ich Lilypond für meine Doktorarbeit brauche
Mit welchem Programm schreibst Du?
Latex? lilypond-book gibt es ja auch und ähnliche.

Gruß,
  Harm




Steppenwoelfin

Hallo harm,

erst einmal danke für deine ausführliche Antwort!
Ja, ich schreibe meine Arbeit mit Latex und habe es bisher auch noch nicht geschafft, über lilypond-book die Notenbeispiele einzufügen, aber das ist eine andere Geschichte schätze ich. Fürs erste habe ich so in Lilypond herumexperimentiert und die Abbildungen dann für die Arbeit mit \includegraphics in eine figure-Umgebung gepackt.

Ich verstehe voll und ganz, dass eine einheitliche Festlegung der Taktlänge für größere Lilypond-Projekte nicht sinnvoll ist. Beide deiner Lösungen klingen aber für mich gut und verbessern das Notenbild erheblich.
Erstaunlicherweise kann ich bei deiner zweiten Lösung sogar einzelne Vorzeichen ändern, ohne dass sie automatisch angepasst werden. Dieses Problem hatte ich nämlich bei meinen Versuchen von mehreren Klavierpartituren in einem Score. Da ich zum Beispiel auch Akkordsequenzen in Moll unter welchen in Dur stehen habe, konnte ich beispielsweise nicht gleichzeitig f und fis ausgeben lassen.
Ich werde in den kommenden Tagen die Vorschläge für alle Notenbeispiele ausprobieren und schauen, was herauskommt. Dann gebe ich euch noch einmal eine kleine Rückmeldung.

Vielen Dank auf alle Fälle! Ihr habt mir sehr geholfen. Lilypond ist vollkommen neu für mich und mein tagelanges Kopfzerbrechen hatte mich da nicht viel weiter geführt.

LG Steppenwoelfin

Malte

#5
Zitat von: Steppenwoelfin am Samstag, 15. Januar 2022, 19:26
Ja, ich schreibe meine Arbeit mit Latex und habe es bisher auch noch nicht geschafft, über lilypond-book die Notenbeispiele einzufügen, aber das ist eine andere Geschichte schätze ich. Fürs erste habe ich so in Lilypond herumexperimentiert und die Abbildungen dann für die Arbeit mit \includegraphics in eine figure-Umgebung gepackt.

Ich schalte mich hier mal kurz offtopic ein: Wenn du sowieso noch nicht begonnen hast, mit lilypond-book zu arbeiten, würde ich stattdessen ein Blick auf lyluatex werfen. Das ist meiner Erfahrung nach unkomplizierter in der Handhabung, weil man nicht mit .lytex- und .tex-Dateien herumhantieren muß, sondern den LilyPond-Code direkt in der .tex-Datei stehen haben kann und LuaLaTeX sich um den Aufruf von LilyPond kümmert. Außerdem werden nur Notenbeispiele neu kompiliert, bei denen sich etwas geändert hat, was gerade bei größeren Projekten (bei mir war es u. a. eine Bachelorarbeit von 90 Seiten) enorm Zeit spart, insbesondere wenn man gar keine Noten, sondern nur Text geändert hat (das bräuchte mit lilypond-book ja trotzdem einen LilyPond-Aufruf). Zudem erlaubt es deutlich genauere Einstellungen (z. B. wie mit Seitenrändern und \indent umgegangen werden soll). Einziger Haken: Du müßtest LuaLaTeX verwenden; das kann ggf. bei einigen wenigen Paketen Kompatibilitätsprobleme bedeuten (zumindest, falls du sonst XeLaTeX verwendest).

Edit: lyluatex gibt's auch als Paket auf CTAN inklusive ausführlicher Dokumentation.

Steppenwoelfin

Hallo Malte,
danke für den guten Tipp! Meine Arbeit wird auf ähnliche Maße wie deine hinauslaufen, von daher wäre das wirklich sehr zeitsparend. Ich habe eben mal die Dokumentation überflogen und das müsste mit TeXlive eigentlich gut umsetzbar sein. Die .lytex-Dateien hatten mich in der Tat schon sehr verwirrt. Ich werde es ebenfalls nächste Woche ausprobieren.
Auf jeden Fall bin ich jetzt super ausgerüstet für die nächsten Tage! :)

Steppenwoelfin

Ich bin super glücklich! Heute Vormittag habe ich eure verschiedenen Lösungsvorschläge ausprobiert und mit

Zitatb) wirklich alles in einen score schreiben und die Akkoladen so verändern, daß die Beispiele als einzelne scores erscheinen.

hat es sehr gut geklappt. Die Akkordbezeichnungen stehen, wo sie stehen sollen und die Taktstriche sind ordentlich untereinander. :) Über die ungleiche Länge der Takte werde ich hinwegsehen.
Vielen Dank für eure super schnelle Hilfe!

Mit lyluatex habe ich noch ein bisschen Probleme, aber daran versuche ich mich.


Hilflos-im-Code

Zitat von: Steppenwoelfin am Montag, 17. Januar 2022, 13:44

hat es sehr gut geklappt. Die Akkordbezeichnungen stehen, wo sie stehen sollen und die Taktstriche sind ordentlich untereinander. :) Über die ungleiche Länge der Takte werde ich hinwegsehen.
Als ich die Frage gelesen habe, habe ich mich gefragt, wie sieht denn die Praxis in solchen Arbeiten aus? Also, machst Du Dir ein Problem, was keiner so empfindet?
Anyway, falls Du dann doch nicht hinwegsehen willst/kannst, Notenbeispiel als SVG exportieren und in einem Grafikprogramm (Inkscape) öffnen und zurecht schieben. (Vermutlich sieht es dann aber nur anders doof aus, weil gewisse Abstandsregeln verletzt werden.)

Steppenwoelfin

Danke für den Tipp. Vielleicht probiere ich das noch aus. :)

ZitatAls ich die Frage gelesen habe, habe ich mich gefragt, wie sieht denn die Praxis in solchen Arbeiten aus? Also, machst Du Dir ein Problem, was keiner so empfindet?

Ich bin mir nicht ganz sicher, worauf du hinauswillst. Meinst du mit Praxis, wie Notenbeispiele normalerweise in solchen Arbeiten gehandhabt werden? Genau Regeln kenne ich da nicht, aber meine Arbeit ist ohnehin eher ein Spezialfall, weil es eine medizinische Doktorarbeit mit musikwissenschaftlichem Thema ist. Mein Doktorvater legt jedenfalls sehr viel Wert auf das Aussehen der Arbeit und hat mir daher nahegelgt, sie mit LaTeX und Lilypond zu schreiben.

Hilflos-im-Code

#10
Zitat von: Steppenwoelfin am Dienstag, 18. Januar 2022, 10:41
Meinst du mit Praxis, wie Notenbeispiele normalerweise in solchen Arbeiten gehandhabt werden?
Ja.

Also ich habe jetzt mal nachgeschaut. Erst einmal etwas finden. Hindemith-Tonsatz Seite 151. Taktstriche sind zueinander ausgerichtet. Die Akkordtöne auch. Das war das einzige Beispiel.

Meinen Schönbergtonsatz finde ich gerade nicht. Müsste aber im Netz frei verfügbar sein. Dann würde ich auch noch nach dem Tonsatz von Riemann im Netz Ausschau halten. Bei allen Dreien wurden noch Kupferplatten gestochen. Also man musste sich nicht der Limitierung des elektronischen Systems unterwerfen.

In "Hals über Kopf" gibt es auch noch ein Beispiel bzgl. Rhythmus, indem die Ausrichtung der Taktstriche und Noten zueinander über den sonst geltenden Abstandsregeln stehen.

Wenn Harm es nicht erwähnt hat, es könnte pragamtisch gesehen so sein, dass proportionaler Satz https://lilypond.org/doc/v2.21/Documentation/notation/proportional-notation.de.html deine Probleme löst, wenn die Zeilenlänge definiert ist.

Edit: Schönberg Tonsatz zum Download https://imslp.org/wiki/Harmonielehre_(Schoenberg%2C_Arnold)
Riemann: https://imslp.org/wiki/Vereinfachte_Harmonielehre_oder_die_Lehre_von_den_tonalen_Funktionen_der_Akkorde_(Riemann%2C_Hugo)
Hindemith https://imslp.org/wiki/Unterweisung_im_Tonsatz_(Hindemith%2C_Paul)

Steppenwoelfin

Danke für's Nachschauen. Demnach mache ich ja grundsätzlich nichts falsch, denn Töne und Taktstriche sind zueinander ausgerichtet.
Der proportionale Satz hat mir leider nicht weitergeholfen. Die Zeilenlänge ist dann zwar für alle Beispiele fix, aber die "Längenunterschiede" zwischen den einzelnen Takten werden eher wieder größer als kleiner und je nach Länge verschieben sich auch die Taktstriche. Je häufiger ich mir die Beispiele ansehe, desto stimmiger finde ich es eigentlich, dass die Taktlänge für die Akkorde mit mehreren Vorzeichen auch länger sind, da es ansonsten eher gequetscht aussieht. Ich denke, ich werde mich damit erst einmal zufrieden geben. :)

Manuela

Zitat von: Hilflos-im-Code am Dienstag, 18. Januar 2022, 11:21
Edit: Schönberg Tonsatz zum Download https://imslp.org/wiki/Harmonielehre_(Schoenberg%2C_Arnold)
Riemann: https://imslp.org/wiki/Vereinfachte_Harmonielehre_oder_die_Lehre_von_den_tonalen_Funktionen_der_Akkorde_(Riemann%2C_Hugo)
Hindemith https://imslp.org/wiki/Unterweisung_im_Tonsatz_(Hindemith%2C_Paul)

Lieber Nicht-so-hilflos-im-Code  ;)
Die Links funktionieren alle nicht, weil am Schluss die Klammer-zu fehlt, wahrscheinlich ein copy&paste Problem.

Ich kann deinen Beitrag natürlich nicht editieren...
Danke für eure Hilfe
viele Grüße
-- Manuela