Autor Thema: Abstände zwischen Scores innerhalb eines bookparts (gelöst)  (Gelesen 1726 mal)

Manuela

  • Gast
Abstände zwischen Scores innerhalb eines bookparts (gelöst)
« am: Freitag, 17. März 2017, 21:28 »
Hi,

ich hätte gerne, dass die Abstände zwischen zwei Scores in einem Bookpart genauso groß sind wie die Abstände zwischen zwei Systemen innerhalb der Scores. Im Minimalbeispiel funktioniert dies auch, allerdings bei den tatsächlichen Noten nicht.
Hier das Minimalbeispiel:

\version "2.19.56"

global = {
  \key c \major
  \time 4/4
}

right = \relative c'' {
  \global
  \repeat unfold 40 c4
}

left = \relative c' {
  \global
  \repeat unfold 40 c4
}

\bookpart {
  \paper {
    print-all-headers = ##t
    ragged-bottom = ##f
    ragged-last-bottom = ##f
    top-margin = 50\mm
    line-width = 105\mm
    annotate-spacing = ##t
    markup-system-spacing  = #'((basic-distance . 0)
                                (minimum-distance . 0)
                                (padding . 0)
                                (stretchability . 0))
    score-markup-spacing  = #'((basic-distance . 12)
                               (minimum-distance . 0)
                               (padding . 0)
                               (stretchability . 0))
  }
  \score {
    \new PianoStaff  <<
      \new Staff = "right"
      {
        \mark \markup { Score1 }
        \right
      }
      \new Staff = "left" { \clef bass \left }
    >>
  }
  \score {
    \new PianoStaff  <<
      \new Staff = "right"
      {
        \right
      }
      \new Staff = "left" { \clef bass \left }
    >>
  }
}

Update: ich bin nicht mehr sicher, dass das Beispiel wirklich funktioniert.
« Letzte Änderung: Montag, 20. März 2017, 06:23 von Manuela »

fugenkomponist

  • Gast
Re: Abstände zwischen Scores innerhalb eines bookparts
« Antwort #1 am: Freitag, 17. März 2017, 22:28 »
Du hast ja keine Markups zwischen den Scores, oder? Dann ist wahrscheinlich score-system-spacing das Mittel der Wahl, nicht score-markup-spacing und markup-system-spacing.

Manuela

  • Gast
Re: Abstände zwischen Scores innerhalb eines bookparts
« Antwort #2 am: Samstag, 18. März 2017, 09:12 »
Danke für deinen Hinweis.

Ich habe mit Hilfe von annotate-spacing festgestellt, dass die Einstellungen markup-system-spacing und score-markup-spacing entscheidend sind, auch wenn ich keine Markups zwischen den Scores habe. Trotzdem ist es mir nicht gelungen, eine Äquidistanz herzustellen. Ist zwar nur ein Schönheitsfehler, aber mich stört es irgendwie (habe den Donauwalzer für Klavier gesetzt und die einzelnen Teile als Scores definiert, da Lily den Neuanfang innerhalb eines Scores bekanntlich nicht unterstützt).

fugenkomponist

  • Gast
Re: Abstände zwischen Scores innerhalb eines bookparts
« Antwort #3 am: Samstag, 18. März 2017, 09:26 »
Ich habe mit Hilfe von annotate-spacing festgestellt, dass die Einstellungen markup-system-spacing und score-markup-spacing entscheidend sind, auch wenn ich keine Markups zwischen den Scores habe.
Sicher? Ich hab irgendwie das Gefühl, daß annotate-spacing vielleicht nicht alles zeigt, jedenfalls zeigt diese fantastische Übersicht gut, wofür die einzelnen Dinge gut sind.

Ich schau aber gleich mal in deinen Code und probier selbst ein bißchen rum, dafür war ich gestern zu müde.

Edit: Komisch, tatsächlich scheint score-system-spacing keinen Effekt zu haben. Habe die Werte von system-system-spacing aus ly/paper-defaults-init.ly entnommen und score-system-spacing auf die gleichen gesetzt, aber das hatte nicht den erwarteteten Effekt. Da dachte ich, setz ich mal zusätzlich score-markup-spacing und markup-system-spacing auf 0, dann fehlte da sämtlicher Platz. Deshalb hier mal eine Lösung, die den Platz zwischen den beiden scores jeweils hälftig auf score-markup-spacing und markup-system-spacing aufteilt.
  \paper {
    print-all-headers = ##t
    ragged-bottom = ##f
    ragged-last-bottom = ##f
    top-margin = 50\mm
    line-width = 105\mm

    % keine Änderung an system-system-spacing, hier einfach nochmal die default-Werte zum Vergleich
    system-system-spacing = #'((basic-distance . 12)
                               (minimum-distance . 8)
                               (padding . 1)
                               (stretchability . 60))
    % folgende Werte sind angepaßt, Original im Kommentar dahinter
    % hab einfach jeweils die Hälfte der Werte oben genommen
    markup-system-spacing = #'((basic-distance . 6)    ; 5
                                (padding . 0.5)        ; 0.5
                                (stretchability . 30)) % 30
    score-markup-spacing = #'((basic-distance . 6)     ; 12
                               (padding . 0.5)         ; 0.5
                               (stretchability . 30))  % 60
  }
Funktioniert auch tatsächlich, aber ich hab das Gefühl, daß ich entweder was total falsch verstanden habe oder es sich um einen bug handelt.

2. Edit: Übrigens reicht es nicht, die Werte z. B. auf score-markup-spacing zu übertragen und in markup-system-spacing einfach auf 0 zu setzen, weil markup-system-spacing dann trotzdem noch Platz braucht wegen der Höhe des Violinschlüssels etc.
3. Edit: Hab deswegen da mal padding negativ gesetzt, ist dann besser, aber trotzdem noch nicht ganz gleichmäßig. Also schon echt besser, hälftig aufzuteilen.
« Letzte Änderung: Samstag, 18. März 2017, 09:46 von fugenkomponist »

Manuela

  • Gast
Re: Abstände zwischen Scores innerhalb eines bookparts
« Antwort #4 am: Samstag, 18. März 2017, 09:52 »
Danke Komponist, das hilft mir schon mal eine Menge weiter.

Irgendwie steige ich durch diesen ganzen Abstands-Staff nicht durch.
« Letzte Änderung: Samstag, 18. März 2017, 10:11 von Manuela »

harm6

  • Gast
Re: Abstände zwischen Scores innerhalb eines bookparts
« Antwort #5 am: Samstag, 18. März 2017, 22:59 »
Hallo,

um für ein wenig Aufklärung zu sorgen:

score-system-spacing ist das richtige tool um Abstände zwischen scores zu regeln, falls sich kein markup dazwischen befindet.
Die Verwendung von
print-all-headers = ##t
führt jedoch zur Ausgabe des scoreTitleMarkups. Da im Beispiel keine relevanten Setzungen erfolgt sind sieht man es natürlich nicht. Ob das jetzt ein empty-stencil oder ein point-stencil ist hab' ich nicht geprüft, wichtig ist allein: es ist etwas da!.

Kann man auch sichtbar machen durch:

\paper {
  scoreTitleMarkup = \markup \with-color #red \box { \scoreTitleMarkup }
}
{ c'1 }
Gibt natürlich Warnungen aus, aber achte auf das kleine rote Kreuz im angehängten png. Das ist das sichtbar gemachte scoreTitleMarkup.

Deshalb greift score-system-spacing nicht mehr und man muss zu score-markup-spacing/markup-system-spacing ausweichen.

Auch veranlasst ragged-last-bottom = ##f LilyPond zu einem vertikalen Ausgleich, solange stretchabillity in den spacing-Variablen größer null ist.


Also, verwende score-markup-spacing/markup-system-spacing, falls print-all-headers = ##t.
ragged-last-bottom = ##f ist ziemlich sinnlos, falls Du auf Deinen Setzungen bestehst, dann aber auch stretchability auf 0.


HTH,
  Harm

Manuela

  • Gast
Re: Abstände zwischen Scores innerhalb eines bookparts
« Antwort #6 am: Sonntag, 19. März 2017, 15:12 »
Hallo Harm,

danke für die Erläuterungen, die wieder einmal etwas Licht ins Dunkel bringen  ;)
Ich muss den Header direkt in den bookpart setzen, ist mir jetzt klar geworden.

Wenn ich print-all-headers = ##f setze, kriege ich kleine rote Punkte in der Ausgabe. Wenn ich dich richtig verstanden habe, sollte dann überhaupt nichts mehr zu sehen sein.

Jetzt noch mal der ganze Code von vorne, ohne Änderungen bei den Abständen:

\version "2.19.56"

\version "2.19.56"

global = {
  \key c \major
  \time 4/4
}

right = \relative c'' {
  \global
  \repeat unfold 40 c4
}

left = \relative c' {
  \global
  \repeat unfold 40 c4
}

\bookpart {
  \header {
    title = "Überschrift"
    subtitle = ##f
    subsubtitle = ##f
    poet = ##f
    composer = ##f
    piece = ##f
    opus = ##f
    dedication = ##f
  }
  \paper {
    print-all-headers = ##f
    ragged-bottom = ##t
    ragged-last-bottom = ##t
    top-margin = 20\mm
    bottom-margin = 20\mm
    line-width = 105\mm
    annotate-spacing = ##f
    scoreTitleMarkup = \markup \with-color #red \box { \scoreTitleMarkup }
  }
  \score {
    \new PianoStaff  <<
      \new Staff = "right"
      {
        \mark \markup { Score1 }
        \right
      }
      \new Staff = "left" { \clef bass \left }
    >>
  }
  \score {
    \new PianoStaff  <<
      \new Staff = "right" \right
      \new Staff = "left" { \clef bass \left }
    >>
  }
}

score-system-spacing bewirkt überhaupt keine Änderung, obwohl jetzt keine Titel mehr vorhanden sein sollten. Was mache ich noch immer falsch?

harm6

  • Gast
Re: Abstände zwischen Scores innerhalb eines bookparts
« Antwort #7 am: Sonntag, 19. März 2017, 15:24 »
Zitat
Wenn ich dich richtig verstanden habe, sollte dann überhaupt nichts mehr zu sehen sein.

Nicht ganz, denn
    scoreTitleMarkup = \markup \with-color #red \box { \scoreTitleMarkup }
erzeugt ja durch das box-markup in jedem Fall eine sichtbare Ausgabe (und Warnungen)

Streiche diese Zeile.

Gruß,
  Harm

Manuela

  • Gast
Re: Abstände zwischen Scores innerhalb eines bookparts
« Antwort #8 am: Sonntag, 19. März 2017, 16:06 »
Danke Harm, jetzt muss ich nur noch mit den Werten experimentieren, bis mir der Output gefällt.