From 8766d90306918dedc640ae86b0693efc6cb989df Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Thu, 15 Jul 1999 16:29:10 +0200 Subject: [PATCH] release: 1.1.60 --- Documentation/index.yo | 3 +- Documentation/links.yo | 2 + Documentation/ntweb/GNUmakefile | 4 + Documentation/ntweb/index.yo | 53 ++++++++--- Documentation/tex/lilypond-regtest.doc | 12 +-- NEWS | 29 +++++- TODO | 76 ++------------- VERSION | 2 +- aclocal.m4 | 2 + flower/include/scalar.hh | 2 + flower/scalar.cc | 13 +++ input/bugs/2pianobrace.ly | 6 -- input/bugs/enghack.ly | 14 --- input/bugs/grace-accident.ly | 7 -- input/bugs/hairy-grace.ly | 14 --- input/bugs/refman-sv.ly | 4 - input/bugs/slur-broken.ly | 20 ---- input/test/grace.ly | 8 +- input/test/slur-bug.ly | 10 -- input/test/tie-bug.ly | 10 -- input/test/volta.fly | 9 +- lily/abbreviation-beam.cc | 2 + lily/align-note-column-engraver.cc | 8 +- lily/axis-group-element.cc | 64 +++++++++++-- lily/axis-group-engraver.cc | 11 ++- lily/colhpos.cc | 2 +- lily/dot-column.cc | 2 +- lily/encompass-info.cc | 8 +- lily/include/atom.hh | 4 + lily/include/axis-group-element.hh | 20 +++- lily/include/col-info.hh | 10 +- lily/include/lily-proto.hh | 126 ++++++++++++------------- lily/include/local-key-engraver.hh | 9 +- lily/include/note-head-side.hh | 3 +- lily/local-key-engraver.cc | 32 +++++-- lily/lookup.cc | 14 ++- lily/note-head-side.cc | 4 +- lily/slur.cc | 65 ++++++++----- lily/spring-spacer.cc | 5 +- ly/engraver.ly | 7 +- ly/params.ly | 9 +- ly/property.ly | 34 ------- make/out/lelievijver.lsm | 8 +- make/out/lilypond.lsm | 8 +- make/out/lilypond.spec | 4 +- midi2ly/main.cc | 3 +- midi2ly/mudela-score.cc | 2 +- midi2ly/mudela-stream.cc | 2 +- scm/lily.scm | 17 ---- stepmake/aclocal.m4 | 2 + stepmake/bin/package-zip32.sh | 22 ++++- 51 files changed, 415 insertions(+), 392 deletions(-) delete mode 100644 input/bugs/2pianobrace.ly delete mode 100644 input/bugs/enghack.ly delete mode 100644 input/bugs/grace-accident.ly delete mode 100644 input/bugs/hairy-grace.ly delete mode 100644 input/bugs/refman-sv.ly delete mode 100644 input/bugs/slur-broken.ly delete mode 100644 input/test/slur-bug.ly delete mode 100644 input/test/tie-bug.ly diff --git a/Documentation/index.yo b/Documentation/index.yo index 3271c33aa3..93bd590b2e 100644 --- a/Documentation/index.yo +++ b/Documentation/index.yo @@ -39,11 +39,10 @@ nsubsect(Documentation: manuals) itemize( -it()url(Mudela)(../tex/DOEXPAND(outdir)/tutorial.html) it()url(User documentation)(../tex/DOEXPAND(outdir)/index.html) it()url(Hacker documentation)(../metadoc/DOEXPAND(outdir)/index.html) it()url(Manual pages)(../man/DOEXPAND(outdir)/index.html) -it()url(Bibliography)(../bibliography/DOEXPAND(outdir)/vocabulary.html) +it()url(Bibliography)(../bibliography/DOEXPAND(outdir)/) it()url(Musical vocabulary)(../tex/DOEXPAND(outdir)/vocabulary.html) ) diff --git a/Documentation/links.yo b/Documentation/links.yo index cf57972684..820531084a 100644 --- a/Documentation/links.yo +++ b/Documentation/links.yo @@ -83,6 +83,8 @@ includefile(mail.yo) sect(Backlinks) description( +dit(lurl(http://sca.uwaterloo.ca/Mutopia/)) + Mutopia project (under construction). dit(lurl(http://www.ssc.com/linux/)) The Number One Free Operating System Kernel: Linux dit(lurl( http://sound.condorow.net)) diff --git a/Documentation/ntweb/GNUmakefile b/Documentation/ntweb/GNUmakefile index 4a25d2eafa..d88681c0f4 100644 --- a/Documentation/ntweb/GNUmakefile +++ b/Documentation/ntweb/GNUmakefile @@ -2,6 +2,7 @@ depth = ../.. STEPMAKE_TEMPLATES=documentation TO_TOP_FILES=$(addprefix $(outdir)/, $(README_TOP_FILES)) +PLAIN_FILES=angels.ly guile.patch include $(depth)/make/stepmake.make @@ -16,5 +17,8 @@ $(outdir)/%.html: %.yo --index=http://www.cs.ruu.nl/people/hanwen/lilypond/index.html \ --news=$(depth)/NEWS $@ +dist-plain: + cp $(PLAIN_FILES) $(out-dir) + local-WWW: diff --git a/Documentation/ntweb/index.yo b/Documentation/ntweb/index.yo index 1c7f252385..5d6701b7e8 100644 --- a/Documentation/ntweb/index.yo +++ b/Documentation/ntweb/index.yo @@ -18,6 +18,40 @@ clearpage() subsect(NEWS) label(news) +description( + dit(BUG FIXES) + itemize( + it() Error: Python path: Python installation is required nl() + Users reported problems with the installer finding the python + path for some versions of Python namely 1.5. I am using a + slightly different approach so that problem should be solved. + Thanks to Mats Bengtsson and Wolfgang Fischler reporting and + helping with this issue. + it() Unable to find lilyponddefs.tex nl() + This was due to using version version 1.07 of MiKTeX. I have + add known working versions for all of the required software + packages, per Mats suggestion. See link(Required + Packages)(packages). + ) +) + +description( + dit(NOTES) + itemize( + it() Please use the Add/Remove program control panel entry to + unistall your current version of Lilypond before you attempt to + install this one. + + it() If you are upgrading from a previous version of lilypond you will most + likely need to flush your font cache. I generally just toss + file(D:\localtexmf\fonts\tfm\public\ehrhardt) and + file(D:\localtexmf\fonts\pk\ljfour\public\ehrhardt) in the Recyle + Bin. Your local font directory may be different, please refer to your + local installation of code(TeX). + ) +) + + The FAT16, FAT32, and NTFS file system problems have been corrected. I have tested various installations that are known to be operational. The following configurations that have been tested. @@ -85,15 +119,9 @@ itemize( it()convert-mudela it()mudela-book it()lilypond - it()mi2mu + it()midi2ly ) -If you are upgrading from a previous version of lilypond you will most -likely need to flush your font cache. I generally just toss -file(D:\localtexmf\fonts\tfm\public\ehrhardt) and -file(D:\localtexmf\fonts\pk\ljfour\public\ehrhardt) in the Recyle -Bin. Your local font directory may be different, please refer to your -local installation of code(TeX). I have also converted the Manual Pages for the above tools to HTML for easy browsing. This release has been tested on Windows NT 4.0sp3 and @@ -111,7 +139,7 @@ link(Back to top)(contents) clearpage() -subsect(Required packages) label(packages) +subsect(Required Packages) label(packages) LilyPond uses the code(TeX) package as its rendering engine. code(TeX) represents the state-of-the-art in computer typesetting. It is used to @@ -127,9 +155,12 @@ Gsview is used to display and print the music scores created by LilyPond. itemize( - it()url(code(MiKTeX))(http://www.snafu.de/~cschenk/miktex/) - it()url(code(Python))(http://www.python.org) - it()url(code(gsview))(http://www.cs.wisc.edu/~ghost/gsview/index.html) + it()url(code(MiKTeX))(http://www.snafu.de/~cschenk/miktex/). Versions + 1.10b, 1.11, and 1.20b are known to work. + it()url(code(Python))(http://www.python.org). Version 1.5.1 and + possibly 1.5 work. + it()url(code(gsview))(http://www.cs.wisc.edu/~ghost/gsview/index.html). + Version 5.10 is known to work. ) link(Back to top)(contents) diff --git a/Documentation/tex/lilypond-regtest.doc b/Documentation/tex/lilypond-regtest.doc index 2b5d51e917..9f73e72e10 100644 --- a/Documentation/tex/lilypond-regtest.doc +++ b/Documentation/tex/lilypond-regtest.doc @@ -60,9 +60,8 @@ Slurs that start within a grace section, but aren't ended are attached to the next normal note. Grace notes have zero duration. If there are tuplets, the grace notes won't be under the brace. Grace notes can have accidentals, but they are (currently) spaced at a fixed -distance. - - +distance. Grace notes (of course) come before the accidentals of the +main note. Grace notes can also be positioned after the main note. \mudelafile{grace.ly} @@ -203,9 +202,10 @@ convoluted way, so this is fragile as well. By default, time signatures are written with two numbers. With style ``C'', 4/4 and 2/2 are written with their corresponding symbols and -with style ``old'', 2/2, 3/2, 3/4, 4/4, 6/4, 9/4, 6/8 and 9/8 are -typeset with symbols, all other signatures retain the default layout. -The style ``1'', gives single number signatures for all signatures. +with style ``old'', 2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8 and +9/8 are typeset with symbols, all other signatures retain the default +layout. The style ``1'', gives single number signatures for all +signatures. \mudelafile{time.fly} diff --git a/NEWS b/NEWS index c722b2bafa..792499e81e 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,30 @@ +pl 59.uu1 + - papervar loose_column_distance + - scripts don't collide. + - midi2ly outputs \context iso \type + +pl 59.jbr1 + - lily/colhpos.cc: fixed typo + - Documentation/ntweb: Updated News and added all the files + associated with Windows Distribution web page. + - stepmake/bin/package-zip32.sh: added the ntweb page to formated + distribution. + +pl 59.jcn1 + - bfs: slur damping + - papervar slur_interstaff_snap_to_stem + +pl 59.hwn1 + - \property graceAlignPosition : put grace notes after main note. + - moved pianobrace stuff into Lookup + - moved Local_key_engraver out of Voice context, and +acknowledge Grace_align_items. Solves tie + accidental problem. + +pl 59.mb1 + - Some small clean-ups and bug fixes + +*********** + pl 58.uu1 - experimental pdftex support, courtesy Stephen Peters. - --version support @@ -5,7 +32,7 @@ pl 58.uu1 - only stretch the extra space after prefatory matter, not the entire width of prefatory matter. - standardise(d) switches:-d for debug, -M for Make deps, -m for midi-only. - - bf: non_musical_space_strength now works. Set to 8 (-> Strong! ) + - bf: papervar non_musical_space_strength now works. Set to 8 (-> Strong! ) - bf: space after time_sig. - bf: decrescendi. - bf: barlines on voltas diff --git a/TODO b/TODO index 304e29b7fe..8fb1eb1a4b 100644 --- a/TODO +++ b/TODO @@ -15,37 +15,12 @@ lily [-> leading are the lead strips between the sticks (lines) of typeface. ie. leading is vertical space --hwn] - +. * Rewrite \rhythm to be during interpreting. . * move \version check to lexer.ll . * junk delayed spanner breaking. . * check dangling_scm_sym working. -. * revise pianobrace to put font stuff into Lookup . * spacing of accidentals -. * restorations & repeats -. * \score { - \context Staff \notes { -c'2 fis'~ -% accidential after bar -fis'4 % accidential should be here -fis' g'2 -\repeat semi 2 { -c' c' -} -\alternative { -% no bars at the beginning of alternative 1 and at the end of alternative 2 -{ -d' d' -} -{ -c'1 c' -} -} -d'4_"normal" d' \times 2/3 {e' e' e'} -% no triplet bracket in \tiny -\tiny d'4_"tiny" d' \times 2/3 {e' e' e'} - } -} - +. * key restorations & repeats . * So how do I do what I want to do? @@ -61,48 +36,13 @@ In bar 27, there's a crescendo that's supposed to start at the start of the grace notes and extend to the note after the grace notes. How do I specify these? - -How can I control whether a grace note takes its time from the note -before or the note after it (for the purposes of alignment with -lyrics)? -. * / distance after 4/4 \key. . * spanners from grace to normal ctxt . * Glen: -1. I got a vertical line where I asked for a decrescendo. - -2. Slurs -- good to see some spacing between slurs and lyrics, but not -there's several times too much space. - -3. Slurs with wrong slopes. Where a slur between two notes goes from the -head of one to the stem of another it can have the wrong slope: - | ___ - | / \ - | / | - x|/ | - | - x| - The music goes down but the slur goes up (or vice versa). This looks -wrong. - -4. Lyrics and \fermata collide. I know that the TODO has lyrics and scripts -colliding; I'm just including it here because it's really an issue for me -with fermata. Other scripts aren't a problem for me, but sometimes I need -fermata on both sides of the staff (when sop and alto hold different notes, -for example). In fact it's not just scripts and lyrics: In a choirstaff, -scripts above the bass clef collide with scripts below the treble clef. 5. Sometimes lyrics extend past the right end of the staff. I guess that this is a similar problem (if not another symptom of the same problem) as one of the spacing bugs mentioned in the TODO. - -6. The bar line at the beginning of an \alternative section has disappeared -altogether. - -7. When it's a tight fit to get all the notes in the first line, the first -note collides with the time signature. Is this the same as one of the -spacing bugs mentioned in the TODO? - -.* 4. Lyrics and grace sections don't go too well together. +. * 4. Lyrics and grace sections don't go too well together. The words are aligned with the main note, not the start of the grace note. This is usually wrong, but is sometimes right. . * Auto_beam debugging output (waarom/wanneer heb jij die weggehaald?) @@ -172,7 +112,6 @@ following example. . * add new glyphs to font.ly . * formatting of input stuff. . * deps for ly2dvi -. * decide wether to junk _ in lyrics. . * indent = 0.0 with linewidth=-1.0 . * collisions & accidentals. . * auto-beaming in input/test/spacing.ly: @@ -191,11 +130,13 @@ invloed hebben op beam-creatie, stopt toch gewoon stokken in? . * behavior of "that the obvious solution \lyrics { foo1*4 __ _ }" is unintuitive. . * Lyrics and scripts collide. -. * grace_align_item -> stackingdir = left, weird placement. . * filenames : junk lily.x .* Cleanups needed . * \$ and $ identifier syntax in examples. +. * Junk ghost positioning objects eg, Script leans on Staffside + leans on Staff. + . * bracket ps code. . * Key_engraver, Local_key_item . * Think of comprehensive solution for "if (grace_b == self_grace_b_)" @@ -235,7 +176,6 @@ invloed hebben op beam-creatie, stopt toch gewoon stokken in? . * make wide_spanner_engraver (line_group_spanner, staff_symbol) . * store req -> element, element -> element causes for warnings . * compulsory hshift -. * dots & rest collisions? . * My wish list for lyrics. I dream of a time when I will have enough time to become familiar enough with the source code to be able to implement some of @@ -314,18 +254,14 @@ repeated section with different words for each repeat. \cadenza , \meter, should all be \properties . * fix singleStaffBracket . * rename -. * measure -> bar . * abbreviation-beam -> (measured/unmeasured) tremolo . * partial -> anacrouse -. * robustify Beam (in case of no stems, 32nd notes) . * move paper vars into engraver properties . * check for groff / troff/ nroff et . * more intelligent file searching . * disable spaces in TeX stuff . * handle ^C for tmp/file creation. . * make LilyPond RPM fully relocatable -. * the warning about the negative slur/tie length appears twice -which is irritating. . * better hshift (dots, distance, head dependent) . * clefs (AG): The "8" should appear closer to the actual clef, touching it. diff --git a/VERSION b/VERSION index 2e50a6e996..9a194ed92e 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=1 -PATCH_LEVEL=59 +PATCH_LEVEL=60 MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a diff --git a/aclocal.m4 b/aclocal.m4 index caee78ed68..a86a37f121 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -4,6 +4,8 @@ dnl WARNING WARNING WARNING WARNING dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4 dnl WARNING WARNING WARNING WARNING dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4 +dnl WARNING WARNING WARNING WARNING +dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4 dnl aclocal.m4 -*-shell-script-*- dnl StepMake subroutines for configure.in diff --git a/flower/include/scalar.hh b/flower/include/scalar.hh index e2750c9e1a..e76841b561 100644 --- a/flower/include/scalar.hh +++ b/flower/include/scalar.hh @@ -26,6 +26,8 @@ struct Scalar : public String operator Rational(); Scalar() {} bool isnum_b() const; + bool isdir_b() const; + bool isint_b() const; operator Real(); operator int(); bool to_bool () const; diff --git a/flower/scalar.cc b/flower/scalar.cc index c0ef60d744..6e97eedf8f 100644 --- a/flower/scalar.cc +++ b/flower/scalar.cc @@ -35,6 +35,19 @@ Scalar::to_rat () const return Rational (s1.value_i (), s2.value_i ()); } +bool +Scalar::isdir_b () const +{ + int conv = length_i (); + if (conv) + { + long l =0; + conv = sscanf (strh_.ch_C (), "%ld", &l); + conv = conv && (l >= -1 && l <= 1); + } + return conv; +} + bool Scalar::isnum_b () const { diff --git a/input/bugs/2pianobrace.ly b/input/bugs/2pianobrace.ly deleted file mode 100644 index a5c7cb406a..0000000000 --- a/input/bugs/2pianobrace.ly +++ /dev/null @@ -1,6 +0,0 @@ -\score { \notes { -\context StaffGroup <\context PianoStaff = PA< c4 d4 > - \context PianoStaff =PB < c4 d4 > ->} -} - diff --git a/input/bugs/enghack.ly b/input/bugs/enghack.ly deleted file mode 100644 index 2be4064a91..0000000000 --- a/input/bugs/enghack.ly +++ /dev/null @@ -1,14 +0,0 @@ -\score { - \notes { - c'\longa c'\breve - c'1 c'2 c'4 c'8 c'16 c'32 c'64 c'64 c'2. c'8. c'16 - } - \paper { - linewidth = -1.0; - \translator { \type "Score_engraver"; - \name "Score"; - \consists "Note_heads_engraver"; - \consists "Stem_engraver"; - \consists "Rhythmic_column_engraver"; - }}} - diff --git a/input/bugs/grace-accident.ly b/input/bugs/grace-accident.ly deleted file mode 100644 index 5d2cd4c027..0000000000 --- a/input/bugs/grace-accident.ly +++ /dev/null @@ -1,7 +0,0 @@ -%grace-accident.ly -\score{ - \context Staff=foo \notes\relative c''{ -% c8 % remove line to dump core - \grace { cis8 dis } e,4 - } -} diff --git a/input/bugs/hairy-grace.ly b/input/bugs/hairy-grace.ly deleted file mode 100644 index e7a3af1dac..0000000000 --- a/input/bugs/hairy-grace.ly +++ /dev/null @@ -1,14 +0,0 @@ -%hairy grace stuff: - -\score{ - \context Staff=foo \notes\relative c''{ - % two auto beams - d4 \grace c8 d8 \grace { d16 c16 } d8 c2 - \property Voice.verticalDirection = 1 - % colliding beams - d4 \grace c8 d8 \grace { d16 c16 } d8 c2 - \property Voice.verticalDirection = 0 - % leger lines - d,,4 \grace c8 d8 \grace { d16 c16 } d8 c2 - } -} diff --git a/input/bugs/refman-sv.ly b/input/bugs/refman-sv.ly deleted file mode 100644 index a1450512b6..0000000000 --- a/input/bugs/refman-sv.ly +++ /dev/null @@ -1,4 +0,0 @@ -\score{\notes{ -c'' \< \! c'' d'' \decr e'' \rced -< f''1 {s4 \< \! s4 \> \! s2 } > -}} diff --git a/input/bugs/slur-broken.ly b/input/bugs/slur-broken.ly deleted file mode 100644 index 7cf4645bcd..0000000000 --- a/input/bugs/slur-broken.ly +++ /dev/null @@ -1,20 +0,0 @@ -shortlong = \notes{ - c4()c( c c | - c c c c | - c c c c | - \break - c c c )c | - c c c c | - c c c c | - c c c c | - c c c c | -} - -\score{ - \shortlong - \paper{ - indent = 0.0\pt; - % linewidth= 30.\mm; - castingalgorithm = \Wordwrap; - } -} diff --git a/input/test/grace.ly b/input/test/grace.ly index 3c8c8c9030..2f2f4a71e3 100644 --- a/input/test/grace.ly +++ b/input/test/grace.ly @@ -1,10 +1,12 @@ \score {\notes \context Voice = VA \relative c'' { \grace c8 c4 - \grace { [c32 cis32] } c4 - \grace { [c32 c32] } \times 2/3 { [c8 c c] } + \grace { [c32 cis32] } gis4 + \grace { [cis32 dis32] } e4 + \grace { [c32 d] }\times 2/3 { [c8 c c] } \grace { [b32 ( c32] } ) c4 - \grace c16 [c8 c8] + \grace c16 [c8 c8] + \grace { \property Grace.graceAlignPosition = \right c16} c4 } \paper {linewidth = -1.;} } diff --git a/input/test/slur-bug.ly b/input/test/slur-bug.ly deleted file mode 100644 index ff28f8d777..0000000000 --- a/input/test/slur-bug.ly +++ /dev/null @@ -1,10 +0,0 @@ -\version "1.1.52"; - -% bug -% excentric slur can't handle this ... -\score{ - \notes{ - \stemdown - \times 4/5 {c8( c f,, c c} c c c )c | - } -} diff --git a/input/test/tie-bug.ly b/input/test/tie-bug.ly deleted file mode 100644 index f52151068f..0000000000 --- a/input/test/tie-bug.ly +++ /dev/null @@ -1,10 +0,0 @@ -\version "1.1.52"; - - -% middle tie is wrong -\score{ - \notes\relative c'{ - { ~ - } -}} - diff --git a/input/test/volta.fly b/input/test/volta.fly index 9386a43669..86a57ed0d5 100644 --- a/input/test/volta.fly +++ b/input/test/volta.fly @@ -3,16 +3,15 @@ c' d e f | \repeat semi 2 { g a b c } -\alternative { { c b a g a g a g} { f e d c } } \break -%c, d e f | % Assertion failure if this line is removed!! +\alternative { { c b a g a g a g} { f e d c } } \repeat semi 2 { g a b c } -\alternative { { c b a g \break a g a g} { f e d c } } \break +\alternative { { c b a g \break a g a g} { f e d c } } c, d e f | \repeat semi 2 { g a b c } -\alternative { { c b a g \break a g a g \break a b a b } { f e d c } } \break +\alternative { { c b a g \break a g a g \break a b a b } { f e d c } } c, d e f | \repeat semi 2 { g a b c } -\alternative { { c b a g } { f e d c \break a g a g} } \break +\alternative { { c b a g } { f e d c \break a g a g} } c, d e f | \repeat semi 2 { g a b c } \alternative { { c b a g a g a g} { f e d c \bar "|.";} } diff --git a/lily/abbreviation-beam.cc b/lily/abbreviation-beam.cc index b0307f2e6f..cc10968278 100644 --- a/lily/abbreviation-beam.cc +++ b/lily/abbreviation-beam.cc @@ -1,3 +1,4 @@ +#if 0 /* abbreviation-beam.cc -- implement Abbreviation_beam @@ -58,3 +59,4 @@ Abbreviation_beam::stem_beams (Stem *here, Stem *next, Stem *prev) const */ return Beam::stem_beams (here, next, prev); } +#endif diff --git a/lily/align-note-column-engraver.cc b/lily/align-note-column-engraver.cc index 4e00da6840..70d08a62e1 100644 --- a/lily/align-note-column-engraver.cc +++ b/lily/align-note-column-engraver.cc @@ -18,7 +18,7 @@ */ class Align_note_column_engraver: public Engraver { - Axis_align_item * align_item_p_; + Grace_align_item * align_item_p_; Note_column * now_column_l_; Local_key_item * accidental_l_; @@ -50,6 +50,12 @@ Align_note_column_engraver::do_creation_processing () void Align_note_column_engraver::do_removal_processing () { + Scalar al = get_property ("graceAlignPosition", 0); + if (al.isdir_b ()) + { + align_item_p_->notehead_align_dir_ = int (al); + } + typeset_element (align_item_p_); align_item_p_ =0; } diff --git a/lily/axis-group-element.cc b/lily/axis-group-element.cc index d843dfbbbb..0c5322bec7 100644 --- a/lily/axis-group-element.cc +++ b/lily/axis-group-element.cc @@ -9,12 +9,11 @@ #include "axis-group-element.hh" #include "graphical-axis-group.hh" - - Link_array Axis_group_element::get_extra_dependencies() const { - return elem_l_arr (); + Link_array e(elem_l_arr ()); + return e; } Link_array @@ -35,6 +34,7 @@ Axis_group_element::get_children () { Link_array childs; Link_array elems = elem_l_arr (); + elems.concat (extra_elems_ ); for (int i=0; i < elems.size (); i++) { Score_element* e = elems[i]; @@ -72,21 +72,71 @@ Axis_group_element::do_substitute_element_pointer (Score_element*o, Score_element*n) { int i; - while ((i = elem_l_arr_.find_i (o))>=0) - if (n) + Graphical_element * go = o; + Graphical_element * gn = n; + + while ((i = elem_l_arr_.find_i (go))>=0) + elem_l_arr_.substitute (go,gn); +#if 0 + if (n) elem_l_arr_[i] = n; else elem_l_arr_.del (i); +#endif + extra_elems_.substitute (o, n); +} + +Interval +Axis_group_element::extra_extent (Axis a )const +{ + Interval g; + for (int i=0; i < extra_elems_.size (); i++) + { + Interval ge = extra_elems_[i]->extent (a); + ge += extra_elems_[i]->relative_coordinate (dim_cache_[a], a); + g.unite (ge); + } + return g; } Interval Axis_group_element::do_height () const { - return Graphical_axis_group::extent (Y_AXIS); + Interval gag = Graphical_axis_group::extent (Y_AXIS); + gag.unite (extra_extent (Y_AXIS)); + return gag; } Interval Axis_group_element::do_width () const { - return Graphical_axis_group::extent (X_AXIS); + Interval gag = Graphical_axis_group::extent (X_AXIS); + gag.unite (extra_extent (X_AXIS)); + return gag; +} + + +/* + UGH. + */ +void +Axis_group_element::add_extra_element (Score_element *e) +{ + Link_array se; + while (e && e != this) + { + se.push (e); + e = dynamic_cast (e->dim_cache_[Y_AXIS]->parent_l_ ? e->dim_cache_[Y_AXIS]->parent_l_->element_l() : 0); + } + + if (1) // e == this) + { + for (int i=0; i < se.size( ); i++) + { + extra_elems_.push (se[i]); + add_dependency (se[i]); + se[i]->set_elt_property (ly_symbol ("Axis_group_element::add_extra_element"), SCM_BOOL_T); // UGH GUH. + } + + } } diff --git a/lily/axis-group-engraver.cc b/lily/axis-group-engraver.cc index a3bf9111fd..e13dcdd518 100644 --- a/lily/axis-group-engraver.cc +++ b/lily/axis-group-engraver.cc @@ -40,10 +40,7 @@ Axis_group_engraver::do_removal_processing () void Axis_group_engraver::acknowledge_element (Score_element_info i) { - if (!i.elem_l_->parent_l (Y_AXIS)) - { - elts_.push (i.elem_l_); - } + elts_.push (i.elem_l_); } void @@ -53,6 +50,12 @@ Axis_group_engraver::process_acknowledged () { if (!elts_[i]->parent_l (Y_AXIS)) staffline_p_->add_element (elts_[i]); + + /* UGH UGH UGH */ + else if (elts_[i]->get_elt_property (ly_symbol ("Axis_group_element::add_extra_element")) == SCM_BOOL_F) + { + staffline_p_->add_extra_element (elts_[i]); + } } elts_.clear (); } diff --git a/lily/colhpos.cc b/lily/colhpos.cc index 8d82c2c06d..f23646cb01 100644 --- a/lily/colhpos.cc +++ b/lily/colhpos.cc @@ -45,7 +45,7 @@ void Column_x_positions::OK() const { #ifndef NDEBUG - assert (config.size() == cols.size ()); + assert (config_.size() == cols_.size ()); #endif } diff --git a/lily/dot-column.cc b/lily/dot-column.cc index 4bcaff4a67..56ffe94762 100644 --- a/lily/dot-column.cc +++ b/lily/dot-column.cc @@ -51,7 +51,7 @@ Dot_column::do_pre_processing () Dot_column::Dot_column () { - align_dir_ = RIGHT; + notehead_align_dir_ = RIGHT; set_axes(X_AXIS,X_AXIS); } diff --git a/lily/encompass-info.cc b/lily/encompass-info.cc index b5fbcf56fe..323fc20a9c 100644 --- a/lily/encompass-info.cc +++ b/lily/encompass-info.cc @@ -31,6 +31,7 @@ Encompass_info::Encompass_info (Note_column const* note_column, Direction dir, S { warning (_ ("Slur over rest?")); o_[X_AXIS] = note_column->hpos_f (); + o_[Y_AXIS] = note_column->extent (Y_AXIS)[dir]; return; } @@ -42,9 +43,14 @@ Encompass_info::Encompass_info (Note_column const* note_column, Direction dir, S o_[X_AXIS] -= 0.5 * stem_l->dir_ * note_column->extent (X_AXIS).length (); - if (stem_l->dir_ == dir) + if ((stem_l->dir_ == dir) + && !stem_l->extent (Y_AXIS).empty_b ()) { o_[Y_AXIS] = stem_l->extent (Y_AXIS)[dir]; + // URG URG. + // some slur in choral.ly returns -inf here + if (abs (o_[Y_AXIS]) > 1000) + o_[Y_AXIS] = 0; } else { diff --git a/lily/include/atom.hh b/lily/include/atom.hh index ab67d0881d..9f8c4ef097 100644 --- a/lily/include/atom.hh +++ b/lily/include/atom.hh @@ -24,6 +24,10 @@ public: representing a musical notation symbol. */ Protected_scm func_; Protected_scm font_; + + /* + TODO: move this into the font_ field. + */ Protected_scm magn_; }; diff --git a/lily/include/axis-group-element.hh b/lily/include/axis-group-element.hh index d57069b256..c3221a0ec2 100644 --- a/lily/include/axis-group-element.hh +++ b/lily/include/axis-group-element.hh @@ -20,15 +20,29 @@ class Axis_group_element : public virtual Score_element, public virtual Graphical_axis_group { + Link_array extra_elems_; + protected: virtual void do_print() const; virtual Link_array get_extra_dependencies() const; - virtual Interval do_height () const; - virtual Interval do_width () const; -public: virtual void do_substitute_element_pointer (Score_element*,Score_element*); virtual Link_array elem_l_arr() const; + + virtual Interval do_height () const; + virtual Interval do_width () const; + + +Interval extra_extent (Axis a ) const; + +public: + /** + add an element that only influences size, but does not have X/Y parent + relationship with THIS. + */ + void add_extra_element (Score_element*); + + Axis_group_element (); virtual void set_axes (Axis,Axis); diff --git a/lily/include/col-info.hh b/lily/include/col-info.hh index 8aea10dbc4..e5d93f4a57 100644 --- a/lily/include/col-info.hh +++ b/lily/include/col-info.hh @@ -21,13 +21,6 @@ struct Spacer_rod { void print () const; }; -struct Spacer_spring -{ - Real distance_f_; - Real hooke_f_; - Real other_idx_; -}; - /// helper struct for #Spacing_problem# struct Column_info { Paper_column *pcol_l_; @@ -39,8 +32,7 @@ struct Column_info { bool ugh_b_; Drul_array< Array > rods_; - // Drul_array< Array > springs_; - + Column_info(); Column_info (Paper_column *,Real const *); diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh index e702c3334b..e360dbfa62 100644 --- a/lily/include/lily-proto.hh +++ b/lily/include/lily-proto.hh @@ -10,39 +10,40 @@ #define LILY_PROTO_HH #include "proto.hh" -struct Absolute_dynamic_req; -struct Stem_tremolo; + + struct Abbreviation_beam; -struct Abbreviation_beam_req; struct Abbreviation_beam_engraver; -struct Tremolo_req; -struct Adobe_font_metric; +struct Abbreviation_beam_req; +struct Absolute_dynamic_req; struct Adobe_font_char_metric; +struct Adobe_font_metric; +struct Align_element; struct All_font_metrics; struct Articulation_req; struct Atom; +struct Audio_column; struct Audio_element; struct Audio_element_info; -struct Audio_column; -struct Audio_item; struct Audio_instrument; +struct Audio_item; struct Audio_key; -struct Audio_text; -struct Audio_time_signature; struct Audio_note; struct Audio_note_off; -struct Audio_tie; struct Audio_staff; struct Audio_tempo; +struct Audio_text; +struct Audio_tie; +struct Audio_time_signature; struct Auto_beam_engraver; -struct Axis_group_element; -struct Axis_group_spanner; -struct Axis_group_item; struct Axis_align_item; struct Axis_group; +struct Axis_group_element; +struct Axis_group_item; +struct Axis_group_spanner; struct Bar; -struct Bar_column_engraver; struct Bar_column; +struct Bar_column_engraver; struct Bar_engraver; struct Bar_req; struct Barcheck_req; @@ -56,30 +57,28 @@ struct Box; struct Bracket_req; struct Break_align_item; struct Break_req; +struct CHyphen_req; struct Cadenza_req; struct Change_iterator; struct Change_translator; struct Chord; struct Chord_name_engraver; -struct CHyphen_req; struct Clef_change_req; -struct Clef_item; struct Clef_engraver; +struct Clef_item; struct Clef_performer; -struct Column_x_positions; -struct Column_info; -struct Column_spring; struct Collision; struct Collision_engraver; +struct Column_info; +struct Column_spring; +struct Column_x_positions; struct Command_req; struct Command_script_req; struct Command_tie_engraver; -struct Time_scaled_music; -struct Time_scaled_music_iterator; struct Crescendo ; -struct Dots; -struct Dot_column; struct Directional_spanner; +struct Dot_column; +struct Dots; struct Durational_req; struct Dynamic; struct Dynamic_req; @@ -89,27 +88,23 @@ struct Engraver; struct Engraver_group_engraver; struct Extender; struct Extender_req; -struct Script; -struct Script_req; -struct Staff_side_item; -struct Text_item; +struct Folded_repeat_iterator; struct General_script_def; -struct Graphical_element; - -struct Graphical_axis_group; struct Global_translator; -struct Hara_kiri_line_group_engraver; +struct Grace_align_item; +struct Graphical_axis_group; +struct Graphical_element; struct Hara_kiri_group_spanner; +struct Hara_kiri_line_group_engraver; struct Head_column; - struct Idealspacing; struct Identifier; struct Input_file; struct Item; struct Key; struct Key_change_req; -struct Key_item; struct Key_engraver; +struct Key_item; struct Key_performer; struct Keyword; struct Keyword_table; @@ -120,8 +115,8 @@ struct Line_of_staff; struct Line_spacer; struct Linestaff; struct Local_key; -struct Local_key_item; struct Local_key_engraver; +struct Local_key_item; struct Lookup; struct Lyric_item; struct Lyric_req; @@ -133,7 +128,6 @@ struct Midi_duration; struct Midi_header; struct Midi_item; struct Midi_key; -struct Midi_time_signature; struct Midi_note; struct Midi_note_event; struct Midi_note_off; @@ -141,38 +135,36 @@ struct Midi_output; struct Midi_score; struct Midi_stream; struct Midi_tempo; +struct Midi_time_signature; struct Midi_track; struct Midi_walker; struct Mixed_qp; struct Molecule; struct Multi_measure_rest; -struct Multi_measure_rest_req; struct Multi_measure_rest_engraver; +struct Multi_measure_rest_req; struct Music; struct Music_iterator; -struct Musical_req; -struct Musical_span_req; -struct Musical_script_req; struct Music_list; struct Music_list_iterator; struct Music_output; struct Music_output_def; -struct Musical_pitch; struct Music_sequence; struct Music_wrapper; struct Music_wrapper_iterator; +struct Musical_pitch; +struct Musical_req; +struct Musical_script_req; +struct Musical_span_req; struct My_lily_lexer; struct My_lily_parser; struct Note_column; struct Note_column_engraver; -struct Note_performer; -struct Note_req; struct Note_head; struct Note_head_engraver; +struct Note_performer; +struct Note_req; struct Notename_table; -struct Repeated_music; -struct Unfolded_repeat_iterator; -struct Folded_repeat_iterator; struct Offset; struct Paper_column; struct Paper_def; @@ -182,34 +174,38 @@ struct Paper_stream; struct Partial_measure_req; struct Performance; struct Performer; -struct Tuplet_spanner; -struct Piano_brace; struct Performer; struct Performer_group_performer; +struct Piano_brace; struct Property_iterator; struct Rational; -struct Request; -struct Request_column; -struct Relative_octave_music; struct Re_rhythmed_music; +struct Relative_octave_music; struct Repeat_engraver; struct Repeated_music; +struct Repeated_music; struct Repeated_music_iterator; +struct Request; +struct Request_chord; +struct Request_column; struct Rest; struct Rest_collision; struct Rest_collision_engraver; struct Rest_req; struct Rhythmic_grouping; -struct Rhythmic_head; struct Rhythmic_grouping_req; +struct Rhythmic_head; struct Rhythmic_req; struct Scope; -struct Separating_group_spanner; struct Score; struct Score_column; struct Score_element; struct Score_element_info; struct Score_performer; +struct Script; +struct Script_req; +struct Separating_group_spanner; +struct Sequential_music; struct Simple_music; struct Simultaneous_music; struct Single_malt_grouping_item; @@ -218,54 +214,58 @@ struct Slur; struct Slur_engraver; struct Spacing_spanner; struct Span_bar; -struct Span_score_bar; struct Span_req; +struct Span_score_bar; struct Spanner; struct Spring; struct Spring_spacer; struct Staff_bracket; struct Staff_performer; struct Staff_side; +struct Staff_side_item; struct Staff_symbol; struct Stem; struct Stem_beam_engraver; struct Stem_req; +struct Stem_tremolo; struct String; +struct Super_element; struct Symtable; struct Symtables; -struct Super_element; -struct Translation_property; struct Tempo_req; struct Tex_font_char_metric; struct Tex_font_metric; struct Tex_font_metric_reader; struct Text_def; +struct Text_engraver; struct Text_gob; struct Text_item ; -struct Text_engraver; +struct Text_item; struct Text_req; struct Text_spanner; struct Tie; struct Tie_engraver; struct Tie_req; struct Time_description; +struct Time_scaled_music; +struct Time_scaled_music_iterator; struct Time_signature; struct Time_signature_change_req; struct Time_signature_engraver; struct Time_signature_performer; +struct Timing_engraver; +struct Timing_req; +struct Timing_translator; struct Tonic_req; +struct Translation_property; struct Translator; struct Translator_group; -struct Timing_req; -struct Timing_translator; -struct Timing_engraver; +struct Tremolo_req; +struct Tuplet_spanner; +struct Unfolded_repeat_iterator; struct Vertical_brace; struct Vertical_spanner; - struct Volta_spanner; -struct Align_element; -struct Sequential_music; -struct Request_chord; typedef Rational Moment; typedef Scope Header; diff --git a/lily/include/local-key-engraver.hh b/lily/include/local-key-engraver.hh index bba7b4cadd..260496bd0c 100644 --- a/lily/include/local-key-engraver.hh +++ b/lily/include/local-key-engraver.hh @@ -11,7 +11,12 @@ #include "engraver.hh" #include "key.hh" #include "parray.hh" - +/** + Make accidentals. Catches note heads, ties and notices key-change + events. Due to interaction with ties (which don't come together + with note heads), this needs to be in a context higher than Tie_engraver. + (FIXME). + */ struct Local_key_engraver : Engraver { Local_key_item *key_item_p_; protected: @@ -32,7 +37,7 @@ public: Link_array tied_l_arr_; Local_key_engraver(); bool self_grace_b_; - + Grace_align_item * grace_align_l_; }; #endif // LOCALKEYGRAV_HH diff --git a/lily/include/note-head-side.hh b/lily/include/note-head-side.hh index c5f7b0167c..421ad9c57d 100644 --- a/lily/include/note-head-side.hh +++ b/lily/include/note-head-side.hh @@ -21,7 +21,8 @@ class Note_head_side: public virtual Item { Link_array support_l_arr_; public: - Direction align_dir_; + // naming to avoid conflict with Align_element + Direction notehead_align_dir_; Note_head_side (); void add_support (Item*); diff --git a/lily/local-key-engraver.cc b/lily/local-key-engraver.cc index 1307cba000..0d499c8b36 100644 --- a/lily/local-key-engraver.cc +++ b/lily/local-key-engraver.cc @@ -1,5 +1,5 @@ /* - local-key-reg.cc -- implement Local_key_engraver + local-key-engraver.cc -- implement Local_key_engraver (c) 1997--1999 Han-Wen Nienhuys */ @@ -15,13 +15,13 @@ #include "note-head.hh" #include "time-description.hh" #include "engraver-group-engraver.hh" - +#include "grace-align-item.hh" Local_key_engraver::Local_key_engraver() { key_grav_l_ = 0; key_item_p_ =0; - self_grace_b_ = false; + grace_align_l_ =0; } void @@ -46,8 +46,6 @@ Local_key_engraver::do_creation_processing () local_key_ = key_grav_l_->key_; } - self_grace_b_ = get_property ("weAreGraceContext",0 ).to_bool (); - /* TODO (if we are grace) get key info from parent Local_key_engraver @@ -91,6 +89,12 @@ Local_key_engraver::process_acknowledged () local_key_.set (note_l->pitch_); } } + if (key_item_p_ && grace_align_l_) + { + grace_align_l_->add_support (key_item_p_); + grace_align_l_ =0; + } + } void @@ -110,7 +114,8 @@ Local_key_engraver::do_pre_move_processing() typeset_element (key_item_p_); key_item_p_ =0; } - + + grace_align_l_ = 0; mel_l_arr_.clear(); tied_l_arr_.clear(); support_l_arr_.clear(); @@ -119,12 +124,21 @@ Local_key_engraver::do_pre_move_processing() void Local_key_engraver::acknowledge_element (Score_element_info info) -{ +{ + bool selfgr = get_property ("weAreGraceContext", 0).to_bool (); + bool he_gr = info.elem_l_->get_elt_property (grace_scm_sym) != SCM_BOOL_F; + + Grace_align_item * gai = dynamic_cast (info.elem_l_); + if (he_gr && !selfgr && gai) + { + grace_align_l_ = gai; + } Note_req * note_l = dynamic_cast (info.req_l_); Note_head * note_head = dynamic_cast (info.elem_l_); - bool gr = (info.elem_l_->get_elt_property (grace_scm_sym)!=SCM_BOOL_F); - if (gr != self_grace_b_) + + + if (he_gr != selfgr) return; if (note_l && note_head) diff --git a/lily/lookup.cc b/lily/lookup.cc index 9dee0018d2..00354d3c2d 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -503,12 +503,16 @@ Lookup::staff_brace (Real y, int staff_size) const ) */ + Real step = 1.0; + int minht = 2 * staff_size; + int maxht = 7 * minht; + int idx = ((maxht - step) ? 0; - Atom at (gh_list (pianobrace_scm_sym, - gh_double2scm (y), - gh_int2scm (staff_size), - SCM_UNDEFINED - )); + SCM f = ly_symbol (String ("feta-braces" + to_str (staff_size))); + SCM e =gh_list (char_scm_sym, gh_int2scm (idx), SCM_UNDEFINED); + Atom at (e); + at.font_ = f; m.dim_[Y_AXIS] = Interval (-y/2,y/2); m.dim_[X_AXIS] = Interval (0,0); diff --git a/lily/note-head-side.cc b/lily/note-head-side.cc index 0d360c4d02..785da0c332 100644 --- a/lily/note-head-side.cc +++ b/lily/note-head-side.cc @@ -36,7 +36,7 @@ Note_head_side::do_pre_processing () if (x_int.empty_b ()) x_int = Interval(0,0); - translate_axis (-extent(X_AXIS)[-align_dir_] + x_int[align_dir_], X_AXIS); + translate_axis (-extent(X_AXIS)[-notehead_align_dir_] + x_int[notehead_align_dir_], X_AXIS); } void @@ -48,5 +48,5 @@ Note_head_side::do_substitute_element_pointer (Score_element*o,Score_element*n) Note_head_side:: Note_head_side() { - align_dir_ = LEFT; + notehead_align_dir_ = LEFT; } diff --git a/lily/slur.cc b/lily/slur.cc index 5e8055a9f4..474712e8d5 100644 --- a/lily/slur.cc +++ b/lily/slur.cc @@ -134,7 +134,7 @@ Slur::do_post_processing () side directly attached to note head; no beam getting in the way */ - if (((stem_l->get_elt_property (transparent_scm_sym) != SCM_BOOL_F) + if ((stem_l->extent (Y_AXIS).empty_b () || !((stem_l->dir_ == dir_) && (dir_ != d))) && !((dir_ == stem_l->dir_) && stem_l->beam_l_ && (stem_l->beams_i_drul_[-d] >= 1))) @@ -241,14 +241,6 @@ Slur::do_post_processing () Real height_damp_f; Real slope_damp_f; Real snap_f; - Real ratio_f; - - if (!fix_broken_b) - dy_f_drul_[RIGHT] += interstaff_f; - Real dy_f = dy_f_drul_[RIGHT] - dy_f_drul_[LEFT]; - - Real dx_f = do_width ().length () + dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]; - Real height_f = do_height ().length (); if (!interstaff_b) { @@ -263,6 +255,11 @@ Slur::do_post_processing () snap_f = paper_l ()->get_var ("slur_interstaff_snap_to_stem"); } + Real ratio_f; + if (!fix_broken_b) + dy_f_drul_[RIGHT] += interstaff_f; + Real dy_f = dy_f_drul_[RIGHT] - dy_f_drul_[LEFT]; + Real dx_f = do_width ().length () + dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]; /* Avoid too steep slurs. @@ -273,26 +270,50 @@ Slur::do_post_processing () Direction d = (Direction)(- dir_ * (sign (dy_f))); if (!d) d = LEFT; - dy_f_drul_[d] += dir_ * (ratio_f - slope_damp_f) * dx_f; + Real damp_f = (ratio_f - slope_damp_f) * dx_f; + /* + must never change sign of dy + */ + damp_f = damp_f height_damp_f) + for (int i = 0; i < 3; i++) { - Direction d = (Direction)(- dir_ * (sign (dy_f))); - if (!d) - d = LEFT; - Real damp_f = dir_ * (ratio_f - height_damp_f) * dx_f; - dy_f_drul_[d] += damp_f; - /* - if y positions at about the same height, correct both ends - */ - if (abs (dy_f / dx_f ) < slope_damp_f) + Real height_f = do_height ().length (); + dy_f = dy_f_drul_[RIGHT] - dy_f_drul_[LEFT]; + + ratio_f = abs (height_f / dx_f); + if (ratio_f > height_damp_f) { - dy_f_drul_[-d] += damp_f; + Direction d = (Direction)(- dir_ * (sign (dy_f))); + if (!d) + d = LEFT; + /* take third step */ + Real damp_f = (ratio_f - height_damp_f) * dx_f / 3; + /* + if y positions at about the same height, correct both ends + */ + if (abs (dy_f / dx_f ) < slope_damp_f) + { + dy_f_drul_[-d] += dir_ * damp_f; + dy_f_drul_[d] += dir_ * damp_f; + } + /* + don't change slope too much, would have been catched by slope damping + */ + else + { + damp_f = damp_f get_var ("loose_column_distance"); for (int i = cols_.size(); i--;) { if (! connected.equiv (fixed[0], i)) { connected.connect (i-1, i); - connect (i-1, i, 1.0, 1.0); + connect (i-1, i, d, 1.0); } } } diff --git a/ly/engraver.ly b/ly/engraver.ly index dfd6ca731e..645f0946a7 100644 --- a/ly/engraver.ly +++ b/ly/engraver.ly @@ -19,6 +19,8 @@ StaffContext=\translator { \consists "Staff_symbol_engraver"; \consists "Collision_engraver"; \consists "Rest_collision_engraver"; + \consists "Local_key_engraver"; + \consistsend "Axis_group_engraver"; @@ -82,8 +84,8 @@ VoiceContext = \translator { \type "Engraver_group_engraver"; \consists "Dynamic_engraver"; % must come before text_engraver. \name Voice ; - \consists "Local_key_engraver"; - + + \consists "Tie_engraver"; \consists "Breathing_sign_engraver"; \consists "Rest_engraver"; \consists "Dot_column_engraver"; @@ -102,7 +104,6 @@ VoiceContext = \translator { \consists "Rhythmic_column_engraver"; \consists "Font_size_engraver"; \consists "Slur_engraver"; - \consists "Tie_engraver"; \consists "Tuplet_engraver"; \consists "Grace_position_engraver"; \consists "Skip_req_swallow_translator"; diff --git a/ly/params.ly b/ly/params.ly index 6f606819cf..8ac1cd2880 100644 --- a/ly/params.ly +++ b/ly/params.ly @@ -92,11 +92,11 @@ slur_y_free = 0.75 * \interline; slur_x_minimum = 3.0 * \interline; % slope damping: keep dy/dx < slur_slope_damping -slur_slope_damping = 0.3; +slur_slope_damping = 0.35; slur_interstaff_slope_damping = 0.8; % height damping: keep h/dx < slur_height_damping -slur_height_damping = 0.6; -slur_interstaff_height_damping = 1.5; +slur_height_damping = 0.45; +slur_interstaff_height_damping = 1.2; % snap to stem if slur ends closer to stem than slur_snap_to_stem = 1.5 * \interline; slur_interstaff_snap_to_stem = 2.5 * \interline; @@ -194,7 +194,8 @@ stemSpacingCorrection = 0.5*\interline; non_musical_space_strength = 40.0; - +%If columns do not have spacing information set, set it to this much +loose_column_distance = 2.0 * \interline; \include "engraver.ly"; diff --git a/ly/property.ly b/ly/property.ly index 4ecbd24678..7ebb134115 100644 --- a/ly/property.ly +++ b/ly/property.ly @@ -102,9 +102,6 @@ slurdotted = \property Voice.slurdash = 1 -%{ - for grace note hack, see input/test/grace.ly -%} tupletoff = { \property Voice.tupletVisibility = 0 } @@ -113,7 +110,6 @@ tupleton = { } tiny = { \property Voice.fontSize= "-2" - \tupletoff %urg } small = { @@ -122,38 +118,8 @@ small = { normalsize = { \property Voice.fontSize= "0" - \tupleton %urg -} - -%{ - [urg: try at] temporary grace note hack - the total visible duration of the grace notes must be half - the duration of the 'at' note: e.g.: - - \grace b8 \graceat c4 \ecarg - \grace c16 b16 \graceat c4 \ecarg - -grace = { - \tiny -% it would be so cool not to have to specify these factors each time... -% :-( - \property Voice.tupletVisibility = 0 - \[1/16 } -graceat = \melodic { - \normalsize - \property Voice.tupletVisibility = 0 - \] \[31/32 -} - -ecarg = \melodic { - \property Voice.tupletVisibility = 0 - \] - \property Voice.tupletVisibility = 3 -} -%} - normalkey = { \property Staff.keyoctaviation = 1 } diff --git a/make/out/lelievijver.lsm b/make/out/lelievijver.lsm index a8197b2300..316aff9920 100644 --- a/make/out/lelievijver.lsm +++ b/make/out/lelievijver.lsm @@ -1,15 +1,15 @@ Begin3 Titel: LilyPond -Versie: 1.1.59 -Inschrijf datum: 14JUL99 +Versie: 1.1.60 +Inschrijf datum: 15JUL99 Beschrijving: @FLAPTEKST@ Trefwoorden: muziek typezetten midi notatie Auteur: hanwen@stack.nl (Han-Wen Nienhuys) janneke@gnu.org (Jan Nieuwenhuizen) Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys) Voornaamste plek: sunsite.unc.edu /pub/Linux/apps - 770k lilypond-1.1.59.tar.gz + 770k lilypond-1.1.60.tar.gz Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 770k lilypond-1.1.59.tar.gz + 770k lilypond-1.1.60.tar.gz Copi-eer voorwaarden: GPL End diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index 2041acb7ac..224c0e5cc5 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,7 +1,7 @@ Begin3 Title: LilyPond -Version: 1.1.59 -Entered-date: 14JUL99 +Version: 1.1.60 +Entered-date: 15JUL99 Description: LilyPond is the GNU Project music typesetter. It transforms a musical @@ -12,8 +12,8 @@ Author: hanwen@cs.ruu.nl (Han-Wen Nienhuys) janneke@gnu.org (Jan Nieuwenhuizen) Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys) Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert - 770k lilypond-1.1.59.tar.gz + 770k lilypond-1.1.60.tar.gz Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 770k lilypond-1.1.59.tar.gz + 770k lilypond-1.1.60.tar.gz Copying-policy: GPL End diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index 9690f935a0..6a9b8996aa 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 1.1.59 +Version: 1.1.60 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.59.tar.gz +Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.60.tar.gz Summary: A program for printing sheet music. URL: http://www.cs.uu.nl/~hanwen/lilypond Packager: Han-Wen Nienhuys diff --git a/midi2ly/main.cc b/midi2ly/main.cc index 88cf758b88..33a179b47a 100644 --- a/midi2ly/main.cc +++ b/midi2ly/main.cc @@ -1,6 +1,5 @@ // -// main.cc -- implement silly main () entry point -// should have Root class. +// main.cc -- implement main () entry point // // copyright 1997 Jan Nieuwenhuizen diff --git a/midi2ly/mudela-score.cc b/midi2ly/mudela-score.cc index cfd121d430..3e30a4d096 100644 --- a/midi2ly/mudela-score.cc +++ b/midi2ly/mudela-score.cc @@ -130,7 +130,7 @@ Mudela_score::output (String filename_str) if ( (mudela_staff_p_list_.size_i () != 1) && (i->car_ == mudela_staff_p_list_.head_->car_)) continue; - mudela_stream << "\\type Staff = \"" << i->car_->id_str () << "\" "; + mudela_stream << "\\context Staff = \"" << i->car_->id_str () << "\" "; mudela_stream << String ("\\" + i->car_->id_str ()) << "\n"; } if (mudela_staff_p_list_.size_i () > 1) diff --git a/midi2ly/mudela-stream.cc b/midi2ly/mudela-stream.cc index 6692daf874..402b6142b3 100644 --- a/midi2ly/mudela-stream.cc +++ b/midi2ly/mudela-stream.cc @@ -92,7 +92,7 @@ Mudela_stream::header() *os_p_ << filename_str_g; *os_p_ << "\n\n"; // ugh - *os_p_ << "\\version \"1.0.14\";\n"; + *os_p_ << "\\version \"1.1.60\";\n"; } void diff --git a/scm/lily.scm b/scm/lily.scm index cdeca540f1..26920e72b1 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -286,14 +286,6 @@ ) - (define (rulesym h w) - (string-append - "\\vrule height " (number->dim (/ h 2)) - " depth " (number->dim (/ h 2)) - " width " (number->dim w) - ) - ) - (define (bezier-sandwich l thick) (embedded-ps ((ps-scm 'bezier-sandwich) l thick))) @@ -347,7 +339,6 @@ (define invoke-dim1 ,invoke-dim1) (define pianobrace ,pianobrace) (define placebox ,placebox) - (define rulesym ,rulesym) (define select-font ,select-font) (define start-line ,start-line) (define stop-line ,stop-line) @@ -373,7 +364,6 @@ ((eq? action-name 'invoke-char) invoke-char) ((eq? action-name 'invoke-dim1) invoke-dim1) ((eq? action-name 'placebox) placebox) - ((eq? action-name 'rulesym) rulesym) ((eq? action-name 'bezier-sandwich) bezier-sandwich) ((eq? action-name 'start-line) start-line) ((eq? action-name 'stem) stem) @@ -521,12 +511,6 @@ ) - (define (rulesym x y) - (string-append - (number->string x) " " - (number->string y) " " - " rulesym")) - (define (bezier-sandwich l thick) (string-append (apply string-append (map control->string l)) @@ -588,7 +572,6 @@ (define invoke-char ,invoke-char) (define invoke-dim1 ,invoke-dim1) (define placebox ,placebox) - (define rulesym ,rulesym) (define select-font ,select-font) (define start-line ,start-line) (define stem ,stem) diff --git a/stepmake/aclocal.m4 b/stepmake/aclocal.m4 index 602d77213a..caee78ed68 100644 --- a/stepmake/aclocal.m4 +++ b/stepmake/aclocal.m4 @@ -2,6 +2,8 @@ dnl WARNING WARNING WARNING WARNING dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4 dnl WARNING WARNING WARNING WARNING dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4 +dnl WARNING WARNING WARNING WARNING +dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4 dnl aclocal.m4 -*-shell-script-*- dnl StepMake subroutines for configure.in diff --git a/stepmake/bin/package-zip32.sh b/stepmake/bin/package-zip32.sh index 164faa1519..fbe52f3d95 100644 --- a/stepmake/bin/package-zip32.sh +++ b/stepmake/bin/package-zip32.sh @@ -38,9 +38,12 @@ fi distdir=/tmp/${name} -rm -f ${srcdir}/config.cache -PYTHON=${PYTHON:-python} ${srcdir}/configure --prefix=${distdir} \ - --srcdir=${srcdir} +# +# Maybe we can get away without reconfiguring +# +# rm -f ${srcdir}/config.cache +# PYTHON=${PYTHON:-python} ${srcdir}/configure --prefix=${distdir} \ +# --srcdir=${srcdir} if ! make ; then echo "make failed" @@ -109,6 +112,19 @@ mv $distdir/bin/mudela-book $distdir/bin/mudela-book.py # mkdir $distdir/doc cp Documentation/man/out/*.html $distdir/doc + +# +# copy web documentation to web directory +# +mkdir $distdir/web +for i in index.html guile.patch angels.ly +do + cp Documentation/ntweb/out/$i $distdir/web || exit 1 +done + +# +# Zip it up +# cd $distdir/.. $ZIP_CMD $ZIP_FILE $name echo "Wrote $ZIP_FILE" -- 2.39.2