Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: DocTaxon am Montag, 27. Mai 2013, 21:02

Titel: DynamicText über Arpeggio
Beitrag von: DocTaxon am Montag, 27. Mai 2013, 21:02
Hi!

Eine Frage: ich habe hier eine Kollision eines Arpeggio mit einem DynamicText. Beide stehen sie an der richtigen Stelle, ich bräuchte nur den Text "p (weich)" über dem Arpeggio geschrieben, so dass es so aussieht, als wenn der Arpeggio unterbrochen wäre. Ich dachte, ich bekomme das mit Layer hin, aber Pustekuchen.

Kann mir jemand helfen?

\version "2.16.0"

\layout {
  \context {
    \override NonMusicalPaperColumn #'line-break-permission = ##f
  }
}

pw = \markup { \center-align \line { \hspace #3.7 p \normal-text \bold \italic (weich) } }
pweich = #(make-dynamic-script pw)

\score {
<<
  \new Staff \with { midiInstrument = #"choir aahs" }
  \new Voice \relative c'' {
    \clef treble \key f \minor
    \numericTimeSignature \time 4/4
    \override MetronomeMark #'font-size = #3 \tempo "Langsam und getragen" 4 = 54
    \autoBeamOff
    r8 c c c c c c des
    c8. es,16 es 8 es r as as as
    \break
    \autoBeamOn
  }
 
  \new StaffGroup \with { systemStartDelimiter = #'SystemStartBrace }
    { \set Score.connectArpeggios = ##t
    <<
      \new Staff \with { midiInstrument = #"harpsichord" }
      \new Voice \relative c' {
        \clef treble \key f \minor
        \numericTimeSignature \time 4/4
        \stemUp \once\override DynamicText #'layer = #1 \once\override Arpeggio #'layer = #-1 <c es as c>4(\pweich\arpeggio <es es'>2 <fes fes'>4)
        s1 \stemNeutral
        \break
      }

      \new Staff \with { midiInstrument = #"harpsichord" }
      \new Voice \relative c {
        \clef bass \key f \minor
        \numericTimeSignature \time 4/4
        \once\override DynamicText #'stencil = ##f \once\override Arpeggio #'layer = #-1 <as es' as>4\pweich\arpeggio << { <as' c>2( <g des'>4) } \\ es2. >>
        s1
        \break
      }
    >> 
    }
>>

\layout { }
  \midi {
    \context {
      \Score
      \consists "Span_arpeggio_engraver"
    }
    \context {
      \Staff
      \remove "Staff_performer"
    }
    \context {
      \Voice
      \consists "Staff_performer"
    }
    \tempo 4 = 54
  }
}

Danke sehr,
Doc Taxon ...
Titel: Re: DynamicText über Arpeggio
Beitrag von: fugenkomponist am Montag, 27. Mai 2013, 21:14
An dieser Stelle folgt im Code kein Arpeggio, deshalb bleibt #'layer des Arpeggios auf seinem Standardwert. Du kannst aber einfach #'layer vom DynamicText hochschrauben. Was dann noch fehlt ist #'whiteout:
        \stemUp \once\override DynamicText #'layer = #500 \once\override DynamicText #'whiteout = ##t <c es as c>4(\pweich\arpeggio <es es'>2 <fes fes'>4)Edit: ich seh gerade: du hast da doch zwei Arpeggios stehen. Und auch zweimal \pweich. Warum?
Achja, und das \new Voice innerhalb der Staffs ist überflüssig, solange du die Stimme nicht benennen willst oder nen \with-Block hast ;)
Titel: Re: DynamicText über Arpeggio
Beitrag von: DocTaxon am Dienstag, 28. Mai 2013, 10:37
ja super!

Funktioniert perfekt. Danke auch für die Nebenkommentare.

Schöne Grüße,
Doc Taxon ...