lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

A bigger and better accidental placement torture test


From: Bruce McIntyre
Subject: A bigger and better accidental placement torture test
Date: Sun, 25 Jun 2006 13:28:50 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

Howdy folks,

As I was trawling the web I came across a utility for the Score program which
claims to provide the most advanced accidental editing (and automatic placement)
available...

http://home.att.net/~tom.brodhead/#ACCS

The author of this utility has written a short manual on beaming also which is
very good.  Brodhead, Thomas M., Beams in Music Engraving, 1993, 1996.

I was curious to see how Lilypond's accidental placement compared with this
program and, as there is a torture test for ACCS online I replicated it in
lilypond (see below)

Compare the output from the below snippet with 

http://home.att.net/~tom.brodhead/accs-samples.pdf

You will find that in most usual cases, Lilypond matches this Score utility. 
Where Lilypond falls behind is in the treatment of crazy-big clusters and in off
the staff chords where the accidentals fall halfway on the leger-lines.

I'd say that some of this might make a useful addition to the regression test
suite...

\paper {
  #(define dump-extents #t)
 % indent = 0\mm
%  line-width = 160\mm
}
\sourcefilename "accidental-placement.ly"
\layout {
%  ragged-right = ##t
}
%\version "2.7.37"
%\context Voice \relative c'
 \new Staff \with {
          \remove "Time_signature_engraver"
          \remove "Clef_engraver"
        } 
{
\context Voice \relative c' {
#(set-accidental-style 'forget)
#(set-global-staff-size 17)    
\override Stem #'neutral-direction = #up
\cadenzaOn
<dis g! b!> <bes' ces ees f> <c! d! f! g b>
<bis cis d fis a> <dis, fis gis>
<f' aes bes e> <a, cis dis ais'>
\bar ""
\break
<des, ees ges c> <cis' dis ais'>
<gis, dis' fis> <ees' ges a>
<e fis dis'> <dis' fis ais>
<ges, bes ees> <bes, des ees a>
<ges' aes c> <b cis dis fis a>
\bar""
\break
<eis fis aes bis> <fes bes d e>
<eis, g bis disis f> <ces' f ges bes d>
<a bes d fes ges><f' g cis fis>
<cis, dis ais'> <ais' e' f? g>
<ais e' f! g!>
\bar""
\break
<d? e gis ais dis> <cis dis fis>
<ees, ges aes d> <ees' fis>
<g,! c!> <fis' ais bis>
<b, cis dis ais'>
\bar""
\break
<c e fis> <b? e fis>
<bes, ges' a> <dis' fis bis>
<aes bes cis> <des, ees>
<c'? f? b> <b dis fis>
<cis, fis gis>
\bar""
\break
<fes' ces' des e?> <fis gis>
<ais, cis gis'> <d! gis ais>
<cis e aes bes> <d! f ais cis>
<cis dis fis ais> <cis' dis e gis ais>
<e, aes bes d!> <d f? gis b>
\bar"" \break
<e gis cis dis> <a, cis fis g>
<ees' ges b d> <fis,, ees' fis>
<bes des ees> <g' bes fis'>
<g! dis' fis> <cis gis' dis'>
<c dis fis> <b fes' ges>
<a dis fis gis> <dis ais' e'>
\bar"" \break
\stemDown <dis, g! b!>
\stemUp <bes' ces ees f>
<c! d! f! g b>
<bis c dis fis a>
\stemDown <dis, fis gis>
\stemUp <f' aes bes e>
<a, cis dis ais'>
\bar"" \break
\stemDown <des, ees ges c>
\stemUp <cis' dis ais'>
\stemDown <gis, dis' fis>
<ees' ges a>
<e fis dis'>
\stemUp <dis' fis ais>
<ges, bes ees>
\stemDown <bes, des ees a>
<ges' aes c >
\stemUp <b cis dis fis a>
\bar"" \break
<eis fis fis ais bis>
<fes bes d e>
\stemDown <eis, g bis disis f>
\stemUp <ces' f ges bes d>
<a bes d fes ges>
<f'! g cis fis>
\stemDown <cis, dis ais'>
\stemUp <ais' e' f? g>
<ais  e' f! g!>
\bar"" \break
<d? e gis ais dis>
<cis dis fis>
\stemDown <ees, ges aes d>
\stemUp <ees' fis>
\stemDown <g,! c!>
\stemUp <fis' ais bis>
\stemUp <f a b>
<b, cis dis ais'>
\bar""
\break
<c e fis>
<b? e fis>
\stemDown <bes, ges' a>
\stemUp <dis' fis bis>
\stemDown <aes bes cis>
<des, ees>
\stemUp <c'? f? b>
<b dis fis>
\stemDown <cis, fis gis>
\bar""
\break
\stemUp <fes' ces' des e?>
<fis gis> <ais, cis gis'>
<d! gis ais> <cis e aes bes>
<d! f ais cis> <cis dis fis ais>
<cis' dis e gis ais> <e, aes bes d!>
<d f? gis b>
\bar"" \break
<e gis cis dis> <a, cis fis g>
<ees' ges b d>
\stemDown <fis,, ees' fis>
<bes des ees>
\stemUp <g' bes fis'>
<g! dis' fis> <cis gis' dis'>
<c dis fis> <b fes' ges>
<a dis fis gis> <dis ais' e'>
\bar"" \break
\stemDown <d, e aes f' g>
<e f bis f' g> <e f b! f' g>
<f g beses f' g>
<f g bisis f' g>
<ceses' d' e> <dis d' e>
<d! d' e> <disis d' e>^"*"
<ceses d' e> <eisis d' e>
\bar"" \break
\stemDown <d, e aes? f' g>
<e f bis? f' g> <e f b? f' g>
<f g beses? f' g>
<f g bisis? f' g>
<ceses'? d' e> <dis? d' e>
<d? d' e>
<disis? d' e>^"*"
<ceses? d' e>
<eisis? d' e>
\bar"" \break
<aes f' g >
<ais f' g >
<a! f' g >
<aeses f' g >
<aisis f' g >
<aes? f' g >
<ais? f' g >
<a? f' g >
<aeses? f' g >
<aisis? f' g >
\bar"" \break
<f ges>
<f gis>
<f g!>
<f geses>
<f gisis>
<f ges?>
<f gis?>
<f g?>
<f geses?>
<f gisis?>
\bar"" \break
<ees,, ees' fes aes ces ees>
\bar"" \break
\stemUp <ces' des fes ges aes bes ces des fes ges>
\stemDown <ces des fes ges aes bes ces des fes ges>
\stemUp <fes gisis aisis bes ces des ees>
\stemDown <fes gisis aisis bes ces des ees>
\bar"" \break
\stemUp <des fes ges aes bes ces aes'>
\stemDown <des fes ges aes bes ces aes'>
\stemUp <ges aes bes cisis disis ges aes bes>
\stemDown <ges aes bes cisis disis ges aes bes>
\bar"" \break
\stemNeutral
<< {<fis, gis b! fis' gis>}\\ {d}>>
<< {<f a>}\\ {<cisis bis' cisis>}>>
<< {<cisis'>8 s8}\\ {<disis, cisis' f a! bis cisis>4}>>
<<{<fis'' cis' e! fis>}\\{<e cis fis, c! a>}>>
<<{<d! f! c' dis f>}\\{<c ais f! d! gis,>}>>
<<{<fis ais cis>}\\{<e eis, cis ais>}>>
\bar"" \break
<ees f! g aes b! cis>
<e! f! ges aes>
<gis, ais b cis d e fes gis ais b c>
<cis d eis f g aes bis cis d e fis>
<aes bes c d ees fis g>
\bar"" \break
<dis, e f! ges a b ces dis e>
<bes' c d ees fis g a! bes c>
\stemUp <bes c d! ees fis g>
<a bis cis dis eis f>
<f g ais b! ces d!>
<c dis e f ges ais bis c dis e>
\bar"" \break
\stemNeutral 
<a' bes cis dis e fis g a bes cis>
<g a bes ces dis e f! g a bes>
<ais bis c dis e f! g ais bis c dis>
<c,, dis e! f g ais bis c dis e>
<aes'' bis cis d e fis>8
<fes gis ais b c dis e f g>->
\bar"" \break
\stemUp <eis' gisis bis cisis eis>4
<d eisis gis aisis cis>
<eis gisis b cisis eis>
<bis, cisis f a! bis cisis>
\bar"" \break
<fis' a bis dis>
<dis b'!>
<eis fis>
<e! g! a bis>
<eis, fis gis ais bis cis d! e fis gis a bis cis d!>
\bar"" \break
\stemDown <ees' fis gis a! b! cis>
\stemUp <ees fis gis a! b! cis>
\stemDown <d ees fes g aes bes c! d ees fes g aes>
\stemUp <f,! g ais b cis dis e! f! g ais b cis dis e! f! g>
\stemDown <ais bis c dis eis fis g ais bis c dis e>
\stemUp <c,! d! e fis gis ais b c! d! e fis gis ais b c! d! e fis>
\bar"" \break
b'''!
<a! b!>
< g! a! b!>
< f! g! a! b!>
< e! f! g! a! b!>
< d! e! f! g! a! b!>
<c! d! e! f! g! a! b!>
<b! c! d! e! f! g! a! b!>
\bar"" \break
bis
<ais bis>
< gis ais bis>
< fis gis ais bis>
< eis fis gis ais bis>
< dis eis fis gis ais bis>
<cis dis eis fis gis ais bis>
<bis cis dis eis fis gis ais bis>
\bar"" \break
bes'
<aes bes>
< ges aes bes>
< fes ges aes bes>
< ees fes ges aes bes>
< des ees fes ges aes bes>
<ces des ees fes ges aes bes>
<bes ces des ees fes ges aes bes>
\bar"" \break
%% if you really want to try these...
%%$bisis'
%%$<aisis bisis>
%%$< gisis aisis bisis>
%%$< fisis gisis aisis bisis>
%%$< eisis fisis gisis aisis bisis>
%%$< disis eisis fisis gisis aisis bisis>
%%$<cisis disis eisis fisis gisis aisis bisis>
%%$<bisis cisis disis eisis fisis gisis aisis bisis>
%%$\bar"" \break
%%$beses'
%%$<aeses beses>
%%$< geses aeses beses>
%%$< feses geses aeses beses>
%%$< eeses feses geses aeses beses>
%%$< deses eeses feses geses aeses beses>
%%$<ceses deses eeses feses geses aeses beses>
%%$<beses ceses deses eeses feses geses aeses beses>
\bar"" \break
\stemDown
b''!
<a! b!>
<g! a! b!>
<f! g! a! b!>
<e! f! g! a! b!>
<d! e! f! g! a! b!>
<c! d! e! f! g! a! b!>
<b! c! d! e! f! g! a! b!>
\bar"" \break
bis'
<ais bis>
<gis ais bis>
<fis gis ais bis>
<eis fis gis ais bis>
<dis eis fis gis ais bis>
<cis dis eis fis gis ais bis>
<bis cis dis eis fis gis ais bis>
\bar"" \break
bes'
<aes bes>
< ges aes bes>
< fes ges aes bes>
< ees fes ges aes bes>
< des ees fes ges aes bes>
<ces des ees fes ges aes bes>
<bes ces des ees fes ges aes bes>
\bar"" \break
<a? b? c? d? e? f? g? a? b?>
<g? a? b? c? d? e? f? g? a? b?>
<f? g? a? b? c? d? e? f? g? a? b?>
<e? f? g? a? b? c? d? e? f? g? a? b?>
<d? e? f? g? a? b? c? d? e? f? g? a? b?>
\bar"" \break
b''?
<a? b?>
< g? a? b?>
< f? g? a? b?>
< e? f? g? a? b?>
< d? e? f? g? a? b?>
<c? d? e? f? g? a? b?>
<b? c? d? e? f? g? a? b?>
\bar"" \break
<ais? bis? cis? dis? eis? fis? gis? ais? bis?>
<gis? ais? bis? cis? dis? eis? fis? gis? ais? bis?>
<fis? gis? ais? bis? cis? dis? eis? fis? gis? ais? bis?>
<eis? fis? gis? ais? bis? cis? dis? eis? fis? gis? ais? bis?>
<dis? eis? fis? gis? ais? bis? cis? dis? eis? fis? gis? ais? bis?>
\bar"" \break
bis''?
<ais? bis?>
< gis? ais? bis?>
< fis? gis? ais? bis?>
< eis? fis? gis? ais? bis?>
< dis? eis? fis? gis? ais? bis?>
<cis? dis? eis? fis? gis? ais? bis?>
<bis? cis? dis? eis? fis? gis? ais? bis?>
\bar"" \break
<aes? bes? ces? des? ees? fes? ges? aes? bes?>
<ges? aes? bes? ces? des? ees? fes? ges? aes? bes?>
<fes? ges? aes? bes? ces? des? ees? fes? ges? aes? bes?>
<ees? fes? ges? aes? bes? ces? des? ees? fes? ges? aes? bes?>
<des? ees? fes? ges? aes? bes? ces? des? ees? fes? ges? aes? bes?>
\bar"" \break
bes''?
<aes? bes?>
< ges? aes? bes?>
< fes? ges? aes? bes?>
< ees? fes? ges? aes? bes?>
< des? ees? fes? ges? aes? bes?>
<ces? des? ees? fes? ges? aes? bes?>
<bes? ces? des? ees? fes? ges? aes? bes?>
\bar"" \break
<aisis bisis cisis disis eisis fisis gisis aisis bisis>
<gisis aisis bisis cisis disis eisis fisis gisis aisis bisis>
<fisis gisis aisis bisis cisis disis eisis fisis gisis aisis bisis>
<eisis fisis gisis aisis bisis cisis disis eisis fisis gisis aisis bisis>
<disis eisis fisis gisis aisis bisis cisis disis eisis fisis gisis aisis bisis>
\bar"" \break
bisis''
<aisis bisis>
<gisis aisis bisis>
<fisis gisis aisis bisis>
<eisis fisis gisis aisis bisis>
<disis eisis fisis gisis aisis bisis>
<cisis disis eisis fisis gisis aisis bisis>
<bisis cisis disis eisis fisis gisis aisis bisis>
\bar"" \break
<aeses beses ceses deses eeses feses geses aeses beses>
<geses aeses beses ceses deses eeses feses geses aeses beses>
<feses geses aeses beses ceses deses eeses feses geses aeses beses>
<eeses feses geses aeses beses ceses deses eeses feses geses aeses beses>
<deses eeses feses geses aeses beses ceses deses eeses feses geses aeses beses>
\bar"" \break
beses''
<aeses beses>
< geses aeses beses>
< feses geses aeses beses>
< eeses feses geses aeses beses>
< deses eeses feses geses aeses beses>
<ceses deses eeses feses geses aeses beses>
<beses ceses deses eeses feses geses aeses beses>
\bar"" \break
b'!
<a! b!>
< g! a! b!>
< f! g! a! b!>
< e! f! g! a! b!>
< d! e! f! g! a! b!>
<c! d! e! f! g! a! b!>
<b! c! d! e! f! g! a! b!>
\bar"" \break
<ais! bis! cis! dis! eis! fis! gis! ais! bis!>
<gis! ais! bis! cis! dis! eis! fis! gis! ais! bis!>
<fis! gis! ais! bis! cis! dis! eis! fis! gis! ais! bis!>
<eis! fis! gis! ais! bis! cis! dis! eis! fis! gis! ais! bis!>
<dis! eis! fis! gis! ais! bis! cis! dis! eis! fis! gis! ais! bis!>
\bar"" \break
bis''!
<ais! bis!>
< gis! ais! bis!>
< fis! gis! ais! bis!>
< eis! fis! gis! ais! bis!>
< dis! eis! fis! gis! ais! bis!>
<cis! dis! eis! fis! gis! ais! bis!>
<bis! cis! dis! eis! fis! gis! ais! bis!>
\bar"" \break
<aes! bes! ces! des! ees! fes! ges! aes! bes!>
<ges! aes! bes! ces! des! ees! fes! ges! aes! bes!>
<fes! ges! aes! bes! ces! des! ees! fes! ges! aes! bes!>
<ees! fes! ges! aes! bes! ces! des! ees! fes! ges! aes! bes!>
<des! ees! fes! ges! aes! bes! ces! des! ees! fes! ges! aes! bes!>
\bar"" \break
bes''!
<aes! bes!>
<ges! aes! bes!>
<fes! ges! aes! bes!>
<ees! fes! ges! aes! bes!>
<des! ees! fes! ges! aes! bes!>
<ces! des! ees! fes! ges! aes! bes!>
<bes! ces! des! ees! fes! ges! aes! bes! > 
\bar"" \break
<aisis? bisis? cisis? disis? eisis? fisis? gisis? aisis? bisis?>
<gisis? aisis? bisis? cisis? disis? eisis? fisis? gisis? aisis? bisis?>
<fisis? gisis? aisis? bisis? cisis? disis? eisis? fisis? gisis? aisis? bisis?>
<eisis? fisis? gisis? aisis? bisis? cisis? disis? eisis? fisis? gisis? aisis?
bisis?>
<disis? eisis? fisis? gisis? aisis? bisis? cisis? disis? eisis? fisis? gisis?
aisis? bisis?>
\bar"" \break
bisis''?
<aisis? bisis?>
< gisis? aisis? bisis?>
< fisis? gisis? aisis? bisis?>
< eisis? fisis? gisis? aisis? bisis?>
< disis? eisis? fisis? gisis? aisis? bisis?>
<cisis? disis? eisis? fisis? gisis? aisis? bisis?>
<bisis? cisis? disis? eisis? fisis? gisis? aisis? bisis?>
\bar"" \break
<aeses? beses? ceses? deses? eeses? feses? geses? aeses? beses?>
<geses? aeses? beses? ceses? deses? eeses? feses? geses? aeses? beses?>
<feses? geses? aeses? beses? ceses? deses? eeses? feses? geses? aeses? beses?>
<eeses? feses? geses? aeses? beses? ceses? deses? eeses? feses? geses? aeses?
beses?>
<deses? eeses? feses? geses? aeses? beses? ceses? deses? eeses? feses? geses?
aeses? beses?>
\bar"" \break
beses''?
<aeses? beses?>
< geses? aeses? beses?>
< feses? geses? aeses? beses?>
< eeses? feses? geses? aeses? beses?>
< deses? eeses? feses? geses? aeses? beses?>
<ceses? deses? eeses? feses? geses? aeses? beses?>
<beses? ceses? deses? eeses? feses? geses? aeses? beses?>
\bar"" \break
%giant clusters
<ces, des ees fes ges aes bes 
ces des ees fes ges aes bes ces des ees fes ges aes bes
ces des ees fes ges aes bes ces des ees fes ges aes bes ces>
<cis dis eis fis gis ais bis
cis dis eis fis gis ais bis cis dis eis fis gis ais bis
cis dis eis fis gis ais bis cis dis eis fis gis ais bis cis>
\bar "" \break
<ges''' aes bes ces des ees fes 
ges aes bes ces des ees fes 
ges aes bes ces>
<gis ais bis cis dis eis fis 
gis ais bis cis dis eis fis 
gis ais bis cis>
\bar "" \break 
<ces,,, des ees fes ges aes bes 
ces des ees fes ges aes bes
ces des ees fes>
<cis dis eis fis gis ais bis 
cis dis eis fis gis ais bis
cis dis eis fis>
\bar "" \break
\stemUp
<ees ces' des ees>
<ees bes' des ees>
<ees aes des ees>
<ees ges des' ees>
<ees fes des' ees>

<ees bes' ces ees>
<ees aes ces ees>
<ees ges ces ees>
<ees fes ces' ees>

<ees aes bes ees>
<ees ges bes ees>
<ees fes bes ees>

<ees ges aes ees'>
<ees fes aes ees'>
<ees fes ges ees'>
\bar "" \break
<fes ces' des ees>
<fes bes des ees>
<fes aes des ees>
<fes ges des' ees>

<fes bes ces ees>
<fes aes ces ees>
<fes ges ces ees>
<fes ges bes ees>
<fes ges aes ees'>
\bar "" \break
\stemDown 
<gis d'! f! g'!>8 s8
<ces,, ges' bisis dis a'! g' a>4
<ces ges' bis dis a'! g' a>
\stemUp <d'! a'! d! f!>
\bar "" \break
\stemNeutral
<eis ges c! eis>
<a! cis e!>
<eis aeses e'! gisis>
<ees gis bis e!>
<bes ees gis bis e!>
<des gis aisis bis e!>
<des fis gis bis cis e!>
\bar "" \break
%small
<e' gis cis dis>\arpeggio
<a, cis fis g>\arpeggio
<ees' ges b d>\arpeggio
<fis,, ees' fis>\arpeggio
<bes des ees>\arpeggio
<g' bes fis'>\arpeggio
<g! dis' fis>\arpeggio
<cis gis' dis'>\arpeggio
<c dis fis>\arpeggio
<b fes' ges>\arpeggio
<a dis fis gis>\arpeggio
<dis ais' e'>\arpeggio
\bar "" \break
\arpeggioBracket
<e gis cis dis>\arpeggio
<a, cis fis g>\arpeggio
<ees' ges b d>\arpeggio
<fis,, ees' fis>\arpeggio
<bes des ees>\arpeggio
<g' bes fis'>\arpeggio
<g! dis' fis>\arpeggio
<cis gis' dis'>\arpeggio
<c dis fis>\arpeggio
<b fes' ges>\arpeggio
<a dis fis gis>\arpeggio
<dis ais' e'>\arpeggio
\bar "" \break
\cadenzaOff

}}









reply via email to

[Prev in Thread] Current Thread [Next in Thread]