---- ../lilypond-1.3.139.jcn5/CHANGES Sun Mar 18 23:47:14 2001
-++ b/CHANGES Mon Mar 19 10:21:46 2001
-@@ -1,3 +1,8 @@
-1.3.139.jcn6
-============
-
-* Bugfix: ly2dvi sets footers, headers, tagline. Pagenumbering on by default.
-
- 1.3.139.jcn5
- ============
- --- ../lilypond-1.3.139.jcn4/CHANGES Sun Mar 18 23:27:12 2001
-++ b/CHANGES Sun Mar 18 23:47:14 2001
-@@ -1,3 +1,8 @@
1.3.139.jcn5
============
* Coriolan gets mutopia-id 57.
- 1.3.139.jcn4
- ============
- --- ../lilypond-1.3.139.jcn3/CHANGES Sun Mar 18 19:41:31 2001
-++ b/CHANGES Sun Mar 18 23:27:12 2001
-@@ -1,3 +1,8 @@
-1.3.139.jcn4
-============
-
* Experimental start of ports to mutopia archive.
- 1.3.139.jcn3
- ============
- --- ../lilypond-1.3.139.jcn2/CHANGES Sun Mar 18 17:33:23 2001
-++ b/CHANGES Sun Mar 18 19:41:31 2001
-@@ -1,3 +1,12 @@
-1.3.139.jcn3
-============
-
* Bugfix: ly2dvi: added letter support, catch indexing with unknown
papersize names.
* ly2dvi: removed warning message and changed --set=papersizename= to
--set=papersize=. This fixes mutopia letter-targets.
- 1.3.139.jcn2
- ============
- --- ../lilypond-1.3.139.jcn1/CHANGES Sun Mar 18 14:46:40 2001
-++ b/CHANGES Sun Mar 18 17:33:23 2001
-@@ -1,3 +1,13 @@
-1.3.139.jcn2
-============
-
* Small fixes to Coriolan.
* Bugfix: don't typeset suicided multi-measure-rests, don't set
* Bugfix: line-column-location.
- 1.3.139.jcn1
- ============
- 1.3.139.jcn1
-============
-
* Allow markup text for crecscendoText and decrescendoText.
* Changed part combiner's a due text: `a2 to a2.
+* Bugfix: info direntries.
+
+* Automated fixing of info structure. Build now stops on info errors.
+This should robustify documentation and website builds. To undo this,
+remove the target `info: check-info' from Documentation/user/GNUmakefile.
+
+1.3.139.hwn1
+=============
+
+* Move Multi_measure_rest up/down in combined parts.
+
* Renamed FollowThread into VoiceFollower, followThread into
followVoice.
* lilypond-book: changed nonfragment into nofragment
-* Bugfix: info direntries.
+* Cleanups for ledgered rests.
* Bugfix; don't create RhythmicStaff if asking for Staff.
-* Automated fixing of info structure. Build now stops on info errors.
-This should robustify documentation and website builds. To undo this,
-remove the target `info: check-info' from Documentation/user/GNUmakefile.
+* Bugfix: sparseTies.
-* Move Multi_measure_rest up/down in combined parts.
+* Reference manual: hara kiri, font selection
-* Cleanups for ledgered rests.
+* changed font-point-size into font-design-size
+
1.3.139
=======
-1.3.138.jcn1
-============
-
* Documentation build fixes.
1.3.138.hwn1
@lilypondfile[printfilename]{part-combine.ly}
-@lilypondfile[printfilename,nonfragment]{size11.ly}
+@lilypondfile[printfilename,nofragment]{size11.ly}
-@lilypondfile[printfilename,nonfragment]{size13.ly}
+@lilypondfile[printfilename,nofragment]{size13.ly}
-@lilypondfile[printfilename,nonfragment]{size16.ly}
+@lilypondfile[printfilename,nofragment]{size16.ly}
-@lilypondfile[printfilename,nonfragment]{size20.ly}
+@lilypondfile[printfilename,nofragment]{size20.ly}
-@lilypondfile[printfilename,nonfragment]{size23.ly}
+@lilypondfile[printfilename,nofragment]{size23.ly}
-@lilypondfile[printfilename,nonfragment]{size26.ly}
+@lilypondfile[printfilename,nofragment]{size26.ly}
The ABC standard is not very "standard". For extended features
(eg. polyphonic music) different conventions exist.
-[TODO: describe limitations]
-
@node pmx2ly
@section pmx2ly
@item
-@item @strong{e-flat} [todo]
-
-@item
-
@item @strong{e} @tab mi @tab mi @tab E @tab e @tab e @tab e @tab e
@item
@menu
* Key signature::
* Time signature::
+* Unmetered music::
* Bar lines::
@end menu
@end example
@cindex @code{|}
+
+@node Unmetered music
+@subsection Unmetered music
+
+Bar lines and bar numbers are calculated automatically. For unmetered
+music (e.g. cadenzas), this is not desirable. The property
+@code{Score.timing} can be used to switch off this automatic timing
+
+@lilypond[fragment,relative,singleline,verbatim]
+c'2.
+\property Score.timing = ##f
+c4 c4 c4
+\property Score.timing = ##t
+c4 c4 c4
+@end lilypond
+
+The identifiers @code{\cadenzaOn} and @code{\cadenzaOff} can be used to
+achieve the same effect.
+
+
+
@c . {Bar lines}
@node Bar lines
@subsection Bar lines
@lilypond[fragment,verbatim]
\relative c'' {
\grace c8 c4 \grace { [c16 c16] } c4
- \grace { \property Grace.Stem \override #'flag-style = ##f c16 } c4
+ \grace { \property Grace.Stem \override #'flag-style = #'() c16 } c4
}
@end lilypond
@node Hara-kiri staffs
@subsection Hara-kiri staffs
+In orchestral scores, staffs that only have rests are usually removed.
+This saves some space. LilyPond also supports this through the
+hara-kiri@footnote{Hara kiri, also called Seppuku, is the ritual suicide
+of the Japanese Samourai warriors.} staff. This staff commits suicide
+when it finds itself to be empty after the line-breaking process---note
+that it will not disappear when it contains normal rests, you must use
+multi measure rests.
+
+The hara kiri staff is specialized version of the Staff context. It is
+available as the context identifier @code{\HaraKiriStaffContext}.
+Observe how the second staff in this example disappears in the second
+line.
-[TODO]
-
-@footnote{Harakiri, also called Seppuku, is the ritual suicide of
-the Japanese Samourai warriors.}
+@lilypond[verbatim]
+\score {
+ \notes \relative c' <
+ \context Staff = SA { e4 f g a \break c1 }
+ \context Staff = SB { c4 d e f \break R1 }
+ >
+ \paper {
+ linewidth = 6.\cm ;
+ \translator { \HaraKiriStaffContext }
+ }
+}
+@end lilypond
* Tuning groups of grobs ::
* Tuning per grob ::
* What to tune?::
+* Font selection::
* Text markup::
@end menu
overview of the context, listing which grob types are created there.
+@node Font selection
+@subsection Font selection
+
+Most graphics in LilyPond are composed of characters of fonts. You can
+alter the characteristics of the font by setting certain grob
+properties. The mechanism that is used for this resembles LaTeX's New
+Font Selection Scheme. Within this scheme, a font is entirely
+characterized by its font name.
+
+For each grob that uses fonts (in other words, each grob that supports
+@code{font-interface}) a font-name must be selected before it can be
+printed. The font name is selected by looking at a number of grob
+properties:
+
+@table @code
+@item font-family
+ The general class of the typeface. Supported are roman (Computer
+Modern), braces (for piano staff braces), music (the standard music
+font), dynamic (font for dynamic signs) and typewriter
+
+@item font-shape
+ A symbol indicating the shape of the font, a finer gradation than
+ font-family. Choices are italic and upright
+@item font-series
+ Symbol indicating the serie of the font. Series form a finer gradation
+ than font-shape. Choices are medium and bold.
+
+@item font-relative-size
+ A number indicating the size relative the standard size. For example,
+ with 20pt staff height, relative size -1 corresponds to 16pt staff
+ height, and relative size +1 corresponds to 23 pt staff height.
+
+@item font-design-size
+A number indicating the design size of the font.
+
+This is a feature of the Computer Modern Font: each point size has a
+slightly different design. Smaller design sizes are relatively wider,
+which enhances readability. Scalable type faces such TrueType and Adobe
+Type1 usually come as ``one design fits all sizes''.
+
+@item font-name
+ The name of the font, without the design size, eg. @code{cmr},
+@code{cmti}, etc. Setting this overrides font-family, font-shape and
+font-series.
+
+@end table
+
+The font is selected by taking the first font that satisfies all
+qualifiers specified. You can override any of these fields through
+@code{\override} and @code{\revert}. The special value @code{*} matches
+any value for that qualifier.
+
+@example
+ \property Lyrics.LyricText \override #'font-series = #'bold
+ \property Lyrics.LyricText \override #'font-shape = #'*
+@end example
+
+@cindex @code{font-style}
+
+There are also pre-cooked font selection qualifiers. These are selected
+through the grob property @code{font-style}. For example, the style
+@code{finger} selects family @code{number} and relative size @code{-3}.
+Styles available include: volta, finger, tuplet, timesig, mmrest,
+script, large, Large and dynamic.
+
+The style sheets and tables for selecting fonts are located in
+@file{scm/font.scm}. Refer to this file for more information.
+
+@refbugs
+
+Relative size is not linked to any real size. There is no mechanism to
+select magnifications of fonts, meaning that you can not scale fonts
+continuoussly. There is no style sheet provided for other fonts besides
+the @TeX{} family.
+
+@cindex font selection
+@cindex font magnification
+@cindex @code{font-interface}
+
+@refbugs
+
@node Text markup
@subsection Text markup
@var{fontstyle} may be any of @code{finger volta timesig mmrest mark
script large Large dynamic}
-[wat is het verschil tussen fontstyle en abbrev?]
+[wat is het verschil tussen fontstyle en abbrev? ]
It is possible to use @TeX{} commands in the strings, but this should be
@end example
See @file{scm/font.scm} for details of @var{alist}.
-@item an \elementdescriptions declaration.
+ @item an \elementdescriptions declaration.
@example
\elementdescriptions @var{alist}
@end example
to the page layout of this document.
+@ignore
[TODO:
-* arpeggio, glissando,
-
-* \apply, \outputproperty, \translator @{@}, \molecule hacking.
-
-* font-size, cadenza. rhythmic staff, multi-stanza.
+* font-size, multi-stanza.
* Simple part combining in a Hymn
-
+@end ignore
@node An orchestral score
@section An orchestral score
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=3
-PATCH_LEVEL=139
-MY_PATCH_LEVEL=jcn6
+PATCH_LEVEL=140
+MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
+++ /dev/null
-%
-% mmrests of second voice should not disappear
-%
-% the problem is more complex: the mmrest-engraver lives at staff level,
-% but it seems that we need one per voice.
-%
-\score {
- \notes <
- \context Staff = Viole <
- \context Voice=one \partcombine Voice
- \context Thread=one \relative c''{ R1 d4 d d d }
- \context Thread=two { R1*2 }
- >
- >
- \paper {
-% {
- \translator {
- \StaffContext
- \remove Multi_measure_rest_engraver;
- \remove Bar_engraver;
- }
- \translator {
- \VoiceContext
- \consists Multi_measure_rest_engraver;
- \consists Bar_engraver;
- }
-% }
- }
-}
\ No newline at end of file
-% A simple scale in LilyPond
-%
-% Type:
-%
-% ly2dvi example-1
-% xdvi example-1 # or your dvi viewer here
-%
\score {
\context Voice \notes\relative c {
c' d e f g a b c
+
+ % A simple scale in Mudela.
+ %
+ % Type:
+ %
+ % ly2dvi example-1
+ % xdvi example-1 # or your dvi viewer here
+ %
+ % For more elaborate examples see twinkle.ly, input/* and mutopia/*.
+ %
+ % A docmument on Mudela is under construction: Documentation/tex/mudela.doc
+ % (available as .ps from the website too).
+
}
\paper { }
\midi { }
-% Some beamed and slurred notes of different taste in LilyPond
-%
-% Type:
-%
-% ly2dvi example-2
-% xdvi example-2 # or your dvi viewer here
-%
\score {
\context Voice \notes\relative c {
a''2 ~ c4( [e8 )e] [a,16 a a a]
+
+ % Some beamed and slurred notes of different taste in Mudela.
+ %
+ % Type:
+ %
+ % ly2dvi example-2
+ % xdvi example-2 # or your dvi viewer here
+ %
+ % For more elaborate examples see twinkle.ly, input/* and mutopia/*.
+ %
+ % A docmument on Mudela is under construction: Documentation/tex/mudela.doc
+ % (available as .ps from the website too).
+
}
\paper { }
\midi { }
\midi{}
}
-% A full example with two staffs
+% A full-mudela example with two staffs
%
% Type:
%
% ly2dvi example-3
% xdvi example-3 # or your dvi viewer here
+%
+% For more elaborate examples see twinkle.ly, input/* and mutopia/*.
+%
+% A docmument on Mudela is under construction: Documentation/tex/mudela.doc
+% (available as .ps from the website too).
{
for (int i = 0; i < arr_p->size (); i++)
{
- (*arr_p)[i][X_AXIS] = x* (*arr_p)[i][X_AXIS];
- (*arr_p)[i][Y_AXIS] = y* (*arr_p)[i][Y_AXIS];
+ (*arr_p)[i][X_AXIS] = x* (*arr_p)[i][X_AXIS];
+ (*arr_p)[i][Y_AXIS] = y* (*arr_p)[i][Y_AXIS];
}
}
{
Offset rot (complex_exp (Offset (0, phi)));
for (int i = 0; i < arr_p->size (); i++)
- (*arr_p)[i] = complex_multiply (rot, (*arr_p)[i]);
+ (*arr_p)[i] = complex_multiply (rot, (*arr_p)[i]);
}
void
translate (Array<Offset>* arr_p, Offset o)
{
for (int i = 0; i < arr_p->size (); i++)
- (*arr_p)[i] += o;
+ (*arr_p)[i] += o;
}
/*
#include "warn.hh"
+/*
+ TODO revise font handling.
+
+
+* relative sizes should relate to staff-space, eg. font-staff-space
+= 1.2 ^ relative-size
+
+* If a relative size is given, lily should magnify the closest
+design size font to match that. (ie. fonts should have variable
+scaling)
+
+(this requires that fonts are stored as (filename , designsize))
+
+
+
+ */
+
SCM
Font_interface::font_alist_chain (Grob *me)
{
*/
-static SCM name_sym, shape_sym, family_sym, series_sym, rel_sz_sym, pt_sz_sym, wild_sym;
+static SCM name_sym, shape_sym, family_sym, series_sym, rel_sz_sym, design_sz_sym, wild_sym;
static void
family_sym = scm_permanent_object (ly_symbol2scm ("font-family"));
series_sym = scm_permanent_object (ly_symbol2scm ("font-series"));
rel_sz_sym = scm_permanent_object (ly_symbol2scm ("font-relative-size"));
- pt_sz_sym = scm_permanent_object (ly_symbol2scm ("font-point-size"));
+ design_sz_sym = scm_permanent_object (ly_symbol2scm ("font-design-size"));
wild_sym = scm_permanent_object (ly_symbol2scm ("*"));
scm_make_gsubr ("ly-get-default-font", 1 , 0, 0, (Scheme_function_unknown) ly_font_interface_get_default_font);
SCM series = SCM_BOOL_F;
- SCM point_sz = ly_assoc_chain (pt_sz_sym, alist_chain);
+ SCM point_sz = ly_assoc_chain (design_sz_sym, alist_chain);
SCM rel_sz = SCM_BOOL_F;
if (!gh_pair_p (name))
#include "axes.hh"
-struct Box {
+struct Box
+{
Interval interval_a_[NO_AXES];
Interval &x () {return interval_a_[X_AXIS]; }
SCM pair = gh_list_ref (head_list, gh_int2scm (i/2));
Spanner * p = new Spanner (basic);
+
+ Tie::set_interface (p);
Tie::set_head (p,LEFT, dynamic_cast<Item*> (unsmob_grob (gh_car (pair))));
Tie::set_head (p,RIGHT, dynamic_cast<Item*> (unsmob_grob (gh_cdr (pair))));
Begin3
Title: LilyPond
-Version: 1.3.139
-Entered-date: 17MAR01
+Version: 1.3.140
+Entered-date: 19MAR01
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.3.139.tar.gz
+ 1000k lilypond-1.3.140.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 1000k lilypond-1.3.139.tar.gz
+ 1000k lilypond-1.3.140.tar.gz
Copying-policy: GPL
End
%define info yes
Name: lilypond
-Version: 1.3.139
+Version: 1.3.140
Release: 1
License: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.139.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.140.tar.gz
Summary: A program for printing sheet music.
URL: http://www.cs.uu.nl/~hanwen/lilypond
# Icon: lilypond-icon.gif
((eq? name 'font-shape) 2)
((eq? name 'font-family) 3)
((eq? name 'font-name) 4)
- ((eq? name 'font-point-size) 5)
+ ((eq? name 'font-design-size) 5)
(else (ly-warning "unknown font field name"))
)
))
(define (properties-to-font-name fonts properties-alist-list)
(let* (
;; change order to change priorities of qualifiers.
- (q-order '(font-name font-family font-series font-shape font-point-size font-relative-size))
+ (q-order '(font-name font-family font-series font-shape font-design-size font-relative-size))
(rawqualifiers (map (lambda (x) (chain-assoc x properties-alist-list))
q-order))
(qualifiers (filter-list pair? rawqualifiers))
;; if you want to set point-size, you cannot set
;; relative-size, as no font will be found for other
;; sheets than 20
- ;;(font-point-size . 20)
+ ;;(font-design-size . 20)
;;(font-relative-size . #f)
(meta . ,(grob-description "SystemStartDelimiter" system-start-delimiter-interface font-interface))
))
definition: music roman braces dynamic math ...")
(grob-property-description 'font-name symbol? "partial font definition:
base name of font file FIXME: should override other partials.")
-(grob-property-description 'font-point-size number? "partial font definition: exact font size in points FIXME: should override font-relative-size.")
+(grob-property-description 'font-design-size number? "partial font definition: exact font size in points FIXME: should override font-relative-size.")
(grob-property-description 'font-relative-size number? "partial font definition: the relative size compared the `normal' size.
0 is style-sheet's normal size, -1 is smaller, +1 is bigger, -1 is smaller.")
(grob-property-description 'font-series symbol? "partial font definition: medium, bold.")
'font-interface
"Any symbol that is typeset through fixed sets of glyphs (ie. fonts)"
'(font-style font-series font-shape font-family font-name
-font-point-size font-relative-size)
+font-design-size font-relative-size)
)
(engraver-description
"Note_head_line_engraver"
"Engrave a line between two note heads, for example a glissando.
-If followThread is set, staff switches also generate a line."
- '(Glissando FollowThread)
- '(followThread)))
+If followVoice is set, staff switches also generate a line."
+ '(Glissando VoiceFollower)
+ '(followVoice)))
(cons
'Note_name_engraver
(ie. at the start of the line) key signatures.")
-(translator-property-description 'followThread boolean?
+(translator-property-description 'followVoice boolean?
"if set, note heads are tracked across staff switches by a thin line")
(translator-property-description 'forceClef boolean? "Show clef symbol, even if it hasn't changed. Only active for the first clef after the property is set, not for the full staff.")
(translator-property-description 'forgetAccidentals boolean? "do
conversions.append (((1,3,138), conv, 'followThread -> followVoice.'))
+if 1:
+ def conv (str):
+ str = re.sub ('font-point-size', 'font-design-size', str)
+ return str
+
+ conversions.append (((1,3,139), conv, 'font-point-size -> font-design-size.'))
+
############################
'''
TODO:
- * check --dependencies
-
- * move versatile taglines,
-
- \header {
- beginfooter=\mutopiaPD
- endfooter=\tagline -> 'lily was here <version>'
- }
-
- * head/header tagline/endfooter
+ * --dependencies
* dvi from lilypond .tex output? This is hairy, because we create dvi
from lilypond .tex *and* header output.
'latexheaders' : [],
'latexpackages' : ['geometry'],
'papersize' : [],
- 'pagenumber' : [1],
+ 'pagenumber' : [],
'textheight' : [],
'linewidth' : [],
'orientation' : []
linewidth = 597
s = s + '\geometry{width=%spt%s,headheight=2mm,headsep=0pt,footskip=2mm,%s}\n' % (linewidth, textheight, orientation)
- s = s + r'''
-\usepackage[latin1]{inputenc}
+ s= s + r'''
+\usepackage[latin1]{inputenc}
\input{titledefs}
\makeatletter
-\renewcommand{\@oddfoot}{\parbox{\textwidth}{\mbox{}\makelilypondfooter}}%
+\renewcommand{\@oddfoot}{\parbox{\textwidth}{\mbox{}\thefooter}}%%
'''
-
- if extra['pagenumber'] and extra['pagenumber'][-1] and extra['pagenumber'][-1] != 'no':
+ if extra['pagenumber'] and extra['pagenumber'][-1]:
s = s + r'''
-\renewcommand{\@oddhead}{\parbox{\textwidth}%
- {\mbox{}\small\makelilypondheader\hfill\textbf{\thepage}}}
-'''
+ \renewcommand{\@oddhead}{\parbox{\textwidth}%%
+ {\mbox{}\small\theheader\hfill\textbf{\thepage}}}%%'''
else:
- s = s + '\\pagestyle{empty}\n'
-
- s = s + '\\makeatother\n'
- s = s + '\\begin{document}\n'
-
+ s = s + '\\pagestyle{empty}'
+
+ s = s + '\\begin{document}'
first = 1
for t in tfiles:
s = s + one_latex_definition (t, first)
first = 0
-
- s = s + r'''
-\makeatletter
-\renewcommand{\@oddfoot}{\parbox{\textwidth}{\mbox{}\lilypondtagline}}%
-\makeatother
-'''
+
s = s + '\\end{document}'
return s
\global\let\lilypondpiece\relax%
\global\let\mustmakelilypondpiecetitle\undefined%
}
-% header -- head ?
-\def\makelilypondheader
-{
- \ifx\lilypondhead\undefined\else%
- \parbox{\textwidth}{\mbox{}\lilypondhead}\fi
-}
-\def\makelilypondfooter
-{
- \ifx\lilypondfooter\undefined\else%
- \parbox{\textwidth}{\mbox{}\lilypondfooter}\fi
-}
\endinput