• Willkommen im Forum „Archiviertes Lilypond Forum (2017)“.
 

Dies ist das Archiv des alten Forums (bis März 2017). Das aktuelle Forum ist unter lilypondforum.de zu finden.
This is the archive of the old forum (until March 2017). You can find the current forum at lilypondforum.de.

Hauptmenü

\alternative-Klammer schließen

Begonnen von Castor, Samstag, 15. Februar 2014, 12:42

Vorheriges Thema - Nächstes Thema

Castor

Hallo, ich schon wieder :D

ich möchte die 2. Klammer im folgenden Code gerne am Taktstrich geschlossen haben.
Ich dachte, es gibt da vllt einen einfachen Befehl für, aber die Suche in der Notationsreferenz ergab nix.

\version "2.18.0"

\relative c' { 
  \repeat volta 2 { c4 d e f g a b c } 
  \alternative {{ b a g f } { e d c b }} \bar "||" \break 
  \key d \major 
  d' e fis g a b cis d cis b a g fis e d \bar "|." 
}


Danke schonmal ;)

trulli

Vielleicht so?

\version "2.18.0"

\relative c' { 
  \repeat volta 2 { c4 d e f g a b c } 
  \alternative {{ b a g f } { e d c b }} \bar "|." \break 
  \key d \major 
  d' e fis g a b cis d cis b a g fis e d
}


Gruß

harm6

Hallo,

besser:

\version "2.18.0"

#(allow-volta-hook "||")

\relative c' { 
  \repeat volta 2 { c4 d e f g a b c } 
  \alternative {{ b a g f } { e d c b }}  \bar "||" \break
  \key d \major 
  d' e fis g a b cis d cis b a g fis e d \bar "|." 
}


#(allow-volta-hook "||") gilt dann allerdings für das gesamte file.

Gruß,
  Harm

Castor

Danke erstmal für die beiden Lösungen, aber mir gefällt beides noch nicht so ganz. Ich habe mal das betreffende Stück angehängt. An der Stelle in der Mitte des Stücks, wo es von D-Dur in G-Dur wechselt, soll die Klammer so bleiben. Nur ganz am Ende würde ich vor dem Coda die Klammer gerne schließen, ohne einen Schlussstrich setzen zu müssen (was trullis Notfall-Alternative wäre). Bei harms Lösung hätte ich - wenn ich das richtig verstehe - die erste Klammer auch geschlossen.

Weitere Vorschläge? :)

harm6

#4
Zitat von: CastorAn der Stelle in der Mitte des Stücks, wo es von D-Dur in G-Dur wechselt, soll die Klammer so bleiben. Nur ganz am Ende würde ich vor dem Coda die Klammer gerne schließen, ohne einen Schlussstrich setzen zu müssen (was trullis Notfall-Alternative wäre).

Das ist etwas trickreich.

Hintergrund
'allow-volta-hook' veranlaßt, daß ein senkrechter Abschlußstrich bei der VoltaBracket gesetzt wird, in Abhängigkeit vom angegebenen Taktstrich. Das gilt für das gesamte file.
Ein grob-property welches dieses macht existiert allerdings nicht.
Ein paar Taktstricharten bei denen dieser Strich gesetzt wird sind als Liste vordefiniert. siehe: bar-line.scm
Man kann mittels 'allow-volta-hook' auf top-level-niveau neue Einträge hinzufügen.
Desweiteren kann man eigene Taktstricharten recht einfach neu definieren.
c/p aus bar-line.scm:
;; definition of bar lines goes as follows:
;;
;; (define-bar-line "normal bar[-annotation]" "end of line" "start of line" "span bar")
(Es gibt auch die defineBarLine-funktion, die dasselbe macht. Mir ist der reine scheme-code aber lieber.)

Der Weg ist also:
1. definiere eine neue Taktstrichart, die dasselbe tut wie \bar "||" aber anders heißt.
2. füge diese neue Taktstrichart mittels 'allow-volta-hook' der Liste von Taktarten hinzu, bei denen der senkrechte Abschlußstrich geschrieben wird.

Ausführung:
ad 1.
#(define-bar-line "||-a" "||" #f "||")
Hier wird "||-a" definiert. Für den doppelten Taktstrich wird allerdings nach wie vor "||" benutzt, reicht also noch nicht, deshalb:
#(define-bar-line "||-b" "||-a" #f "||")
Jetzt wird für den doppelten Taktstrich "||-a" benutzt und nicht "||".

ad 2.
#(allow-volta-hook "||-a")
Hiermit wird erlaubt den senkrechten Voltastrich für "||-a" zu setzen und eben nicht für "||"

LilyPond überlistet. :D

Beispielcode:

\version "2.18.0"

#(define-bar-line "||-a" "||" #f "||")
#(define-bar-line "||-b" "||-a" #f "||")

#(allow-volta-hook "||-a")

\relative c' { 
  \repeat volta 2 { c4 d e f g a b c } 
  \alternative {{ b a g f } { e d c b }}  \bar "||" \break
  \key d \major 
  d' e fis g a b cis d cis b a g fis e d cis \bar "|." \break
 
  \key c\major
  \repeat volta 2 { c,4 d e f g a b c }
  \alternative {{ b a g f } { e d c b }}  \bar "||-b" \break
  \key d \major 
  d' e fis g a b cis d cis b a g fis e d \bar "|." 
}


HTH,
  Harm

P.S.
Du solltest Deine LilyPonddateien mit der Endung .ly versehen. Ansonsten arbeiten bestimmte Funktionen nicht, z.B.: convert-ly

trulli

Nich möchlich...  :o

Kleine Ergänzung dazu:
mit #(allow-wäsche-waschen "60°") kann Lily deine Waschmaschine steuern und du hast mehr Zeit zum Notensetzen.  8)

Grüße

Castor

#6
Danke! Ich bin begeistert. Offensichtlich ist ja wirklich nichts unmöglich :)

In Verbindung mit diesem Thema ergab sich ein weiteres Problem, ich möchte aber nicht das dritte Taktstrich-Thema öffnen (dieses und https://archiv.lilypondforum.de/index.php?topic=1666.0). Also würde ich gleich mal weiterfragen:

\version "2.18.0"

#(allow-volta-hook "||")

\relative c' { 
  \repeat volta 2 { c4 d e f g a b c } 
  \alternative {{ b a g f } { e d c b }} \bar "||" }

\new Staff

\relative c' { 
  \repeat volta 2 { c4 d e f g a b c } 
  \alternative {{ b a g f } { e d c b }} \bar "||"

  \stopStaff s1 \startStaff

  \mark \markup { \musicglyph #"scripts.coda" }
  \bar "||" c2 r4 r \bar "|." }


für das Coda am Ende des Stücks habe ich ein abgeschnittenes System-Stück mit "\stopStaff s1 \startStaff" gemacht (weiß nicht ob das die beste Lösung ist, aber es geht). Dadurch dass das System ja eigentlich noch weitergeht, wird der volta-hook auf den linken der beiden Striche von \bar "||" bezogen. Es ist vielleicht krümelkackerisch, aber gibt es eine Möglichkeit, einfach die Klammer noch ein Mü zu verlängern?

Ich hoffe ich verlange jetz nich zuviel auf einmal :/

lg Castor (:

p.s. @ trulli: wie wärs mit \override #'waschmaschine.wäsche #'wasch-mit = #60° :D

harm6

Zitat von: trulliNich möchlich...  :o

Kleine Ergänzung dazu:
mit #(allow-wäsche-waschen "60°") kann Lily deine Waschmaschine steuern und du hast mehr Zeit zum Notensetzen.  8)

rofl

Zitat von: Castorgibt es eine Möglichkeit, einfach die Klammer noch ein Mü zu verlängern?

Klar, dafür gibt es sogar ein property: shorten-pair

\version "2.18.0"


#(allow-volta-hook "||")

\relative c' { 
  \repeat volta 2 { c4 d e f g a b c } 
  \alternative {{ b a g f } { e d c b }} \bar "||" }

\new Staff

\relative c' { 
  \repeat volta 2 { c4 d e f g a b c } 
  \alternative {
    {
    b a g f
    }
    {
    %% default in this case: '(1.01 . -0.08)  
    \once \override Score.VoltaBracket.shorten-pair = #'(1.01 . -0.6)
    e d c b
    }
  }
  \bar "||"

  \stopStaff s1 \startStaff

  \mark \markup { \musicglyph #"scripts.coda" }
  \bar "||" c2 r4 r \bar "|." }


Gruß,
  Harm

Castor

Vielen Dank, harm! :D Jetzt sieht es einfach perfekt aus *-*