Autor Thema: Repeat volta mit lyrics  (Gelesen 1976 mal)

DAccord

  • Member
Repeat volta mit lyrics
« am: Sonntag, 27. Dezember 2015, 16:55 »
Hallo alle,
ich habe mal wieder ein Problem, das ich nicht lösen kann. Das folgende Beispiel zeigt das Problem:
\version "2.18.2"

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

Voice = \relative c'' {
  \global
  r2 g4 g |
  \repeat volta 2 {
    r2 g4 a |
    b4 c r2 |
  }
}

verse = \lyricmode {
  % Lyrics follow here.
  Test. Test.
  \repeat volta 2 {
    A B C D
  }
}

\score {
  %\unfoldRepeats
  \new Staff { \Voice }
  \addlyrics { \verse }
  \layout { }
}

Dadurch, dass die Stimme im repeat volta-Teil mit einer Pause anfängt, erscheinen immer zwei "öffnende" Wiederholungszeichen, eins am Taktanfang (so wie es sein soll) und eins mittendrin (nach der halben Pause eben).
Wenn ich \unfoldRepeats in der Score mache, ist alles richtig. Auch wenn ich die erste halbe Pause im Volta-Teil zum Beispiel an das Ende des Takts schiebe.

Kann mir jemand helfen?

harm6

  • Member
Re: Repeat volta mit lyrics
« Antwort #1 am: Sonntag, 27. Dezember 2015, 17:43 »
Ursache:
\addlyrics stellt eine Beziehung zwischen den Textsilben und den Noten her, Pausen werden außer acht gelassen. (sehr allgemein formuliert)
Wenn Du \repeat volta im Text verwendest, dann startet die Wiederholung direkt vor der Silbe vor der \repeat volta steht.
Gut sichtbar so:

r2 g4    g  \repeat volta 2 { r2    g4 a b4 c r2 }
   Test. Test.   \ repeat volta 2 { A  B C  D }

Das heißt zwei überlappende aber nicht gleichzeitige Wiederholungen. Eben das was Du bekommen hast.

Lösung:
Ergibt sich eigentlich: laß es (\repeat volta in Lyrics)!

\version "2.18.2"

mel = \relative c'' {
  r2 g4 g |
  \repeat volta 2 {
    r2 g4 a |
    b4 c r2 |
  }
}

verse = \lyricmode {
  Test. Test. A B C D
}

\new Staff \mel
\addlyrics \verse

HTH,
  Harm

P.S.
Ich habe Deinen Code etwas eingedampft ;)
Und bitte verwende als lokale Variablen keine Namen die schon vergeben sind! Deshalb habe ich Dein "Voice" zu "mel" geändert. Das ist zwar meistens kein Problem, aber die Betonung liegt auf meistens! Ich könnte Dir Gegenbeispiele liefern, bei denen es dann sehr schwer herauszufinden war, wo das Problem lag...

DAccord

  • Member
Re: Repeat volta mit lyrics
« Antwort #2 am: Sonntag, 27. Dezember 2015, 18:00 »
Wow, das ging ja schnell. Danke Harm :)

Habe das repeat volta in den Lyrics, weil es so auch im Benutzerhandbuch steht, wenn man \unfoldRepeats verwenden möchte. Da ich das voraussichtlich nicht benötige, habe ich deine Lösung verwendet. Passt perfekt.

An meinem nicht ganz so minimalen Minimalbeispiel sieht man, dass ich mich noch nicht so gut auskenne ... und Voice hieß die Stimme auch nur im Beispiel

Nochmals vielen Dank :D

ingmar

  • Member
Namenskonvention
« Antwort #3 am: Montag, 28. Dezember 2015, 09:50 »
Zitat
harm: Und bitte verwende als lokale Variablen keine Namen die schon vergeben sind!
Ich habe mir deshalb angewöhnt, selbstdefinierte Namen immer in Versalien zu schreiben. Das ist bestimmt nicht ganz konform mit den Konventionen, aber ich sehe immer sofort, ob ich in den eigenen Files suchen muss oder in Lilypond, und ein versehentliches Überschreiben kann auch nicht passieren.

Gruß,
--ingmar

fugenkomponist

  • Member
Re: Namenskonvention
« Antwort #4 am: Montag, 28. Dezember 2015, 11:09 »
aber ich sehe immer sofort, ob ich in den eigenen Files suchen muss oder in Lilypond
slightly off-topic: Wenn man in Frescobaldi Strg/Ctrl gedrückt hält und auf die Verwendung eine Variable/Funktion klickt, springt der Cursor an die Definition derselben; wenn das in einer anderen Datei als der aktuell offenen passiert, wird dafür diese Datei geöffnet. Find ich sehr praktisch ;)

Edit: Geht anscheinend nur mit selbst definierten Funktionen (also z. B. nicht mit \articulate), aber immerhin. Damit hat sich die obige Frage ja auch beantwortet (man weiß dann eben, dass \articulate nicht von einem selbst definiert wurde, also entweder LilyPond-eigen oder falsch geschrieben ist).
« Letzte Änderung: Montag, 28. Dezember 2015, 11:12 von fugenkomponist »