Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: rgree am Donnerstag, 21. September 2017, 18:01

Titel: tempoHideNote : Bug ? (gelöst)
Beitrag von: rgree am Donnerstag, 21. September 2017, 18:01
Hallo,

um dafür zu sorgen, dass eine Tempo-Änderung nur für die MIDI-Erzeugung sichtbar ist, habe ich mich an das entsprechende Code-Beispiel gehalten und benutze :
...
\set Score.tempoHideNote = ##t
\tempo 4 = 96
...
Was mich allerdings völlig irritiert: wenn ich im Script danach - wie es eigentlich gute Praxis ist - das Sonderverhalten wieder zurückzusetzen will a la :
...
\set Score.tempoHideNote = ##t
\tempo 4 = 96
\unset Score.tempoHideNote
...
wird die Tempo-Angabe nicht mehr unsichtbar gemacht .

Beispiel zum Ausprobieren:

\version "2.18.0"

\header {
  texidoc = "
To change the tempo in MIDI output without printing anything, make the
metronome mark invisible.

"
  doctitle = "Changing the tempo without a metronome mark"
}
\score {
  \new Staff \relative c' {
    \set Score.tempoHideNote = ##t
    \tempo 4 = 160
    % wenn folgende Zeile aktiviert wird, funktioniert "tempoHideNote = ##t" nicht
    % \unset Score.tempoHideNote 
    c4 e g b
    c4 b d c
    \set Score.tempoHideNote = ##f
    \tempo 4 = 96
    d,4 fis a cis
    d4 cis e d
  }
  \layout { }
  \midi { }
}


Reinhard
Titel: Antw:tempoHideNote : Bug ?
Beitrag von: harm6 am Donnerstag, 21. September 2017, 22:21
Hallo Reinhard,

kein bug.

Vielmehr setzt Du zwei Befehle zum selben context-property für denselben context zur selben Zeit. Siehe den terminal-output von:

#(define display-current-moment
#{
  \applyContext
    #(lambda (ctx) (format #t "\ncurr-mmt: ~a" (ly:context-current-moment ctx)))
#})

{
  \display-current-moment
  \set Score.tempoHideNote = ##t
  \display-current-moment
  \tempo 4 = 96
  \display-current-moment
  \unset Score.tempoHideNote
}


Sie widersprechen sich, also wird einer mißachtet. Für gewöhnlich gewinnt der letzte.

Ich denke Du willst eher
\once \set Score.tempoHideNote = ##t

Ich bin mir aber nicht sicher, ob das in 2.18. schon verläßlich arbeitet.
Falls nicht setzt das \unset einfach etwas später.

Gruß,
  Harm
Titel: Antw:tempoHideNote : Bug ?
Beitrag von: rgree am Freitag, 22. September 2017, 07:48
Danke !

Gruß,
Reinhard