X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=input%2Fles-nereides.ly;h=a0f2465e0cce1688db0688b0cf9a31c2b3091896;hb=f0da063c7a52889d36d0ee293b76c390096b0a1f;hp=dc4e04f823d5794507b1d567e1bc184132f82953;hpb=31a43e122332d7a8e703ff5f01286eacc4ea7a27;p=lilypond.git diff --git a/input/les-nereides.ly b/input/les-nereides.ly index dc4e04f823..a0f2465e0c 100644 --- a/input/les-nereides.ly +++ b/input/les-nereides.ly @@ -1,466 +1,375 @@ -%{ -cpp -P -traditional -o l.ly les-nereides.ly -cpp -P -traditional -o l-fake.ly -DFAKE_GRACE les-nereides.ly -%} - - - -\header{ - composer = "ARTHUR GRAY"; - title = "LES N\\'ER\\'EIDES"; - subtitle = "THE NEREIDS"; - enteredby = "JCN"; - %piece = "Allegretto scherzando"; - copyright = "public domain"; - description = "Nastiest piece of competition at http://www.orphee.com/comparison/study.html, see http://www.orphee.com/comparison/gray.pdf"; - comment = "LilyPond (1.3.93) can't really do this yet, I guess"; +#(ly:set-option 'old-relative) +\version "2.1.7" + +\header { + composer = "ARTHUR GRAY" + title = "LES NÉRÉIDES" + subtitle = "THE NEREIDS" + enteredby = "JCN" + piece = "Allegretto scherzando" + copyright = "public domain" } +%{ -%% cpp: don't start on first column - #(define (grace-beam-space-function multiplicity) - (* (if (<= multiplicity 3) 0.816 0.844) 0.8)) - -%% cpp: don't start on first column - #(define (make-text-checker text) - (lambda (elt) - ;; huh, string-match undefined? - ;; (string-match text (ly-get-grob-property elt 'text)) - (equal? text (ly-get-grob-property elt 'text)) - )) +Nastiest piece of competition at +http://www.orphee.com/comparison/study.html, see +http://www.orphee.com/comparison/gray.pdf -global = \notes{ - \partial 2; - \key a \major; - \skip 2; - \skip 1*2; +lines that contain tweaks (17 currently, not counting reverts) are +marked with %tweak -#ifndef FAKE_GRACE - \skip 1; -#else % FAKE_GRACE - \skip 2.; \partial 32*24; - \skip 32*24; -#endif % FAKE_GRACE +possibly more impressive to render without tweaks? - \bar "||"; -} + grep -v tweak input/les-nereides.ly >> lnnt.ly + lilypond lnnt.ly -treble = \context Voice=treble \notes\relative c''{ - % Broken? - \property Voice.NoteColumn \override #'horizontal-shift = #0 - \outputproperty #(make-type-checker 'text-item-interface) - #'extra-offset = #'(-6 . 2) - %% *Style* = Large?? - \property Voice.TextScript \override #'style = #"Large" - r2^"Allegretto scherzando" - \property Voice.TextScript \revert #'style - %2 - \property Voice.Stem \revert #'direction - \property Voice.Stem \override #'direction = #1 - r4 r2 - %3 - r4 r8. - % Huh, urg? Implicit \context Staff lifts us up to Staff context??? - \translator Staff=bass - % Get back - \context Voice - \outputproperty #(make-text-checker "m.d.") - #'extra-offset = #'(-3 . -4) - % currently, this can't be (small) italic, because in the paperblock - % we set italic_magnifictation to get large italics. - cis,16^2^"m.d."( - %4 - <)dis,4 a' dis> - % Urg, this lifts us up to staff context - \translator Staff=treble - % Get back - \context Voice - \property Voice.Slur \revert #'direction - \property Voice.Slur \override #'direction = #1 - \property PianoStaff.connectArpeggios = ##t - \property Voice.TextSpanner \revert #'type - - %% Ghostview is ok, but xdvi shows a solid line - \property Voice.TextSpanner \override #'line-thickness = #2 - \property Voice.TextSpanner \override #'dash-period = #0.5 - - \property Voice.TextSpanner \override #'type = #"dotted-line" - \property Voice.TextSpanner \override #'edge-height = #'(0 . 1.5) - \property Voice.TextSpanner \override #'edge-text = #'("8 " . "") - % Huh, urg? Implicit \context Staff lifts us up to Staff context??? +%} - % no, see seq-mus-iter --hwn - \property Staff."c0-position" = #-13 +#(ly:set-point-and-click 'line-column) +#(define (make-text-checker text) + (lambda (elt) (equal? text (ly:get-grob-property elt 'text)))) - % Get back - %\context Voice - \outputproperty #(make-text-checker "m.g.") - #'extra-offset = #'(-3 . -2) - % currently, this can't be (small) italic, because in the paperblock - % we set italic_magnifictation to get large italics. - cis''''4^"m.g."\arpeggio \spanrequest \start "text" ( +treble = \new Voice \notes\relative c''{ + \key a \major + r2 + | %2 + \stemUp + r4 \arpeggio r2 + | %3 + r4 \arpeggio r8. -#ifndef FAKE_GRACE + \change Staff=bass - \property Voice.Stem \revert #'direction + \once\property Voice.TextScript \set #'extra-offset = #'(-3 . -4) %tweak + + cis,16^2(^\markup {\small \italic "m.d." } + 8 + | %4 + 4) + + \change Staff=treble + + \slurUp + \property PianoStaff.connectArpeggios = ##t - % grace is a mess - % maybe we should fake this and put 5/4 in this bar? + #(set-octavation 1) + \once\property Voice.TextScript \set #'extra-offset = #'(-3 . -2) %tweak + + \tieUp + cis''''4^\markup { \small \italic "m.g." }\arpeggio~ \grace { - )cis8 - \property Grace.Stem \revert #'direction - \property Grace.Stem \override #'direction = #0 - \property Grace.Beam \override #'space-function = #grace-beam-space-function - %% urg, dim. during grace dumps core here - %% [a16-5( fis dis \spanrequest \stop "text" ] - %% [cis'32 a-1 fis-4 dis] [cis a )fis-2] - [a16-5( fis dis \spanrequest \stop "text" ] - \property Staff."c0-position" = #-6 - [cis32 a-1 fis-4 dis] [cis a )fis-2] + \property Voice.Stem \override #'stroke-style = #"grace" + + cis8 + + %\stemBoth Hmm + + \property Voice.Stem \set #'direction = #0 + + a16[-5( fis dis] + #(set-octavation 0) + + cis32[ a-1 fis-4 dis] cis[ a fis)-2] + % the small grace in lower staff comes after us + s32 + + \property Voice.Stem \revert #'stroke-style } -#else % FAKE_GRACE - - \property Score.PaperColumn \override #'space-factor = #0.6 - \property Score.PaperColumn \override #'to-musical-spacing-factor = #0.04 - \property Voice.NoteHead \override #'font-relative-size = #-1 - \property Voice.Stem \override #'font-relative-size = #-1 - \property Voice.Stem \override #'length = #6 - \property Voice.Stem \override #'beamed-lengths = - #(map (lambda (x) (* 1.25 x)) '(0.0 2.5 2.0 1.5)) - \property Voice.Stem \override #'beamed-minimum-lengths = - #(map (lambda (x) (* 1.25 x)) '(0.0 1.5 1.25 1.0)) - - \property Voice.Beam \override #'font-relative-size = #-1 - \property Voice.TextScript \override #'font-relative-size = #-1 - \property Voice.Fingering \override #'font-relative-size = #-1 - \property Voice.Slur \override #'font-relative-size = #-1 - \property Staff.Accidentals \override #'font-relative-size = #-1 - \property Voice.Beam \override #'space-function = #grace-beam-space-function - - )cis16 - \property Voice.Stem \revert #'direction - \property Voice.Stem \override #'direction = #0 - %% [a16^5( fis dis \spanrequest \stop "text" ] - %% [cis'32 a-1 fis-4 dis] [cis a )fis-2] s s s - [a16^5( fis dis \spanrequest \stop "text" ] - \property Staff."c0-position" = #-6 - [cis32 a^1 fis^4 dis] [cis a )fis-2] s % s s - - \property Voice.NoteHead \revert #'font-relative-size - \property Voice.Stem \revert #'font-relative-size - \property Voice.Stem \revert #'length - \property Voice.Stem \revert #'beamed-lengths - \property Voice.Stem \revert #'beamed-minimum-lengths - \property Voice.Beam \revert #'font-relative-size - \property Voice.TextScript \revert #'font-relative-size - \property Voice.Fingering \revert #'font-relative-size - \property Voice.Slur \revert #'font-relative-size - \property Staff.Accidentals \revert #'font-relative-size - \property Voice.Beam \revert #'space-function - \property Score.PaperColumn \revert #'space-factor - \property Score.PaperColumn \revert #'to-musical-spacing-factor -#endif % FAKE_GRACE + + \stemUp + cis'4( bis) + + | %5 + r8 8(\mf + % \fingerUp + \property Voice.Fingering \set #'direction = #1 + + % Manual fix for collision with slur + \property Voice.Fingering \set #'extra-offset = #'(0 . 1) %tweak + e)-1-4-5 r - \property Voice.Stem \revert #'direction - \property Voice.Stem \override #'direction = #1 - cis'4()bis - r8 - )e^" "^1^4^5 r| - r )e r| + | %6 + r 8(\mf + e) r + + | %7 + \bar "||" } -trebleTwo = \context Voice=trebleTwo \notes\relative c''{ - \property Voice.NoteColumn \override #'horizontal-shift = #1 +trebleTwo = \new Voice \notes\relative c''{ + \stemDown + \slurDown + % \fingerDown + \property Voice.Fingering \set #'direction = #-1 + \property Voice.Fingering \set #'extra-offset = #'(0 . 1.2) s2 + | %1 s1*2 + | %4 s4 - \property Voice.Stem \revert #'direction - \property Voice.Stem \override #'direction = #-1 - - -#ifdef FAKE_GRACE - s32*16 -#endif - - \property Voice.NoteColumn \override #'force-hshift = #-0.2 - - % Hmm s/r? - %r8 cis4. d4 + 4\arpeggio + 2 + | %5 s8 cis4. d4 - \property Voice.NoteColumn \revert #'force-hshift - [ | - \property Voice.NoteColumn \override #'force-hshift = #-0.2 - <)a-2 cis,-1>] cis4. d4 - \property Voice.NoteColumn \revert #'force-hshift - [ | - <)a cis,>] + %%8[( + 8[( -3-1 + | %6 + %%)] cis4. d4 + )]-2-1 cis4. d4 + 8[( + | %7 + )] } -bass = \context Voice=bass \notes\relative c{ - % Allow ugly slurs - \property Voice.Slur \override #'beautiful = #5.0 - \property Voice.Slur \override #'attachment-offset = #'((0 . -3) . (0 . -6)) - \property Voice.Stem \revert #'direction - \property Voice.Slur \override #'direction = #-1 - % huh, auto-beamer? - r8. e,16-2( [ ] | - %2 - % Huh, urg? Implicit \context Staff lifts us up to Staff context??? - \translator Staff=treble - % Get back - \context Voice - \property Voice.Stem \revert #'direction - \property Voice.Stem \override #'direction = #-1 - \property Voice.slurEndAttachment = #'stem - <)a''4\arpeggio eis cis> - %\stemBoth - \property Voice.slurEndAttachment = ##f - % Huh, urg? Implicit \context Staff lifts us up to Staff context??? - \translator Staff=bass - % Get back - \context Voice - \property Voice.Stem \revert #'direction - \property Voice.Slur \revert #'y-free - \property Voice.Slur \override #'y-free = #0.1 - \property Voice.Slur \revert #'attachment-offset - \property Voice.Slur \override #'attachment-offset = #'((0 . -3) . (0 . -8)) - r8. cis,,16( - %3 - \property Voice.Stem \revert #'length - \property Voice.Stem \override #'length = #5 - - % Huh, urg? Implicit \context Staff lifts us up to Staff context??? - \translator Staff=treble - % Get back - \context Voice - \property Voice.Stem \revert #'length +bass = \new Voice \notes\relative c{ + \partial 2 + \key a \major + + % Allow ugly (highly blown-up) slurs + \property Voice.Slur \override #'beautiful = #5.0 %tweak + \property Voice.Slur \override #'attachment-offset = #'((0 . 3) . (0 . -4)) %tweak + \slurDown + + \dynamicUp + + r8. e,16(\f_2 8[ ] + | %2 + 4 + \change Staff=treble + \stemDown + \property Voice.Slur \override #'attachment = #'(stem . stem) %tweak + 4)\arpeggio + + \property Voice.Slur \revert #'attachment %tweak + \change Staff=bass + \stemBoth + + \property Voice.Slur \revert #'y-free %tweak + \property Voice.Slur \override #'y-free = #0.1 %tweak + \property Voice.Slur \revert #'attachment-offset %tweak + \property Voice.Slur \override #'attachment-offset = #'((0 . 3) . (0 . 8)) %tweak + r8. cis,,16( 8 + + | %3 + \property Voice.Stem \set #'length = #5 %tweak + 4 + \change Staff=treble + + \property Voice.Stem \revert #'length %tweak \property Voice.Stem \revert #'direction \property Voice.Stem \override #'direction = #-1 - <)a'\arpeggio fis cis> - % Huh, urg? Implicit \context Staff lifts us up to Staff context??? - \translator Staff=bass - % Get back - \context Voice + )\arpeggio + \change Staff=bass \property Voice.Stem \revert #'direction r2 - %4 - \property Voice.Slur \revert #'beautiful - \property Voice.Slur \revert #'attachment-offset - \property Voice.Stem \revert #'direction - \property Voice.Stem \override #'direction = #-1 - - \clef treble; - \property Voice.Stem \revert #'direction - \property Voice.Stem \override #'direction = #0 - < + + | %4 + \property Voice.Slur \revert #'beautiful %tweak + \property Voice.Slur \revert #'attachment-offset %tweak + \stemDown + 4 + \clef treble + \stemBoth + << %urg: staff-change: ! on dis - -% { s8. \clef bass;} - > - -#ifndef FAKE_GRACE - %Hmm - %\grace { s16 s s s s32 s s s s \clef bass; s } - \clef bass; - \grace { } <)gis'2 e> -#else - s4 s8 s32 s s \clef bass; - \property Score.PaperColumn \override #'space-factor = #0.6 - \property Score.PaperColumn \override #'to-musical-spacing-factor = #0.1 - \property Voice.NoteHead \override #'font-relative-size = #-1 - \property Voice.Stem \override #'font-relative-size = #-1 - \property Voice.Stem \override #'length = #6 - \property Voice.Slur \override #'font-relative-size = #-1 - \property Voice.Slur \override #'attachment-offset = #'((-0.5 . 0) . (0.5 . 0)) - - - \property Voice.NoteHead \revert #'font-relative-size - \property Voice.Stem \revert #'font-relative-size - \property Voice.Stem \revert #'length - \property Voice.Slur \revert #'font-relative-size - \property Score.PaperColumn \revert #'space-factor - \property Score.PaperColumn \revert #'to-musical-spacing-factor - <)gis'2 e> - \property Voice.Slur \revert #'attachment-offset -#endif - %5 - \property Voice.Slur \revert #'direction - \property Voice.Slur \override #'direction = #1 - a,8 [e'-5(<)a-2 cis-3>] - r b,-5 - \property Voice.Slur \revert #'direction - \property Voice.Slur \override #'direction = #0 - [e,8-5(| - %6 - )a-2] - \property Voice.Slur \revert #'direction - \property Voice.Slur \override #'direction = #1 - [e'(<)a cis>] r b, - \property Voice.Slur \revert #'direction - \property Voice.Slur \override #'direction = #0 - [e,8(| - %7 - )a] + \arpeggio + >> + + \grace { + \property Voice.Stem \override #'stroke-style = #"grace" + + s8 + s16 s s + s32 s s + s s s + \clef bass + 32( + + \property Voice.Stem \revert #'stroke-style + } + 2) + + | %5 + \slurUp + + % \fingerDown + \property Voice.Fingering \set #'direction = #-1 + + %%a,8 e'[-5(]) + a,8 e'[-5(])-2-3 + %%r b,-5 4 + r b,-5 4-3-5 + \slurBoth + \once \property Voice.Fingering \set #'extra-offset = #'(0 . -1) %tweak + e,8[-5( + + | %6 + \once \property Voice.Fingering \set #'extra-offset = #'(0 . -1) %tweak + a)-2] + \slurUp + e'[()] r b, 4 + \slurBoth + e,8[( + + | %7 + a)] } -bassTwo = \context Voice=bassTwo \notes\relative c{ - \skip 2; - \skip 1*2; - \skip 2; +bassTwo = \new Voice \notes\relative c{ + \skip 2 + \skip 1*2 + \skip 2 -#ifdef FAKE_GRACE - \skip 32*16; -#endif + \stemUp + \slurUp - \property Voice.Stem \revert #'direction - \property Voice.Stem \override #'direction = #1 - \property Voice.Slur \revert #'direction - \property Voice.Slur \override #'direction = #1 - - cis'4()bis + cis'4( bis) } -middleDynamics = \context Dynamics=middle \notes{ - s8 s16 s\f s4 +middleDynamics = \notes{ + \property Dynamics.TextScript \set #'padding = #-1 %tweak + s2 s1*2 - %4 + | %4 s2 - -#ifdef FAKE_GRACE - s32*12 - \outputproperty #(make-type-checker 'dynamic-interface) - #'extra-offset = #'(0 . 1.5) - s32\> s s \!s -#endif - s32 - \outputproperty #(make-type-checker 'text-item-interface) - #'extra-offset = #'(0 . 1.5) - s-"rall." s s - s8 s4 - - \outputproperty #(make-type-checker 'dynamic-interface) - #'extra-offset = #'(0 . 4) - %s1\mf-"a tempo" - s2\mf-"a tempo" s4 - \outputproperty #(make-type-checker 'crescendo-interface) - #'extra-offset = #'(0.5 . -1) - s\> \!s8 - \outputproperty #(make-type-checker 'dynamic-interface) - #'extra-offset = #'(-1 . 4) - s8\mf s4 s4 s8\> s32 s s \!s + \grace { + \property Voice.Stem \override #'stroke-style = #"grace" + + s8 + s16 s s + s32 s + \once\property Dynamics.Hairpin \set #'extra-offset = #'(0 . 2) %tweak + s\> s + s32 s s s\! + + \property Voice.Stem \revert #'stroke-style } + + s32 s-"rall." s s s8 s4 + | %5 + s2-"a tempo" s8 + \once\property Dynamics.Hairpin \set #'extra-offset = #'(1 . 0) %tweak + s \> s s + | %6 + s8\! + s2 s8 s\> s + | %7 + s8\! } -lowerDynamics = \context Dynamics=lower \notes{ +lowerDynamics = \notes{ s2 - %2 + | %2 s2\sustainDown s8. s16\sustainUp s4 - %3 + | %3 s2\sustainDown s8. s16\sustainUp s4 - %3 - -#ifndef FAKE_GRACE - s4\sustainDown s16 - s32 s s\sustainUp s - s32\sustainDown s s s - s8 -#else - s2\sustainDown - s32*12 - s32 s s\sustainUp s - s32\sustainDown s s s -#endif - - \property Dynamics.stopSustain = #"" - s4 s16. s32\sustainUp - - %5 + | %4 + s4\sustainDown + \property Dynamics.pedalSustainStrings = #'("Ped." "*Ped." "*") + + % grace destroys pedal-line-spanner? + % let's do manual tweak: + \once\property Dynamics.SustainPedal \set #'extra-offset = #'(10 . 0) %tweak + s8\sustainUp + \once\property Dynamics.SustainPedal \set #'extra-offset = #'(16 . 0) %tweak + s8\sustainDown +%{ + s4 + \grace { + \property Voice.Stem \override #'stroke-style = #"grace" + + s8 + s16 s s + s32 s s s\sustainUp + s32 s s s\sustainDown + + \property Voice.Stem \revert #'stroke-style } + +%} + s2 + + | %5 + % ugh, I don't think that 'mixed should show last edge, but rather: + % + % Ped__________/\__________ * + % + % that's what gray wants, anyway. + + \property Dynamics.pedalSustainStyle = #'mixed s8\sustainDown s s - \property Dynamics.stopSustain = #"*" - \property Dynamics.stopStartSustain = #"-P" - s s\sustainUp\sustainDown s s + s s\sustainUp\sustainDown s + s + \once \property Dynamics.pedalSustainStyle = #'text s\sustainUp - %6 - \property Dynamics.stopStartSustain = #"" + | %6 + \property Dynamics.pedalSustainStyle = #'mixed s8\sustainDown s s - \property Dynamics.stopStartSustain = #"-P" - s s\sustainUp\sustainDown s s + s s\sustainUp\sustainDown s + s + \once \property Dynamics.pedalSustainStyle = #'text s\sustainUp + | %7 } \score{ - \context PianoStaff < - \context Staff=treble < - \global + \context PianoStaff << + \context Staff=treble << \treble \trebleTwo - > - \context Dynamics=middle < - \global + >> + \new Dynamics << \middleDynamics - > - \context Staff=bass < - \clef bass; - \global + >> + \context Staff=bass << + \clef bass \bass \bassTwo - > - \context Dynamics=lower < - \global + >> + \new Dynamics << \lowerDynamics - > - > + >> + >> \paper { - %%BURP - magnification_italic = 1.; \translator { \ScoreContext - TimeSignature \override #'style = #'C - SpacingSpanner \override #'maximum-duration-for-spacing = #(make-moment 1 4) - - \remove Bar_number_engraver; + \remove Bar_number_engraver } \translator { - \type "Engraver_group_engraver"; - \name Dynamics; - \consists "Output_property_engraver"; - Generic_property_list = #generic-voice-properties - \consists "Property_engraver"; - DynamicsMinimumVerticalExtent = #(cons -3 -3) - VerticalAlignment \override #'threshold = #'(9 . 9) - - startSustain = #"Ped." - stopSustain = #"*" - stopStartSustain = #"*Ped." - startUnaChorda = #"una chorda" - stopUnaChorda = #"tre chorde" + \type "Engraver_group_engraver" + \name Dynamics + \consists "Output_property_engraver" + minimumVerticalExtent = #'(-1 . 1) + + pedalSustainStrings = #'("Ped." "*Ped." "*") - \consists "Piano_pedal_engraver"; - \consists "Script_engraver"; - \consists "Dynamic_engraver"; - \consists "Text_engraver"; - %GURGURGU, text is initialised using TextScript - TextScript \override #'style = #"italic" - %%% TextScript \override #'font-relative-size = #2 + \consists "Piano_pedal_engraver" + \consists "Script_engraver" + \consists "Dynamic_engraver" + \consists "Text_engraver" - \consists "Skip_req_swallow_translator"; + TextScript \override #'font-size = #2 + TextScript \override #'font-shape = #'italic - \consistsend "Axis_group_engraver"; + \consists "Skip_event_swallow_translator" + + \consistsend "Axis_group_engraver" } \translator { \PianoStaffContext - \accepts Dynamics; - VerticalAlignment \override #'threshold = #'(7 . 7) - } - \translator { - \GraceContext - Stem \override #'flag-style = #"" + \accepts Dynamics + VerticalAlignment \override #'forced-distance = #7 } } } + +%%% Local variables: +%%% LilyPond-indent-level:4 +%%% End: +%% new-chords-done %%