Hallo allerseits,
mit \temporary \override kann ich ja einen Wert so ändern, dass er beim nächsten \revert nicht auf den Standardwert (wie nach einfachem \override), sondern auf den vorher gültigen zurückgesetzt wird. Sowas hätt ich auch für \set gerne.
Folgender Code
\version "2.19.28"
\markup "Ist:"
{
b
\override NoteHead.color = #blue
\set fontSize = 9
b
\temporary \override NoteHead.color = #red
\temporary \set fontSize = 5
b
\revert NoteHead.color
\unset fontSize
b
}
\markup "Soll:"
{
b
\override NoteHead.color = #blue
\set fontSize = 9
b
\override NoteHead.color = #red
\set fontSize = 5
b
\override NoteHead.color = #blue
\set fontSize = 9
b
}gibt folgende Warnung/tmp/frescobaldi-WbbjDW/tmpmpQuyS/document.ly:11:3: warning: Cannot make PropertySet revertible
\temporary \set fontSize = 5Es scheint also erstmal nicht zu gehen. Aber warum nicht, ist mir nicht klar. Weiß da jemand was zu? Und hat jemand ne Idee, wie ich trotzdem den gleichen Effekt bekommen kann?
Mein Anwendungsfall ist folgender: Ich hätte gerne eine music- oder event-function \pizz, die ein TextScript erzeugt und das MIDI-Instrument auf "pizzicato strings" setzt. Mit \arco soll wiederum ein TextScript erzeugt und das MIDI-Instrument auf den alten Wert statt den Standard (Klavier) zurückgesetzt werden.
Edit: geeigneteres Beispiel gewählt.