Zeichen für Flattement (Pierre Danican-Philidor: op. 1)

Begonnen von Franz, Montag, 8. Mai 2023, 11:57

« vorheriges - nächstes »

Franz

Hallo,

ich bin gerade dabei, Suiten aus Pierre Danican-Philidors op.1 neu zu setzen. Philidor gehört zu den wenigen Komponisten, die ein Flattement, also ein Fingervibrato genau vorschreiben. Er macht das mit einer Wellenlinie über den entsprechenden Noten. -> Beispiel
Das Zeichen unterscheidet sich von "\prallprall". Außerdem soll es, wie auf dem Beispiel zu sehen, zwischen den beiden betreffenden Noten sein.
Kann mir da jemand helfen?
Vielen Dank im Voraus.
Du darfst diesen Dateianhang nicht ansehen.

juergen74

Hallo,

wenn das genau genug ist:

\version "2.24.0"

#(define startGlyph
    (ly:make-stencil
     '(path 0.03
        (
          moveto 1.39 -0.23
          curveto 1.3 -0.5 1.8 -0.6 1.8 -0.55
          curveto 1.6 -0.9 1.1 -0.6 1.32 -0.18)
        round
        round
        #t)
     (cons 0 1)
     (cons 0 0.5)))

#(define (flattement grob)
   (let((stil (ly:stencil-add
               startGlyph
               (ly:line-spanner::print grob))))
     (ly:make-stencil
      (ly:stencil-expr stil)
      (stencil-true-extent stil X)
      (stencil-true-extent stil Y))))


flatt = {
  \override TrillSpanner.bound-details.left.attach-dir = #1
  \override TrillSpanner.bound-details.right.attach-dir = #-1
  \override TrillSpanner.to-barline = ##f
  \override TrillSpanner.bound-details.left.text = ##f
  \override TrillSpanner.stencil = #flattement
}

\relative c'' {
  d2.
  \flatt
  d4\(\startTrillSpan
  d\)\( \stopTrillSpan
  d8\)
  d16 d16
}

Ansonsten kann man den Spanner auch komplett selbst erzeugen, das ist aber aufwändiger.

Grüße, Jürgen.

juergen74

... den overrides sollte noch ein \once vorangestellt werden.

Hier noch eine Version mit music-function und "auslaufender" Welle:

\version "2.24.0"

#(define startGlyph
   (ly:make-stencil
    '(path 0.03
       (
         moveto 1.39 -0.23
         curveto 1.3 -0.5 1.8 -0.6 1.8 -0.55
         curveto 1.6 -0.9 1.1 -0.6 1.32 -0.18)
       round
       round
       #t)
    ; x-extend
    (cons 0 1)
    ; y-extend
    (cons 0 0.5)))

#(define (flattement grob)
   (let*(
          ; combine start-glyph and trill-spanner
          (stil (ly:stencil-add
                 startGlyph
                 (ly:line-spanner::print grob))))
     
     ; set new extent for combined stencils
     (ly:make-stencil
      (ly:stencil-expr stil)
      (stencil-true-extent stil X)
      (stencil-true-extent stil Y))))

fl=
#(define-music-function (music) (ly:music?)
   #{
     <>
     
     % do not stop at barline
     -\tweak to-barline #f
     
     % surpress "TR"
     -\tweak bound-details.left.text #f
     
     % set smaller trill-element as end-glyph
     -\tweak bound-details.right.text
     \markup {
       \hspace #-0.5
       \lower #0.3
       \fontsize #-2.2
       \musicglyph "scripts.trill_element"
     }
     
     % position between noteheads
     -\tweak bound-details.left.attach-dir #RIGHT
     -\tweak bound-details.right.attach-dir #LEFT
     
     % combine start-glyph and trill-spanner
     -\tweak stencil #flattement

     -\startTrillSpan
     $music
     \stopTrillSpan
   #})


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Example
\relative c'' {
  d2.
  \fl { d4\(  d\)\( }
  d8\)
  d16 d16
}

Grüße, Jürgen.