Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: ingmar am Samstag, 14. April 2018, 23:56

Titel: Verschiedene Versionen in verschiedenen Taktarten - Notation der Pausen?
Beitrag von: ingmar am Samstag, 14. April 2018, 23:56
Wie werden Pausen in Lilypond angegeben?

Das Konzept unterscheidet streng zwischen r und R.

Kleingeschrieben (also "r") bedeutet das Pausenzeichen:
* Die Pause ist Teil eines Takts. Diese Pausenzeichen werden im Takt dort angezeigt, wo die entsprechende Note stehen würde.
* Beispiel: In einem Viervierteltakt wird r1 also ziemlich links im Takt stehen.

Großgeschrieben ("R") bedeuten die Pausenzeichen:
* Ganztaktpause. Diese Pausenzeichen stehen immer in der Mitte des entsprechenden Takts.
* In einem Viervierteltalkt wird R1 zentriert angezeigt.

Das ist alles klar, wenn man Lilypond als ein System ansieht, das einen eindeutigen Notentext festlegen soll. Schwieriger wird es in historischer Notation (etwa Musik der Renaissance oder des Frühbarock), wo der gleiche Text in verschiedener Interpretation für verschiedene Versionen (Editionen) verwendet werden soll. Die erhaltenen Einzelstimmen enthalten hier keine Taktstriche, die heutige Spieler aber brauchen - zumindest zur Probe. Daher sollen mehrere Versionen des Notentexts erzeugt werden, beispielsweise eine für erfahrene Spieler im 4/2-Takt, eine andere in 2/2 oder 4/4. Oder es sollen an manchen Stellen unregelmäßige Taktarten notiert werden, um eine Binnenkadenz auf einer "Eins" enden zu lassen (etwa einmalig eingeschobener 2/2 zwischen 4/2-Takten); in einer zweiten Version soll auf solche Eingriffe verzichtet werden.

Das ist offenbar in LilyPond heute nicht möglich, da der zugrundeliegende Notentext sich leider zwischen r und R entscheiden muss:

\version "2.19.64"

text = \relative {
c'2 d4 e
f1
r1
r4 e f g
a2 f
R1
f4 e8 d e2
c1
}

\score { \new Part {
\time 4/4 \text
}}

\score { \new Part {
\time 4/2 \text
}}


Im ersten Beispiel steht in Takt 3 die ganze Pause zu weit links, im zweiten Beispiel herrscht in Takt 3 heilloses Chaos.

Gibt es einen einfachen Weg, in derartigen Fällen aus einem identischen Notentext trotzdem zwei orthografisch richtige Notentexte zu gewinnen?


Danke und ein kleiner Gruß in die Runde...
--ingmar
Titel: Antw:Verschiedene Versionen in verschiedenen Taktarten - Notation der Pausen?
Beitrag von: harm6 am Sonntag, 15. April 2018, 16:01
Vielleicht:


\version "2.18.2"

mutabor =
#(define-music-function (parser location mus)(ly:music?)
"Changes Rest to MultiMeasureRest, if length of the Rest lasts one bar.
Changes MultiMeasureRest to Rest, if length of MultiMeasureRest is not equal to
the length of a bar.
Tries to take changing TimeSignatures into account.
Needs thorough testings.
"
  (let* ((time-sig-length (ly:make-moment 1)))
    (music-map
      (lambda (m)
        (cond ((music-is-of-type? m 'time-signature-music)
                 (set! time-sig-length
                       (ly:make-moment
                         (/
                           (ly:music-property m 'numerator)
                           (ly:music-property m 'denominator))))
                 m)
              ((music-is-of-type? m 'rest-event)
                (if (equal? (ly:music-length m) time-sig-length)
                    (make-music
                      'MultiMeasureRestMusic
                      'duration
                      (ly:music-property m 'duration)
                      'articulations
                      (ly:music-property m 'articulations))
                    m))
              ((music-is-of-type? m 'multi-measure-rest)
                (if (not (equal? (ly:music-length m) time-sig-length))
                    (make-music
                      'RestEvent
                      'duration
                      (ly:music-property m 'duration)
                      'articulations
                      (ly:music-property m 'articulations))
                    m))
              (else m)))
      mus)
      (set! time-sig-length (ly:make-moment 1))
      mus))

     
\version "2.19.64"

tst = \relative {
c'2 d4 e
f1
r1
r4 e f g
a2 f
R1
f4 e8 d e2
c1
}

\score {
  \mutabor
  \new Staff {
  \time 4/4
  \tst
  }
}

\score {
  \mutabor
  \new Staff {
\time 4/2
\tst
  }
}


Gruß,
  Harm
Titel: re: Verschiedene Versionen in verschiedenen Taktarten - Notation der Pausen?
Beitrag von: ingmar am Montag, 16. April 2018, 09:53
Super, vielen Dank!

ZitatNeeds thorough testings.

Auf den ersten Blick scheint alles gut zu funktionieren. Eine Stelle "R\breve *2" wurde allerdings nicht richtig aufgelöst. Ich hab im Moment aber leider keine Möglichkeit, das im Detail durchzutesten. Ich melde mich nochmal.

Gruß,
--ingmar