]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.5.20 release/1.5.20
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 28 Oct 2001 16:00:07 +0000 (17:00 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 28 Oct 2001 16:00:07 +0000 (17:00 +0100)
===========

* Sketch output:

  - Sketch uses feta font.
  - Fix to linewidth and feta fontsize.
   - mf-to-table: write dummy values in afm to make sketch happy.
  - Fixes to glyphs: rectangles beziers work now.
   - Bugfix: sketch.scm: use primitive-eval.

* Sketch and feta Type1 fonts:
   - textrace:
      wget http://www.inf.bme.hu/~pts/textrace-latest.tar.gz
      tar xzf textrace-latest.tar.gz
@@ -15,18 +17,23 @@
      (cd autotrace-0.27ap; ./configure; make)
      ./traceall.sh feta20 feta20.pfb $HOME/usr/src/lilypond/mf/out

  - copy mf/out/feta20.* to sketch/Resources/Fontmetrics

   - append to sketch/Resources/Fontmetrics/std.sfd:
      echo 'TeX-feta20,feta20,Roman,-gnu-feta20-medium-r-normal,adobe-fontspec\ific,feta20' > $HOME/usr/src/sketch/sketch/Resources/Fontmetrics/std.sfd

   - Hmm, then find that

     + Sketch accesses characters by name, ie, the
      name characters have in default text fonts.  Luckily, textrace
      mangles the feta names too.  Sadly, textrace chooses different names
      for characters > 128.

    + Textrace mangles font name by prepending `TeX-'.  Doesn't seem to
      pose a big problem; we'll have to pefix `TeX-' to feta fonts.

    + Sadly, only the sketch-0.7.x is happy with the feta type1 font, but
      printing is not yet implemented?

 * Remove modules directory (again?).

1.5.18.m

15 files changed:
CHANGES
VERSION
input/regression/lyric-align.ly [new file with mode: 0644]
lily/syllable-group.cc
ly/script-init.ly
make/out/lilypond.lsm
make/out/lilypond.mandrake.spec
make/out/lilypond.redhat.spec
make/out/lilypond.suse.spec
mf/feta-schrift.mf
modules/GNUmakefile [deleted file]
scm/grob-description.scm
scm/grob-property-description.scm
scm/interface-description.scm
scm/sketch.scm

diff --git a/CHANGES b/CHANGES
index 24ccbb7f7226ed555b807418066f6f1e3e5c8774..1ef6a0d7585984d672656fd895500fa5bbf08994 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -5,26 +5,26 @@
 
   - Sketch uses feta font.
   - Fix to linewidth and feta fontsize.
-  - mf-to-table: write dummy values in afm to make sketch happy.
+   - mf-to-table: write dummy values in afm to make sketch happy.
   - Fixes to glyphs: rectangles beziers work now.
-  - Bugfix: sketch.scm: use primitive-eval.
+   - Bugfix: sketch.scm: use primitive-eval.
 
 * Sketch and feta Type1 fonts:
-  - textrace:
-     wget http://www.inf.bme.hu/~pts/textrace-latest.tar.gz
-     tar xzf textrace-latest.tar.gz
-     cd textrace-0.47
-     (cd autotrace-0.27ap; ./configure; make)
-     ./traceall.sh feta20 feta20.pfb $HOME/usr/src/lilypond/mf/out
+   - textrace:
+      wget http://www.inf.bme.hu/~pts/textrace-latest.tar.gz
+      tar xzf textrace-latest.tar.gz
+@@ -15,18 +17,23 @@
+      (cd autotrace-0.27ap; ./configure; make)
+      ./traceall.sh feta20 feta20.pfb $HOME/usr/src/lilypond/mf/out
 
   - copy mf/out/feta20.* to sketch/Resources/Fontmetrics
 
-  - append to sketch/Resources/Fontmetrics/std.sfd:
-      echo 'TeX-feta20,feta20,Roman,-gnu-feta20-medium-r-normal,adobe-fontspecific,feta20' > $HOME/usr/src/sketch/sketch/Resources/Fontmetrics/std.sfd
+   - append to sketch/Resources/Fontmetrics/std.sfd:
+      echo 'TeX-feta20,feta20,Roman,-gnu-feta20-medium-r-normal,adobe-fontspec\ific,feta20' > $HOME/usr/src/sketch/sketch/Resources/Fontmetrics/std.sfd
 
-  - Hmm, then find that
+   - Hmm, then find that
 
-    + Sketch accesses characters by name, ie, the
+     + Sketch accesses characters by name, ie, the
       name characters have in default text fonts.  Luckily, textrace
       mangles the feta names too.  Sadly, textrace chooses different names
       for characters > 128.
     + Sadly, only the sketch-0.7.x is happy with the feta type1 font, but
       printing is not yet implemented?
 
-* Remove modules directory (again?).
+ * Remove modules directory (again?).
 
-1.5.19
-======
+
+1.5.18.moh1
+===========
+
+* Further work on more flexible control of lyric alignment.
+   - new properties "alignment", "ignore-length-mismatch", "begin-alignment" a\nd "end-alignment" to control non-centered lyric alignment
+
+
+1.5.19.hjj1
+===========
+
+* Added \portato.
 
 1.5.18.jcn1
 ===========
diff --git a/VERSION b/VERSION
index 74a4795817805b81a2c6853cae386c265288cd86..9a676c90ea16306076ba5783103dde9397a9f1b8 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=5
-PATCH_LEVEL=19
-MY_PATCH_LEVEL=jcn3
+PATCH_LEVEL=20
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
diff --git a/input/regression/lyric-align.ly b/input/regression/lyric-align.ly
new file mode 100644 (file)
index 0000000..a660e4c
--- /dev/null
@@ -0,0 +1,73 @@
+\version "1.3.146"
+\header{
+  texidoc="Lyric alignment
+
+  Lyric alignment is adjustable both interms of alignment between stanzas and on notehead.
+
+  If the property alignment is not set, there is automatic determination of alignment type based on punctuation. (ee lyric-phrasing.ly)
+
+"
+}
+
+%\paper { linewidth = -1. }
+\score {
+  \addlyrics
+    \context Voice = "v" \notes  \relative c'' {
+      \property Staff.automaticMelismata = ##t
+      \cadenzaOn
+      a\breve  \bar "||" a1 \bar "|"  a \bar "|"  a \bar "||" \break a \bar "|" a \bar "|" a  \bar "|" a \bar "||" \break a \bar "|" a \bar "|."
+    }
+    \context Lyrics <
+      \context LyricsVoice = "v-1" \lyrics {
+%        \property LyricsVoice . stanza = "1:"
+       \property Lyrics . LyricText \override #'ignore-length-mismatch = ##t
+       \property Lyrics . LyricText \override #'alignment = #-1
+       \property Lyrics . LyricText \override #'begin-alignment = #8
+
+       "Particularly useful for reciting notes  "
+       left
+
+       \property Lyrics . LyricText \override #'alignment = #0
+
+       centered
+
+       \property Lyrics . LyricText \override #'alignment = #1        
+
+       right
+
+       \property Lyrics . LyricText \override #'alignment = #-1 
+       \property Lyrics . LyricText \override #'begin-alignment = #2 
+
+       left_half_way
+
+       \property Lyrics . LyricText \override #'begin-alignment = #4 
+
+       left_one_quarter
+
+       \property Lyrics . LyricText \override #'begin-alignment = #10
+
+       left_one_tenth
+
+       \property Lyrics . LyricText \override #'begin-alignment = #1
+
+       left_one_whole
+
+       \property Lyrics . LyricText \override #'ignore-length-mismatch = ##f
+       \property Lyrics . LyricText \override #'begin-alignment = #4
+
+       Very_short_lyrics_remain_in_touch_with_their_note
+
+       \property Lyrics . LyricText \override #'alignment = #1
+       \property Lyrics . LyricText \override #'end-alignment = #1.1
+       \property Lyrics . LyricText \override #'ignore-length-mismatch = ##t
+
+
+       Unless_ignore-length-mismatch_is_true
+
+      }
+      \context LyricsVoice = "v-2" \lyrics {
+%        \property LyricsVoice . stanza = "2:"
+        " with many syllables under them." l c r l l l x x x  note' true'
+      }
+   >
+}
index 84a3f7fa485785e51d4f6325aa184d15e3dd1982..65aa936a374bb86281b6906c258e904d51d70c85 100644 (file)
@@ -131,7 +131,7 @@ Syllable_group::set_lyric_align (const char *punc, Grob *default_notehead_l)
 /** determine the distance to translate lyrics to get correct alignment
     Rules: If alignment is centre, translate = 0
            Otherwise,
-             If (length of longest lyric) < property("end-alignment") * (length of shortest lyric),
+             If (length of longest lyric) < (property {begin,end}-alignment) * (length of shortest lyric),
                 - centre longest lyric on notehead
              Otherwise
                 - move so shortest lyric just reaches notehead centre
@@ -141,11 +141,20 @@ Syllable_group::amount_to_translate ()
 {
   Real translate = 0.0;
   if (alignment_i_ != CENTER) {
-    // FIXME: do we really know the lyric extent here? Some font sizing comes later?
-    Real l1 = longest_lyric_l_->extent (longest_lyric_l_, X_AXIS).length () / gh_scm2double (longest_lyric_l_->get_grob_property("end-alignment"));
-    Real l2 = shortest_lyric_l_->extent (shortest_lyric_l_, X_AXIS).length ();
-
-    translate = l1 <? l2;
+    switch (alignment_i_) {
+      // FIXME: do we really know the lyric extent here? Some font sizing comes later?
+    case LEFT: 
+      translate =  longest_lyric_l_->extent (longest_lyric_l_, X_AXIS).length () / gh_scm2double (longest_lyric_l_->get_grob_property("begin-alignment"));
+      break;
+    case RIGHT: 
+      translate =   longest_lyric_l_->extent (longest_lyric_l_, X_AXIS).length () / gh_scm2double (longest_lyric_l_->get_grob_property("end-alignment"));
+      break;
+    }
+    if (!gh_scm2bool(longest_lyric_l_->get_grob_property("ignore-length-mismatch"))) {
+      Real l = shortest_lyric_l_->extent (shortest_lyric_l_, X_AXIS).length ();
+      translate = l <? translate;
+    }
+    
     translate *= alignment_i_ ;
   }
   return translate;
index b0fcedd3dc6c0cacd41839494cfbfd2371e31fde..e81d20d96bc3235600c48d80a4cb8d8c6a1e3a69 100644 (file)
@@ -13,15 +13,10 @@ thumb = \script "thumb"
 accent = \script "accent"
 marcato = \script "marcato"
 staccatissimo = \script "staccatissimo"
-
-% portato is indicated
-% either by
-%   *  slurred & dotted notes. 
-%or by
-%  * slur and dash notes.
-% Neither are  really supported, but c4-.-- should work.
-% portato = \script "portato"
-
+% Changed 27th October 2001 Heikki Junes <heikki.junes@hut.fi>
+%  * portato = tenuto & staccato
+%  * if you use portato = slur & staccato, then apply "c( d )e-."
+portato = \script "portato"
 fermata = \script "fermata"
 stopped = \script "stopped"
 staccato = \script "staccato"
index f81ccc5f1595d459496c938f0da47a0489ebd330..5125d402aded38f8f5119db385198745ccc7e0e5 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.5.19
-Entered-date: 23OKT01
+Version: 1.5.20
+Entered-date: 29OKT01
 Description: @BLURB@
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.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
-       1000k lilypond-1.5.19.tar.gz 
+       1000k lilypond-1.5.20.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.5.19.tar.gz 
+       1000k lilypond-1.5.20.tar.gz 
 Copying-policy: GPL
 End
index 225ce984508bf438b154789bd84692304690a9f6..753566a11e0943d7903a41bcd7e2c4b096b86034 100644 (file)
@@ -1,5 +1,5 @@
 %define name lilypond
-%define version 1.5.19
+%define version 1.5.20
 %define release 1mdk
 
 Name: %{name}
index 96197d0358eb0030227e76ce41e5e9701eaa5419..baf0a5dabfeec3e06f67b0695bd9c55cbc211143 100644 (file)
@@ -1,11 +1,11 @@
 %define info yes
 
 Name: lilypond
-Version: 1.5.19
+Version: 1.5.20
 Release: 1
 License: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.19.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.20.tar.gz
 Summary: Create and print music notation 
 URL: http://www.lilypond.org/
 BuildRoot: /tmp/lilypond-install
index 5dd26d69b5806e4d896940f851c0d824f514e366..3173831f5edac88bf5a84219ed5bded06546b24c 100644 (file)
 
 Distribution: SuSE Linux 7.0 (i386)
 Name: lilypond
-Version: 1.5.19
+Version: 1.5.20
 Release: 2
 Copyright:    GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.19.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.20.tar.gz
 # music notation software for.. ?
 Summary: A program for printing sheet music.
 URL: http://www.lilypond.org/
index b0481341a7a4c33c4234264b4a8286d7786ee811..b9bc92b634623dbb2d427cae11edf83e5d4a80b4 100644 (file)
@@ -177,6 +177,42 @@ fet_beginchar("portato/single tenuto", "tenuto", "tenuto")
 fet_endchar;
 
 
+%
+% Portato by Heikki Junes <heikki.junes@hut.fi>
+%
+
+def draw_portato = 
+       save thick, radius;
+       thick# = 1.4 stafflinethickness#;
+       define_pixels(thick);
+       radius# = 1.4 stafflinethickness#;
+       define_pixels(radius);
+       
+       set_char_box(.6 staff_space#, .6 staff_space#, thick#/2,.5 staff_space#+ radius#);
+       pickup pencircle scaled thick;
+       lft x1 = -b;
+       rt x2 = w;
+       y1 = y2 = 0;
+       draw z1 .. z2;
+
+       pickup pencircle scaled 2 radius;
+       draw (0,h);
+enddef;
+
+
+fet_beginchar("portato/tenuto with staccato", "uportato", 
+               "uportato")
+       draw_portato;
+fet_endchar;
+
+
+fet_beginchar("portato/tenuto with staccato", "dportato", 
+               "dportato")
+       draw_portato;
+       y_mirror_char
+fet_endchar;
+
+
 def draw_marcato = 
        save fat_factor, thinness;
        set_char_box(staff_space#/2, staff_space#/2, 0, 1.1 staff_space#);
diff --git a/modules/GNUmakefile b/modules/GNUmakefile
deleted file mode 100644 (file)
index e69de29..0000000
index c47c7c9d82eb114120c3b2816a1518a898b01f01..51b78e8f12b64a7f5bc40457cb805b2942c5146f 100644 (file)
                (self-alignment-X . 0)
                (non-rhythmic . #t)
                (word-space . 0.6)
-               (end-alignment . 5)
+                (ignore-length-mismatch . #f)
+                (begin-alignment . 4)
+                (end-alignment . 2)
                (font-family . roman)
                (font-shape . upright)
                (meta . ,(grob-description lyric-syllable-interface text-interface font-interface ))
index 1546486b5e75a1a251d05c4beff4f09dc09051cb..d16013e6c31e21790cfd563a8fd13df89d1f8b52 100644 (file)
@@ -382,7 +382,10 @@ function of type (beam multiplicity dy staff-line-thickness) -> real.  Default v
 (grob-property-description 'visibility-lambda procedure? "a function that takes the break direction and returns a  cons of booleans containing (TRANSPARENT . EMPTY).")
 (grob-property-description 'when moment? "when does this column happen?.")
 (grob-property-description 'word-space number? "elongate left by this much (FIXME: cumbersome semantics).")
-(grob-property-description 'end-alignment number? "proportion of lyric length to align with note-head for non-centered lyrics.")
+(grob-property-description 'alignment number? "alignment of lyrics on notehead, -1 is LEFT, 0 is CENTRE, 1 is RIGHT .")
+(grob-property-description 'ignore-length-mismatch boolean? "if #t, stanzas with shorter lyrics can be moved away from their respective note-head by the lyric alignment code.")
+(grob-property-description 'begin-alignment number? "proportion of lyric length from beginning to align with note-head for left-aligned lyrics.")
+(grob-property-description 'end-alignment number? "proportion of lyric length from end to align with note-head for right-aligned lyrics.")
 (grob-property-description 'x-gap number? "horizontal gap between notehead and tie.")
 (grob-property-description 'y-free number? "minimal vertical gap between slur and noteheads or stems.")
 (grob-property-description 'y-offset number? "extra vertical offset for ties away from the center line.")
index 8f64d30c3a6fc8a336bf4be6bc78988c6d38142c..42129c4b399d956c17aee9ea02a08c1ef7f92134 100644 (file)
@@ -535,6 +535,9 @@ that helps show the length of a melissima (tied/slurred note)."
    "a single piece of lyrics"
    '(
     word-space
+    alignment
+    ignore-length-mismatch
+    begin-alignment
     end-alignment
     ))
 
index 5e1f893dfc536971ac4c19945924b5bf30238866..58fe938749808fbe75293440d0f2cdccc266ee62 100644 (file)
@@ -1,5 +1,6 @@
 
 
+
 (use-modules (ice-9 format))
 
 (define (ascii->string i) (make-string 1 (integer->char i)))
@@ -313,4 +314,6 @@ layer('Layer 1',1,1,0,0,(0,0,0))
        ((eq? action-name 'volta) volta)
        (else (error "unknown tag -- SKETCH-SCM " action-name))
        )
-  )
\ No newline at end of file
+  )
+
+