From 1c8f93641abe0c62b793f3182ac542a9c40f76c0 Mon Sep 17 00:00:00 2001 From: fred Date: Tue, 26 Mar 2002 22:23:42 +0000 Subject: [PATCH] lilypond-1.1.59 --- Documentation/tex/lilypond-regtest.doc | 1 + NEWS | 13 ++++ TODO | 92 +++++++++++++++++++++++--- VERSION | 2 +- input/bugs/2pianobrace.ly | 6 ++ input/test/repeat-semifold.ly | 1 + lily/bar-engraver.cc | 18 +++-- lily/lookup.cc | 13 ++++ ly/engraver.ly | 4 +- scm/lily.scm | 24 ++----- 10 files changed, 137 insertions(+), 37 deletions(-) create mode 100644 input/bugs/2pianobrace.ly diff --git a/Documentation/tex/lilypond-regtest.doc b/Documentation/tex/lilypond-regtest.doc index 611478d23a..2b5d51e917 100644 --- a/Documentation/tex/lilypond-regtest.doc +++ b/Documentation/tex/lilypond-regtest.doc @@ -130,6 +130,7 @@ Unfolded behavior: \mudelafile{repeat-unfold.ly} Semi (un)folded behavior. Voltas can start on non-barline moments. +If they don't barlines should still be shown. \mudelafile{repeat-semifold.ly} diff --git a/NEWS b/NEWS index cc7169ce80..c722b2bafa 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,16 @@ +pl 58.uu1 + - experimental pdftex support, courtesy Stephen Peters. + - --version support + - junked complicated loose column handling. + - 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: space after time_sig. + - bf: decrescendi. + - bf: barlines on voltas + +************ pl 57.hwn1 - bf: accidentals on grace notes. - \property graceAccidentalSpace diff --git a/TODO b/TODO index 92e9b48a21..304e29b7fe 100644 --- a/TODO +++ b/TODO @@ -20,12 +20,88 @@ typeface. ie. leading is vertical space --hwn] . * junk delayed spanner breaking. . * check dangling_scm_sym working. . * revise pianobrace to put font stuff into Lookup -. * standardise(d) switches: -v, --version; -d, --debug, . * spacing of accidentals . * restorations & repeats -. * dotted rests? -. * input/test/grace.ly spacing (triplet!) +. * \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'} + } +} + +. * +So how do I do what I want to do? + +In Caro Mio Ben, bar 8, there's a syllable that starts on a note, and +ends on a pair of grace notes. Standard practice is to mark this with +a slur starting on the main note and ending on the grace note, so a +singer knows where to break the words. + +In bar 26, there's a \p marker that should appear below the grace +note. + +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. The words are aligned with the main note, not the start of the grace note. This is usually wrong, but is sometimes right. @@ -53,16 +129,12 @@ typeface. ie. leading is vertical space --hwn] - The paper11/13/26 files have to be updated. . * Grace_slur_engraver. . * input/star-spangled-banner.ly: fold for lyrics? +. * don't create $srcdir/share/ . * Break_req handling is silly (break_forbid () + \break fucks up.) . * hangOnClef with non-breakable clefs. -. * do scaled fonts generally +. * account for accidentals in spacing. +. * collision of lyrics with span_bars. See star-spangled. . * fix partial measures in meaningful way. -. * Michael - -- The two spacing bugs in the choral-1.ly I sent you earlier, small -GIFs attached for easy reference: #1: time meter and first note on the -line are too close; #2: last note on the line and next bar are too -close. . * relative mode for midi2ly . * Crescendi/diminuendi that cross a line break lose their vertical diff --git a/VERSION b/VERSION index 0e9fb9aa7b..2e50a6e996 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=1 -PATCH_LEVEL=58 +PATCH_LEVEL=59 MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a diff --git a/input/bugs/2pianobrace.ly b/input/bugs/2pianobrace.ly new file mode 100644 index 0000000000..a5c7cb406a --- /dev/null +++ b/input/bugs/2pianobrace.ly @@ -0,0 +1,6 @@ +\score { \notes { +\context StaffGroup <\context PianoStaff = PA< c4 d4 > + \context PianoStaff =PB < c4 d4 > +>} +} + diff --git a/input/test/repeat-semifold.ly b/input/test/repeat-semifold.ly index 58d03f8cc8..6baf4e60fd 100644 --- a/input/test/repeat-semifold.ly +++ b/input/test/repeat-semifold.ly @@ -4,6 +4,7 @@ \repeat semi 3 { c^"3$\\times$ 0alt" d } % less alts than body \repeat semi 4 { c^"4$\\times$ 2alt" d } \alternative { e f } + % more alts than body \repeat semi 2 { c^"2$\\times$ 3alt" d } \alternative { e f g } }} diff --git a/lily/bar-engraver.cc b/lily/bar-engraver.cc index 2d48eb6c4a..84ada321e8 100644 --- a/lily/bar-engraver.cc +++ b/lily/bar-engraver.cc @@ -74,11 +74,11 @@ Bar_engraver::create_bar () /** Make a barline. If there are both |: and :| requested, merge them - to :|: + to :|:. */ void -Bar_engraver::request_bar (String type_str) +Bar_engraver::request_bar (String requested_type) { Scalar prop = get_property ("barAtLineStart", 0); if (!now_mom ()) @@ -87,13 +87,17 @@ Bar_engraver::request_bar (String type_str) if (!prop.to_bool ()) return; } + bool bar_existed = bar_p_; create_bar (); - - if (((type_str == "|:") && (bar_p_->type_str_ == ":|")) - || ((type_str == ":|") && (bar_p_->type_str_ == "|:"))) + if (bar_existed && requested_type == "") + { + return; + } + else if (((requested_type == "|:") && (bar_p_->type_str_ == ":|")) + || ((requested_type == ":|") && (bar_p_->type_str_ == "|:"))) bar_p_->type_str_ = ":|:"; - else if (type_str_.length_i ()) - bar_p_->type_str_ = type_str; + else + bar_p_->type_str_ = requested_type; } void diff --git a/lily/lookup.cc b/lily/lookup.cc index e82dd2f808..9dee0018d2 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -490,6 +490,19 @@ Molecule Lookup::staff_brace (Real y, int staff_size) const { Molecule m; + /* + (define (pianobrace y staffht) + (let* ((step 1.0) + (minht (* 2 staffht)) + (maxht (* 7 minht)) + ) + (string-append + (select-font (string-append "feta-braces" (number->string (inexact->exact staffht))) 0) + (char (max 0 (/ (- (min y (- maxht step)) minht) step)))) + ) + ) + */ + Atom at (gh_list (pianobrace_scm_sym, gh_double2scm (y), diff --git a/ly/engraver.ly b/ly/engraver.ly index 36fe345691..dfd6ca731e 100644 --- a/ly/engraver.ly +++ b/ly/engraver.ly @@ -9,8 +9,10 @@ StaffContext=\translator { voltaVisibility = "1"; \consists "Multi_measure_rest_engraver"; - \consists "Repeat_engraver"; \consists "Bar_engraver"; + % Bar_engraver must be first so default bars aren't overwritten +% with empty ones. + \consists "Repeat_engraver"; \consists "Clef_engraver"; \consists "Key_engraver"; \consists "Time_signature_engraver"; diff --git a/scm/lily.scm b/scm/lily.scm index 139b94cfa8..cdeca540f1 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -105,8 +105,8 @@ (("Clef_item" "Span_bar") . (minimum_space 3.7)) (("Time_signature" "Span_bar") . (minimum_space 2.0)) (("Key_item" "Span_bar") . (minimum_space 2.5)) - (("Staff_bar" "Time_signature") . (minimum_space 2.0)) - (("Time_signature" "begin-of-note") . (extra_space 1.0)) ; Huh? see twinkle.ly + (("Staff_bar" "Time_signature") . (minimum_space 1.5)) ;double check this. + (("Time_signature" "begin-of-note") . (extra_space 2.0)) ;double check this. (("Key_item" "begin-of-note") . (extra_space 2.5)) (("Staff_bar" "begin-of-note") . (extra_space 1.0)) (("Clef_item" "begin-of-note") . (minimum_space 5.0)) @@ -118,8 +118,6 @@ ) ) - - (define (break-align-spacer this next) (let ((entry (assoc `(,this ,next) space-alist))) (if entry @@ -220,7 +218,7 @@ ; by executing a 0 0 moveto (define (embedded-ps s) - (string-append "\\special{ps: @beginspecial @setspecial " s " @endspecial}")) + (string-append "\\embeddedps{" s "}")) (define (end-output) "\n\\EndLilyPondOutput") @@ -238,17 +236,7 @@ ;; UGH - (define (header-end) (string-append -"\\special{!" -"/stafflinethickness \\mudelapaperstaffline0 def " ;may we burn in hell. -"/interline \\mudelapaperinterline0 %\n def " -"interline 3 div /bracket_b exch def " -"interline 2 mul /bracket_w exch def " -"stafflinethickness 2 mul /bracket_t exch def " -"interline 1.5 mul /bracket_v exch def " -"bracket_v /bracket_u exch def " -"50 /bracket_alpha exch def " -"1 setlinecap}")) + (define (header-end) "\\turnOnPostScript") (define (header creator generate) (string-append @@ -448,7 +436,7 @@ (define (beam width slope thick) (string-append - (numbers->string (list width slope thick)) " draw_beam " )) + (numbers->string (list width slope thick)) " draw_beam" )) (define (bracket h) (invoke-dim1 " draw_bracket" h)) @@ -470,7 +458,7 @@ (number->string (* 2 thick)) " ] 0 draw_dashed_slur")) - (define (decrescendo w h cont thick) + (define (decrescendo thick w h cont) (string-append (numbers->string (list w h (inexact->exact cont) thick)) " draw_decrescendo")) -- 2.39.5