Autor Thema: \override funktioniert gar nicht  (Gelesen 2488 mal)

DocTaxon

  • Member
\override funktioniert gar nicht
« am: Sonntag, 5. Mai 2013, 11:04 »
Hallo!

Habe Lilypond 2.16.0 auf Windows 7 Professional laufen und habe ein Problem mit \override.

Egal wo und wie ich den Befehl einsetze, er wird nie kompiliert. Auf meinem Subnotebook funktioniert der Befehl aber wie er soll. Was stimmt denn da nicht?

Also, ich habe einen Grandstaff und möchte im mittleren Notensystem Staff = "upper2" das \ff verbergen, das aber dennoch in der midi hörbar abgespielt werden soll. Also setze ich diesen Dynamikbefehl mit \ff und wollte dann irgendwie mit \override das \ff in weißer Farbe darstellen. Aber \override geht überhaupt nicht in keinster Form. Ich habe mal hier den Anfang meines Scores ohne \override:

\version "2.16.0"

\header{
}

\layout {
    indent = #0
%%    line-width = #200
%%      ragged-last = ##t
}

\paper {
  print-page-number = ##t
  first-page-number = 29
  print-first-page-number = ##t
  oddFooterMarkup = \markup \null
  oddHeaderMarkup = \markup {
    \fill-line {
      \right-align {
        \print-page-number-check-first
        \fromproperty #'page:page-number-string
      }
    }
  }
}

\score {
  <<
  \new GrandStaff
    <<
    \new Staff = "upper1" \with {
      \remove "Time_signature_engraver"
    }
    \new Voice \relative c'' {
      \set midiInstrument = #"church organ"
      \clef treble
      \time 4/4
      \set Score.currentBarNumber = #307 \bar ""
      \times 2/3 {
        <des f bes des>2--\ff <des f bes des>2-- <des f bes des>2--
      }
    }
    \new Staff = "upper2" \with {
      \remove "Time_signature_engraver"
    }
    \new Voice \relative c' {
      \set midiInstrument = #"church organ"
      \clef treble
      \time 4/4
      \times 2/3 {
        <d! g! b!>2--^\ff <des f bes>2-- <b! e gis>2--
      }
    }
    >>
  \new Staff = "lower" \with {
    \remove "Time_signature_engraver"
  }
  \new Voice \relative c, {
    \set midiInstrument = #"church organ"
    \clef bass
    \time 4/4
    \times 2/3 {
      d! g d'!
    }
  }
  >>
  \layout { }
  \midi {
    \context {
      \Staff
      \remove "Staff_performer"
    }
    \context {
      \Voice
      \consists "Staff_performer"
    }
    \tempo 2 = 72
  }
}

Für einen Tipp von Euch bin ich sehr dankbar ...
Doc Taxon ...

DocTaxon

  • Member
ps: \override funktioniert gar nicht
« Antwort #1 am: Sonntag, 5. Mai 2013, 11:21 »
nur ein kleiner Zusatz:

\override VerticalAxisGroup #'staff-affinity = #DOWN

das funktioniert, habe ich selbst gerade mit Erstaunen festgestellt. Das war's aber auch schon ...

DocTaxon

  • Member
Re: \override funktioniert gar nicht
« Antwort #2 am: Sonntag, 5. Mai 2013, 13:04 »
also, als wenn das Programm diesen Beitrag gelesen hat und plötzlich Angst gekriegt hat, funktioniert jetzt ganz plötzlich der \override-Befehl. Ich weiß nicht, warum ...

Aber dennoch, wie kann ich das fortissimo \ff vielleicht mit #'stencil = ##f irgendwie so ausblenden, dass es in der midi aber trotzdem gespielt wird?

Grüße, Doc Taxon ...

harm6

  • Member
Re: \override funktioniert gar nicht
« Antwort #3 am: Sonntag, 5. Mai 2013, 13:09 »
Hallo Doc Taxon,

erstmal herzlich willkommen im Forum.

Wenn ein \override nicht funktioniert liegt das in der Regel daran, daß er an der falschen Stelle platziert wurde, daß das falsche grob,  oder das falsche property angesprochen wurde.
Möglich ist auch, daß durch andere Versionen andere Befehle bzw Syntax nötig werden (ist hier aber nicht der Fall).
Wenn keine dieser Möglichkeiten zutrifft liegt das Problem nicht beim konkreten override sondern woanders (und mag nicht leicht zu entdecken sein) oder Du hast einen bug angetroffen.

In Deinem Fall wird aber eine der zuerst genannten Fälle zutreffen, da ich keine Schwierigkeiten hatte Dein Begehr umzusetzen.
Tatsächlich habe ich zwei Varianten eingefügt: einen override und einen tweak:

    \new Staff = "upper2" \with {
      \remove "Time_signature_engraver"
    }
    \new Voice \relative c' {
      \set midiInstrument = #"church organ"
      \clef treble
      \time 4/4
      \times 2/3 {
      \once \override DynamicText #'transparent  = ##t
        <d! g! b!>2--
        %-\tweak #'transparent ##t
        ^\ff
        <des f bes>2-- <b! e gis>2--
      }
    }

HTH,
 Harm

P.S. Es gibt jedoch noch ein Problem mit Deiner oddHeaderMarkup-Definition.
Habe ich mich jetzt aber nicht drum gekümmert.

harm6

  • Member
Re: \override funktioniert gar nicht
« Antwort #4 am: Sonntag, 5. Mai 2013, 13:14 »
Zitat von: DocTaxon
Aber dennoch, wie kann ich das fortissimo \ff vielleicht mit #'stencil = ##f irgendwie so ausblenden, dass es in der midi aber trotzdem gespielt wird?

Der Befehl lautet dann:
\override DynamicText #'stencil = ##f
besser vielleicht:
\override DynamicText #'stencil = #point-stencil

oder als tweak:
-\tweak #'stencil ##f
-\tweak #'stencil #point-stencil

Hab' ich aber nicht getestet. Ob das midi unbeeinflußt bleibt weiß ich daher nicht, mußt Du testen.

Harm

Be-3

  • Member
Re: \override funktioniert gar nicht
« Antwort #5 am: Sonntag, 5. Mai 2013, 13:23 »
Halo Doc Taxon,

auch von mir willkommen im Forum!
Hier geht es ja gerade zu wie auf dem Hauptbahnhof, man wird ja ständig beim Antworten überholt. :)
Mittlerweile hat harm ja alles gesagt; die verbleibenden Kleinigkeiten:

P.S. Es gibt jedoch noch ein Problem mit Deiner oddHeaderMarkup-Definition.
Habe ich mich jetzt aber nicht drum gekümmert.

Die Fehlermeldung beim Compilieren entsteht, weil LilyPond den Befehl \print-page-number-check-first nicht kennt.
Es muß eigentlich

      \on-the-fly #print-page-number-check-first

heißen...
Vielleicht ist das auch der Grund für die "Verwirrung" von Windows 7?


Ob das midi unbeeinflußt bleibt weiß ich daher nicht, mußt Du testen.

Die Stencil-Manipulation betrifft ja nur die grafische Darstellung, das MIDI-File bleibt unberührt (das spielt ja sogar per \hideNotes versteckten Noten mit :D).

Viele Grüße
Torsten

DocTaxon

  • Member
Re: \override funktioniert gar nicht
« Antwort #6 am: Sonntag, 5. Mai 2013, 13:39 »
ja super! Funktioniert perfekt. DynamicText war es, das hat mir gefehlt.

Jetzt habe ich aber noch eine Frage. Die aber in einem neuen Thread.

Beste Grüße,
Doc Taxon ...