Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: Manuela am Donnerstag, 5. Mai 2016, 21:36

Titel: Vertikale Anordnung von BarNumbers, MetronomMark und RehearsalMark
Beitrag von: Manuela am Donnerstag, 5. Mai 2016, 21:36
Hi,

ich hätte gerne, dass die RehearsalMarks in einer Linie stehen, das MetronomMark dazwischen und die Barnummern sollten näher beim Staff sein. Ich habe verschiedene Varianten von outside-staff-priority versucht, aber nichts hat eine Veränderung erbracht.

Hier ein Minimalbeispiel:

\version "2.19.2"

\header{
  title = "Blabla blabla"
  composer = "Text/Blabla blabla"
  subtitle = "Blabla blabla"
}

\language "deutsch"

\paper {
  #(set-paper-size "a4")
  annotate-spacing = ##f
  system-system-spacing.extra-distance = #0
  last-bottom-spacing.basic-distance = #10
  left-margin = #20
  system-system-spacing.basic-distance = #10

}

StropheI = \lyricmode {
  %\set stanza = "1:"
  bla bla bla
}

NurNoten= {
  \set Score.barNumberVisibility = #(every-nth-bar-number-visible 1)
  \override Score.BarNumber.break-visibility = #end-of-line-invisible
  \mark \markup { \box \bold "Teil 1" }
  c c c c c c c c c c c c
}

Gesang = \relative c' {
  \clef "treble" \key c \major \time 4/4
  \set Timing.beamExceptions = #'()
  \set Timing.baseMoment = #(ly:make-moment 1/8)
  \set Staff.beatStructure = #'(2 2 2 2 )
  \set Staff.midiInstrument = #"acoustic grand"
  \autoBeamOff
  \tempo 4=120
  \set Score.markFormatter = #format-mark-box-alphabet
  \set midiInstrument = #"choir aahs"
  \override Score.BarNumber.break-visibility = #end-of-line-invisible
  \set Score.barNumberVisibility = #(every-nth-bar-number-visible 1)
  \mark \markup { \box "Einleitung" } r1 r1

  r1 r1
  \NurNoten
  \bar "||"
}

% hier kommen die Akkordbezeichnungen
AK = \chordmode {
  \set chordChanges = ##f
  c1 g c c c c c
}

Struktur= {
  s1*7 \break
}

\score
{
  \new StaffGroup
  <<
    \new ChordNames
    {
      \AK
    }
    \new Staff \with
    {
      \override Staff.RehearsalMark.outside-staff-priority = #1000
      \override Staff.MetronomeMark.outside-staff-priority = #100
      \override Staff.BarNumber.outside-staff-priority = #10
    }
    <<
      \new Voice = "upper" {
        \set Staff.instrumentName="Vocal"
        \Gesang
      }
      \new Lyrics \lyricsto "upper" { \StropheI }
      \Struktur
    >>
  >>
}
Titel: Re: Vertikale Anordnung von BarNumbers, MetronomMark und RehearsalMark
Beitrag von: harm6 am Freitag, 6. Mai 2016, 00:07
Zitat
Hier ein Minimalbeispiel:
Also, ein Minimalbeispiel ist das jetzt nicht - all diese Setzungen vernebeln nur das eigentliche Problem.

Das Problem ist aber ein bißchen komplexer. Schau mal, ob Du damit klar kommst:

\version "2.19.41"

Gesang = \relative c' {
  \tempo 4=120
  \once \override Score.RehearsalMark.self-alignment-X = #RIGHT
  \mark \markup { \box "Einleitung" }
  r1 r1
  r1 r1
  \mark \markup { \box \bold "Teil 1" }
  c c c c c c c c c c c c
  \bar "||"
}

% hier kommen die Akkordbezeichnungen
AK = \chordmode {
  c1 g c c c c c
}

\layout {
  \context {
    \Score
    \override BarNumber.break-visibility = ##(#t #t #t)
    \remove "Bar_number_engraver"
    \override RehearsalMark.padding = #3
    \override MetronomeMarkMark.padding = #3
  }
  \context {
    \ChordNames
    \override VerticalAxisGroup.staff-affinity = #UP
  }
}

\score {
  \new StaffGroup
  <<
    \new ChordNames
    \AK
    \new Staff
      \with {
        \consists "Bar_number_engraver"
        \override BarNumber.padding = #0
      }
      \new Voice = "upper" \with {
        instrumentName="Vocal"
      }
      \Gesang
  >>
}

HTH,
  Harm
Titel: Re: Vertikale Anordnung von BarNumbers, MetronomMark und RehearsalMark
Beitrag von: Manuela am Freitag, 6. Mai 2016, 10:03
Danke Harm, werde ich mir ansehen!

Ok steht jetzt in einer Zeile, aber das 1. Mark zu weit links. Gibt wohl keine sinnvolle Lösung für mein Problem.

Das mit den Barnumbers klappt jedenfalls super, danke!

Update: ich habe jetzt das Metronom-Mark runtergesetzt und versuche es mit

\override MetronomeMark.outside-staff-horizontal-padding = #-3
nach links zu verschieben (im Score-Context), aber es rührt sich nicht vom Fleck!
Titel: Re: Vertikale Anordnung von BarNumbers, MetronomMark und RehearsalMark
Beitrag von: harm6 am Freitag, 6. Mai 2016, 11:22
Das grundsätzliche Problem besteht ja darin, daß Du sowohl RehearsalMark als auch MetronomeMark zur selben Zeit gesetzt hast, aber beide horizontal in einer Linie haben willst.
Wenn man mal davon absieht, daß ich noch nie verstanden habe warum das jemand haben will (visuell steht dann doch entweder die RehearsalMark oder die MetronomeMark schlichtweg an der falschen Stelle), so kommt dieser Wunsch doch öfters.

Aber entweder Du mußt die RehearsalMark nach links schieben (wie in meiner ersten Antwort) oder die MetronomeMark nach rechts. Auch das geht, wenn auch mit einem work-around:

\version "2.19.41"

Gesang = \relative c' {
  \set Score.tempoHideNote = ##t
  \tempo 4=120
  \mark \markup { \box "Einleitung" }
  r1
  \unset Score.tempoHideNote
  \tempo 4=120
  r1
  r1 r1
  \mark \markup { \box \bold "Teil 1" }
  c c c c c c c c c c c c
  \bar "||"
}

% hier kommen die Akkordbezeichnungen
AK = \chordmode {
  c1 g c c c c c
}

\layout {
  \context {
    \Score
    \override BarNumber.break-visibility = ##(#t #t #t)
    \remove "Bar_number_engraver"
    \override RehearsalMark.padding = #3
    \override MetronomeMarkMark.padding = #3
  }
  \context {
    \ChordNames
    \override VerticalAxisGroup.staff-affinity = #DOWN
  }
}

\score {
  \new StaffGroup
  <<
    \new ChordNames
    \AK
    \new Staff
      \with {
        \consists "Bar_number_engraver"
        \override BarNumber.padding = #0
        instrumentName="Vocal"
      }
      \new Voice = "upper"
      \Gesang
  >>
}

Zitat
ich habe jetzt das Metronom-Mark runtergesetzt und versuche es mit ... zu verschieben

Hier weiß ich nicht genau was Du möchtest, code bitte ;)

Gruß,
  Harm
Titel: Re: Vertikale Anordnung von BarNumbers, MetronomMark und RehearsalMark
Beitrag von: Manuela am Freitag, 6. Mai 2016, 18:13
Ich hoffe, jetzt komme ich einem Minimalbeispiel näher, habe vieles Unnötige rausgeschmissen

\version "2.19.2"

\language "deutsch"

\paper {
  #(set-paper-size "a4")
}

Gesang = \relative c' {
  \clef "treble" \key c \major \time 4/4
  \override Score.MetronomeMark.direction = #DOWN
  \tempo 4=120
  \set Score.markFormatter = #format-mark-box-alphabet
  \override Score.BarNumber.break-visibility = #end-of-line-invisible
  \set Score.barNumberVisibility = #(every-nth-bar-number-visible 1)
  \mark \markup { \box "Einleitung" }
  r1 r1 r1
  \mark \markup { \box \bold "Teil 1" }

}

AK = \chordmode {
  \set chordChanges = ##f
  c1 g f
}

\score
{
  <<
    \new ChordNames
    {
      \override VerticalAxisGroup.staff-affinity = #UP
      \AK
    }
    \new Staff
    <<
      \set Staff.instrumentName="Vocal"
      \new Voice = "upper" {
        \Gesang
      }

    >>
  >>
}

Ich würde gerne das Metronommark weiter nach links schieben.

Danke für deine unermüdlichen Bemühungen!  :) :D
Titel: Re: Vertikale Anordnung von BarNumbers, MetronomMark und RehearsalMark
Beitrag von: harm6 am Freitag, 6. Mai 2016, 23:25
Ein minimal-Beispiel für "eine unter dem Staff angesiedelte MetronomeMark horizontal verschieben" wäre

\version "2.19.41"

\new Staff {
  \override Score.MetronomeMark.direction = #DOWN
  \tempo 4=120
  r1
}

;)

Geht via 'X-offset oder 'self-alignment-X.
Ich finde immer 'self-alignment-X ist weniger invasiv aber schwerer zu handhaben. Probiers aus.

Z.B.:
\version "2.19.41"

\new Staff {
  \override Score.MetronomeMark.direction = #DOWN
  \override Score.MetronomeMark.self-alignment-X = 0.2
  \tempo 4=120
  r1
}

Preisfrage, wer kann vorhersagen was hier rauskommt ;)

\new Staff {
  \override Score.MetronomeMark.direction = #DOWN
  \override Score.MetronomeMark.X-offset = 15
  \tempo 4=120
  r1
}


Gruß,
  Harm
Titel: Re: Vertikale Anordnung von BarNumbers, MetronomMark und RehearsalMark
Beitrag von: Manuela am Freitag, 6. Mai 2016, 23:44


Preisfrage, wer kann vorhersagen was hier rauskommt ;)

\new Staff {
  \override Score.MetronomeMark.direction = #DOWN
  \override Score.MetronomeMark.X-offset = 15
  \tempo 4=120
  r1
}


Ich hab's natürlich ausprobiert  ;)
Titel: Re: Vertikale Anordnung von BarNumbers, MetronomMark und RehearsalMark
Beitrag von: harm6 am Samstag, 7. Mai 2016, 00:06
Zitat von: Manuela
Ich hab's natürlich ausprobiert

Tja, somit muß ich Dir den Gewinn eines Toasters leider vorenthalten :D
Titel: Re: Vertikale Anordnung von BarNumbers, MetronomMark und RehearsalMark
Beitrag von: Manuela am Samstag, 7. Mai 2016, 00:22
Zitat von: Manuela
Ich hab's natürlich ausprobiert

Tja, somit muß ich Dir den Gewinn eines Toasters leider vorenthalten :D

Das kommt davon, wenn man ehrlich ist  ;)