Autor Thema: Repercussa als Balkennote möglich? Eigenbau?  (Gelesen 5367 mal)

RobUr

  • Member
Repercussa als Balkennote möglich? Eigenbau?
« am: Montag, 13. Juli 2009, 18:17 »
Liebes Forum,

seit Monaten durchforste ich die NR und das LSR sowie diverse Boards nach einer Lösung, Repercussae (Rezitationstöne) als Balkennoten (ähnlich den Kirchenpausen; siehe Bildbeispiel) darzustellen.



Idealerweise sollte sich die Länge an den unterlegten Text anpassen.

Notenhälse zu entfernen und die Repercussa als Brevis (oder auch mit Notenkopf je Silbe) zu notieren ist ja kein Problem, aber bei längeren Textpassagen leidet die Lesbarkeit enorm.

Ist eine solche Notation überhaupt gar nicht vorgesehen? Ich finde einfach keinen weiteren Lösungsansatz und bin dankbar über jede Idee!

LG, Robert

derHindemith

  • Member
Re: Repercussa als Balkennote möglich? Eigenbau?
« Antwort #1 am: Montag, 13. Juli 2009, 18:33 »
Vielleicht wäre die "Texte unabhänging von den Noten" hilfbar. Notationsreferenz 2.1.4

RobUr

  • Member
Re: Repercussa als Balkennote möglich? Eigenbau?
« Antwort #2 am: Montag, 13. Juli 2009, 18:57 »
Vielen Dank für die schnelle Antwort!

Der Text ist aber nicht das Problem (das wird ja auch gut mit dem "Anglican Chant"-Snippet gelöst). Das Problem ist ja gerade die Notendarstellung. Lässt sich das wirklich nur mit aufwändigem PS-Code (also Notenkopf mit PS-Graph ersetzen) lösen?

Systeminfo: LilyPond 2.12.2 auf Mac OS X 10.4.11

LG, Robert

comper

  • Member
Re: Repercussa als Balkennote möglich? Eigenbau?
« Antwort #3 am: Mittwoch, 15. Juli 2009, 14:17 »
Notenkopf ... ersetzen   ist nicht an sich aufwändig,
aber die Länge ist wohl fix - oder manuell (immer wieder) einzustellen.

Hier ist einen groben Ansatz mit Glissando, einem (dehnbaren) Spanner.
ohr = \markup {
  \with-dimensions #'(0 . 0) #'(0 . 0) \translate #'( 0 . -0.3)
  \combine \filled-box #'(-0.3 . +0.3) #'(0 . 0.3) #0 % Naht
  \filled-box #'(-0.8 . +0.8) #'(0 . 0.15) #0         % Strich


balken = {
   \once \override Glissando #' thickness = #6
   \once \override Glissando #'(bound-details left  padding) = #0
   \once \override Glissando #'(bound-details right padding) = #1
   \once \override Glissando #'(bound-details left text) = \markup \rotate #-90 \ohr
   \once \override Glissando #'(bound-details right text) = \markup \rotate #90 \ohr
}


Dann z.B. in dem NR-Beispiel mit \breve  die c\breve wie folgt ersetzen:
  \hideNotes \balken \afterGrace c4 \glissando c4 \unHideNotes

Das Glissando braucht zwei Noten (in diesem Fall gleich hoch).
Die Endnote als Verzierung erleichtert die Handhabung. 


Gruss

RobUr

  • Member
Re: Repercussa als Balkennote möglich? Eigenbau?
« Antwort #4 am: Donnerstag, 16. Juli 2009, 05:30 »
Herzlichen Dank für den tollen Lösungsansatz!

Nach einigem Experimentieren möchte ich folgenden Erfahrungsbericht abgeben:

Das Codebeispiel von comper produziert (wie abgebildet) wundervolles Output. Voraussetzung ist aber die Einbindung der "gregorian.ly". Ist diese nicht eingebunden (um das Layout der restlichen Partitur zu erhalten), wird die grace note nicht bis zum Ende des unterlegten Liedtextes (mehrere Worte als eine Silbe) verschoben, weswegen sich auch der verankerte spanner (hier als Glissando) nicht ausreichend ausdehnen kann. Weder mit noch ohne ragged-right.

Die Verwendung der grace note ist sehr geschickt durchdacht, da keine Endsilbe berücksichtigt werden muss. Klasse! Und dies führt auch zu meiner vorübergehenden Abhilfe des "Ausdehnungsproblems":

Die Position der grace note ist mittels
#(define afterGraceFraction (cons X Y))einstellbar, wobei X/Y die Position im Verhältnis zur Länge der Hauptnote darstellt. In der NR ist immer X<Y beschrieben, aber es funktioniert (zum Glück!) auch für X>Y!!!

Beispiel 1:
#(define afterGraceFraction (cons 3 4))erzeugt zwischen Haupt- und Verzierungsnote einen Raum, der 3/4 der Länge der Hauptnote entspricht (Voreinstellung; ohne unterlegten Liedtext).

Beispiel 2:
#(define afterGraceFraction (cons 1 1))positioniert die grace note unmittelbar im Anschluss an den für die Hauptnote reservierten Raum (ebenfalls ohne unterlegte lyrics).

Beispiel 3:
#(define afterGraceFraction (cons 3 2))lässt die grace note nach 1,5 Längen der Hauptnote beginnen und verschiebt nachfolgende Noten.

Der Effekt aus Beispiel 3 ist nun nutzbar, um auch grace notes, deren Hauptnote mit Liedtext unterlegt ist, zu verschieben. Und zwar mit verankertem spanner! (Ich hatte auch ausprobiert, die Hauptnote mit normalem Text-Markup zu versehen und per textLengthOn auszudehnen, aber dann habe ich zum einen den Liedtext im Musik-Markup, und zum anderen muss ich die Textmarken vertikal in den Liedtext einpassen.) Leider muss das Positionierungsverhalten für jede Liedtextphrase einzeln feinabgestimmt werden, da Lily von sich aus die grace note fast immer zu weit links setzt. Ohne ragged-right = ##t muss ohnehin die gesamte Zeile optisch bewertet werden. Akzeptable Werte sind hier mit Y=4 und X>2Y schnell zu erzielen, sofern die Hauptnote als Viertel notiert ist. Im folgenden linken Bildbeispiel sind die grace notes rot eingefärbt, in der rechten Grafik wurde compers Lösung mit versteckten Noten (ohne Einbindung von "gregorian.ly" müssen Stem_engraver und Beam_engraver manuell entfernt werden) und umgebauten Glissandi angewandt:



Es ist also immer noch individuelles Justieren nötig, aber im Gegenzug wird man mit Lily-typischem Spitzenlayout belohnt, und mit etwas Übung hat man schnell einen Blick für die passenden Werte. Vielleicht hält ja diese Funktion eines Tages Einzug in den Code ...

Beste Grüße,
Robert

comper

  • Member
Re: Repercussa als Balkennote möglich? Eigenbau?
« Antwort #5 am: Samstag, 18. Juli 2009, 13:07 »
Die relevante Wirkung von gregorian.ly stammt wahrscheinlich lediglich von
   \override Score. SpacingSpanner #'packed-spacing = ##t   
was sich mit \newSpacingSection  sequentiell eingrenzen lässt.

Aber wenn auch sowas nicht genehm ist, können wir sehr wohl auf die
Modularität verzichten, welche uns die frei wählbare Endnote gebracht hat.
Alle bisherige Beispiele hatten die folgende Note sowieso auf der gleichen Höhe. 
Ist das vielleicht eine absichtliche Lese-Erleichterung?

Also, unter diesen anderen (z.T. noch unklare) Randbedingungen
die Endnote (und \afterGrace) abschaffen:
    \hideNotes \balken c4 \glissando \unHideNotes   
und die  right padding  auf etwa #2.5 erhöhen.

Und wenn die folgende Note doch anders ist, z.B. b statt c ,
ist Mogeln erfolgreich (Reihenfolge einhalten!):
   <b \tweak #'transparent ##t c>4
wie hier bei  omnipotens  veranschaulicht.
(Oder aufwändiger, auf einer \voiceTwo Glissando-Hilfsstimme ausweichen.)


Gruss
« Letzte Änderung: Samstag, 18. Juli 2009, 16:32 von comper »

etilli33

  • Member
Re: Repercussa als Balkennote möglich? Eigenbau?
« Antwort #6 am: Donnerstag, 6. August 2009, 07:22 »
Tolle Sache, hat einer von euch Lust, das in LSR zu stellen?

Gruss
Till

RobUr

  • Member
Re: Repercussa als Balkennote möglich? Eigenbau?
« Antwort #7 am: Freitag, 7. August 2009, 02:25 »
Hallo alle,

sicher ist das ein tolles Snippet für's LSR. Ich kann mich gern dort melden.

Zwischenzeitlich hatte ich leider noch keine Zeit, die zweite Variante ausgiebig zu testen, da jetzt erstmal das Weihnachtsprogramm Vorrang hat und die Passion deswegen warten muss. Für Advent/Weihnachten habe ich (bisher) keine Sachen, die eine solche Funktion benötigen. Stattdessen vergleichsweise einfach zu setzende Brahms-Motetten (und Marienlieder) sowie Alte Musik und Weihnachtsklassiker.

Vorab sei aber schon gesagt, dass die der Repercussa folgende Note nicht zwangsläufig auf der gleichen Höhe sein muss; das war jetzt purer Zufall in diesem Beispiel. Ich muss noch einige andere Sachen ausprobieren, vor allem aber das Einbinden in die Partitur, die ganz normale Chorsätze enthält, dazu noch Generalbassbezifferung und natürlich Mensurstriche. Das Ergebnis wird dann irgendwann sicher in der CPDL zu bewundern sein …

Beste Grüße,
Robert