Autor Thema: \temporary \set  (Gelesen 1612 mal)

fugenkomponist

  • Member
\temporary \set
« am: Sonntag, 25. Oktober 2015, 22:35 »
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 = 5
Es 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.
« Letzte Änderung: Sonntag, 25. Oktober 2015, 22:46 von fugenkomponist »

harm6

  • Member
Re: \temporary \set
« Antwort #1 am: Sonntag, 25. Oktober 2015, 23:02 »
Ich meine David Kastrup hat in diesem Bereich neulich gearbeitet.
Schau mal auf der englischen Liste im Archiv nach, im Moment kann ich mich partout nicht erinneren was und wo es war und ob es wirklich Deinen Fall abdeckt (mann, bin ich müde ...). Im Zweifel frag halt.

Gruß,
  Harm