- 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
===========
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.
--- /dev/null
+\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'
+ }
+ >
+}
/** 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
{
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;
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"
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
%define name lilypond
-%define version 1.5.19
+%define version 1.5.20
%define release 1mdk
Name: %{name}
%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
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/
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#);
(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 ))
(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.")
"a single piece of lyrics"
'(
word-space
+ alignment
+ ignore-length-mismatch
+ begin-alignment
end-alignment
))
+
(use-modules (ice-9 format))
(define (ascii->string i) (make-string 1 (integer->char i)))
((eq? action-name 'volta) volta)
(else (error "unknown tag -- SKETCH-SCM " action-name))
)
- )
\ No newline at end of file
+ )
+
+