Überflüssige Warnung

Begonnen von erich, Freitag, 10. März 2023, 15:34

« vorheriges - nächstes »

erich

Hallo Allen!

Dieses Skript "test.ly"

\version "2.25.0"
\include "persian.ly"
\score{
 \new Voice {dv}
 }

führt zur Warnung

test.ly:4:14: Warnung: cannot find glyph
 \new Voice {
             dv}

In der persian.ly-Datei stehen die folgenden Anweisungen:
verkürzte Wiedergabe

#(define-public VLAT -1/10)

persianPitchNames = #`(

  (dv . ,(ly:make-pitch -1 1 VLAT))
 


persianGlyphs = #`(
 
  (-1/10 . "")

)


Ich meine die Warnung trat früher nicht auf. Ich meine, die gleiche Konstruktion schon mal verwendet zu haben, um geringe Abweichungen in der Intonation nicht im Notenbild zu kennzeichnen.

Kann man die Wahrnung unterdrücken, sie stört mich sehr.

Gruß Erich

juergen74

Hallo Erich.

\version "2.24.0"

\include "persian.ly"

#(ly:expect-warning "cannot find glyph")

\score{
 \new Voice {dv}
 }

Das ist aber immer noch störend...  ;)

Grüße, Jürgen.

juergen74

Hallo,

wie ich feststellen muste, funktioniert das leider nur einmal, d.h. für

{ dv dv dv }
müsste die Warnung auch dreimal unterdrückt werden. Also auch keine schöne Lösung.

Ursache des Problems ist wohl der leere String (-1/10 . ""). Die Warnung ist ja grundsätzlich richtig, da es den Namen "" im Font nicht gibt. Mit (-1/10 . "space") verschwindet die Warnung, es ändert sich allerdings auch das Druckbild. Man müsste also die Erzeugung des Zeichens ziemlich weit oben im Ablauf abbrechen(?)

Grüße, Jürgen.

juergen74

... so vielleicht?
\version "2.24.0"
\include "persian.ly"

omitAcc =
\override Accidental.stencil =
#(lambda (grob)
   (if (equal? (ly:grob-property grob 'glyph-name) "")
       empty-stencil
       ly:accidental-interface::print))

\new Voice {
  dv
}

\layout {
  \context {
    \Score
    \omitAcc
  }
}

oder so?
\version "2.24.0"
\include "persian.ly"

omitAcc =
#(define-music-function (music) (ly:music?)
   (music-map
    (lambda (m)
      (if (and (music-is-of-type? m 'note-event)
               (equal? (ly:pitch-alteration (ly:music-property m 'pitch)) -1/10))
          #{ \once \omit Accidental $m #}
          m))
    music))

\omitAcc \new Voice {
  dv
}

Irgendwie ist das aber alles nicht schön, finde ich. Eine allgemeine Warnung für einen Spezialfall auszuschalten erscheint mir aber auch nicht sauber. Ich beschäftige mich allerdings noch nicht allzu lange mit LilyPond. Vielleicht hat ja noch jemand eine sinnvollere Lösung?

Grüße, Jürgen.

erich

Hallo Jürgen

vielen Dank für Deine Bemühung. Nach meiner Meinung muss man die Möglichkeit haben, eine geringe Abweichung in der Intonation in der Notenausgabe zu übergehen. Das von  mir angeführte Beispiel soll nur zeigen, dass dieses auch schon von anderer Seite erwartet wurde. Bei mir handelt es sich um das Schisma, das Intervall der Größe E♭ → D# von 1.954 Cent, das auftritt, wenn man die reine Stimmung realisieren will.

Gruß Erich

juergen74

Hallo Erich,

die Möglichkeit gibt es wohl aktuell nicht. Wenn du eine Datei ähnlich wie 'persian.ly' verwendest, hilft ein Workaround mit meinem Vorschlag von weiter oben?

\version "2.24.0"

% my-pitches.ly

% [...]

% Define accidental symbols.
myGlyphs = #`(
  (0 . "accidentals.natural")
  (1/2 . "accidentals.sharp")
  (-1/2 . "accidentals.flat")
  (1/10 . "OMIT")
  ; [...]
)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% workaround for pitch alteration without accidental
omitAcc =
\override Accidental.stencil =
#(lambda (grob)
   (if (equal? (ly:grob-property grob 'glyph-name) "OMIT")
       empty-stencil
       ly:accidental-interface::print))

\layout {
  \context {
    \Score
    \omitAcc
  }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Register accidental symbols.
\paper {
  font-defaults.alteration-glyph-name-alist = \myGlyphs
}

% [...]


persian.ly: Hier könnte in der NR dokumentiert sein, dass bei bestimmungsgemäßer Verwendung von VLAT eine Warnung generiert wird.

Güße, Jürgen.