Autor Thema: Volta-Klammer über mehrere Notenzeilen  (Gelesen 5459 mal)

helmut

  • Member
Volta-Klammer über mehrere Notenzeilen
« am: Dienstag, 1. Januar 2013, 20:52 »
Liebes Forum,

ich habe es mit einer Situation zu tun, in der eine Voltaklammer über drei Notenzeilen gehen soll. Lilypond zieht eine solche Klammer, wie es scheint, über höchstens zwei Zeilen.
1. Kann jemand meine Vermutung bestätigen?
2. Wenn dem so ist: Weiß jemand, wie das Ziel dennoch zu erreichen ist? Die Ergänzung durch eine manuelle Voltaklammer wäre eine unbefriedigende Lösung, weil der Klammeranfang ja neu gesetzt wird.

Schöne Grüße,
helmut

eluze

  • Member
Re: Volta-Klammer über mehrere Notenzeilen
« Antwort #1 am: Dienstag, 1. Januar 2013, 23:11 »
(seufz  :o ) - muss ich mir eine eigenes beispiel kereieren, um das zu überprüfen!?

bei mir klappt es besttens!  8)

gruss
Eluze

Be-3

  • Member
Re: Volta-Klammer über mehrere Notenzeilen
« Antwort #2 am: Dienstag, 1. Januar 2013, 23:44 »
Ja, Eluze hat recht, ein Beispiel wäre hilfreich; es ist mühsam immer zu raten, und selbst, wenn das Problem klar ist, erspart ein passender Beispielcode eventuellen Helfern viel Arbeit.

Wie dem auch sei - ich wundere mich, warum es bei Eluze klappt. (Beispiel ;))


ich habe es mit einer Situation zu tun, in der eine Voltaklammer über drei Notenzeilen gehen soll. Lilypond zieht eine solche Klammer, wie es scheint, über höchstens zwei Zeilen.
1. Kann jemand meine Vermutung bestätigen?

Im Prinzip ja. Präzisiert: bei mir ist es so, daß bis einschließlich Version 2.16 die zweite Voltenklammer, im n-zeiligen Fall immer nur (n–1) Zeilen umfaßt. Die letzte Zeile fehlt!

In Deinem Fall von drei Soll-Zeilen ergibt sich also, daß die Klammer nur die erste und zweite Zeile überspannt, aber die dritte nicht mehr.
Wären es vier Zeilen, würden die ersten drei überspannt sein, aber die vierte nicht mehr usw.

Im folgenden Beispiel kann man den system-count ändern und damit spielen.
\version "2.16.0"

\paper { system-count = #7 }

\relative c' {
  \repeat volta 2 { R1 }
  \alternative {
    { R1 }
    { R1*40 }
  }
}

Bei Version 2.17.4 (ja, ich weiß, ich bin veraltet) umfaßt die zweite Voltenklammer sogar nur die erste Zeile!

2. Wenn dem so ist: Weiß jemand, wie das Ziel dennoch zu erreichen ist? Die Ergänzung durch eine manuelle Voltaklammer wäre eine unbefriedigende Lösung, weil der Klammeranfang ja neu gesetzt wird.

Was ist denn eigentlich das Ziel? - will meinen: Was ist der Sinn einer so elend langen zweiten Voltenklammer? Bei der ersten ist es ja zu verstehen, aber da funktioniert es ja auch über beliebig viele Zeilen (wenn es auch unschön aussieht und anders gelöst werden sollte).

Viele Grüße
Torsten

eluze

  • Member
Re: Volta-Klammer über mehrere Notenzeilen
« Antwort #3 am: Mittwoch, 2. Januar 2013, 00:37 »
Zitat
Wie dem auch sei - ich wundere mich, warum es bei Eluze klappt. (Beispiel )

ganz einfach: hätte der helmut gesagt, welche version er braucht hätte ich vielleicht diese getestet, aber so habe ich einfach meine aktuellste version (2.17.9) verwendet

übrigens sieht das dort ganz lustig aus wenn man die voltaklammer über mehrere zeilen hinwegzieht - als hätte man 6 (statt 5) notenlinien!

prosit neujahr!!!

Eluze

Be-3

  • Member
Re: Volta-Klammer über mehrere Notenzeilen
« Antwort #4 am: Mittwoch, 2. Januar 2013, 01:44 »
@helmut:
Willkommen im Forum, ich hatte ja völlig übersehen, daß Du hier neu bist! Muß Dich wohl mit einem anderen Helmut verwechselt haben...

ganz einfach: hätte der helmut gesagt, welche version er braucht hätte ich vielleicht diese getestet, aber so habe ich einfach meine aktuellste version (2.17.9) verwendet

übrigens sieht das dort ganz lustig aus wenn man die voltaklammer über mehrere zeilen hinwegzieht - als hätte man 6 (statt 5) notenlinien!

@Eluze

Ich hatte aus den gleichen Gründen die (fast) aktuelle stabile Version 2.16.0 und eine mittelmäßig aktuelle Entwicklerversion 2.17.4 getestet.
Immerhin habe ich jetzt als "Nebeneffekt" mittlerweile die neusten Versionen installiert, denn ich habe Deine Aussage "bei mir kappt es bestens" zum Anlaß genommen, endlich mal Version 2.17.9 und gleich auch 2.16.1 runterzuladen. :)

Und siehe da - bei mir klappt es mit 2.17.9 keineswegs!
Nimm doch mal mein Beispiel von oben (mit den vielen Ganztaktpausen). Das führt dazu, daß die Voltenklammer immer schon ab der zweiten Zeile verschwunden ist.
Was hast Du anders gemacht, daß es bei Dir funktioniert???

Edit: Ach du liebe Zeit, tatsächlich, jetzt bin ich drauf reingefallen und habe nicht bemerkt, daß die Klammer ab 2.17 so tief sitzt, daß sie sich fast unbemerkt unter die Notenlinien mischt:  :o
Aber: trotzdem fehlt die letzte Zeile...

Den Effekt, daß es nach 6 Notenlinien aussieht, kann man doch ganz leicht ausgleichen, indem man
\override Staff.StaffSymbol #'line-count = #4
setzt...  :P ;D

Auch ein frohes Neues!
Torsten
« Letzte Änderung: Mittwoch, 2. Januar 2013, 02:06 von Be-3 »

eluze

  • Member
Re: Volta-Klammer über mehrere Notenzeilen
« Antwort #5 am: Mittwoch, 2. Januar 2013, 02:23 »
hallo Torsten!

mein beispiel klappt wirklich:
\relative {
  \repeat volta 2 { c' d e f }
  \alternative {
    { \repeat unfold 3 {c d e f \break } e1 }
    { c4 d e f }
  }
}

deshalb frage ich immer nach dem code wo etwas nicht funktioniert!

und da hast du, resp. helmut,  was zusammengebastelt!

obwohl mir die musik etwas eintönig scheint werde ich das problem morgen angehen und ggf. einen bug report einreichen!

besten dank + gute nacht!
Eluze

Be-3

  • Member
Re: Volta-Klammer über mehrere Notenzeilen
« Antwort #6 am: Mittwoch, 2. Januar 2013, 02:41 »
Ach so, ja, Dein Beispiel funktioniert deshalb, weil bei Dir die erste Klammer so lang ist, das ist (und war) auch kein Problem.
Mein Problem habe ich mit der zweiten Klammer, deshalb hatte ich helmut auch gefragt, warum eine zweite Klammer überhaupt so lang sein muß (rein musikalisch gesehen).
Bei Licht betrachtet hat helmut aber nie erwähnt, ob er die erste oder zweite Klammer meint.

Gute Nacht, vielleicht bringt der Morgen ein Beispiel ;)
Torsten

eluze

  • Member
Re: Volta-Klammer über mehrere Notenzeilen
« Antwort #7 am: Mittwoch, 2. Januar 2013, 10:29 »
@Torsten
danke für die lösung mit \override Staff.StaffSymbol #'line-count = #4   :)

und zum problem:
ich habe einen neuen  bug eingetragen https://code.google.com/p/lilypond/issues/detail?id=3076&q=alternative&colspec=ID%20Type%20Status%20Stars%20Owner%20Patch%20Needs%20Summary

und danach entdeckt, dass etwas ähnliches schon vorhanden ist: https://code.google.com/p/lilypond/issues/detail?id=1325&q=alternative&colspec=ID%20Type%20Status%20Stars%20Owner%20Patch%20Needs%20Summary

(dort wird auch hinterfragt - wie von Torsten - ob das musikalisch einen sinn hat!)

Eluze

helmut

  • Member
Re: Volta-Klammer über mehrere Notenzeilen
« Antwort #8 am: Mittwoch, 2. Januar 2013, 12:31 »
Ja, ich bin tatsächlich neu hier und überwältigt von den vielen Hilfeangebote.
Angehängt ist nun der gesamte Code (kann sein, dass die Taktzahlen nicht überall stimmen), weil es sich doch um eine recht verwickelte Sache handelt, so dass Torstens Frage nach Sinn und Zweck bei mir auch grummelt.
Es geht um die 1. Voltaklammer, die nicht so funktioniert, wie ich möchte.
Torstens Vorschlag, am system-count zu spielen, habe ich noch nicht umsetzen können. (Eine Bronchitis hat mich inzwischen ziemlich lahmgelegt.)

Noch einmal vielen Dank für die Vorschläge!
helmut

Be-3

  • Member
Re: Volta-Klammer über mehrere Notenzeilen
« Antwort #9 am: Mittwoch, 2. Januar 2013, 15:17 »
Angehängt ist nun der gesamte Code
Danke!
Aber: Es hat sich bewährt und ist allgemein bei Lilypond-Fragen üblich, ein "Minimal-Beispiel" anzugeben.
Das hat folgende Vorteile:
  • es wird übersichtlicher/kürzer
  • das eigentliche Problem tritt klar hervor
  • Beim Vereinfachen bzw. Aufräumen wird einem oft selber klar, wo der Fehler liegt
  • alle können schön damit herumspielen
  • es gibt kein eventuelles Urheberrechts-Problem

Ich habe aus Deinem Coding die Stimme "\StaffFVoiceA" genommen, alles Markup entfernt und alle Noten durch Ganztaktpausen ersetzt:

StaffFVoiceA = \relative c' {
  \time 6/8
  \repeat volta 2 {
    R2.*4
    \repeat volta 2 { R2.*15 }
    \alternative { { R2. } { R2. } }
    \bar "||" % 21
    R2.*8
    \bar "||" %29
    R2.*4
    \bar "||" % 33
  }
  \alternative {
    { R2.*4
      \bar "||" % 41
      R2.*15
      \bar "||" % 56
    }
    { R2.*4
      \bar "||"
    }
  }
  \repeat volta 2 { R2.*2 }
  R2.
  \bar "|."
}

\relative c' { \StaffFVoiceA }

Ich habe das Ergebnis als Grafik angehängt. Man sieht auch hier schon, daß die 1. Voltenklammer ab Takt 34 nicht (wie offensichtlich beabsichtigt) bis zum Beginn der 2. Voltenklammer geht.

[...], so dass Torstens Frage nach Sinn und Zweck bei mir auch grummelt.
... und die war wohl nicht unberechtigt, wie mir scheint. Denn Dein eigentliches Problem ist offensichtlich ein ganz anderes:

Erst einmal fehlen das eine oder andere Mal Wiederholungszeichen, weil Du mit der Anweisung \bar "||" den sonst automatisch gesetzten Taktstrich "überschreibst". (Beispiel: am Ende sollen (laut Coding) 2 Takte wiederholt werden, ich kann jedoch nirgends ein öffnendes Wiederholungszeichen sehen, weil Du es durch einen Doppeltaktstrich ersetzt hast.
Das versuchst Du zu kompensieren, indem Du die zweite Voltenklammer (eigentlich unnötig) vier Takte lang machst?
Allein die fehlenden Wiederholungszeichen sind ein KO-Kriterium, das müssen wir ändern (siehe unten).

Du versuchst, Wiederholungen ineinander zu schachteln? Da weiß ja niemand, wohin er springen soll...

Erstens:
Kommentiere im Beispielcode mal alle \bar "||" aus, dann siehst Du tatsächlich alle Wiederholungszeichen und auch die Voltenklammer ist so lang wie beabsichtigt.
Dann gezielt Schritt für die manuell gesetzten Taktstriche wieder einbauen.
Wenn Du z. B. vor einem Wiederholungszeichen bei Zeilenwechsel einen Doppelstrich haben möchtest, mußt Du \bar "||:" setzen, nicht \bar "||", denn sonst verschwindet das Wiederholungszeichen!

Zweitens:
Die Wiederholungs-Schachtelung halte ich für sehr unglücklich, dazu kommen noch die elend langen Voltenklammern, es würde sich da doch eher eine "da capo al coda"-Lösung viel besser eignen?
Also:
  • die "äußere Wiederholung" von Beginn bis zum Fast-Ende und ihre Voltenklammern entfernen.
  • in Takt 53 "da capo" schreiben, so daß man wieder ganz von vorne beginnt
  • in Takt 34 "al coda" schreiben, damit man von hier in die Coda springt
  • in Takt 57 die Coda beginnen lassen
Voilà.

Oder sag doch mal (notfalls mit Malprogramm in die angehängte Grafik zeichnen), welche Teile jetzt genau wie gespielt/wiederholt werden sollen. Das ist mir eigentlich immer noch etwas unklar (Dein segno und dal segno) widerspricht doch der im Coding geschriebenen (aber unsichtbaren) "äußeren Wiederholung")?

Viele Grüße und gute Besserung
Torsten
« Letzte Änderung: Mittwoch, 2. Januar 2013, 15:23 von Be-3 »

helmut

  • Member
Re: Volta-Klammer über mehrere Notenzeilen
« Antwort #10 am: Mittwoch, 2. Januar 2013, 16:32 »
Mensch, du hast den Durchblick, Torsten! Vielen Dank für deine Mühe!
Ich hatte zwar noch zwei Fehler drin, die meine Absicht verfälschten. Aber du hast mich überzeugt, eine andere Lösung zu finden.
helmut