Zwischentitel

Begonnen von hurrlipurr, Sonntag, 22. Oktober 2017, 13:19

« vorheriges - nächstes »

hurrlipurr

Hallo,

ich möchte verschiedene Teile meines Stücks mit Zwischentiteln (z.B. Intro, Strophe, Refrain) markieren.

Bisher habe ich dazu zwei Ansätze gefunden:

  • Gliedern des Stücks in separate \score Blöcke und \header verwenden (blöd, da ich das schon für die Einzelstimmauszüge verwende)
  • ^\markup{Zwischentitel} über der ersten Note (das kollidiert mit Notenblöcken, die ich in Variablen schreibe)

Gibt es noch eine andere Methode, einen Zwischentitel zu setzen, z.B. vor der ersten Note des Blocks?

VG Oliver

harm6

Hallo Oliver,

bitte poste immer ein minimal code-example sowie die verwendete LilyPond-Version.



\version "2.18.2"

xy = { c''1 d'' e''  f'' }

{ \mark "1. Zwischentitel" \xy <>^"2. Zwischentitel" \xy }


Ersteres ist eine RehearsalMark, letzeres TextScript. Beides kann natürlich mit den entsprechenden overrides Deinen Wünschen angepasst werden.

HTH,
  Harm

hurrlipurr


hurrlipurr

#3
Hi,

ich kämpfe wieder mit den Zwischentiteln.  :-\

Ich möchte einzelne Parts mit kurzen Titeln überschreiben. Die folgende Lösung kommt dem Ziel am nächsten, allerdings werden die Titel zentriert über die Anfangssymbole gesetzt, was bei längeren Texten nicht funktioniert (die ragen dann links aus dem Blatt).

Gibt es eine Möglichkeit, die Titel einfach linksbündig am System auszurichten?



\version "2.19.82"
\pointAndClickOff
\paper { indent = #0 }
\header { title = "Titel" composer = "Komponist" tagline = ""}
harmonies = \chordmode {
  e1:m e:m7+ e:m7 e:m6   
  e1:m e:m7+ e:m7 e:m6   
}

tromb = \relative c {
  \key e \minor
  \mark \markup {\rounded-box "I"}
  c2 d e f | c b a g \bar"||" \break
  \mark \markup {\rounded-box "Extrem langer Strophenteil"}
  c e d f | c g a b \bar"||"
}
sheet =
  <<
    \new ChordNames {
      \set chordChanges = ##t
      \harmonies
    }
    \new Voice = "trombone" { \clef "bass" \tromb }
  >>
\book { \bookOutputName $(string-append "PDF/" (ly:parser-output-name)) \bookOutputSuffix "C" \sheet}


Edit:
Die Option
  \once \override Score.RehearsalMark.self-alignment-X = #LEFT
  \mark \markup {\rounded-box "I"}

ist schon besser, allerdings hätte ich die Titel noch lieber ganz links am System ausgerichtet.

VG Oliver

Malte

Zitat von: hurrlipurr am Dienstag, 26. November 2019, 13:35
Edit:
Die Option
  \once \override Score.RehearsalMark.self-alignment-X = #LEFT
  \mark \markup {\rounded-box "I"}

ist schon besser, allerdings hätte ich die Titel noch lieber ganz links am System ausgerichtet.

VG Oliver

Du bist schon nah dran: Standardmäßig werden die marks an der rechten Kante der Tonartvorzeichen ausgerichtet. Das kannst du über break-align-symbols ändern.
\override Score.RehearsalMark.self-alignment-X = #LEFT
\override Score.RehearsalMark.break-align-symbols = #'(left-edge)

hurrlipurr

Danke, Malte!

Jetzt habe ich aber noch ein weiteres Problem: wenn ich mehrere Stimmauszüge erstellen will, "kleben" die marks nur an einer Stimme.

Beispiel:\version "2.19.82"
\pointAndClickOff

\paper { indent = #0 }

mymelody = { c4 d e f g a b c }

harmonies = \chordmode { c1 g c g }

leadvox = \relative c' {
  \key c \major
  \override Score.RehearsalMark.self-alignment-X = #LEFT
  \override Score.RehearsalMark.break-align-symbols = #'(left-edge)
  \mark \markup {\rounded-box\teeny "Strophe 1"}
  \relative c' \mymelody
  \mark \markup {\rounded-box\teeny "Strophe 2"}
  \mymelody
}

mylyrics = \lyricmode { Ich bin ein Lied, ein gu -- tes Lied. Und wer's nicht mag ist sel -- ber schuld. }

tromb = \relative c {
  \key c \major
  \relative c \mymelody
  \mymelody
}

sheetPartitur =
  <<
    \new ChordNames {
      \set chordChanges = ##t
      \harmonies
    }
    \new Staff \new Voice = "vocals" { \clef "treble" \leadvox }
    \new Lyrics \lyricsto "vocals" { \mylyrics }
    \new Voice = "trombone" { \clef "bass" \tromb }
  >>

sheetA =
  <<
    \new ChordNames { \set chordChanges = ##t
                      \override ChordName #'font-size = #(magstep -4)
                      \harmonies
                    }
    \new Staff \new Voice = "vocals" { \clef "treble" \leadvox }
    \new Lyrics \lyricsto "vocals" { \mylyrics }
  >>

sheetB =
  <<
    \new ChordNames { \set chordChanges = ##t \harmonies }
    \new Voice = "trombone" { \clef "bass" \tromb }
  >>

% Output-Varianten

\book { \bookOutputName $(string-append "PDF/" (ly:parser-output-name))
        \bookOutputSuffix "partitur" \sheetPartitur
      }

\book { \bookOutputName $(string-append "PDF/" (ly:parser-output-name))
        \bookOutputSuffix "A" \sheetA
      }

\book { \bookOutputName $(string-append "PDF/" (ly:parser-output-name))
        \bookOutputSuffix "B" \sheetB
      }


Wie kann man das denn lösen?

VG Oliver

harm6

#6
Es sind keine RehearsalMarks in sheetB, also werden keine gedruckt.

Ich würde eine eigene Variable dafür machen und dann überall einbinden.

(Etwas vereinfacht soweit es den book-code angeht, ist sonst zu lästig :) )

\version "2.19.82"
\pointAndClickOff

\paper { indent = #0 }

mymelody = { c4 d e f g a b c }

harmonies = \chordmode { c1 g c g }

leadvox = \relative c' {
  \key c \major
  %\override Score.RehearsalMark.self-alignment-X = #LEFT
  %\override Score.RehearsalMark.break-align-symbols = #'(left-edge)
  %\mark \markup {\rounded-box\teeny "Strophe 1"}
  \relative c'
  \mymelody
  %\mark \markup {\rounded-box\teeny "Strophe 2"}
  \mymelody
}

marks = {
  \override Score.RehearsalMark.self-alignment-X = #LEFT
  \override Score.RehearsalMark.break-align-symbols = #'(left-edge)
  \mark \markup {\rounded-box\teeny "Strophe 1"}
  s1*2
  \mark \markup {\rounded-box\teeny "Strophe 2"}
  s1*2
}

mylyrics = \lyricmode { Ich bin ein Lied, ein gu -- tes Lied. Und wer's nicht mag ist sel -- ber schuld. }

tromb = \relative c {
  \key c \major
  \relative c \mymelody
  \mymelody
}

sheetPartitur =
  <<
    \new ChordNames {
      \set chordChanges = ##t
      \harmonies
    }
    \new Staff \new Voice = "vocals"  << \marks { \clef "treble" \leadvox } >>
    \new Lyrics \lyricsto "vocals" { \mylyrics }
    \new Voice = "trombone" { \clef "bass" \tromb }
  >>

sheetA =
  <<
    \new ChordNames { \set chordChanges = ##t
                      \override ChordName #'font-size = #(magstep -4)
                      \harmonies
                    }
    \new Staff \new Voice = "vocals" << \marks { \clef "treble" \leadvox } >>
    \new Lyrics \lyricsto "vocals" { \mylyrics }
  >>

sheetB =
  <<
    \new ChordNames { \set chordChanges = ##t \harmonies }
    \new Voice = "trombone" << \marks  { \clef "bass" \tromb } >>
  >>

% Output-Varianten

\bookpart { \sheetPartitur }

\bookpart { \sheetA }

\bookpart { \sheetB }


Diese marks-Variable kann natürlich ausgebaut werden zu einer regelrechten control-Variable um alles mögliche zu regeln:
breaks, BarLine, etc

HTH,
  Harm

hurrlipurr

Super! So lässt sich die Songstruktur separat anlegen, was die Datai viel übersichtlicher macht.

Vielen Dank!