From: Jan Nieuwenhuizen Date: Wed, 9 Feb 2000 12:17:57 +0000 (+0100) Subject: patch::: 1.3.23.jcn1 X-Git-Tag: release/1.3.24~2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=f1881e37cc08bb049098286a2179e33c13595ba3;p=lilypond.git patch::: 1.3.23.jcn1 1.3.23.jcn1 =========== * Made quanting lists in scm/paper.scm comply with actual quantise_iv algorithm: period = quants.top () - quants[0]. This fixes beam vertical quanting problems. Beam quanting should now actually be better than 1.2.17, which has a symmetry problem as revealed by the new input/test/beam-pos.ly. --- diff --git a/CHANGES b/CHANGES index 075a01b1e1..da40977b30 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,12 @@ +1.3.23.jcn1 +=========== + +* Made quanting lists in scm/paper.scm comply with actual quantise_iv + algorithm: period = quants.top () - quants[0]. This fixes beam + vertical quanting problems. Beam quanting should now actually be + better than 1.2.17, which has a symmetry problem as revealed by the + new input/test/beam-pos.ly. + 1.3.22.hwn2 =========== diff --git a/VERSION b/VERSION index 8135fdaa69..36db9aa7b4 100644 --- a/VERSION +++ b/VERSION @@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=3 PATCH_LEVEL=23 -MY_PATCH_LEVEL= +MY_PATCH_LEVEL=jcn1 # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/input/test/beam-pos.ly b/input/test/beam-pos.ly index 2d6dcdfc1f..0e21966204 100644 --- a/input/test/beam-pos.ly +++ b/input/test/beam-pos.ly @@ -1,17 +1,29 @@ -\version "1.3.5"; +\header{ +filename = "beam-pos.ly"; +composer = "jcn"; +enteredby = "jcn"; +copyright = "PD"; -\score{ - \notes\transpose c''{ - % \property Score.beamQuantisation = 'test +TestedFeatures = "beam quant positions"; +} - [c8 c] [c c] [c c] [c c] - [a' a'] [a' a'] [a' a'] [a' a'] - [c16 c] [c c] [c c] [c c] - [a' a'] [a' a'] [a' a'] [a' a'] +\score{ + \notes\relative c' { + [c8 c] [a'' a] + [a, a] [c c] + [d,8 d] [g' g] + [g, g] [d' d] + [c,16 c c c] [a'' a a a] + [a, a a a] [c c c c] + \break + [c,32 c c c c c c c] [a'' a a a a a a a] + [f, f f f f f f f] [e' e e e e e e e] + \break + [c,8 d] [a'' g] + [g, f] [d' e] + \break } \paper{ - castingalgorithm = \Wordwrap; - linewidth = 60.0\mm; } } diff --git a/scm/paper.scm b/scm/paper.scm index eed1093b7f..36ccac9622 100644 --- a/scm/paper.scm +++ b/scm/paper.scm @@ -27,28 +27,33 @@ (define beam-sit (/ (+ beam-thickness staff-line) 2)) (define beam-hang (- 1 (/ (- beam-thickness staff-line) 2))) +;; Note: quanting period is take as quants.top () - quants[0], +;; which should be 1 (== 1 interline) + (define beam-normal-dy-quants (list 0 (/ (+ beam-thickness staff-line) 2) (+ beam-thickness staff-line) 1)) ;; two popular veritcal beam quantings ;; see params.ly: #'beam-vertical-quants (define (beam-normal-y-quants multiplicity dy) - (let ((quants (list beam-hang 1))) + (let ((quants (list beam-hang))) (if (or (<= multiplicity 1) (>= (abs dy) (/ staff-line 2))) (set! quants (cons beam-sit quants))) (if (or (<= multiplicity 2) (>= (abs dy) (/ staff-line 2))) (set! quants (cons beam-straddle quants))) - quants)) + ;; period: 1 (interline) + (append quants (list (+ 1 (car quants)))))) (define (beam-traditional-y-quants multiplicity dy) - (let ((quants '(1))) + (let ((quants '())) (if (>= dy (/ staff-line -2)) (set! quants (cons beam-hang quants))) (if (and (<= multiplicity 1) (<= dy (/ staff-line 2))) (set! quants (cons beam-sit quants))) (if (or (<= multiplicity 2) (>= (abs dy) (/ staff-line 2))) (set! quants (cons beam-straddle quants))) - quants)) + ;; period: 1 (interline) + (append quants (list (+ 1 (car quants)))))) ;; There are several ways to calculate the direction of a beam