Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: archduke am Sonntag, 12. Juli 2009, 14:36

Titel: Musica ficta Akzidentien einklammern
Beitrag von: archduke am Sonntag, 12. Juli 2009, 14:36
Wenn ich versuche ein Vorzeichen wie folgt zu schreiben fehlt die Klammer:
\once \set suggestAccidentals = ##t fis?2
lasse ich hingegen die suggesgtAccidentals Funktion weg, wird die Klammer um das Vorzeichen erstellt.
Hat jemand einen Tipp wie das Problem zu beheben ist?

Herzliche Grüße
Titel: Re: Musica ficta Akzidentien einklammern
Beitrag von: ding-dong am Sonntag, 12. Juli 2009, 23:27
ich habe nciht herausgefunden, wo suggestAccidentals definiert wird…
als zwischenlösung könnte man vielleicht
^\markup { \fontsize #-3 { ( \raise #.5  \sharp) }versuchen?!
Titel: Re: Musica ficta Akzidentien einklammern
Beitrag von: derHindemith am Montag, 13. Juli 2009, 00:24
ich habe nicht herausgefunden, wo suggestAccidentals definiert wird…

define-context-properties.scm
grep ist manchmal nützlich.

Aber, da ich nicht fähig bin, die Accidental Regeln umzuschreiben, eine andere Möglichkeit wäre:
ficta = {
    \once \override AccidentalSuggestion #'stencil = #ly:text-interface::print
   \once \override AccidentalSuggestion #'text = \markup { ( \raise #0.5 \natural ) }
}
Titel: Re: Musica ficta Akzidentien einklammern
Beitrag von: ding-dong am Montag, 13. Juli 2009, 10:06
Zitat
define-context-properties.scm
grep ist manchmal nützlich.

grep ist wohl ein suchprogramm in einem bestimmten betriebssystem!?

…aber dort steht tatsächlich:
Zitat
     (suggestAccidentals ,boolean? "If set, accidentals are typeset as
cautionary suggestions over the note.")
das ist aber doch zu wenig definition!

deine lösung funktioniert leider nicht mit V2.13.3 - leider habe ich keine zeit zu eruieren warum.
Titel: Re: Musica ficta Akzidentien einklammern
Beitrag von: comper am Montag, 13. Juli 2009, 15:00
Ich denke, dieses Verhalten ist fest in C++ compiliert.

Ist mit "?" die warnende Variante bestellt,
wird der Frontend-Merker cautionary gesetzt,
damit der Accidental_engraver Bescheid weiss.

Für den Normalfall (Vorzeichen neben der Note)
bestellt dieser wiederum Accidental oder AccidentalCautionary,
dem Zustand von cautionary entsprechend.

Aber im suggestAccidentals-Fall (Vorzeichen über der Note)
bestellt er pauschal AccidentalSuggestion, ohne auf cautionary zu achten.

Im Backend, wo die Overrides (z.B. auf AccidentalSuggestion) agieren,
haben wir keinen Zugriff auf diesen Frontend-Merker, können also
keine Scheme-Funktion entsprechend (vollautomatisch) lenken. 

Mein Fazit: es geht nur manuell; z.B.  jeweils die Override
   \once \override AccidentalSuggestion #'parenthesized = ##t
benutzen, wie in der Testdatei accidental-suggestions.ly (http://lilypond.org/doc/v2.12/input/regression/58/lily-5072af3b.ly) vorgemacht.


Gruss
Titel: Re: Musica ficta Akzidentien einklammern
Beitrag von: ding-dong am Montag, 13. Juli 2009, 16:46
oder, wie vorgeschlagen, die kurzform:
ficta = {
  \set suggestAccidentals = ##t
  \once \override AccidentalSuggestion #'parenthesized = ##t
  }
was zumindest ein wenig schreibarbeit spart…
Titel: Re: Musica ficta Akzidentien einklammern
Beitrag von: archduke am Mittwoch, 15. Juli 2009, 12:43
Vielen Dank für die Lösungen, das hat mir sehr geholfen!!

Herzliche Grüße