From 0d11cc81d96ba3cbe5d3c221aba3ee16e916c4c9 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Mon, 28 Jun 1999 12:43:05 +0200 Subject: [PATCH] release: 1.1.51 --- Documentation/faq.yo | 12 +- Documentation/tex/lilypond-overview-0.2.7.tex | 225 ------------ Documentation/tex/lilypond-overview-0.2.8.tex | 320 ------------------ Documentation/tex/lilypond-overview-0.2.9.tex | 225 ------------ Documentation/tex/lilypond-regtest.doc | 18 +- NEWS | 21 ++ TODO | 31 +- VERSION | 2 +- flower/include/rational.hh | 2 +- flower/rational.cc | 5 - input/bugs/foo.ly | 9 + input/test/grace.ly | 28 +- input/test/repeat-fold.ly | 9 + input/von-guten-maechten.ly | 110 ------ lily/align-note-column-engraver.cc | 57 ++++ lily/bar-engraver.cc | 2 +- lily/bar-number-engraver.cc | 4 +- lily/bar-script-engraver.cc | 8 +- lily/beam-engraver.cc | 93 ++--- lily/beam.cc | 4 +- lily/breathing-sign-engraver.cc | 2 +- lily/chord-name-engraver.cc | 4 +- lily/clef-item.cc | 6 +- lily/collision-engraver.cc | 3 +- lily/dynamic-engraver.cc | 20 +- lily/engraver-group.cc | 2 +- lily/engraver.cc | 2 +- lily/extender-engraver.cc | 6 +- lily/font-size-engraver.cc | 9 +- lily/global-translator.cc | 41 +++ lily/grace-align-item.cc | 36 ++ lily/grace-engraver-group.cc | 110 ++++++ lily/grace-iterator.cc | 47 +++ lily/grace-music.cc | 27 ++ lily/grace-position-engraver.cc | 69 ++++ lily/include/bar-script-engraver.hh | 4 +- ...er-group.hh => engraver-group-engraver.hh} | 3 +- lily/include/extender-engraver.hh | 6 +- lily/include/font-size-engraver.hh | 7 + lily/include/global-translator.hh | 18 +- lily/include/grace-align-item.hh | 26 ++ lily/include/grace-engraver-group.hh | 37 ++ lily/include/grace-iterator.hh | 27 ++ lily/include/grace-music.hh | 26 ++ lily/include/lily-proto.hh | 15 +- lily/include/line-group-group-engraver.hh | 6 +- lily/include/local-key-item.hh | 8 +- lily/include/ly-symbols.hh | 4 + lily/include/lyric-engraver.hh | 2 +- lily/include/music-wrapper-iterator.hh | 2 - lily/include/musical-request.hh | 4 +- lily/include/note-head-side.hh | 33 ++ lily/include/parseconstruct.hh | 1 - lily/include/request.hh | 20 +- lily/include/rhythmic-column-engraver.hh | 1 + lily/include/rhythmic-head.hh | 3 +- lily/include/score-engraver.hh | 2 +- .../{g-script-column.hh => script-column.hh} | 10 +- ...-script-engraver.hh => script-engraver.hh} | 14 +- lily/include/{g-script.hh => script.hh} | 18 +- lily/include/spring-spacer.hh | 3 +- .../{g-staff-side.hh => staff-side.hh} | 19 +- ...-stem-staff-side.hh => stem-staff-side.hh} | 16 +- lily/include/{g-text-item.hh => text-item.hh} | 12 +- lily/include/translator-group.hh | 5 +- lily/local-key-engraver.cc | 2 +- lily/local-key-item.cc | 37 +- lily/lyric-engraver.cc | 4 +- lily/mark-engraver.cc | 4 +- lily/music-iterator.cc | 4 + lily/music-wrapper-iterator.cc | 2 +- lily/music-wrapper.cc | 2 +- lily/my-lily-lexer.cc | 1 + lily/note-head-side.cc | 47 +++ lily/paper-outputter.cc | 85 +---- lily/parser.yy | 8 +- lily/repeat-engraver.cc | 2 +- lily/repeated-music-iterator.cc | 13 +- lily/rhythmic-column-engraver.cc | 37 +- lily/rhythmic-head.cc | 14 +- lily/score-engraver.cc | 10 +- lily/score.cc | 29 +- ...-engraver.cc => script-column-engraver.cc} | 32 +- lily/{g-script-column.cc => script-column.cc} | 28 +- ...-script-engraver.cc => script-engraver.cc} | 30 +- lily/{g-script.cc => script.cc} | 24 +- lily/sequential-music-iterator.cc | 5 +- lily/simultaneous-music-iterator.cc | 3 +- lily/staff-margin-engraver.cc | 4 +- lily/{g-staff-side.cc => staff-side.cc} | 36 +- lily/staff-switching-translator.cc | 2 +- lily/stem-engraver.cc | 9 + lily/stem-info.cc | 2 +- ...-stem-staff-side.cc => stem-staff-side.cc} | 16 +- lily/stem.cc | 16 +- lily/text-engraver.cc | 12 +- lily/{g-text-item.cc => text-item.cc} | 10 +- lily/time-signature-engraver.cc | 2 +- lily/translator-group.cc | 4 - ly/engraver.ly | 27 +- ly/params.ly | 21 +- make/out/lelievijver.lsm | 8 +- make/out/lilypond.lsm | 8 +- make/out/lilypond.spec | 4 +- mudela-mode.el | 2 +- mutopia/F.Schubert/AnSylvia.ly | 16 +- mutopia/W.A.Mozart/cadenza.ly | 19 +- scm/lily.scm | 31 ++ scripts/abc-2-ly.py | 5 +- 109 files changed, 1150 insertions(+), 1448 deletions(-) delete mode 100644 Documentation/tex/lilypond-overview-0.2.7.tex delete mode 100644 Documentation/tex/lilypond-overview-0.2.8.tex delete mode 100644 Documentation/tex/lilypond-overview-0.2.9.tex create mode 100644 input/bugs/foo.ly create mode 100644 input/test/repeat-fold.ly delete mode 100644 input/von-guten-maechten.ly create mode 100644 lily/align-note-column-engraver.cc create mode 100644 lily/grace-align-item.cc create mode 100644 lily/grace-engraver-group.cc create mode 100644 lily/grace-iterator.cc create mode 100644 lily/grace-music.cc create mode 100644 lily/grace-position-engraver.cc rename lily/include/{engraver-group.hh => engraver-group-engraver.hh} (92%) create mode 100644 lily/include/grace-align-item.hh create mode 100644 lily/include/grace-engraver-group.hh create mode 100644 lily/include/grace-iterator.hh create mode 100644 lily/include/grace-music.hh create mode 100644 lily/include/note-head-side.hh rename lily/include/{g-script-column.hh => script-column.hh} (66%) rename lily/include/{g-script-engraver.hh => script-engraver.hh} (67%) rename lily/include/{g-script.hh => script.hh} (65%) rename lily/include/{g-staff-side.hh => staff-side.hh} (74%) rename lily/include/{g-stem-staff-side.hh => stem-staff-side.hh} (59%) rename lily/include/{g-text-item.hh => text-item.hh} (69%) create mode 100644 lily/note-head-side.cc rename lily/{g-script-column-engraver.cc => script-column-engraver.cc} (61%) rename lily/{g-script-column.cc => script-column.cc} (62%) rename lily/{g-script-engraver.cc => script-engraver.cc} (79%) rename lily/{g-script.cc => script.cc} (73%) rename lily/{g-staff-side.cc => staff-side.cc} (76%) rename lily/{g-stem-staff-side.cc => stem-staff-side.cc} (62%) rename lily/{g-text-item.cc => text-item.cc} (70%) diff --git a/Documentation/faq.yo b/Documentation/faq.yo index f20726e49b..3ef3231a36 100644 --- a/Documentation/faq.yo +++ b/Documentation/faq.yo @@ -173,9 +173,10 @@ Yes, see the file(twinkle-pop) example. question(Do you support guitar chord diagrams?) -No, not yet. We ourselves don't play guitar, and don't know the -fine points of this notation. We would welcome anyone who could give -this a try. +No. Go ahead and send a patch. + +We ourselves don't play guitar, and don't know the fine points of this +notation. We would welcome anyone who could give this a try. question(Do you support TAB notation?) @@ -192,12 +193,11 @@ size of the staff, and fontSize for setting the size of the glyphs. question(Do you support Gregorian chant notation?) -No. There is no reason why LilyPond can't be extended to do so, but -we haven't done it yet (and there are currently no plans to do it). +No. Go ahead. question(Do you support grace notes?) -No. But they can kludged. See file(input/test/grace.ly) +Yes. See file(input/test/grace.ly) sect(How do I ....) diff --git a/Documentation/tex/lilypond-overview-0.2.7.tex b/Documentation/tex/lilypond-overview-0.2.7.tex deleted file mode 100644 index 6ba1a581a3..0000000000 --- a/Documentation/tex/lilypond-overview-0.2.7.tex +++ /dev/null @@ -1,225 +0,0 @@ -%created by: GNU LilyPond 1.1.48.uu1, at Fri Jun 18 14:13:33 1999 -% -% outputting Score, defined at: -% out-www/lilypond-overview-0.2.7.ly:3:7 -\def\mudelatagline{Lily was here, 1.1.48.uu1}% -\def\LilyPondVersion{1.1.48.uu1}% -\def\mudelapaperbeam_steep_slope{0.200000}% -\def\mudelapaperstem_max{3.000000}% -\def\mudelapaperfont_number-1{8.000000}% -\def\mudelapapermmrest_x_minimum{32.000000}% -\def\mudelapaperhsize{597.507874}% -\def\mudelapaperforced_stem_shorten2{2.000000}% -\def\mudelapaperslur_clip_ratio{1.200000}% -\def\mudelapaperminimum_stem_length3{4.000000}% -\def\mudelapaperlinewidth{-28.452756}% -\def\mudelapaperminimum_stem_length0{0.000000}% -\def\mudelapaperfont_normal{8.000000}% -\def\mudelapapernotewidth{6.600000}% -\def\mudelapaperrestcollision_minimum_dist{3.000000}% -\def\mudelapaperbeam_lengthened{0.800000}% -\def\mudelapaperfont_number{8.000000}% -\def\mudelapaperDOWN{-1.000000}% -\def\mudelapaperslur_clip_angle{100.000000}% -\def\mudelapaperwholewidth{7.920000}% -\def\mudelapaperbarthick_thick{2.400000}% -\def\mudelapapercastingalgorithm{1.000000}% -\def\mudelapaperslur_slope_follow_music_factor{0.800000}% -\def\mudelapaperpostBreakPadding{4.000000}% -\def\mudelapaperscmsetting{(display "\\input lilyponddefs \\musixsixteendefs");% - }% -\def\mudelapaperstemthickness{0.320000}% -\def\mudelapaperinterline{4.000000}% -\def\mudelapaperslur_height_limit{16.000000}% -\def\mudelapapertextheight{611.809858}% -\def\mudelapaperfont_large{12.000000}% -\def\mudelapaperfont_finger{4.000000}% -\def\mudelapaperrulethickness{0.400000}% -\def\mudelapaperstem_length1{10.000000}% -\def\mudelapaperslur_x_minimum{12.000000}% -\def\mudelapaperlinewidth20{557.507874}% -\def\mudelapaperfont_number+1{12.000000}% -\def\mudelapaperMEAN{3.000000}% -\def\mudelapaperpaperfile{a4.ly}% -\def\mudelapapertexsetting{\input lilyponddefs \musixsixteendefs }% -\def\mudelapaperforced_stem_shorten1{2.000000}% -\def\mudelapaperinterbeam4{3.376000}% -\def\mudelapaperminimum_stem_length2{5.000000}% -\def\mudelapapergourlay_maxmeasures{10.000000}% -\def\mudelapaperbeam_dir_algorithm{2.000000}% -\def\mudelapapervsize{844.762323}% -\def\mudelapaperstaffheight{16.000000}% -\def\mudelapapertuplet_thick{0.400000}% -\def\mudelapaperbarthick_score{0.640000}% -\def\mudelapaperbar_thinkern{1.200000}% -\def\mudelapapertie_x_gap{0.800000}% -\def\mudelapapervolta_thick{0.640000}% -\def\mudelapaperrestcollision_minimum_beamdist{1.500000}% -\def\mudelapapertextheight20{764.762323}% -\def\mudelapaperUP{1.000000}% -\def\mudelapaperslur_rc_factor{2.400000}% -\def\mudelapaperarithmetic_basicspace{2.000000}% -\def\mudelapaperslur_thickness{0.560000}% -\def\mudelapaperinterbeam{3.264000}% -\def\mudelapaperindent{31.857593}% -\def\mudelapaperfont_mark{10.000000}% -\def\mudelapaperslur_ratio{0.250000}% -\def\mudelapaperstem_length3{6.000000}% -\def\mudelapaperslur_x_gap{0.800000}% -\def\mudelapaperstem_length0{14.000000}% -\def\mudelapaperfont_Large{10.000000}% -\def\mudelapaperextender_height{0.320000}% -\def\mudelapapercrescendo_shorten{16.000000}% -\def\mudelapaperfont_volta{5.000000}% -\def\mudelapaperforced_stem_shorten3{2.000000}% -\def\mudelapaperslur_clip_height{48.000000}% -\def\mudelapaperquartwidth{5.280000}% -\def\mudelapaperforced_stem_shorten0{2.000000}% -\def\mudelapaperminimum_stem_length1{6.000000}% -\def\mudelapaperslur_slope_damping{0.600000}% -\def\mudelapapermagnification_dynamic{2.000000}% -\def\mudelapaperMEDIAN{4.000000}% -\def\mudelapaperpssetting{(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec}% - { /undefinedfilename signalerror }% - ifelse% - }% -\def\mudelapaperbarthick_thin{0.640000}% -\def\mudelapaperbar_kern{1.200000}% -\def\mudelapapertie_x_minimum{12.000000}% -\def\mudelapaperbeam_thickness{1.872000}% -\def\mudelapapertie_slope_damping{0.800000}% -\def\mudelapaperfont_dynamic{10.000000}% -\def\mudelapapergourlay_energybound{100000.000000}% -\def\mudelapaperMAJORITY{2.000000}% -\def\mudelapaperarithmetic_multiplier{4.800000}% -\def\mudelapaperstaffline{0.400000}% -\def\mudelapaperstem_length2{8.000000}% -\def\mudelapaperbarsize{16.000000}% -\input lilyponddefs \musixsixteendefs \turnOnExperimentalFeatures\turnOnPostScript\vbox to 32.0 pt {\hbox{% -\placebox{-24.0 pt }% - {31.8575928008999 pt }% - {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt }% - \placebox{-20.0 pt }% - {31.8575928008999 pt }% - {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt }% - \placebox{-16.0 pt }% - {31.8575928008999 pt }% - {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt }% - \placebox{-12.0 pt }% - {31.8575928008999 pt }% - {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt }% - \placebox{-8.0 pt }% - {31.8575928008999 pt }% - {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt }% - \font\lilyfontA=feta16\lilyfontA\placebox{-20.0 pt }% - {35.8575928008999 pt }% - {\show{86}% - }% - \font\lilyfontB=feta-nummer8\lilyfontB\placebox{-16.0 pt }% - {50.3998138702358 pt }% - {\hbox{3}% - }% - \placebox{-24.0 pt }% - {49.8575928008999 pt }% - {\hbox{4}% - }% - \placebox{-16.0 pt }% - {127.564230374143 pt }% - {\kern0.0 pt \vrule width 0.64 pt depth 8.0 pt height 8.0 pt }% - \placebox{-16.0 pt }% - {174.764230374143 pt }% - {\kern0.0 pt \vrule width 0.64 pt depth 8.0 pt height 8.0 pt }% - \placebox{-27.264 pt }% - {79.5642303741425 pt }% - {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }% - }% - \placebox{-24.0 pt }% - {79.5642303741425 pt }% - {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }% - }% - \placebox{-27.264 pt }% - {69.9642303741424 pt }% - {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }% - }% - \placebox{-24.0 pt }% - {69.9642303741424 pt }% - {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }% - }% - \placebox{-27.264 pt }% - {60.3642303741423 pt }% - {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }% - }% - \placebox{-24.0 pt }% - {60.3642303741423 pt }% - {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }% - }% - \placebox{-16.0 pt }% - {60.5642303741423 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 11.264 pt height 1.03836152344995 pt }% - \lilyfontA\placebox{-14.0 pt }% - {60.3642303741423 pt }% - {\show{30}% - }% - \placebox{-16.0 pt }% - {70.1642303741424 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 11.264 pt height 1.03836152344995 pt }% - \placebox{-14.0 pt }% - {69.9642303741424 pt }% - {\show{30}% - }% - \placebox{-16.0 pt }% - {79.7642303741425 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 11.264 pt height 1.03836152344995 pt }% - \placebox{-14.0 pt }% - {79.5642303741425 pt }% - {\show{30}% - }% - \placebox{-16.0 pt }% - {89.3642303741427 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 11.264 pt height 1.03836152344995 pt }% - \placebox{-14.0 pt }% - {89.1642303741427 pt }% - {\show{30}% - }% - \placebox{-24.736 pt }% - {98.7642303741428 pt }% - {\embeddedps{14.8000000000002 0.0 1.872 draw_beam }% - }% - \placebox{-16.0 pt }% - {98.9642303741428 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 8.736 pt height 1.03836152344995 pt }% - \placebox{-14.0 pt }% - {98.7642303741428 pt }% - {\show{30}% - }% - \placebox{-16.0 pt }% - {113.364230374143 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 8.736 pt height 1.03836152344995 pt }% - \placebox{-14.0 pt }% - {113.164230374143 pt }% - {\show{30}% - }% - \placebox{-16.0 pt }% - {132.404230374143 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 6.0 pt height 7.03836152344995 pt }% - \placebox{-8.0 pt }% - {132.204230374143 pt }% - {\show{30}% - }% - \placebox{-16.0 pt }% - {151.688390374143 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 5.03836152344995 pt height 8.0 pt }% - \placebox{-22.0 pt }% - {146.604230374143 pt }% - {\show{30}% - }% - \placebox{-16.0 pt }% - {161.204230374143 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 6.0 pt height 7.03836152344995 pt }% - \placebox{-8.0 pt }% - {161.004230374143 pt }% - {\show{30}% - }% - }% - \vss}% -\EndLilyPondOutput \ No newline at end of file diff --git a/Documentation/tex/lilypond-overview-0.2.8.tex b/Documentation/tex/lilypond-overview-0.2.8.tex deleted file mode 100644 index 9aa2b0cbad..0000000000 --- a/Documentation/tex/lilypond-overview-0.2.8.tex +++ /dev/null @@ -1,320 +0,0 @@ -%created by: GNU LilyPond 1.1.48.uu1, at Fri Jun 18 14:13:29 1999 -% -% outputting Score, defined at: -% out-www/lilypond-overview-0.2.8.ly:3:7 -\def\mudelatagline{Lily was here, 1.1.48.uu1}% -\def\LilyPondVersion{1.1.48.uu1}% -\def\mudelapaperbeam_steep_slope{0.200000}% -\def\mudelapaperstem_max{3.000000}% -\def\mudelapaperfont_number-1{8.000000}% -\def\mudelapapermmrest_x_minimum{32.000000}% -\def\mudelapaperhsize{597.507874}% -\def\mudelapaperforced_stem_shorten2{2.000000}% -\def\mudelapaperslur_clip_ratio{1.200000}% -\def\mudelapaperminimum_stem_length3{4.000000}% -\def\mudelapaperlinewidth{-28.452756}% -\def\mudelapaperminimum_stem_length0{0.000000}% -\def\mudelapaperfont_normal{8.000000}% -\def\mudelapapernotewidth{6.600000}% -\def\mudelapaperrestcollision_minimum_dist{3.000000}% -\def\mudelapaperbeam_lengthened{0.800000}% -\def\mudelapaperfont_number{8.000000}% -\def\mudelapaperDOWN{-1.000000}% -\def\mudelapaperslur_clip_angle{100.000000}% -\def\mudelapaperwholewidth{7.920000}% -\def\mudelapaperbarthick_thick{2.400000}% -\def\mudelapapercastingalgorithm{1.000000}% -\def\mudelapaperslur_slope_follow_music_factor{0.800000}% -\def\mudelapaperpostBreakPadding{4.000000}% -\def\mudelapaperscmsetting{(display "\\input lilyponddefs \\musixsixteendefs");% - }% -\def\mudelapaperstemthickness{0.320000}% -\def\mudelapaperinterline{4.000000}% -\def\mudelapaperslur_height_limit{16.000000}% -\def\mudelapapertextheight{611.809858}% -\def\mudelapaperfont_large{12.000000}% -\def\mudelapaperfont_finger{4.000000}% -\def\mudelapaperrulethickness{0.400000}% -\def\mudelapaperstem_length1{10.000000}% -\def\mudelapaperslur_x_minimum{12.000000}% -\def\mudelapaperlinewidth20{557.507874}% -\def\mudelapaperfont_number+1{12.000000}% -\def\mudelapaperMEAN{3.000000}% -\def\mudelapaperpaperfile{a4.ly}% -\def\mudelapapertexsetting{\input lilyponddefs \musixsixteendefs }% -\def\mudelapaperforced_stem_shorten1{2.000000}% -\def\mudelapaperinterbeam4{3.376000}% -\def\mudelapaperminimum_stem_length2{5.000000}% -\def\mudelapapergourlay_maxmeasures{10.000000}% -\def\mudelapaperbeam_dir_algorithm{2.000000}% -\def\mudelapapervsize{844.762323}% -\def\mudelapaperstaffheight{16.000000}% -\def\mudelapapertuplet_thick{0.400000}% -\def\mudelapaperbarthick_score{0.640000}% -\def\mudelapaperbar_thinkern{1.200000}% -\def\mudelapapertie_x_gap{0.800000}% -\def\mudelapapervolta_thick{0.640000}% -\def\mudelapaperrestcollision_minimum_beamdist{1.500000}% -\def\mudelapapertextheight20{764.762323}% -\def\mudelapaperUP{1.000000}% -\def\mudelapaperslur_rc_factor{2.400000}% -\def\mudelapaperarithmetic_basicspace{2.000000}% -\def\mudelapaperslur_thickness{0.560000}% -\def\mudelapaperinterbeam{3.264000}% -\def\mudelapaperindent{31.857593}% -\def\mudelapaperfont_mark{10.000000}% -\def\mudelapaperslur_ratio{0.250000}% -\def\mudelapaperstem_length3{6.000000}% -\def\mudelapaperslur_x_gap{0.800000}% -\def\mudelapaperstem_length0{14.000000}% -\def\mudelapaperfont_Large{10.000000}% -\def\mudelapaperextender_height{0.320000}% -\def\mudelapapercrescendo_shorten{16.000000}% -\def\mudelapaperfont_volta{5.000000}% -\def\mudelapaperforced_stem_shorten3{2.000000}% -\def\mudelapaperslur_clip_height{48.000000}% -\def\mudelapaperquartwidth{5.280000}% -\def\mudelapaperforced_stem_shorten0{2.000000}% -\def\mudelapaperminimum_stem_length1{6.000000}% -\def\mudelapaperslur_slope_damping{0.600000}% -\def\mudelapapermagnification_dynamic{2.000000}% -\def\mudelapaperMEDIAN{4.000000}% -\def\mudelapaperpssetting{(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec}% - { /undefinedfilename signalerror }% - ifelse% - }% -\def\mudelapaperbarthick_thin{0.640000}% -\def\mudelapaperbar_kern{1.200000}% -\def\mudelapapertie_x_minimum{12.000000}% -\def\mudelapaperbeam_thickness{1.872000}% -\def\mudelapapertie_slope_damping{0.800000}% -\def\mudelapaperfont_dynamic{10.000000}% -\def\mudelapapergourlay_energybound{100000.000000}% -\def\mudelapaperMAJORITY{2.000000}% -\def\mudelapaperarithmetic_multiplier{4.800000}% -\def\mudelapaperstaffline{0.400000}% -\def\mudelapaperstem_length2{8.000000}% -\def\mudelapaperbarsize{16.000000}% -\input lilyponddefs \musixsixteendefs \turnOnExperimentalFeatures\turnOnPostScript\vbox to 38.2 pt {\hbox{% -\font\lilyfontA=feta-nummer8\lilyfontA\placebox{-22.2 pt }% - {50.1287033355679 pt }% - {\hbox{2}% - }% - \placebox{-30.2 pt }% - {49.8575928008999 pt }% - {\hbox{4}% - }% - \placebox{-30.2 pt }% - {31.8575928008999 pt }% - {\kern0.0 pt \vrule width 173.026317573245 pt depth 0.2 pt height 0.2 pt }% - \placebox{-26.2 pt }% - {31.8575928008999 pt }% - {\kern0.0 pt \vrule width 173.026317573245 pt depth 0.2 pt height 0.2 pt }% - \placebox{-22.2 pt }% - {31.8575928008999 pt }% - {\kern0.0 pt \vrule width 173.026317573245 pt depth 0.2 pt height 0.2 pt }% - \placebox{-18.2 pt }% - {31.8575928008999 pt }% - {\kern0.0 pt \vrule width 173.026317573245 pt depth 0.2 pt height 0.2 pt }% - \placebox{-14.2 pt }% - {31.8575928008999 pt }% - {\kern0.0 pt \vrule width 173.026317573245 pt depth 0.2 pt height 0.2 pt }% - \font\lilyfontB=feta16\lilyfontB\placebox{-26.2 pt }% - {35.8575928008999 pt }% - {\show{86}% - }% - \placebox{-22.2 pt }% - {89.1642303741433 pt }% - {\kern0.0 pt \vrule width 0.64 pt depth 8.0 pt height 8.0 pt }% - \placebox{-22.2 pt }% - {122.604230374144 pt }% - {\kern0.0 pt \vrule width 0.64 pt depth 8.0 pt height 8.0 pt }% - \placebox{-22.2 pt }% - {204.243910374144 pt }% - {\kern0.0 pt \vrule width 0.64 pt depth 8.0 pt height 8.0 pt }% - \placebox{-22.2 pt }% - {60.5642303741424 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height 5.03836152344995 pt }% - \placebox{-20.2 pt }% - {60.3642303741424 pt }% - {\show{30}% - }% - \placebox{-16.2 pt }% - {60.3642303741424 pt }% - {\show{30}% - }% - \placebox{-22.2 pt }% - {74.9642303741429 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 10.0 pt height 7.03836152344995 pt }% - \placebox{-18.2 pt }% - {74.7642303741429 pt }% - {\show{30}% - }% - \placebox{-14.2 pt }% - {74.7642303741429 pt }% - {\show{30}% - }% - \placebox{-22.2 pt }% - {94.0042303741434 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height 1.03836152344995 pt }% - \placebox{-20.2 pt }% - {93.8042303741434 pt }% - {\show{30}% - }% - \placebox{-22.2 pt }% - {98.8883903741434 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth -6.96163847655005 pt height 18.0 pt }% - \placebox{-16.2 pt }% - {93.8042303741434 pt }% - {\show{30}% - }% - \placebox{-22.2 pt }% - {108.404230374144 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 10.0 pt height 3.03836152344995 pt }% - \placebox{-18.2 pt }% - {108.204230374144 pt }% - {\show{30}% - }% - \placebox{-22.2 pt }% - {113.288390374144 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth -8.96163847655005 pt height 20.0 pt }% - \placebox{-14.2 pt }% - {108.204230374144 pt }% - {\show{30}% - }% - \placebox{-34.2 pt }% - {146.864070374144 pt }% - {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }% - }% - \placebox{-30.936 pt }% - {146.864070374144 pt }% - {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }% - }% - \placebox{-34.2 pt }% - {137.264070374144 pt }% - {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }% - }% - \placebox{-30.936 pt }% - {137.264070374144 pt }% - {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }% - }% - \placebox{-34.2 pt }% - {127.244230374144 pt }% - {\embeddedps{10.41984 0.0 1.872 draw_beam }% - }% - \placebox{-30.936 pt }% - {127.244230374144 pt }% - {\embeddedps{10.41984 0.0 1.872 draw_beam }% - }% - \placebox{-22.2 pt }% - {127.444230374144 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height -0.961638476550048 pt }% - \placebox{-22.2 pt }% - {127.244230374144 pt }% - {\show{30}% - }% - \placebox{-0.199999999999999 pt }% - {132.328390374144 pt }% - {\show{74}% - }% - \placebox{-22.2 pt }% - {132.328390374144 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth -10.96163847655 pt height 22.0 pt }% - \placebox{-12.2 pt }% - {127.244230374144 pt }% - {\show{30}% - }% - \placebox{-22.2 pt }% - {137.464070374144 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height -0.961638476550048 pt }% - \placebox{-22.2 pt }% - {137.264070374144 pt }% - {\show{30}% - }% - \placebox{-22.2 pt }% - {147.064070374144 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height -0.961638476550048 pt }% - \placebox{-22.2 pt }% - {146.864070374144 pt }% - {\show{30}% - }% - \placebox{-22.2 pt }% - {151.948230374144 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth -10.96163847655 pt height 22.0 pt }% - \placebox{-12.2 pt }% - {146.864070374144 pt }% - {\show{30}% - }% - \placebox{-22.2 pt }% - {156.664070374144 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height -0.961638476550048 pt }% - \placebox{-22.2 pt }% - {156.464070374144 pt }% - {\show{30}% - }% - \placebox{-34.2 pt }% - {185.264070374144 pt }% - {\embeddedps{10.41984 0.0 1.872 draw_beam }% - }% - \placebox{-30.936 pt }% - {185.264070374144 pt }% - {\embeddedps{10.41984 0.0 1.872 draw_beam }% - }% - \placebox{-34.2 pt }% - {175.664070374144 pt }% - {\embeddedps{10.0 0.0 1.872 draw_beam }% - }% - \placebox{-30.936 pt }% - {175.664070374144 pt }% - {\embeddedps{10.0 0.0 1.872 draw_beam }% - }% - \placebox{-34.2 pt }% - {166.064070374144 pt }% - {\embeddedps{10.0 0.0 1.872 draw_beam }% - }% - \placebox{-30.936 pt }% - {166.064070374144 pt }% - {\embeddedps{10.0 0.0 1.872 draw_beam }% - }% - \placebox{-22.2 pt }% - {166.264070374144 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height -0.961638476550048 pt }% - \placebox{-22.2 pt }% - {166.064070374144 pt }% - {\show{30}% - }% - \placebox{-22.2 pt }% - {175.864070374144 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height -0.961638476550048 pt }% - \placebox{-22.2 pt }% - {175.664070374144 pt }% - {\show{30}% - }% - \placebox{-22.2 pt }% - {185.464070374144 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height -0.961638476550048 pt }% - \placebox{-22.2 pt }% - {185.264070374144 pt }% - {\show{30}% - }% - \placebox{-0.199999999999999 pt }% - {190.348230374144 pt }% - {\show{74}% - }% - \placebox{-22.2 pt }% - {190.348230374144 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth -10.96163847655 pt height 22.0 pt }% - \placebox{-12.2 pt }% - {185.264070374144 pt }% - {\show{30}% - }% - \placebox{-22.2 pt }% - {195.483910374144 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 12.0 pt height -0.961638476550048 pt }% - \placebox{-22.2 pt }% - {195.283910374144 pt }% - {\show{30}% - }% - }% - \vss}% -\EndLilyPondOutput \ No newline at end of file diff --git a/Documentation/tex/lilypond-overview-0.2.9.tex b/Documentation/tex/lilypond-overview-0.2.9.tex deleted file mode 100644 index a8834b8c57..0000000000 --- a/Documentation/tex/lilypond-overview-0.2.9.tex +++ /dev/null @@ -1,225 +0,0 @@ -%created by: GNU LilyPond 1.1.48.uu1, at Fri Jun 18 14:13:37 1999 -% -% outputting Score, defined at: -% out-www/lilypond-overview-0.2.9.ly:3:7 -\def\mudelatagline{Lily was here, 1.1.48.uu1}% -\def\LilyPondVersion{1.1.48.uu1}% -\def\mudelapaperbeam_steep_slope{0.200000}% -\def\mudelapaperstem_max{3.000000}% -\def\mudelapaperfont_number-1{8.000000}% -\def\mudelapapermmrest_x_minimum{32.000000}% -\def\mudelapaperhsize{597.507874}% -\def\mudelapaperforced_stem_shorten2{2.000000}% -\def\mudelapaperslur_clip_ratio{1.200000}% -\def\mudelapaperminimum_stem_length3{4.000000}% -\def\mudelapaperlinewidth{-28.452756}% -\def\mudelapaperminimum_stem_length0{0.000000}% -\def\mudelapaperfont_normal{8.000000}% -\def\mudelapapernotewidth{6.600000}% -\def\mudelapaperrestcollision_minimum_dist{3.000000}% -\def\mudelapaperbeam_lengthened{0.800000}% -\def\mudelapaperfont_number{8.000000}% -\def\mudelapaperDOWN{-1.000000}% -\def\mudelapaperslur_clip_angle{100.000000}% -\def\mudelapaperwholewidth{7.920000}% -\def\mudelapaperbarthick_thick{2.400000}% -\def\mudelapapercastingalgorithm{1.000000}% -\def\mudelapaperslur_slope_follow_music_factor{0.800000}% -\def\mudelapaperpostBreakPadding{4.000000}% -\def\mudelapaperscmsetting{(display "\\input lilyponddefs \\musixsixteendefs");% - }% -\def\mudelapaperstemthickness{0.320000}% -\def\mudelapaperinterline{4.000000}% -\def\mudelapaperslur_height_limit{16.000000}% -\def\mudelapapertextheight{611.809858}% -\def\mudelapaperfont_large{12.000000}% -\def\mudelapaperfont_finger{4.000000}% -\def\mudelapaperrulethickness{0.400000}% -\def\mudelapaperstem_length1{10.000000}% -\def\mudelapaperslur_x_minimum{12.000000}% -\def\mudelapaperlinewidth20{557.507874}% -\def\mudelapaperfont_number+1{12.000000}% -\def\mudelapaperMEAN{3.000000}% -\def\mudelapaperpaperfile{a4.ly}% -\def\mudelapapertexsetting{\input lilyponddefs \musixsixteendefs }% -\def\mudelapaperforced_stem_shorten1{2.000000}% -\def\mudelapaperinterbeam4{3.376000}% -\def\mudelapaperminimum_stem_length2{5.000000}% -\def\mudelapapergourlay_maxmeasures{10.000000}% -\def\mudelapaperbeam_dir_algorithm{2.000000}% -\def\mudelapapervsize{844.762323}% -\def\mudelapaperstaffheight{16.000000}% -\def\mudelapapertuplet_thick{0.400000}% -\def\mudelapaperbarthick_score{0.640000}% -\def\mudelapaperbar_thinkern{1.200000}% -\def\mudelapapertie_x_gap{0.800000}% -\def\mudelapapervolta_thick{0.640000}% -\def\mudelapaperrestcollision_minimum_beamdist{1.500000}% -\def\mudelapapertextheight20{764.762323}% -\def\mudelapaperUP{1.000000}% -\def\mudelapaperslur_rc_factor{2.400000}% -\def\mudelapaperarithmetic_basicspace{2.000000}% -\def\mudelapaperslur_thickness{0.560000}% -\def\mudelapaperinterbeam{3.264000}% -\def\mudelapaperindent{31.857593}% -\def\mudelapaperfont_mark{10.000000}% -\def\mudelapaperslur_ratio{0.250000}% -\def\mudelapaperstem_length3{6.000000}% -\def\mudelapaperslur_x_gap{0.800000}% -\def\mudelapaperstem_length0{14.000000}% -\def\mudelapaperfont_Large{10.000000}% -\def\mudelapaperextender_height{0.320000}% -\def\mudelapapercrescendo_shorten{16.000000}% -\def\mudelapaperfont_volta{5.000000}% -\def\mudelapaperforced_stem_shorten3{2.000000}% -\def\mudelapaperslur_clip_height{48.000000}% -\def\mudelapaperquartwidth{5.280000}% -\def\mudelapaperforced_stem_shorten0{2.000000}% -\def\mudelapaperminimum_stem_length1{6.000000}% -\def\mudelapaperslur_slope_damping{0.600000}% -\def\mudelapapermagnification_dynamic{2.000000}% -\def\mudelapaperMEDIAN{4.000000}% -\def\mudelapaperpssetting{(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec}% - { /undefinedfilename signalerror }% - ifelse% - }% -\def\mudelapaperbarthick_thin{0.640000}% -\def\mudelapaperbar_kern{1.200000}% -\def\mudelapapertie_x_minimum{12.000000}% -\def\mudelapaperbeam_thickness{1.872000}% -\def\mudelapapertie_slope_damping{0.800000}% -\def\mudelapaperfont_dynamic{10.000000}% -\def\mudelapapergourlay_energybound{100000.000000}% -\def\mudelapaperMAJORITY{2.000000}% -\def\mudelapaperarithmetic_multiplier{4.800000}% -\def\mudelapaperstaffline{0.400000}% -\def\mudelapaperstem_length2{8.000000}% -\def\mudelapaperbarsize{16.000000}% -\input lilyponddefs \musixsixteendefs \turnOnExperimentalFeatures\turnOnPostScript\vbox to 32.0 pt {\hbox{% -\placebox{-24.0 pt }% - {31.8575928008999 pt }% - {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt }% - \placebox{-20.0 pt }% - {31.8575928008999 pt }% - {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt }% - \placebox{-16.0 pt }% - {31.8575928008999 pt }% - {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt }% - \placebox{-12.0 pt }% - {31.8575928008999 pt }% - {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt }% - \placebox{-8.0 pt }% - {31.8575928008999 pt }% - {\kern0.0 pt \vrule width 143.546637573243 pt depth 0.2 pt height 0.2 pt }% - \font\lilyfontA=feta16\lilyfontA\placebox{-20.0 pt }% - {35.8575928008999 pt }% - {\show{86}% - }% - \font\lilyfontB=feta-nummer8\lilyfontB\placebox{-16.0 pt }% - {50.3998138702358 pt }% - {\hbox{3}% - }% - \placebox{-24.0 pt }% - {49.8575928008999 pt }% - {\hbox{4}% - }% - \placebox{-16.0 pt }% - {127.564230374143 pt }% - {\kern0.0 pt \vrule width 0.64 pt depth 8.0 pt height 8.0 pt }% - \placebox{-16.0 pt }% - {174.764230374143 pt }% - {\kern0.0 pt \vrule width 0.64 pt depth 8.0 pt height 8.0 pt }% - \placebox{-27.264 pt }% - {79.5642303741425 pt }% - {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }% - }% - \placebox{-24.0 pt }% - {79.5642303741425 pt }% - {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }% - }% - \placebox{-27.264 pt }% - {69.9642303741424 pt }% - {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }% - }% - \placebox{-24.0 pt }% - {69.9642303741424 pt }% - {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }% - }% - \placebox{-27.264 pt }% - {60.3642303741423 pt }% - {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }% - }% - \placebox{-24.0 pt }% - {60.3642303741423 pt }% - {\embeddedps{10.0000000000001 0.0 1.872 draw_beam }% - }% - \placebox{-16.0 pt }% - {60.5642303741423 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 11.264 pt height 1.03836152344995 pt }% - \lilyfontA\placebox{-14.0 pt }% - {60.3642303741423 pt }% - {\show{30}% - }% - \placebox{-16.0 pt }% - {70.1642303741424 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 11.264 pt height 1.03836152344995 pt }% - \placebox{-14.0 pt }% - {69.9642303741424 pt }% - {\show{30}% - }% - \placebox{-16.0 pt }% - {79.7642303741425 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 11.264 pt height 1.03836152344995 pt }% - \placebox{-14.0 pt }% - {79.5642303741425 pt }% - {\show{30}% - }% - \placebox{-16.0 pt }% - {89.3642303741427 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 11.264 pt height 1.03836152344995 pt }% - \placebox{-14.0 pt }% - {89.1642303741427 pt }% - {\show{30}% - }% - \placebox{-24.736 pt }% - {98.7642303741428 pt }% - {\embeddedps{14.8000000000002 0.0 1.872 draw_beam }% - }% - \placebox{-16.0 pt }% - {98.9642303741428 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 8.736 pt height 1.03836152344995 pt }% - \placebox{-14.0 pt }% - {98.7642303741428 pt }% - {\show{30}% - }% - \placebox{-16.0 pt }% - {113.364230374143 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 8.736 pt height 1.03836152344995 pt }% - \placebox{-14.0 pt }% - {113.164230374143 pt }% - {\show{30}% - }% - \placebox{-16.0 pt }% - {132.404230374143 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 6.0 pt height 7.03836152344995 pt }% - \placebox{-8.0 pt }% - {132.204230374143 pt }% - {\show{30}% - }% - \placebox{-16.0 pt }% - {151.688390374143 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 5.03836152344995 pt height 8.0 pt }% - \placebox{-22.0 pt }% - {146.604230374143 pt }% - {\show{30}% - }% - \placebox{-16.0 pt }% - {161.204230374143 pt }% - {\kern-0.16 pt \vrule width 0.32 pt depth 6.0 pt height 7.03836152344995 pt }% - \placebox{-8.0 pt }% - {161.004230374143 pt }% - {\show{30}% - }% - }% - \vss}% -\EndLilyPondOutput \ No newline at end of file diff --git a/Documentation/tex/lilypond-regtest.doc b/Documentation/tex/lilypond-regtest.doc index 37452d42b9..5ff667defe 100644 --- a/Documentation/tex/lilypond-regtest.doc +++ b/Documentation/tex/lilypond-regtest.doc @@ -42,6 +42,15 @@ Beams, stems and noteheads often have communication troubles, since the two systems for y dimensions (1 unit = staffspace, 1 unit = 1 point) are mixed. +\section{Grace notes} + +Grace notes are typeset as an encapsulated piece of music. You can +have beams, notes, chords, stems etc. within a \verb|\grace| +section. Slurs that start within a grace section, but aren't ended are +attached to the next normal note. Grace notes have zero duration + +\mudelafile{grace.ly} + \section{Beams, slurs and other spanners} @@ -83,10 +92,14 @@ Unfolded behavior: \mudelafile{repeat-unfold.ly} -Semi (un)0folded behavior: +Semi (un)folded behavior: \mudelafile{repeat-semifold.ly} +Folded. This doesn't make sense without alternatives, but it works. + +\mudelafile{repeat-fold.ly} + \section{Multiple notes} Rests should not collide with beams, stems and noteheads. Rests may @@ -95,7 +108,6 @@ inside the staff, and by half spaces outside. Notice that the half and whole rests just outside the staff get ledger lines in different cases. - \mudelafile{rest-collision.ly} Normal collisions. We have support for four voice polyphony, where the @@ -134,7 +146,7 @@ Breathing signs, also used for phrasing, do normally not influence global spacing -- only if space gets tight, notes are shifted to make room for the breathing sign. Breathing signs break beams running through their voice. In the following example, the notes in the first -two bars all have the same distance from each other: +two measures all have the same distance from each other: \mudelafile{breathing-sign.ly} diff --git a/NEWS b/NEWS index d96fac1137..dffc1bfbdd 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,24 @@ + +pl 50.hwn1 + - grace notes: + * Grace_iterator + * Grace_music + * Grace_engraver_group + * move Score::run_translator to Global_translator::run_iterator_on_me + * stemLength property, Stem::length elt property + * Grace_align_item + * Note_head_side baseclasses Local_key_item, Grace_align_item + * Local_key_engraver moved to Voice. + * Grace_position_engraver + * Added Rhythmic_head::stem_l_ + * Various other robustifications. + - lily.scm: scm->string + - folded reps without alts. + - Paper_outputter uses scm->string + - stem params now in staff positions iso. real dimensions + - internal: Junk all G_ and g- prefixes + +************ pl 49.mb1 - bf: ly2dvi -N - Added dynamicPadding property (applies only to dynamic marks, diff --git a/TODO b/TODO index c59decc257..8b98d55d5c 100644 --- a/TODO +++ b/TODO @@ -15,34 +15,15 @@ Grep for TODO and ugh/ugr/urg. . * ps/lily.ps see comments. . * didot / big point. . * midi key. -. * Repeats -. * input/bugs/rep.ly (moved from test) -. * unfold broken: -. * without alternatives: repeat unfold 4 { a b c d } -. * count > alternatives: repeat unfold 79 { a b c d } -\alternative { { c c c c } { d d d d } } -. * kind of 'initial property' iso fold/volta(semi)/unfold strings . * fix singleStaffBracket . * declare performers in \midi . * input/test/stem-spacing.ly: 12/4 touches first note -4 too high? +. * timesig: sometimes bottom digit too high . * fix MIDI . * \shape 1st dim skipped? . * turn slope-damping on/off . * We need feta-din*.mf files for more sizes than 10. . * fix dynamics decently, ie. use kerning & ligatures. -. * -BUGS: -> + -> + Causes segfault: -> + -> + \score{ -> + \notes{ \context Voice { -> + \repeat fold 2 { a b c d } {} -> + } -> + } -> + } -> + . * dots & rest collisions? . * mudela-book.py . * fix \mudelafile{} to have decent functionality @@ -51,7 +32,6 @@ pre,postMudelaExample, whether MudelaExample is epsed or not: ( if this fragment is floating eps, than 1, otherwise 2). say preMudelaExample[eps]{}, and change it in document body sometimes. . * use less RE's -. * slurs colllide with lyrics. . * junk _ in lyric mode for " " . * Lyrics and scripts collide. . * a note with a circle after it, meaning: @@ -62,6 +42,7 @@ preMudelaExample[eps]{}, and change it in document body sometimes. page three, the c-sharp on the second line should be a quarter with a circle, not a quarter tied to a sixteenth. is this at all possible with lily? +. * grace_align_item -> stackingdir = left, weird placement. . * tuplets that are written as "number : note", for example "3 : [image of a half note here]". possible? @@ -72,10 +53,11 @@ preMudelaExample[eps]{}, and change it in document body sometimes. . * heavier beams? .* Cleanups needed -. * \$ and $ identifier syntax. +. * \$ and $ identifier syntax in examples. . * Y dimension units: staffspace vs. Point . * Beam . * Stem +. * Rhythmic_column and interaction stem/rhythmic_column/note_head/dots. . * Slur . * Rhythmic_grouping . * Duration @@ -418,11 +400,6 @@ hesitate to ask. . * account for rhythmic position in measure . * etc. -. * grace notes -. * make separate class for Grace_*_engravers - (which is at Voice_gravs level) -. * make encapsulated spacing problems. - . * accidentals per Voice_group . * Output class, handles : (smallish) diff --git a/VERSION b/VERSION index 0e7b01172e..c6ae35befa 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=1 -PATCH_LEVEL=50 +PATCH_LEVEL=51 MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a diff --git a/flower/include/rational.hh b/flower/include/rational.hh index 3a2b8fff31..7ea4e0aaf2 100644 --- a/flower/include/rational.hh +++ b/flower/include/rational.hh @@ -59,7 +59,7 @@ public: Rational (); Rational (int, int =1); Rational (double); - Rational (Rational const&); + Rational (Rational const&r) { copy (r);} Rational &operator = (Rational const &); Rational &operator *= (Rational); diff --git a/flower/rational.cc b/flower/rational.cc index ea9fb1ca46..15c576c686 100644 --- a/flower/rational.cc +++ b/flower/rational.cc @@ -53,11 +53,6 @@ Rational::Rational (int n, int d) normalise (); } -Rational::Rational (Rational const &r) -{ - copy (r); -} - static int gcd (int a, int b) { diff --git a/input/bugs/foo.ly b/input/bugs/foo.ly new file mode 100644 index 0000000000..fdf15b17fc --- /dev/null +++ b/input/bugs/foo.ly @@ -0,0 +1,9 @@ + +\score {\notes { + c2. + c1 + \grace { [c32 d] } + + + +}} diff --git a/input/test/grace.ly b/input/test/grace.ly index f74f3b14b5..fecf639c71 100644 --- a/input/test/grace.ly +++ b/input/test/grace.ly @@ -1,24 +1,8 @@ -\version "1.0.21"; - -\score{ - < - \context Staff = a \notes\relative c < -% {\grace b''8 \graceat a4 \ecarg g fis2 | a2 a } - {\tiny b''8*1/16 \normalsize a4*31/32 g fis2 | a2 a } - > - \context Staff = b \notes\relative c < -% {\grace g''16 b16 \graceat a4 \ecarg g fis2 | } - {\tiny g''16*1/16 b16*1/16 \normalsize a4*31/32 g fis2 | a1 } - > - \context Staff = c \notes\relative c < -% {\grace \times 2/48 { [ g''16 b g] } \graceat a4 \ecarg g fis2 | a1 } - {\tiny \times 2/48 { [ g''16 b g] } \normalsize a4*31/32 g fis2 | a1 } - > - > - \paper { - linewidth = 120.0\mm; - \translator { \VoiceContext } - } +\score {\notes \context Voice = VA \relative c'' { + \grace c8 c4 + \grace { [c32 c32] } c4 + \grace { [b32 ( c32] } c4 + \grace c16 [c8 c8] +} } - diff --git a/input/test/repeat-fold.ly b/input/test/repeat-fold.ly new file mode 100644 index 0000000000..2ee0bc8424 --- /dev/null +++ b/input/test/repeat-fold.ly @@ -0,0 +1,9 @@ + +\score { \notes\context Staff\relative c'' { +\repeat fold 3 { c^"3$\\times$ 0alt" d } +% less alts than body +\repeat fold 4 { c^"4$\\times$ 2alt" d } \alternative { e f } +% more alts than body +\repeat fold 2 { c^"2$\\times$ 3alt" d } \alternative { e f g } +}} + diff --git a/input/von-guten-maechten.ly b/input/von-guten-maechten.ly deleted file mode 100644 index a29e3a4690..0000000000 --- a/input/von-guten-maechten.ly +++ /dev/null @@ -1,110 +0,0 @@ - -\include "paper16.ly" -\include "deutsch.ly" - -melodie = \notes \relative c' { - d2 d4 e f2 f g4 f e d e2 e \breathe | - f d4 e f g a2 b g4 g f2 r2 | - c'2 c4 c a2 d c4 b a g f2 g \breathe | - a d,4 d g2 g f4 d e2 e d2-\fermata \bar "|."; -} - -righthand = \notes \relative c' { - a2 a4 cis4 | d2 d2 | d4 c2 a4 | d4 h cis2 \breathe | - d2 a4 c4 | c4 e f2 | f2 f4 e | c2 r2 | - e4 f g2 | f2 f2 | e4 d f e | d2. e4 \breathe | - f4 d b4 b | d2 d | d4 c d h | cis2 a2 | -} - -lefthand = \notes \relative c { - f2 f4 a | a2 a2 | b4 a g f | a2 a \breathe | - a2 f4 g | a c c2 | d2 c4 c | a2 r2 | - g2 c4 c | c2 b2 | g4 f c' c | a4 b2 cis4 \breathe | - d4 a f f | b2 b | a4 a a2 | a2 fis2 | -} - -pedal = \notes \relative c { - d2 d4 a d2 d g,4 a c d a2 a \breathe | - d2 d4 c f c f2 b,4 g c c f2 r2 | - c4 d e c f2 b, c4 d f c d b a2 \breathe | - d4 c b2 g4 a b2 d2 a a d_\fermata \bar "|."; -} - -\score { - < - \context PianoStaff < - \context Staff = treble < - \notes { \key f; \time 2/2; } - \context Voice = melody { - \stemup \melodie - } - \context Voice = right { - \stemdown \righthand - } - > - \context Staff = bass { - \notes { \key f; \clef "bass"; } - \lefthand - } - > - \context Staff = pedal { - \notes { \key f; \clef "bass"; } - \pedal - } - > - - \header { - title = "Von guten Mächten treu und still umgeben"; - composer = "Satz: Michael Krause 1999 (*1977)"; - enteredby = "Michael Krause"; - copyright = "dunno"; - poet = "Dietrich Bonhoeffer 1944"; - } - - \paper{ -% \paper_sixteen -% linewidth = 18.0 \cm; -% textheight = 28.0 \cm; - indent = 0.0 \mm; - \translator { \OrchestralScoreContext } - } -} - -\score { - \context StaffGroup < - \context Staff = treble < - \notes { \key f; \time 2/2; } - \context Voice = sop { - \stemup \melodie - } - \context Voice = alt { - \stemdown \righthand - } - > - \context Staff = bass < - \notes { \key f; \clef "bass"; } - \context Voice = ten { - \stemup \lefthand - } - \context Voice = bas { - \stemdown \pedal - } - > - > - - \header { - title = "Von guten Mächten treu und still umgeben"; - composer = "Satz: Michael Krause 1999 (*1977)"; - enteredby = "Michael Krause"; - copyright = "dunno"; - poet = "Dietrich Bonhoeffer 1944"; - } - - \paper{ -% \paper_sixteen -% linewidth = 18.0 \cm; -% textheight = 28.0 \cm; - indent = 0.0 \mm; - } -} - diff --git a/lily/align-note-column-engraver.cc b/lily/align-note-column-engraver.cc new file mode 100644 index 0000000000..3c1ff77b42 --- /dev/null +++ b/lily/align-note-column-engraver.cc @@ -0,0 +1,57 @@ +/* + align-note-column-engraver.cc -- implement Align_note_column_engraver + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +#include "engraver.hh" +#include "grace-align-item.hh" +#include "note-column.hh" + +/** + catch notes, and put them in a row. + */ +class Align_note_column_engraver: public Engraver +{ + Axis_align_item * align_item_p_; + virtual void do_creation_processing (); + virtual void do_removal_processing (); + virtual void acknowledge_element (Score_element_info); +public: + VIRTUAL_COPY_CONS(Translator); + Align_note_column_engraver (); +}; + +Align_note_column_engraver::Align_note_column_engraver() +{ + align_item_p_ =0; +} + +void +Align_note_column_engraver::do_creation_processing () +{ + align_item_p_ = new Grace_align_item; + // needed for setting font size. + announce_element (Score_element_info (align_item_p_, 0)); +} + +void +Align_note_column_engraver::do_removal_processing () +{ + typeset_element (align_item_p_); + align_item_p_ =0; +} + +void +Align_note_column_engraver::acknowledge_element (Score_element_info inf) +{ + if (Note_column * n = dynamic_cast (inf.elem_l_)) + { + align_item_p_->add_element (n); + } +} + +ADD_THIS_TRANSLATOR(Align_note_column_engraver); diff --git a/lily/bar-engraver.cc b/lily/bar-engraver.cc index e38ad23499..04eca12429 100644 --- a/lily/bar-engraver.cc +++ b/lily/bar-engraver.cc @@ -13,7 +13,7 @@ #include "multi-measure-rest.hh" #include "command-request.hh" #include "time-description.hh" -#include "engraver-group.hh" +#include "engraver-group-engraver.hh" Bar_engraver::Bar_engraver() { diff --git a/lily/bar-number-engraver.cc b/lily/bar-number-engraver.cc index ce4a0eb968..99eb26a26c 100644 --- a/lily/bar-number-engraver.cc +++ b/lily/bar-number-engraver.cc @@ -10,8 +10,8 @@ #include "bar-number-engraver.hh" #include "time-description.hh" #include "timing-engraver.hh" -#include "engraver-group.hh" -#include "g-text-item.hh" +#include "engraver-group-engraver.hh" +#include "text-item.hh" Bar_number_engraver::Bar_number_engraver() { diff --git a/lily/bar-script-engraver.cc b/lily/bar-script-engraver.cc index 2e5a2eb8e1..b319bdc4bc 100644 --- a/lily/bar-script-engraver.cc +++ b/lily/bar-script-engraver.cc @@ -10,8 +10,8 @@ #include "bar-script-engraver.hh" #include "bar.hh" #include "clef-item.hh" -#include "g-staff-side.hh" -#include "g-text-item.hh" +#include "staff-side.hh" +#include "text-item.hh" #include "lily-guile.hh" #include "p-col.hh" #include "paper-def.hh" @@ -132,12 +132,12 @@ Bar_script_engraver::create_items (Request *rq) if (staff_side_p_ || text_p_) return; - staff_side_p_ = new G_staff_side_item; + staff_side_p_ = new Staff_side_item; staff_side_p_->axis_ = axis_; staff_side_p_->set_elt_property (breakable_scm_sym, SCM_BOOL_T); // ugh - text_p_ = new G_text_item; + text_p_ = new Text_item; text_p_->set_elt_property (breakable_scm_sym, SCM_BOOL_T); // ugh Scalar prop = get_property (type_ + "Direction", 0); diff --git a/lily/beam-engraver.cc b/lily/beam-engraver.cc index d59d72c920..cb6ec3ef3c 100644 --- a/lily/beam-engraver.cc +++ b/lily/beam-engraver.cc @@ -132,55 +132,60 @@ Beam_engraver::do_removal_processing () void Beam_engraver::acknowledge_element (Score_element_info info) { - if (beam_p_) - { - Stem* stem_l = dynamic_cast (info.elem_l_); - if (!stem_l) - return; + if (beam_p_) + { + Stem* stem_l = dynamic_cast (info.elem_l_); + if (!stem_l || stem_l->beam_l_) + return; + bool self_grace = beam_p_->get_elt_property (grace_scm_sym) != SCM_BOOL_F; + bool stem_grace = stem_l->get_elt_property (grace_scm_sym) != SCM_BOOL_F; - Rhythmic_req *rhythmic_req = dynamic_cast (info.req_l_); - if (!rhythmic_req) - { - String s = _ ("Stem must have Rhythmic structure."); - if (info.req_l_) - info.req_l_->warning (s); - else - ::warning (s); + if (!self_grace && stem_grace) + return; + + Rhythmic_req *rhythmic_req = dynamic_cast (info.req_l_); + if (!rhythmic_req) + { + String s = _ ("Stem must have Rhythmic structure."); + if (info.req_l_) + info.req_l_->warning (s); + else + ::warning (s); - return; - } + return; + } - if (rhythmic_req->duration_.durlog_i_<= 2) - { - rhythmic_req->warning (_ ("stem doesn't fit in beam")); - prev_start_req_->warning (_ ("beam was started here")); - return; - } - - /* - TODO: do something sensible if it doesn't fit in the beam. - */ - Moment start = get_staff_info().time_C_->whole_in_measure_; - - if (!grouping_p_->child_fit_b (start)) - { - String s (_ ("please fix me") + ": " - + _f ("stem at %s doesn't fit in beam", now_mom ().str ())); - - if (info.req_l_) - info.req_l_->warning(s); - else - warning (s); - } - else - { - grouping_p_->add_child (start, rhythmic_req->length_mom ()); - stem_l->flag_i_ = rhythmic_req->duration_.durlog_i_; - beam_p_->add_stem (stem_l); - } - } + if (rhythmic_req->duration_.durlog_i_<= 2) + { + rhythmic_req->warning (_ ("stem doesn't fit in beam")); + prev_start_req_->warning (_ ("beam was started here")); + return; + } + + /* + TODO: do something sensible if it doesn't fit in the beam. + */ + Moment start = get_staff_info().time_C_->whole_in_measure_; + + if (!grouping_p_->child_fit_b (start)) + { + String s (_ ("please fix me") + ": " + + _f ("stem at %s doesn't fit in beam", now_mom ().str ())); + + if (info.req_l_) + info.req_l_->warning(s); + else + warning (s); + } + else + { + grouping_p_->add_child (start, rhythmic_req->length_mom ()); + stem_l->flag_i_ = rhythmic_req->duration_.durlog_i_; + beam_p_->add_stem (stem_l); + } + } } diff --git a/lily/beam.cc b/lily/beam.cc index 4626c1c5ee..264cdf5b10 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -320,11 +320,9 @@ Beam::set_steminfo () total_count_i++; } - Real internote_f = stems_[0]->staff_line_leading_f ()/2; int stem_max = (int)rint(paper_l ()->get_var ("stem_max")); Real shorten_f = paper_l ()->get_var (String ("forced_stem_shorten" - + to_str (multiple_i_ typeset_element (g); g->text_str_ = "8"; diff --git a/lily/collision-engraver.cc b/lily/collision-engraver.cc index 9433c4f5c3..c895dac10d 100644 --- a/lily/collision-engraver.cc +++ b/lily/collision-engraver.cc @@ -30,7 +30,8 @@ Collision_engraver::acknowledge_element (Score_element_info i) { if (Note_column * c = dynamic_cast (i.elem_l_)) { - if (c->rest_b ()) + if (c->rest_b () || c->dim_cache_[X_AXIS]->parent_l_ + || c->dim_cache_[X_AXIS]->parent_l_) return ; note_column_l_arr_.push (c); diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index e02325ee5e..833e40c83b 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -14,8 +14,8 @@ #include "score-column.hh" #include "staff-symbol.hh" #include "note-column.hh" -#include "g-text-item.hh" -#include "g-staff-side.hh" +#include "text-item.hh" +#include "staff-side.hh" #include "engraver.hh" #include "stem.hh" #include "note-head.hh" @@ -25,10 +25,10 @@ */ class Dynamic_engraver : public Engraver { - G_text_item * text_p_; - G_staff_side_item * staff_side_p_; - G_staff_side_spanner * ss_span_p_; - G_staff_side_spanner * to_end_ss_span_p_; + Text_item * text_p_; + Staff_side_item * staff_side_p_; + Staff_side_spanner * ss_span_p_; + Staff_side_spanner * to_end_ss_span_p_; Crescendo * to_end_cresc_p_; @@ -99,7 +99,7 @@ void Dynamic_engraver::do_process_requests() { Crescendo* new_cresc_p=0; - G_staff_side_spanner * new_sss_p =0; + Staff_side_spanner * new_sss_p =0; for (int i=0; i < dynamic_req_l_arr_.size(); i++) { if (Text_script_req *absd = @@ -113,13 +113,13 @@ Dynamic_engraver::do_process_requests() String loud = absd->text_str_; - text_p_ = new G_text_item; + text_p_ = new Text_item; text_p_->text_str_ = loud; // ugh Scalar prop = get_property ("dynamicStyle", 0); text_p_->style_str_ = prop.length_i () ? prop : "dynamic"; - staff_side_p_ = new G_staff_side_item; + staff_side_p_ = new Staff_side_item; staff_side_p_->set_elt_property (script_priority_scm_sym, gh_int2scm (100)); @@ -175,7 +175,7 @@ Dynamic_engraver::do_process_requests() new_cresc_p->grow_dir_ = (span_l->span_type_str_ == "crescendo") ? BIGGER : SMALLER; announce_element (Score_element_info (new_cresc_p, span_l)); - new_sss_p = new G_staff_side_spanner; + new_sss_p = new Staff_side_spanner; new_sss_p->set_victim (new_cresc_p); new_sss_p->axis_ = Y_AXIS; announce_element (Score_element_info (new_sss_p, span_l)); diff --git a/lily/engraver-group.cc b/lily/engraver-group.cc index 5c35cd74e8..4636dcad3c 100644 --- a/lily/engraver-group.cc +++ b/lily/engraver-group.cc @@ -7,7 +7,7 @@ */ #include "proto.hh" -#include "engraver-group.hh" +#include "engraver-group-engraver.hh" #include "engraver.hh" #include "debug.hh" #include "p-score.hh" diff --git a/lily/engraver.cc b/lily/engraver.cc index a94d69eedb..f8ed5e5d6a 100644 --- a/lily/engraver.cc +++ b/lily/engraver.cc @@ -9,7 +9,7 @@ #include "music-list.hh" #include "musical-request.hh" #include "engraver.hh" -#include "engraver-group.hh" +#include "engraver-group-engraver.hh" #include "debug.hh" #include "paper-def.hh" diff --git a/lily/extender-engraver.cc b/lily/extender-engraver.cc index 1f616ec795..7b6712be70 100644 --- a/lily/extender-engraver.cc +++ b/lily/extender-engraver.cc @@ -9,7 +9,7 @@ #include "extender-engraver.hh" #include "extender-spanner.hh" #include "score-column.hh" -#include "g-text-item.hh" +#include "text-item.hh" ADD_THIS_TRANSLATOR (Extender_engraver); @@ -22,7 +22,7 @@ Extender_engraver::Extender_engraver () void Extender_engraver::acknowledge_element (Score_element_info i) { - if (G_text_item* t = dynamic_cast (i.elem_l_)) + if (Text_item* t = dynamic_cast (i.elem_l_)) { Rhythmic_req * rh = dynamic_cast (i.req_l_); if (!rh) @@ -125,7 +125,7 @@ Text_lyric_tuple::Text_lyric_tuple () end_ = 0; } -Text_lyric_tuple::Text_lyric_tuple (G_text_item *h, Rhythmic_req*m, Moment mom) +Text_lyric_tuple::Text_lyric_tuple (Text_item *h, Rhythmic_req*m, Moment mom) { text_l_ = h; req_l_ = m; diff --git a/lily/font-size-engraver.cc b/lily/font-size-engraver.cc index 0edf7e5901..30f47498c9 100644 --- a/lily/font-size-engraver.cc +++ b/lily/font-size-engraver.cc @@ -30,10 +30,11 @@ Font_size_engraver::do_process_requests () void Font_size_engraver::acknowledge_element (Score_element_info e) { - if (size_i_) - e.elem_l_->set_elt_property (fontsize_scm_sym, - gh_int2scm (size_i_)); + if (size_i_ && e.elem_l_->get_elt_property (fontsize_scm_sym) == SCM_BOOL_F) + { + e.elem_l_->set_elt_property (fontsize_scm_sym, + gh_int2scm (size_i_)); + } } - ADD_THIS_TRANSLATOR (Font_size_engraver); diff --git a/lily/global-translator.cc b/lily/global-translator.cc index 2ab5844210..d38f7bd8c6 100644 --- a/lily/global-translator.cc +++ b/lily/global-translator.cc @@ -7,6 +7,8 @@ */ #include "global-translator.hh" +#include "music-iterator.hh" +#include "debug.hh" Global_translator::Global_translator() { @@ -59,3 +61,42 @@ Global_translator::get_output_p() { return 0; } + +void +Global_translator::process () +{ +} +void +Global_translator::start () +{ +} +void +Global_translator::finish () +{ +} + +void +Global_translator::run_iterator_on_me (Music_iterator * iter) +{ + while (iter->ok() || moments_left_i ()) + { + Moment w; + w.set_infinite (1); + if (iter->ok()) + { + w = iter->next_moment(); + DOUT << "proccing: " << w << '\n'; + if (!monitor->silent_b ("walking")) + iter->print(); + } + + modify_next (w); + prepare (w); + + if (!monitor->silent_b ("walking")) + print(); + + iter->process_and_next (w); + process(); + } +} diff --git a/lily/grace-align-item.cc b/lily/grace-align-item.cc new file mode 100644 index 0000000000..74e551bfa4 --- /dev/null +++ b/lily/grace-align-item.cc @@ -0,0 +1,36 @@ +/* + grace-align-item.cc -- implement Grace_align_item + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +#include "grace-align-item.hh" +#include "lookup.hh" + +Grace_align_item::Grace_align_item () +{ + stacking_dir_ = RIGHT; + set_axis (X_AXIS); +} + +void +Grace_align_item::do_pre_processing () +{ + Real nhw = lookup_l ()->notehead (2, "").dim_[X_AXIS].length(); + threshold_interval_[MIN] = nhw* 1.5; + + Axis_align_item::do_pre_processing (); + Note_head_side::do_pre_processing (); + + translate_axis (-0.5* nhw, X_AXIS); // ugh. +} + +void +Grace_align_item::do_substitute_element_pointer (Score_element*o, Score_element*n) +{ + Axis_align_item::do_substitute_element_pointer (o,n); + Note_head_side::do_substitute_element_pointer( o,n); +} diff --git a/lily/grace-engraver-group.cc b/lily/grace-engraver-group.cc new file mode 100644 index 0000000000..8a9db8b171 --- /dev/null +++ b/lily/grace-engraver-group.cc @@ -0,0 +1,110 @@ +/* + grace-engraver-group.cc -- implement Grace_engraver_group + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ +#include "grace-engraver-group.hh" +#include "lily-guile.hh" +#include "ly-symbols.hh" +#include "score-element.hh" + +void +Grace_engraver_group::start () +{ +} +/* + We're really finished with this context. Get rid of everything. + */ +void +Grace_engraver_group::finish () +{ + calling_self_b_ = true; + removal_processing (); // ugr. We'd want to have this done by our parents.g + for (int i=0; i < announce_to_top_.size (); i++) + { + Engraver::announce_element (announce_to_top_[i]); + } + + for (int i=0; i < typeset_us_.size (); i++) + { + Engraver::typeset_element (typeset_us_[i]); + } + typeset_us_.clear (); + calling_self_b_ = false; +} + +void +Grace_engraver_group::do_removal_processing () +{ + Engraver_group_engraver::do_removal_processing (); +} + +void +Grace_engraver_group::announce_element (Score_element_info inf) +{ + announce_info_arr_.push (inf); + // do not propagate to top + announce_to_top_.push (inf); + + inf.elem_l_->set_elt_property (grace_scm_sym, SCM_BOOL_T); +} + +void +Grace_engraver_group::typeset_element (Score_element*e) +{ + typeset_us_.push (e); +} + + +Grace_engraver_group::Grace_engraver_group() +{ + calling_self_b_ = false; +} + +void +Grace_engraver_group::process () +{ + calling_self_b_ = true; + process_requests (); + do_announces(); + pre_move_processing(); + check_removal(); + calling_self_b_ = false; +} + + +void +Grace_engraver_group::each (Method_pointer method) +{ + if (calling_self_b_) + Engraver_group_engraver::each (method); +} + + +void +Grace_engraver_group::each (Const_method_pointer method) const +{ + if (calling_self_b_) + Engraver_group_engraver::each (method); +} +ADD_THIS_TRANSLATOR(Grace_engraver_group); + + +/* + don't let the commands trickle up. + */ +bool +Grace_engraver_group::do_try_music (Music *m) +{ + bool hebbes_b =false; + + Link_array nongroups (nongroup_l_arr ()); + + for (int i =0; !hebbes_b && i < nongroups.size() ; i++) + hebbes_b =nongroups[i]->try_music (m); + + return hebbes_b; +} diff --git a/lily/grace-iterator.cc b/lily/grace-iterator.cc new file mode 100644 index 0000000000..3fdf4303f4 --- /dev/null +++ b/lily/grace-iterator.cc @@ -0,0 +1,47 @@ +/* + grace-iterator.cc -- implement Grace_iterator + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +#include "grace-iterator.hh" +#include "global-translator.hh" +#include "warn.hh" + +void +Grace_iterator::construct_children () +{ + Translator_group * t = report_to_l ()->find_create_translator_l ("Grace", ""); // umgh. + + if (t) + set_translator (t); + Music_wrapper_iterator::construct_children (); +} + +void +Grace_iterator::do_process_and_next (Moment m) +{ + Global_translator * t = dynamic_cast(report_to_l ()); + if (t) + { + t->start (); + t->run_iterator_on_me (child_iter_p_); + delete child_iter_p_; + child_iter_p_ = 0; + t->finish (); + Music_iterator::do_process_and_next (m); + } + else + { + warning (_("No Grace context available!")); + } +} + +Moment +Grace_iterator::next_moment () const +{ + return 0; +} diff --git a/lily/grace-music.cc b/lily/grace-music.cc new file mode 100644 index 0000000000..d93d4829b3 --- /dev/null +++ b/lily/grace-music.cc @@ -0,0 +1,27 @@ +/* + grace-music.cc -- implement Grace_music + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +#include "grace-music.hh" + +void +Grace_music::compress (Moment) +{ + +} + +Moment +Grace_music::length_mom () const +{ + return 0; +} + +Grace_music::Grace_music (Music *p) + : Music_wrapper (p) +{ +} diff --git a/lily/grace-position-engraver.cc b/lily/grace-position-engraver.cc new file mode 100644 index 0000000000..189c2e54d8 --- /dev/null +++ b/lily/grace-position-engraver.cc @@ -0,0 +1,69 @@ +/* + grace-position-engraver.cc -- implement Grace_position_engraver + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +#include "engraver.hh" +#include "grace-align-item.hh" +#include "note-head.hh" +#include "local-key-item.hh" + +class Grace_position_engraver:public Engraver +{ +protected: + VIRTUAL_COPY_CONS(Translator); + virtual void acknowledge_element (Score_element_info); + virtual void process_acknowledged (); + virtual void do_post_move_processing (); + Grace_align_item*align_l_; + Link_array support_; +public: + Grace_position_engraver(); +}; + + +Grace_position_engraver::Grace_position_engraver () +{ + align_l_ =0; +} + +void +Grace_position_engraver::acknowledge_element (Score_element_info i) +{ + if (Grace_align_item*g =dynamic_cast(i.elem_l_)) + { + align_l_ = g; + } + else if (Note_head * n = dynamic_cast (i.elem_l_)) + { + support_.push (n); + } + else if (Local_key_item*it = dynamic_cast(i.elem_l_)) + { + support_.push (it); + } +} + +void +Grace_position_engraver::process_acknowledged () +{ + if (align_l_) + { + for (int i=0; i < support_.size (); i++) + align_l_->add_support (support_[i]); + support_.clear (); + } +} + +void +Grace_position_engraver::do_post_move_processing () +{ + support_.clear (); + align_l_ =0; +} + +ADD_THIS_TRANSLATOR(Grace_position_engraver); diff --git a/lily/include/bar-script-engraver.hh b/lily/include/bar-script-engraver.hh index 7b9ddbfde7..6944762d2d 100644 --- a/lily/include/bar-script-engraver.hh +++ b/lily/include/bar-script-engraver.hh @@ -19,8 +19,8 @@ class Bar_script_engraver : public Engraver { protected: - G_staff_side_item* staff_side_p_; - G_text_item* text_p_; + Staff_side_item* staff_side_p_; + Text_item* text_p_; Protected_scm visibility_lambda_; String type_; Axis axis_; diff --git a/lily/include/engraver-group.hh b/lily/include/engraver-group-engraver.hh similarity index 92% rename from lily/include/engraver-group.hh rename to lily/include/engraver-group-engraver.hh index fdebf2a0cb..975a33d87a 100644 --- a/lily/include/engraver-group.hh +++ b/lily/include/engraver-group-engraver.hh @@ -1,5 +1,6 @@ + /* - engraver-group.hh -- declare Engraver_group_engraver + engraver-group-engraver.hh -- declare Engraver_group_engraver source file of the GNU LilyPond music typesetter diff --git a/lily/include/extender-engraver.hh b/lily/include/extender-engraver.hh index 1b6335bb51..76f724c63a 100644 --- a/lily/include/extender-engraver.hh +++ b/lily/include/extender-engraver.hh @@ -16,11 +16,11 @@ struct Text_lyric_tuple { Rhythmic_req *req_l_ ; - G_text_item *text_l_; + Text_item *text_l_; Moment end_; Text_lyric_tuple (); - Text_lyric_tuple (G_text_item*, Rhythmic_req*, Moment); + Text_lyric_tuple (Text_item*, Rhythmic_req*, Moment); static int time_compare (Text_lyric_tuple const &, Text_lyric_tuple const &); }; @@ -36,7 +36,7 @@ inline int compare (Text_lyric_tuple const &a, Text_lyric_tuple const &b) Generate an extender. Should make an Extender_spanner that typesets a nice extender line. - We remember all G_text_items that come across, and store their + We remember all Text_items that come across, and store their termination times. When we get a request, we create the spanner, and attach the left point to the finished lyrics, and the right point to any lyrics we receive by then. diff --git a/lily/include/font-size-engraver.hh b/lily/include/font-size-engraver.hh index 841bf839bf..0edef5be86 100644 --- a/lily/include/font-size-engraver.hh +++ b/lily/include/font-size-engraver.hh @@ -12,6 +12,13 @@ #include "engraver.hh" +/** + Set font size on elements that do not have a fontsize set yet. + + Reads context property fontSize. + + Writes element property fontsize + */ class Font_size_engraver : public Engraver { int size_i_; protected: diff --git a/lily/include/global-translator.hh b/lily/include/global-translator.hh index 00e4250930..721f97ddaf 100644 --- a/lily/include/global-translator.hh +++ b/lily/include/global-translator.hh @@ -14,6 +14,10 @@ #include "rational.hh" #include "pqueue.hh" + +class Iteration_interface_translator : public virtual Translator_group { +}; + class Global_translator : public virtual Translator_group{ PQueue extra_mom_pq_; public: @@ -25,17 +29,19 @@ public: int moments_left_i() const; void modify_next (Moment&); void add_moment_to_process (Moment); - + void run_iterator_on_me (Music_iterator*); + virtual Music_output *get_output_p (); virtual void prepare (Moment); - virtual void process() {} - virtual void finish() {} - virtual void start() {} + virtual void process(); + virtual void finish(); + virtual void start(); + + virtual Moment now_mom () const; protected: - virtual Moment now_mom () const; - virtual Global_translator *global_l() { return this; } + }; diff --git a/lily/include/grace-align-item.hh b/lily/include/grace-align-item.hh new file mode 100644 index 0000000000..4305875b55 --- /dev/null +++ b/lily/include/grace-align-item.hh @@ -0,0 +1,26 @@ +/* + grace-align-item.hh -- declare Grace_align_item + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +#ifndef GRACE_ALIGN_ITEM_HH +#define GRACE_ALIGN_ITEM_HH + +#include "note-head-side.hh" +#include "axis-align-item.hh" + +class Grace_align_item : public Axis_align_item, public Note_head_side +{ +public: + VIRTUAL_COPY_CONS (Score_element); + Grace_align_item (); +protected: + virtual void do_substitute_element_pointer (Score_element*,Score_element*); + virtual void do_pre_processing (); +}; +#endif /* GRACE_ALIGN_ITEM_HH */ + diff --git a/lily/include/grace-engraver-group.hh b/lily/include/grace-engraver-group.hh new file mode 100644 index 0000000000..cb31244aeb --- /dev/null +++ b/lily/include/grace-engraver-group.hh @@ -0,0 +1,37 @@ +/* + grace-engraver-group.hh -- declare + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +#ifndef GRACE_ENGRAVER_GROUP_HH +#define GRACE_ENGRAVER_GROUP_HH + +#include "engraver-group-engraver.hh" +#include "global-translator.hh" + +class Grace_engraver_group : public Engraver_group_engraver, public Global_translator +{ + Link_array typeset_us_; + Array announce_to_top_; + bool calling_self_b_; +public: + VIRTUAL_COPY_CONS(Translator); + Grace_engraver_group (); +protected: + virtual void announce_element (Score_element_info); + virtual void start (); + virtual void finish (); + virtual void process (); + virtual void each (Method_pointer); + virtual void each (Const_method_pointer) const; + virtual void do_removal_processing () ; + virtual void typeset_element (Score_element*); + virtual bool do_try_music (Music *m); +}; + + +#endif /* GRACE_ENGRAVER_GROUP_HH */ diff --git a/lily/include/grace-iterator.hh b/lily/include/grace-iterator.hh new file mode 100644 index 0000000000..5d63bcf603 --- /dev/null +++ b/lily/include/grace-iterator.hh @@ -0,0 +1,27 @@ +/* + grace-iterator.hh -- declare + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +#ifndef GRACE_ITERATOR_HH +#define GRACE_ITERATOR_HH + +#include "music-wrapper-iterator.hh" + +class Grace_iterator : public Music_wrapper_iterator +{ +public: + virtual void construct_children () ; + virtual void do_process_and_next (Moment); + Moment next_moment () const; +}; + + + +#endif /* GRACE_ITERATOR_HH */ + + diff --git a/lily/include/grace-music.hh b/lily/include/grace-music.hh new file mode 100644 index 0000000000..ad995b0482 --- /dev/null +++ b/lily/include/grace-music.hh @@ -0,0 +1,26 @@ +/* + grace-music.hh -- declare + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +#ifndef GRACE_MUSIC_HH +#define GRACE_MUSIC_HH + +#include "music-wrapper.hh" + +class Grace_music : public Music_wrapper +{ +public: + VIRTUAL_COPY_CONS(Music); + Grace_music (Music*); +protected: + virtual void compress (Moment); + virtual Moment length_mom () const; +}; + +#endif /* GRACE_MUSIC_HH */ + diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh index 76a1095bed..97d9d57970 100644 --- a/lily/include/lily-proto.hh +++ b/lily/include/lily-proto.hh @@ -35,6 +35,7 @@ struct Auto_beam_engraver; struct Axis_group_element; struct Axis_group_spanner; struct Axis_group_item; +struct Axis_align_item; struct Axis_group; struct Bar; struct Bar_column_engraver; @@ -86,10 +87,10 @@ struct Engraver; struct Engraver_group_engraver; struct Extender; struct Extender_req; -struct G_script; -struct G_script_req; -struct G_staff_side_item; -struct G_text_item; +struct Script; +struct Script_req; +struct Staff_side_item; +struct Text_item; struct General_script_def; struct Graphical_element; @@ -146,6 +147,7 @@ struct Multi_measure_rest; struct Multi_measure_rest_req; struct Multi_measure_rest_engraver; struct Music; +struct Music_iterator; struct Musical_req; struct Musical_span_req; struct Musical_script_req; @@ -208,11 +210,6 @@ struct Score_column; struct Score_element; struct Score_element_info; struct Score_performer; -struct Script; -struct Script_column; -struct Script_def; -struct Script_engraver; -struct Script_req; struct Simple_music; struct Simultaneous_music; struct Single_malt_grouping_item; diff --git a/lily/include/line-group-group-engraver.hh b/lily/include/line-group-group-engraver.hh index 1feaa57f97..274301e8b3 100644 --- a/lily/include/line-group-group-engraver.hh +++ b/lily/include/line-group-group-engraver.hh @@ -10,11 +10,13 @@ #ifndef LINE_GROUP_GRAV_HH #define LINE_GROUP_GRAV_HH -#include "engraver-group.hh" +#include "engraver-group-engraver.hh" #include "lily-proto.hh" /** - Engravers put elements on the same or lowel level in a line + Engravers put elements on the same or lowel level in a line. + + DEPRECATED. */ class Line_group_engraver_group : public Engraver_group_engraver { protected: diff --git a/lily/include/local-key-item.hh b/lily/include/local-key-item.hh index edba5ec7ca..e4007af316 100644 --- a/lily/include/local-key-item.hh +++ b/lily/include/local-key-item.hh @@ -10,6 +10,7 @@ #include "array.hh" #include "musical-pitch.hh" #include "staff-symbol-referencer.hh" +#include "note-head-side.hh" struct Local_key_cautionary_tuple { @@ -37,16 +38,15 @@ struct Local_key_cautionary_tuple figure out private/public */ -class Local_key_item : public Item, public Staff_symbol_referencer { +class Local_key_item : public Note_head_side, public Staff_symbol_referencer { Array accidental_arr_; - Link_array support_items_; + public: int c0_position_i_; Local_key_item (); - void add_support (Item*); void add_pitch (Musical_pitch, bool cautionary); protected: - virtual void do_pre_processing(); + virtual void do_pre_processing(); virtual void do_substitute_element_pointer (Score_element*,Score_element*); virtual Molecule* do_brew_molecule_p() const; }; diff --git a/lily/include/ly-symbols.hh b/lily/include/ly-symbols.hh index 489bcc98e9..dee6c5f0aa 100644 --- a/lily/include/ly-symbols.hh +++ b/lily/include/ly-symbols.hh @@ -10,6 +10,8 @@ #ifndef LY_SYMBOLS_HH #define LY_SYMBOLS_HH +#include "lily-guile.hh" + #ifndef DECLARE_LY_SYMBOL #define DECLARE_LY_SYMBOL(a) extern SCM a ## _scm_sym #endif @@ -34,11 +36,13 @@ DECLARE_LY_SYMBOL(dir_list); DECLARE_LY_SYMBOL(extender_height); DECLARE_LY_SYMBOL(filledbox); DECLARE_LY_SYMBOL(fontsize); +DECLARE_LY_SYMBOL(grace); DECLARE_LY_SYMBOL(header); DECLARE_LY_SYMBOL(horizontal_shift); DECLARE_LY_SYMBOL(interbeam); DECLARE_LY_SYMBOL(interbeam4); DECLARE_LY_SYMBOL(interline); +DECLARE_LY_SYMBOL(length); DECLARE_LY_SYMBOL(linewidth); DECLARE_LY_SYMBOL(minimum_space); DECLARE_LY_SYMBOL(molecule); diff --git a/lily/include/lyric-engraver.hh b/lily/include/lyric-engraver.hh index 1736d593dd..d986205efd 100644 --- a/lily/include/lyric-engraver.hh +++ b/lily/include/lyric-engraver.hh @@ -31,7 +31,7 @@ public: private: Lyric_req * req_l_; - G_text_item* text_p_; + Text_item* text_p_; }; diff --git a/lily/include/music-wrapper-iterator.hh b/lily/include/music-wrapper-iterator.hh index c9275fc763..f691270056 100644 --- a/lily/include/music-wrapper-iterator.hh +++ b/lily/include/music-wrapper-iterator.hh @@ -31,8 +31,6 @@ public: protected: virtual void do_print () const; virtual void do_process_and_next (Moment) ; - -private: Music_iterator *child_iter_p_; }; diff --git a/lily/include/musical-request.hh b/lily/include/musical-request.hh index 1ac291c871..28ce7bf4cd 100644 --- a/lily/include/musical-request.hh +++ b/lily/include/musical-request.hh @@ -55,7 +55,7 @@ public: }; -class Articulation_req : public G_script_req +class Articulation_req : public Script_req { public: String articulation_str_; @@ -65,7 +65,7 @@ protected: VIRTUAL_COPY_CONS(Music); }; -class Text_script_req : public G_script_req { +class Text_script_req : public Script_req { public: String text_str_; diff --git a/lily/include/note-head-side.hh b/lily/include/note-head-side.hh new file mode 100644 index 0000000000..7ecc0f2588 --- /dev/null +++ b/lily/include/note-head-side.hh @@ -0,0 +1,33 @@ +/* + note-head-side.hh -- declare Note_head_side + + source file of the GNU LilyPond music typesetter + + (c) 1999 Han-Wen Nienhuys + + */ + +#ifndef NOTE_HEAD_SIDE_HH +#define NOTE_HEAD_SIDE_HH + +#include "item.hh" + +/** + be next to noteheads. + + UGH. another reduplication of Staff_side + */ +class Note_head_side: public virtual Item +{ + Link_array support_l_arr_; +public: + void add_support (Item*); + VIRTUAL_COPY_CONS (Score_element); +protected: + virtual void do_substitute_element_pointer (Score_element*,Score_element*); + virtual void do_pre_processing(); +}; + + +#endif /* NOTE_HEAD_SIDE_HH */ + diff --git a/lily/include/parseconstruct.hh b/lily/include/parseconstruct.hh index 2cf3b7a05e..527dafbd35 100644 --- a/lily/include/parseconstruct.hh +++ b/lily/include/parseconstruct.hh @@ -11,7 +11,6 @@ String * get_scriptdef (char c); Request* get_script_req (char); -Request*get_script_req (int d , Script_def*def); Request*get_grouping_req (Array i_arr); #endif // PARSECONSTRUCT_HH diff --git a/lily/include/request.hh b/lily/include/request.hh index 0c47398e5e..4531df4811 100644 --- a/lily/include/request.hh +++ b/lily/include/request.hh @@ -36,31 +36,13 @@ protected: -class G_script_req : public virtual Request +class Script_req : public virtual Request { public: Direction dir_; VIRTUAL_COPY_CONS(Music); }; -#if 0 -/** Put a script above or below this ``note'' or bar. eg upbow, downbow. Why - a request? These symbols may conflict with slurs and brackets, so - this also a request */ - -class Script_req : public virtual G_script_req { -public: - General_script_def *scriptdef_p_; - - bool do_equal_b (Request*) const; - - Script_req(); - VIRTUAL_COPY_CONS(Music); - virtual void do_print () const; - ~Script_req(); - Script_req (Script_req const&); -}; -#endif /** Requests to start or stop something. diff --git a/lily/include/rhythmic-column-engraver.hh b/lily/include/rhythmic-column-engraver.hh index c4514f00bb..a830da1f27 100644 --- a/lily/include/rhythmic-column-engraver.hh +++ b/lily/include/rhythmic-column-engraver.hh @@ -15,6 +15,7 @@ class Rhythmic_column_engraver :public Engraver { Link_array rhead_l_arr_; + Link_array grace_slur_endings_; Stem * stem_l_; Note_column *ncol_p_; Dot_column *dotcol_l_; diff --git a/lily/include/rhythmic-head.hh b/lily/include/rhythmic-head.hh index a9cfca3355..21988a85d7 100644 --- a/lily/include/rhythmic-head.hh +++ b/lily/include/rhythmic-head.hh @@ -16,8 +16,7 @@ class Rhythmic_head : public Item, public Staff_symbol_referencer { public: - - + Stem * stem_l_; int balltype_i_; int dots_i_; Dots * dots_l_; diff --git a/lily/include/score-engraver.hh b/lily/include/score-engraver.hh index 60f767d351..731f489921 100644 --- a/lily/include/score-engraver.hh +++ b/lily/include/score-engraver.hh @@ -10,7 +10,7 @@ #ifndef SCORE_GRAV_HH #define SCORE_GRAV_HH -#include "engraver-group.hh" +#include "engraver-group-engraver.hh" #include "global-translator.hh" /** diff --git a/lily/include/g-script-column.hh b/lily/include/script-column.hh similarity index 66% rename from lily/include/g-script-column.hh rename to lily/include/script-column.hh index 62caab8b48..366a4f7f18 100644 --- a/lily/include/g-script-column.hh +++ b/lily/include/script-column.hh @@ -1,5 +1,5 @@ /* - g-script-column.hh -- declare G_script_column + g-script-column.hh -- declare Script_column source file of the GNU LilyPond music typesetter @@ -7,12 +7,12 @@ */ -#ifndef G_SCRIPT_COLUMN_HH -#define G_SCRIPT_COLUMN_HH +#ifndef Script_COLUMN_HH +#define Script_COLUMN_HH #include "item.hh" -class G_script_column : public Item +class Script_column : public Item { /** Array of objects that are placed by staffsides @@ -25,6 +25,6 @@ protected: }; -#endif /* G_SCRIPT_COLUMN_HH */ +#endif /* Script_COLUMN_HH */ diff --git a/lily/include/g-script-engraver.hh b/lily/include/script-engraver.hh similarity index 67% rename from lily/include/g-script-engraver.hh rename to lily/include/script-engraver.hh index 7f1774c6de..fef7fce66b 100644 --- a/lily/include/g-script-engraver.hh +++ b/lily/include/script-engraver.hh @@ -5,21 +5,21 @@ */ -#ifndef G_SCRIPT_GRAV -#define G_SCRIPT_GRAV +#ifndef Script_GRAV +#define Script_GRAV #include "engraver.hh" -class G_script_engraver : public Engraver { - Link_array script_p_arr_; - Link_array staff_side_p_arr_; +class Script_engraver : public Engraver { + Link_array