Autor Thema: pitchedTrill unter längerem TrillSpan  (Gelesen 1583 mal)

Pondus

  • Member
pitchedTrill unter längerem TrillSpan
« am: Mittwoch, 4. Juli 2012, 09:41 »
Hallo zusammen!

Dies ist mein erster Forenbeitrag. Ich bin nun schon einige Monate bei lilypond und habe in kurzer Zeit unglaublich gute Ergebnisse erzielt.

Trotz vielen Probierens bekomme ich folgendes Problem nicht in den Griff: Ich möchte gerne verschiedene pitchedTrills unter nur einem langem TrillSpan setzen.

Leicht möglich ist es ja, mit mehreren Spanners zu arbeiten.

\version "2.14.2"
\include "deutsch.ly"
\relative c'' {
c1\startTrillSpan
\pitchedTrill a\startTrillSpan b
\pitchedTrill e\startTrillSpan fis\stopTrillSpan
}

Ich habe versucht, mit Stichnoten in Klammern den Effekt zu simulieren; aber die Klammern um Noten schließen die Vorzeichen leider nicht mit ein. Auch müssten die Stichnoten näher an die Hauptnoten gesetzt sein.

Hat jemand eine Idee?

Danke
Pondus

harm6

  • Member
Re: pitchedTrill unter längerem TrillSpan
« Antwort #1 am: Mittwoch, 4. Juli 2012, 17:51 »
Hallo Pondus,

herzlich willkommen im Forum.

Ich habe leider nur einen work-around für Dich.
Erklärungen im Code.

\version "2.14.2"

\include "deutsch.ly"

trillExtent =
#(define-music-function (parser location value)(number?)
" Verlängert den TrillSpanner um den Wert value nach rechts"
#{
        \override TrillSpanner #'bound-details #'right #'padding = #(* -1 $value)
#})

%%%% \override TrillSpanner #'stencil = #point-stencil
%%%% Reduziert die Ausdehnung der folgenden TrillSpanner-stencils auf de facto 0.
%%%%
%%%% \revert TrillSpanner #'bound-details
%%%% Nimmt \trillExtent wieder zurück
%%%%
%%%% \revert TrillSpanner #'stencil
%%%% Nimmt \override TrillSpanner #'stencil = #point-stencil wieder zurück


m¹ =
\relative c'' {
        \trillExtent #55
        \pitchedTrill c1 \startTrillSpan eis
        \override TrillSpanner #'stencil = #point-stencil
        \pitchedTrill a1 \startTrillSpan b
        \pitchedTrill e' \startTrillSpan fis
        \stopTrillSpan
        \revert TrillSpanner #'bound-details
        \revert TrillSpanner #'stencil
        \break
        \compressFullBarRests
        \override MultiMeasureRest #'staff-position = #'()
        \override MultiMeasureRest #'expand-limit = #3
        R1*8
        \break
        \trillExtent #47
        c1 \startTrillSpan
        \override TrillSpanner #'stencil = #point-stencil
        \pitchedTrill d \startTrillSpan fis
        \pitchedTrill e \startTrillSpan des
        c \stopTrillSpan
        \bar "|."
        \revert TrillSpanner #'bound-details
        \revert TrillSpanner #'stencil
}

m² = \relative c' {
        \override TrillSpanner #'direction = #DOWN
        \trillExtent #55
        \pitchedTrill c1 \startTrillSpan dis
        \override TrillSpanner #'stencil = #point-stencil
        \pitchedTrill h \startTrillSpan cis
        \pitchedTrill a \startTrillSpan his
        \stopTrillSpan
        \revert TrillSpanner #'bound-details
        \revert TrillSpanner #'stencil
        s1*8
        \trillExtent #47
        g1 \startTrillSpan
       
        \override TrillSpanner #'stencil = #point-stencil
        \pitchedTrill f \startTrillSpan gis
        \pitchedTrill e \startTrillSpan fis
        d
}
     

\score {
        \new Staff <<
          \new Voice { \voiceOne \m¹ }
          \new Voice { \voiceTwo \m² }
        >>
}


HTH,
  Harm

P.S.
Eine vernünftige Implementierung würde eine Neudefinition von `pitchedTrill' aus /ly/music-functions-init.ly bedeuten.

harm6

  • Member
Re: pitchedTrill unter längerem TrillSpan
« Antwort #2 am: Mittwoch, 4. Juli 2012, 20:34 »
Noch einfacher scheint es zu sein den durchgehenden TrillSpanner in eine zweite Stimme zu setzen:

\version "2.14.2"

\include "deutsch.ly"

trillVoice = {
        \override TrillSpanner #'bound-details #'left #'padding = #-1
        s1\startTrillSpan
        s1*5
        s1*15/16
        s1*1/16\stopTrillSpan
}

musicVoice = \relative c'' {
        \override TrillSpanner #'stencil = #point-stencil
        \pitchedTrill c1 \startTrillSpan dis
        \pitchedTrill h \startTrillSpan cis
        \pitchedTrill a \startTrillSpan his
        \pitchedTrill g \startTrillSpan ais
        \pitchedTrill f \startTrillSpan gis
        \pitchedTrill e \startTrillSpan fis
        d\stopTrillSpan
        \revert TrillSpanner #'stencil
}

\new Staff <<
  \new Voice \trillVoice
  \new Voice \musicVoice
  >>


Arnold

  • Member
Re: pitchedTrill unter längerem TrillSpan
« Antwort #3 am: Donnerstag, 5. Juli 2012, 08:57 »
Und hier meine Versuche:
\score {
  \new Staff {
     c''2\startTrillSpan
     \pitchedTrill d''\stopTrillSpan\startTrillSpan e''
     \pitchedTrill d''\stopTrillSpan\startTrillSpan es''
     \pitchedTrill des''\stopTrillSpan\startTrillSpan es''!
     \pitchedTrill cis''\stopTrillSpan\startTrillSpan dis''
     r2\stopTrillSpan
     \bar "|."
  }
  \header {
    piece = \markup { \bold \fontsize #3 \simple
      #(string-append "Version: " (lilypond-version)) }
  }
}

\score {
  \new Staff {
     c''2\startTrillSpan
     \override TrillSpanner #'(bound-details left text) = #f
     \pitchedTrill d''\stopTrillSpan\startTrillSpan e''
     \pitchedTrill d''\stopTrillSpan\startTrillSpan es''
     \pitchedTrill des''\stopTrillSpan\startTrillSpan es''!
     \pitchedTrill cis''\stopTrillSpan\startTrillSpan dis''
     r2\stopTrillSpan
     \bar "|."
  }
  \header {
    piece = \markup \scale #'(0.9 . 1.0) {
      "\\override TrillSpanner #'(bound-details left text) = #f"
    }
  }
}

\score {
  \new Staff {
     \override TrillSpanner #'Y-offset = #4
     c''2\startTrillSpan
     \override TrillSpanner #'(bound-details left text) = ##f
     \pitchedTrill d''\stopTrillSpan\startTrillSpan e''
     \pitchedTrill d''\stopTrillSpan\startTrillSpan es''
     \pitchedTrill des''\stopTrillSpan\startTrillSpan es''!
     \pitchedTrill cis''\stopTrillSpan\startTrillSpan dis''
     r2\stopTrillSpan
     \bar "|."
  }
  \header {
    piece = \markup \scale #'(0.9 . 1.0) {
      "\\override TrillSpanner #'Y-offset = #4 ... \\override TrillSpanner #'(bound-details left text) = #f"
    }
  }
}

\score {
  \new Staff {
     \override TrillSpanner #'stencil = ##f
     c''2\startTrillSpan
     \pitchedTrill d''\startTrillSpan e''
     \pitchedTrill d''\startTrillSpan es''
     \pitchedTrill des''\startTrillSpan es''!
     \pitchedTrill cis''\startTrillSpan dis''
     r2\stopTrillSpan
     \bar "|."
  }
  \header {
    piece = \markup \scale #'(0.9 . 1.0) {
      "\\override TrillSpanner #'stencil = ##f"
    }
  }
}

\score {
  \new Staff {
     << {
       \override TrillSpanner #'stencil = ##f
       c''2\startTrillSpan
       \pitchedTrill d''\startTrillSpan e''
       \pitchedTrill d''\startTrillSpan es''
       \pitchedTrill des''\startTrillSpan es''!
       \pitchedTrill cis''\startTrillSpan dis''
       r2\stopTrillSpan
     } \new Voice {
       \hideNotes
       c''2*5\startTrillSpan
       s2\stopTrillSpan
     } >>
     \bar "|."
  }
  \header {
    piece = \markup \scale #'(0.9 . 1.0) {
      "parallel Music mit \\new Voice (und mit Warnungen beim kompilieren)"
    }
  }
}

\score {
  \new Staff {
     \override TrillSpanner #'stencil = ##f
     \override TextSpanner #'(bound-details left text) = \markup { \translate #'( 0 . -1 ) \musicglyph #"scripts.trill" }
     \override TextSpanner #'(bound-details left padding) = #0.5
     \override TextSpanner #'style = #'zigzag
     \override TextSpanner #'thickness = #3.0
     \override TextSpanner #'zigzag-length = #0.7
     \override TextSpanner #'zigzag-width = #1.3
     c''2\startTrillSpan\startTextSpan
     \pitchedTrill d''\startTrillSpan e''
     \pitchedTrill d''\startTrillSpan es''
     \pitchedTrill des''\startTrillSpan es''!
     \pitchedTrill cis''\startTrillSpan dis''
     r2\stopTrillSpan\stopTextSpan
     \bar "|."
  }
  \header {
    piece = \markup \column \scale #'(0.9 . 1.0) {
      "\\override TrillSpanner #'stencil = ##f"
      "\\override TextSpanner #'(bound-details left text) = \\markup { \\translate #'( 0 . -1 ) \\musicglyph #\"scripts.trill\" }"
      "\\override TextSpanner #'(bound-details left padding) = #0.5"
      "\\override TextSpanner #'style = #'zigzag"
      "\\override TextSpanner #'thickness = #3.0"
      "\\override TextSpanner #'zigzag-length = #0.7"
      "\\override TextSpanner #'zigzag-width = #1.3"
    }
  }
}

Noch nicht untersucht:
  • Optionen gesucht, damit sich die Trillspanner im ersten Beispiel nicht mehr stapeln.
  • s2\startTrillSpan s2 ... statt c''2\startTrillSpan im vorletzten Beispiel.

Arnold

Pondus

  • Member
Re: pitchedTrill unter längerem TrillSpan
« Antwort #4 am: Donnerstag, 5. Juli 2012, 23:05 »
Hallo Harm, hallo Arnold!

Umwerfend! Danke Euch sehr sehr herzlich dafür, dass Ihr Euch so viel Mühe mit "meinem" Problem macht!

Ich habe alle Lösungsmöglichkeiten in meiner Datei getestet. Alle Möglichkeiten funktionieren genau so wie erhofft.

Also noch mal vielen Dank und bis bald
Pondus