Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: juppes am Samstag, 26. Januar 2013, 12:36

Titel: Unterschiedliche Abstände von Zeilen in einer Akkolade
Beitrag von: juppes am Samstag, 26. Januar 2013, 12:36
liebe Forumsteilnehmer,

diesmal schreibe ich eine Orchesterpartitur mit Bläsern, Streichern und einem Soloinstrument. Später will ich aus der Partitur auch noch Einzelstimmen "ziehen". Daher arbeite ich mit einem Dokument, das die Noten enthält und einem, das die Partitur erzeugt.

In dieser Partitur nun will ich gerne der Übersichtlichkeit halber die Notenzeilen für Bläsergruppe, Streichergruppe und Soloinstrument ein wenig weiter auseinander bekommen. Im Augenblick haben die Zeilen innerhalb der Akkolade alle den gleichen Abstand. Ich habe am Zeilenanfang zwar schon Klammern gesetzt - das hilft schon ein wenig, möchte aber eben die Wirkung dieser Maßnahme noch durch größere Zeilenabstände zwischen den Gruppen im Orchester verstärken. Wie mache ich das?

Eigene Versuche mit "VerticalAxisGroup" haben mich nicht weitergebracht, aber das liegt sicher an meinem mangelhaften Verständnis der Sache.

Danke für Hilfestellung
Titel: Re: Unterschiedliche Abstände von Zeilen in einer Akkolade
Beitrag von: Be-3 am Samstag, 26. Januar 2013, 13:23
liebe Forumsteilnehmer,

diesmal schreibe ich eine Orchesterpartitur mit Bläsern, Streichern und einem Soloinstrument. Später will ich aus der Partitur auch noch Einzelstimmen "ziehen". Daher arbeite ich mit einem Dokument, das die Noten enthält und einem, das die Partitur erzeugt.

In dieser Partitur nun will ich gerne der Übersichtlichkeit halber die Notenzeilen für Bläsergruppe, Streichergruppe und Soloinstrument ein wenig weiter auseinander bekommen.

[...] durch größere Zeilenabstände zwischen den Gruppen im Orchester verstärken. Wie mache ich das?

Hallo juppes,

in der Anleitung unter Abstände von gruppierten Notensystemen (http://"http://lilypond.org/doc/v2.16/Documentation/notation/flexible-vertical-spacing-within-systems.de.html#spacing-of-grouped-staveshttp://") findest Du Hinweise zum Thema.

Du möchtest, daß die StaffGroups generell einen etwas größeren Abstand haben. Für StaffGroups ist der StaffGroup-Kontext zuständig - deshalb läßt sich im Layout-Block auf StaffGroup-Ebene der Wert von staffgroup-staff-spacing verändern: im angehängten Beispiel die basic-distance.
Das führt dazu, daß der Abstand nach einer StaffGroup verändert wird, was aber keine Auswirkungen auf die Systemabstände innerhalb einer StaffGroup hat.

\version "2.16.1"

\layout {
  \context {
    \StaffGroup
      \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #15
  }
}

testMusic = \relative c' {
  c e g c
}

\score {
  <<
    \new StaffGroup <<
      \new Staff \testMusic
      \new Staff \testMusic
    >>
    \new StaffGroup <<
      \new Staff \testMusic
      \new Staff \testMusic
      \new Staff \testMusic
    >>
    \new StaffGroup <<
      \new Staff \testMusic
      \new Staff \testMusic
    >>
  >>
  \layout {}
}

Viele Grüße
Torsten
Titel: Re: Unterschiedliche Abstände von Zeilen in einer Akkolade
Beitrag von: juppes am Samstag, 26. Januar 2013, 15:02
hallo Torsten,

danke erstmal für die schnelle Antwort. In Deinem Beispiel funktioniert es wunderbar, auch unter meiner noch etwas älteren Version 2.14.2. Das ist genau das, was ich gesucht habe. Die Enttäuschung ist nur, daß es bei mir nicht klappt, also in meinem Projekt.

Ich vermute mal, daß es irgendwie mit der Struktur meiner beiden Dateien zu tun haben muß. Mein Partiturdokument enthält nur die Anweisungen (\include "***"), wo es sich die Noten abholen soll , außerdem die Layout-Anweisungen und einen MIDI-Block.

Den ganzen Rest findet man in der Datei mit den Noten. Dort stehen die Variablen für die einzelnen Stimmen und als "Obervariable" dann die Anweisung, in welcher Reihenfolge die Stimmen angeordnet sein sollen. Dort habe ich auch die Klammern für die einzelnen Gruppen definiert:

\set StaffGroup.systemStartDelimiterHierarchy
  = #'(SystemStartBar (SystemStartBracket a
                        b   c  d ) (SystemStartBar e) (SystemStartBracket f g h i ))

Nachdem ein Eintrag im Layout-Block der Partiturdatei folgenlos blieb (hinterher sah alles noch genauso aus wie vorher), habe ich versucht, die Anweisungen für das Auseinanderziehen der Zeilen in das Dokument mit den Stimmen zu schreiben. Das wurde aber nur mit Fehlermeldungen quittiert. Was nun?

Was würdest Du noch brauchen, um die Sache besser diagnostizieren zu können?
Titel: Re: Unterschiedliche Abstände von Zeilen in einer Akkolade
Beitrag von: Be-3 am Sonntag, 27. Januar 2013, 10:18
Was würdest Du noch brauchen, um die Sache besser diagnostizieren zu können?

... micht würde die Definition der "Obervariablen" und des Score-Blocks interessieren.
Ideal wäre natürlich ein compilierbares Minimal-Beispiel (da reicht ja ein Takt mit "Dummy-Musik". :)

Viele Grüße
Torsten
Titel: Re: Unterschiedliche Abstände von Zeilen in einer Akkolade
Beitrag von: juppes am Sonntag, 27. Januar 2013, 16:36
Hallo Torsten,

hier kommen meine beiden Dateien mit Dummy-Text. Hat ein bißchen gedauert, weil es viel Hin- und Herkopieren ist. Sie sind aber aussagekräftig, denn sie tun genau das, was bei mir in der "freien Wildbahn" auch passiert:

Titel: Re: Unterschiedliche Abstände von Zeilen in einer Akkolade
Beitrag von: harm6 am Sonntag, 27. Januar 2013, 17:35
Hallo juppes,

der Befehl
  \override StaffGrouper #'staffgroup-staff-spacing #'basic-distance = #15
bleibt wirkungslos, da Du nur eine StaffGroup pro score angibst. Also kann es kein spacing von einer StaffGroup zu einem anderen Staff geben. Es gibt keinen anderen Staff!!

Mir ist auch schleierhaft warum Du überhaupt den Versuch unternimmst eigene Klammern zu setzen (die keine StaffGroup initiieren!!).
Nimm doch den Code wie Torsten ihn vorgeschlagen hat.

Oder schau ins LM:
http://lilypond.org/doc/v2.17/Documentation/learning-big-page#orchestral-templates (http://lilypond.org/doc/v2.17/Documentation/learning-big-page#orchestral-templates)

Dort würde obiger Befehl auch wirken.


Gruß,
  Harm
Titel: Re: Unterschiedliche Abstände von Zeilen in einer Akkolade
Beitrag von: RobUr am Sonntag, 27. Januar 2013, 17:40
Hallo juppes,

Du definierst ja auch nur eine einzige StaffGroup!!! Der Aufbau des \score-Blocks im ersten Bookpart müsste folgendermaßen aussehen, damit die StaffGrouper-Overrides funktionieren:
\score {
<<
\new StaffGroup \with {
\override StaffGrouper #'staffgroup-staff-spacing
#'basic-distance = #15
}{
<<
\tag #'score \tag #'Eins \new Staff {  \instrItuttiI }
\tag #'score \tag #'Zwei \new Staff {  \instrIItuttiI  }
\tag #'score \tag #'Drei \new Staff  {  \instrIIItuttiI  }
>>
}
\tag #'score \tag #'Vier \new Staff \with {
\override VerticalAxisGroup #'default-staff-staff-spacing
#'basic-distance = #15
}{    \instrsoloI  }
\new StaffGroup {
<<
\tag #'score \tag #'Fünf \new Staff  {  \instrIVtuttiI  }
\tag #'score \tag #'Sechs \new Staff  {  \instrVtuttiI  }
\tag #'score \tag #'Sieben \new Staff  {  \instrVItuttiI  }
\tag #'score \tag #'Acht \new Staff  {  \instrVIItuttiI  }
>>
}
>>

\layout { }
}

Gruß, Robert
Titel: Re: Unterschiedliche Abstände von Zeilen in einer Akkolade
Beitrag von: juppes am Sonntag, 27. Januar 2013, 19:51
hallo ihr alle,

vielen Dank für die tollen Anregungen. Zur Erklärung meines merkwürdigen Codes sollte ich vielleicht noch etwas anmerken: ich habe die Grundstruktur der ganzen Sache einfach aus dem Lilypond-Lernbuch abgekupfert. Dort gibt es eine Vorlage für Streichquartett, die Stimmen und Partitur erzeugt, eine Kombination, die ich immer wieder benötige. Die habe ich einfach erweitert, denn auch eine Orchesterpartitur ist ja auch nur eine Art gemischtes Nonett oder so etwas. Das erschien mir nicht unlogisch. Ob meine Akkoladen nun nur 4, 9 oder sonstwieviel Zeilen enthalten, erschien mir dabei sekundär: ich habe sie immer als eine einzige mehr oder weniger große StaffGroup angesehen.

Und nun meine Frage dazu: wenn ich eine auch nur rein optische Untergruppierung per Klammerung vornehme (um die Paritur übersichtlicher zu machen), sieht Lilypond das dann auf einmal als mehrere StaffGroups? Sollte dem so sein, dann habe ich einen Denkfehler begangen.

Ich wäre für einen kurzen Kommentar dankbar, denn hier scheint das Problem ja zu liegen...

Ich mache mich nun mal an die Arbeit und baue ein wenig um, damit ich sehe, was dann bei mir passiert.
Titel: Re: Unterschiedliche Abstände von Zeilen in einer Akkolade
Beitrag von: Be-3 am Sonntag, 27. Januar 2013, 20:24
Hallo Juppes,

zunächste einmal besteht eine Partitur auf höchter Ebene aus \score, eben der Partitur.
Diese enthält zunächst einmal verschiedene Staffs (das sind die "Notenzeilen"), die ihrerseits je eine oder mehrer Voices enthalten können.

Wenn man möchte, kann man diese einzelnen Staffs auch noch gruppieren, z. B. als StaffGroup (mit eckiger Klammer zusammengefaßt) oder PianoStaff (mit geschwungener Klammer) oder ChoirGroup (ohne durchgezogene Taktlinien, damit der Text nicht gestört wird) usw.

Es ist also völlig normal, mehrere StaffGroups zu haben - so wie in meinem ursprünglichen Beispiel oder Roberts Anpassung Deiner Partitur bzw. Harms Hinweisen.

Wenn man sogar die einsamen Einzelzeilen als StaffGroup deklariert, erkennt man die StaffGroup nicht, weil einzelne Zeilen per Default keine Klammern bekommen, aber sie verhalten sich vom Spacing her genau wie eben StaffGroups.
Dann reicht es aus, einmal (!) im \context den staffgroup-staff-spacing-Wert zu verändern, das gilt dann für alle StaffGroups und muß nicht wie in RobUrs Beispiel jedes mal mit "\with {...}" angegeben werden.

Dein Problem kam also dadurch, daß Du statt einfach pro Gruppe eine StaffGroup zu definieren überflüssigerweise die komplette Partitur als eine einzige StaffGroup angelegt hast und dann per Delimiter-Hierarchie die Klammern "gewaltsam" zurechtgebogen hast. ;)

Viele Grüße
Torsten
Titel: Re: Unterschiedliche Abstände von Zeilen in einer Akkolade
Beitrag von: juppes am Sonntag, 27. Januar 2013, 22:42
gute Neuigkeiten: alle Probleme gelöst! Habe meine Partitur und das Dokument mit den Noten umstrukturiert, und nun ist alles so wie gewollt.


Ich habe nun auch die Logik verstanden, die meinem Problem zugrundeliegt. Bei einem Streichquartett spielen all diese Dinge keine Rolle. Erst wenn dieses erheblich erweitert wird und zusätzliche Anforderungen auftauchen, stößt das Modell definitiv an seine Grenzen. Dann muß die Sache anders aufgebaut werden, was in Zukunft bei Projekten dieser Art auch geschehen wird.

Eine kleine Nachfrage bleibt noch:

Zitat
Dann reicht es aus, einmal (!) im \context den staffgroup-staff-spacing-Wert zu verändern, das gilt dann für alle StaffGroups und muß nicht wie in RobUrs Beispiel jedes mal mit "\with {...}" angegeben werden

Was genau ist damit gemeint?
Titel: Re: Unterschiedliche Abstände von Zeilen in einer Akkolade
Beitrag von: Be-3 am Montag, 28. Januar 2013, 00:03
Was genau ist damit gemeint?

Damit ist folgendes gemeint:

Es gibt in Lilypond Default-Einstellungen wie z. B. die Abstände, die Systeme zueinander haben.
Die kann man aber auf verschiedene Weisen an seine Anforderungen anpassen.

a) allgemeingültige Anpassungen

Wenn Du z. B. möchtest, daß alle Notenzeilen grundsätzlich weiter auseinander stehen, kannst Du für alle Staffs global den Grundabstand ändern, indem Du im Layout-Block die entsprechende Kontext-Eigenschaft umdefinierst:

\version "2.16.1"

\layout {
  \context {
    \Staff
    \override VerticalAxisGroup #'default-staff-staff-spacing #'basic-distance = #15
  }
}

<<
  \new Staff { c''1 }
  \new Staff { c''1 }
  \new Staff { c''1 }
  \new Staff { c''1 }
>> 


b) Einzel-Anpassungen

Wenn Du aber nur nach der ersten Zeile einen größeren Abstand zu den folgenden Zeilen haben möchtest, kannst Du das im Score-Block mit der \with-Anweisung individuell für jeden Staff/jede SaffGroup usw. einzeln beeinflussen:

\version "2.16.1"

<<
  \new Staff \with { \override VerticalAxisGroup #'default-staff-staff-spacing #'basic-distance = #15 }{ c''1 }
  \new Staff { c''1 }
  \new Staff { c''1 }
  \new Staff { c''1 }
>> 


Viele Grüße
Torsten
Titel: Re: Unterschiedliche Abstände von Zeilen in einer Akkolade
Beitrag von: juppes am Montag, 28. Januar 2013, 00:28
wunderbar! Danke, jetzt ist mir alles sonnenklar. Noch einmal ganz herzlichen Dank an Dich und die anderen, die hier mit ihrem Wissen mir beigesprungen sind.

Wenn doch Notenschreiben selber nicht immer so zeitaufwendig wäre! Dann hätte ich auch mal mehr Zeit, in den Unterbau von Lilypond hineinzuschauen. So bleibt es leider oft bei einer soliden Halbbildung. Ich bin Euch allen sehr dankbar, daß ich Eure Kenntnisse anzapfen kann.

Allen noch eine gute Woche
Titel: Re: Unterschiedliche Abstände von Zeilen in einer Akkolade
Beitrag von: Musix am Freitag, 21. August 2015, 13:28
Hallo Leute,

habe nun mehrfach mit den hier genannten Lösungen herumgespielt, und es tut sich GAR NICHTS. Nach intensiver Fehlersuche finde ich keinen Fehler.

Hier der Code (Die Noten von upper und lower (rechte und linke Hand Klavier) wurden stark gekürzt, ansonsten alles "original"):

\language "deutsch"
\include "deutsch.ly"
\include "gonville.ily"
\version "2.18.2"
\paper {
  two-sided = ##t
  inner-margin = #10
  outer-margin = #10
  top-margin = #10
  % bottom-margin = #2
  binding-offset = #4
 
  print-page-number = ##t
  % first-page-number = 21
  % print-first-page-number = ##t

  ragged-last-bottom = ##f
  ragged-bottom = ##f
  system-system-spacing #'basic-distance = #25
}

\header {
  title = "Januar"
  % subtitle = "kältester Monat"
  composer = \markup { \italic "Markus W. Kropp" }
  opus = "opus 11 Nr.1"
  tagline = ""
}

upper = \relative c' {
  \clef treble
  \key g \major
  \time 12/8
  \tempo "Moderato"
 
  % Intro - Pause / nur links
  r1.-\tweak padding #1.5 \mp
  \repeat unfold 3 { r1. }
 
  % Intro 2 - Achtelbewegung
 
  \repeat unfold 2 {
    \repeat unfold 2 { h'8 e, h' e, h' e, }
    \repeat unfold 2 { a d, a' d, a' d, }
    \repeat unfold 2 { g c, g' c, g' c, }
    fis h, fis' h, fis' h, fis' h, fis' h, fis' g
  }
 
 
}

lower = \relative c {
  \clef bass
  \key g \major
  \time 12/8
  % \language "deutsch"

  % Thema 1
 
  \repeat unfold 4  { a4. e' c' e, | e, h' g' h, | a e' a e | e, h' g' h, }
  e,1.
 
  \bar "|."
 
 
}

Pedal = { s1.\sustainOn }

\score {
  \new PianoStaff <<
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
    \new Dynamics = "pedal" \Pedal
  >>
  \layout {
    \context {
      \Staff
         \override VerticalAxisGroup #'default-staff-staff-spacing #'basic-distance = #20
       }
    }
  \midi { }
  }


Jemand eine Idee? Momentan leide ich unter dem Syndrom Wald-vor-Bäumen-nicht-sehen  :P

LG Musix
Titel: Re: Unterschiedliche Abstände von Zeilen in einer Akkolade
Beitrag von: RobUr am Freitag, 21. August 2015, 14:20
Hallo Markus,

ich definiere immer die ganze Abstandsliste:
\version "2.18.2"

\language "deutsch"

\paper {
ragged-last-bottom = ##f
ragged-bottom = ##f

system-system-spacing = #'(
(basic-distance . 12) ; default: 12
(minimum-distance . 8) ; default: 8
(padding . 1) ; default: 1
(stretchability . 60) ; default: 60
)
}

\header {
title = "Januar"
% subtitle = "kältester Monat"
composer = \markup { \italic "Markus W. Kropp" }
opus = "opus 11 Nr.1"
tagline = ##f
}

upper = \relative c' {
\clef treble
\key g \major
\time 12/8
\tempo "Moderato"

% Intro - Pause / nur links
R1.-\tweak padding #1.5 \mp
\repeat unfold 3 { R1. }

% Intro 2 - Achtelbewegung

\repeat unfold 2 {
\repeat unfold 2 { h'8 e, h' e, h' e, }
\repeat unfold 2 { a d, a' d, a' d, }
\repeat unfold 2 { g c, g' c, g' c, }
fis h, fis' h, fis' h, fis' h, fis' h, fis' g
}
}

lower = \relative c {
\clef bass
\key g \major
\time 12/8

% Thema 1
\repeat unfold 4 {
a4. e' c' e, | e, h' g' h, | a e' a e | e, h' g' h,
}
e,1.
\bar "|."
}

Pedal = {
s1.\sustainOn
}

\score {
\new PianoStaff <<
\new Staff = "upper" \upper
\new Staff = "lower" \lower
\new Dynamics = "pedal" \Pedal
>>

\layout {
\context {
\Staff
\override VerticalAxisGroup.staff-staff-spacing = #'(
(basic-distance . 12.5) ; default: 9
(minimum-distance . 12.5) ; default: 8
(padding . 1.0) ; default: 1
)
}
}

\midi { }
}

Gruß, Robert
Titel: Re: Unterschiedliche Abstände von Zeilen in einer Akkolade
Beitrag von: Musix am Freitag, 21. August 2015, 15:22
Jo, das ist mehr als super. Funktioniert! Werde ich fest in meine Partituren integrieren. Schöne, direkte Kontrolle über alles!

LG Markus
Titel: Re: Unterschiedliche Abstände von Zeilen in einer Akkolade
Beitrag von: RobUr am Freitag, 21. August 2015, 17:52
Hallo Markus,

die default-Werte für \paper-Variablen findet man übrigens in ly/paper-defaults-init.ly Ein gutes Cheatsheet zum Spacing gibt es unter http://joramberger.de/files/LilypondSpacing.pdf

In deinem Fall bewirken die folgenden 4 \layout-Blöcke dasselbe:
\layout {
\override Staff.VerticalAxisGroup.staff-staff-spacing = #'(
(basic-distance . 11.0) ; default: 9
(minimum-distance . 10.0) ; default: 8
(padding . 1.0) ; default: 1
;(stretchability . 5.0) ; default: unset
)
}
\layout {
\override PianoStaff.StaffGrouper.staff-staff-spacing = #'(
(basic-distance . 11.0) ; default: 9
(minimum-distance . 9.0) ; default: 7
(padding . 1.0) ; default: 1
(stretchability . 5.0) ; default: 5
)
}
\layout {
\context {
\Staff
\override VerticalAxisGroup.staff-staff-spacing = #'(
(basic-distance . 11.0) ; default: 9
(minimum-distance . 10.0) ; default: 8
(padding . 1.0) ; default: 1
;(stretchability . 5.0) ; default: unset
)
}
}
\layout {
\context {
\PianoStaff
\override StaffGrouper.staff-staff-spacing = #'(
(basic-distance . 11.0) ; default: 9
(minimum-distance . 9.0) ; default: 7
(padding . 1.0) ; default: 1
(stretchability . 5.0) ; default: 5
)
}
}

Man beachte die unterschiedliche Position im \layout-Block und welcher Context auf welche Weise angesprochen wird. Am deutlichsten sind die Auswirkungen sichtbar, wenn man ragged-last-bottom auf ##t setzt, da ansonsten die stretchability-Faktoren einbezogen werden. Welche Abstände berechnet werden, kann man durch die Zeile
\paper { annotate-spacing = ##t } #(ly:set-option 'debug-skylines #t)am Dateianfang kontrollieren (die Option debug-skylines kann man weglassen).

Viel Spaß beim Experimentieren!

Gruß, Robert