Declarations 1
# FlexLexer debug
InitLexer 1
-Lexer 0
+Lexer 1
# flower lib
File_path 1
-Matrix 0
-Vector 0
+Matrix 1
+Vector 1
# lily
Atom 0
-25/Nov/97 LilyPond 0.1.34 1
+25/Nov/97 LilyPond 0.1.35 1
=item B<-i,--init=>F<FILE>,
-Set init file to F<FILE> (default: F<symbol.ly>).
+Set init file to F<FILE> (default: F<lily-init.ly>).
=item B<--include, -I>=F<DIRECTORY>,
=over 5
-=item F<symbol.ly>
+=item F<lily-init.ly>
The initialisation file with symbol tables etc. It
includes files from the directory F<init/>.
-2/Dec/97 LilyPond 0.1.34 1
+2/Dec/97 LilyPond 0.1.35 1
-2/Dec/97 LilyPond 0.1.34 2
+2/Dec/97 LilyPond 0.1.35 2
-2/Dec/97 LilyPond 0.1.34 3
+2/Dec/97 LilyPond 0.1.35 3
-2/Dec/97 LilyPond 0.1.34 4
+2/Dec/97 LilyPond 0.1.35 4
-2/Dec/97 LilyPond 0.1.34 5
+2/Dec/97 LilyPond 0.1.35 5
-2/Dec/97 LilyPond 0.1.34 6
+2/Dec/97 LilyPond 0.1.35 6
+
+pl 35
+ - naming: lily-init iso symbol.ly
+ - mf braces
+ - center textscripts.
+
pl 34.jcn1
- mf: nicening of dyn, klef, rest
- fingerfont
- bf: 12/8
+
+********
+dec 2
pl 34
- bf: mf: numbers and alto clef
- bf: scsi-menuet
6. DOZE
If you have received this file as part of a DOS/Window32 distribution
-(lilypond-*.zip ), then it is advisable to also download the source
+(lilypond-*.zip), then it is advisable to also download the source
package, since it might contain more documentation
ftp://pcnov095.win.tue.nl/pub/lilypond/ (Europe)
http://www.stack.nl/~hanwen/lilypond/index.html
If you decide to build LilyPond from source, please read the INSTALL
-document first, esp. the Windows NT/95 section.
+document first, especially the Windows NT/95 section.
7. CAVEATS
files, eg
rm `find /var/lib/texmf/fonts -name 'feta*'`
+
+a script to do this for you is in bin/cleanfonts.sh
grep for TODO and ugh/ugr
0.2:
+ * handle ^C for tmp/file creation.
+
+ * PS for beams.
+
* add a screenshot to the website. :)
* fix stdin input
* pushgroup/popgroup
-
* multi threading?
- 1 thread per element/ 1 thread per line
- 1 thread per Translator
TOPLEVEL_MAJOR_VERSION = 0
TOPLEVEL_MINOR_VERSION = 1
-TOPLEVEL_PATCH_LEVEL = 34
-TOPLEVEL_MY_PATCH_LEVEL = jcn1
+TOPLEVEL_PATCH_LEVEL = 35
+TOPLEVEL_MY_PATCH_LEVEL =
# use the above to send patches, always empty for released version:
# please don't move these comments up; the patch should fail if
#!/bin/sh
+case $# in
+0)
+ WHAT="" ;;
+1)
+ WHAT=$1;;
+esac
+
# remove possibly stale .pk/.tfm files
-echo> /tmp/cleaning-font
-FILES=`find /var/lib/texmf/ -name 'font-en-tja*' -o -name 'feta*'`
-# FILES=`find /var/lib/texmf/ -name 'font-en-tja*' -o name 'feta-*" -o -name 'vette-beam*' -o -name 'dyn10*'`
+echo> /tmp/cleaning-font-dummy
+FILES=`find /var/lib/texmf/ -name "feta*$WHAT*"`
+
echo removing $FILES
-rm $FILES /tmp/cleaning-font
+rm $FILES /tmp/cleaning-font-dummy
fi
if test $optimise_b = yes; then
- DEFINES="$DEFINES -O2 -DSTRING_UTILS_INLINED"
+ DEFINES="$DEFINES -finline-functions -O2 -DSTRING_UTILS_INLINED"
fi
if test "x$OSTYPE" = "xWindows_NT"; then
fi
if test $optimise_b = yes; then
- DEFINES="$DEFINES -O2 -DSTRING_UTILS_INLINED"
+ DEFINES="$DEFINES -finline-functions -O2 -DSTRING_UTILS_INLINED"
fi
if test "x$OSTYPE" = "xWindows_NT"; then
)
AC_CHECK_SEARCH_RESULT($MAKE, GNU make, You should install GNU make)
-AC_CHECK_SEARCH_RESULT( $BISON, bison, Please install Bison, 1.25 or better)
+AC_CHECK_SEARCH_RESULT($BISON, bison, Please install Bison, 1.25 or better)
AC_CHECK_SEARCH_RESULT($PERL, perl, You should install Perl, version 5 or better)
AC_CHECK_SEARCH_RESULT($PYTHON, python, You should install Python)
AC_CHECK_SEARCH_RESULT($PODMAN, pod, You should install Perl, version 5 or better)
% generated automatically by mf-to-table.py version 0.4
-% on Thu Dec 4 23:42:11 1997
+% on Fri Dec 5 11:52:40 1997
% Do not edit
% input from out/feta16.log
% name=\symboltables {
"0o" "\\outsidewholerest" -2.50\pt 8.50\pt -2.50\pt 0.40\pt
"1o" "\\outsidehalfrest" -2.50\pt 8.50\pt -0.40\pt 2.50\pt
"2" "\\quartrest" -0.00\pt 4.32\pt 3.00\pt 14.40\pt
- "3" "\\eighthrest" -0.00\pt 5.33\pt 4.00\pt 11.47\pt
- "4" "\\sixteenthrest" -0.00\pt 6.23\pt -0.00\pt 11.47\pt
- "5" "\\thirtysecondrest" -0.00\pt 7.03\pt -0.00\pt 15.47\pt
- "6" "\\sixtyfourthrest" -0.00\pt 7.53\pt -0.00\pt 19.47\pt
- "7" "\\hundredtwentyeighthrest" -0.00\pt 8.38\pt -0.00\pt 23.47\pt
+ "3" "\\eighthrest" -0.00\pt 5.33\pt 4.00\pt 11.27\pt
+ "4" "\\sixteenthrest" -0.00\pt 6.18\pt -0.00\pt 11.27\pt
+ "5" "\\thirtysecondrest" -0.00\pt 6.98\pt -0.00\pt 15.27\pt
+ "6" "\\sixtyfourthrest" -0.00\pt 7.49\pt -0.00\pt 19.27\pt
+ "7" "\\hundredtwentyeighthrest" -0.00\pt 8.34\pt -0.00\pt 23.27\pt
}
"accidentals" = \table {
"1" "\\sharp" -0.00\pt 4.40\pt -6.00\pt 6.00\pt
% generated automatically by mf-to-table.py version 0.4
-% on Thu Dec 4 23:42:34 1997
+% on Fri Dec 5 11:52:42 1997
% Do not edit
% input from out/feta20.log
% name=\symboltables {
"0o" "\\outsidewholerest" -3.13\pt 10.62\pt -3.13\pt 0.50\pt
"1o" "\\outsidehalfrest" -3.13\pt 10.62\pt -0.50\pt 3.13\pt
"2" "\\quartrest" -0.00\pt 5.40\pt 3.75\pt 18.00\pt
- "3" "\\eighthrest" -0.00\pt 6.67\pt 5.00\pt 14.33\pt
- "4" "\\sixteenthrest" -0.00\pt 7.79\pt -0.00\pt 14.33\pt
- "5" "\\thirtysecondrest" -0.00\pt 8.78\pt -0.00\pt 19.33\pt
- "6" "\\sixtyfourthrest" -0.00\pt 9.41\pt -0.00\pt 24.33\pt
- "7" "\\hundredtwentyeighthrest" -0.00\pt 10.47\pt -0.00\pt 29.33\pt
+ "3" "\\eighthrest" -0.00\pt 6.67\pt 5.00\pt 14.08\pt
+ "4" "\\sixteenthrest" -0.00\pt 7.72\pt -0.00\pt 14.08\pt
+ "5" "\\thirtysecondrest" -0.00\pt 8.72\pt -0.00\pt 19.08\pt
+ "6" "\\sixtyfourthrest" -0.00\pt 9.36\pt -0.00\pt 24.08\pt
+ "7" "\\hundredtwentyeighthrest" -0.00\pt 10.42\pt -0.00\pt 29.08\pt
}
"accidentals" = \table {
"1" "\\sharp" -0.00\pt 5.50\pt -7.50\pt 7.50\pt
--- /dev/null
+% symbol.ly
+%
+% FIXME other name
+
+\version "0.1.7";
+
+breve = \duration { -1 0 }
+longa = \duration { -2 0 }
+
+\include "dynamic.ly"
+\include "dutch.ly"
+\include "script.ly"
+
+
+Gourlay = 1.0
+Wordwrap = 0.0
+
+\include "paper16.ly"
+\include "paper20.ly"
+
+
+default_paper = \paper{
+ \paper_sixteen
+}
+
+% ugh
+\include "midi.ly"
+
+% declarations for standard directions
+left = -1
+right = 1
+up = 1
+down = -1
+center=0
+
+
+stemup = {
+ \skip 1*0;
+ % Stupid hack to make < { \stemup } > work
+ \property Voice.ydirection = \up
+ }
+stemboth= {
+ \skip 1*0;
+ \property Voice.ydirection = \center
+}
+stemdown = {
+ \skip 1*0;
+ \property Voice.ydirection = \down
+}
+
+
+++ /dev/null
-% generated at Mon Sep 22 22:23:19 1997 from out/r20.log
-% changes will be lost
-% font-en-tja=\symboltables {
- "rests" = \table {
- "-2" "\eighthrest" 0.00\pt 5.40\pt 17.55\pt 0.00\pt
- }
- % } % font-en-tja
+++ /dev/null
-% symbol.ly
-%
-% FIXME other name
-
-\version "0.1.7";
-
-breve = \duration { -1 0 }
-longa = \duration { -2 0 }
-
-\include "dynamic.ly"
-\include "dutch.ly"
-\include "script.ly"
-
-
-Gourlay = 1.0
-Wordwrap = 0.0
-
-\include "paper16.ly"
-\include "paper20.ly"
-
-
-default_paper = \paper{
- \paper_sixteen
-}
-
-% ugh
-\include "midi.ly"
-
-% declarations for standard directions
-left = -1
-right = 1
-up = 1
-down = -1
-center=0
-
-
-stemup = {
- \skip 1*0;
- % Stupid hack to make < { \stemup } > work
- \property Voice.ydirection = \up
- }
-stemboth= {
- \skip 1*0;
- \property Voice.ydirection = \center
-}
-stemdown = {
- \skip 1*0;
- \property Voice.ydirection = \down
-}
-
-
% dims ignored for this table
"param" = \table {
- "brace" "\pianobrace{%}" 0.0\pt 0.0\pt 0.0\pt 0.0\pt
+% "brace" "\pianobrace{%}" 0.0\pt 0.0\pt 0.0\pt 0.0\pt
+ "brace" "\pianobrace{%}" 0.0\pt 0.0\pt 32.0\pt 80.0\pt
"meter" "\generalmeter{%}{%}" 0.0\pt 10.0\pt -8.0\pt 8.0\pt
"stem" "\stem{%}{%}"
"fill" "\hbox{}"
% dims ignored for this table
"param" = \table {
- "brace" "\pianobrace{%}" 0.0\pt 0.0\pt 0.0\pt 0.0\pt
+% "brace" "\pianobrace{%}" 0.0\pt 0.0\pt 0.0\pt 0.0\pt
+ "brace" "\pianobrace{%}" 0.0\pt 0.0\pt 40.0\pt 100.0\pt
"meter" "\generalmeter{%}{%}" 0.0\pt 10.0\pt -5.0\pt 5.0\pt
"stem" "\stem{%}{%}"
"fill" "\hbox{}"
title= "The Feta font";
subtitle = "proofsheet";
enteredby = "jcn";
-copyright = "PD";
+copyright = "public domain";
TestedFeatures = "This file tests the Feta music-font"
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
c4^"1" d^"2" e^"3" f^"4" g^"5"
< bes4^"1" e_"2" c_"4" >
a'^"0"
+
% ugh, \flageolet is like open, but maybe a perfect circle
a^\open
\textstyle "roman";
\duration 8;
< a2 f2 d2 \f > bes4-. |
%%2
+ \textstyle "finger"; % ugh.
+
< [ bes8^"1" e8 c8_"2"_"4" >
a8 bes8-. g8-. ] a4-.^"4" |
+
%%3
< d4 'bes4-. > g4-. [ f8-. e8-. ] |
%%4
%%23
[ 'g8 g8 ] < e4. 'a4. > d8-\upbow |
%%24
+ \textstyle "roman"; % ugh
< d2.^"fine" 'a2. 'd2._"3 mins.">
\bar ":|";
}
\evensidemargin\oddsidemargin
\advance\textwidth30mm
+\input titledefs
%\pagestyle{empty}
\begin{document}
-\input lilyponddefs
\musixsixteendefs
-\input titledefs
\def\interscoreline{\vskip3mm}
\title{St\"andchen\normalsize\\[2ex](Serenade)}
\composer{Franz Schubert (1797-1828)}
\meter 4/4; % should be \meter C
\keyCminor
\skip 1*32;
- \bar "|.";
+ \bar "|."; |
}
dux =
MAJOR_VERSION = 0
MINOR_VERSION = 1
-PATCH_LEVEL = 34
+PATCH_LEVEL = 35
MY_PATCH_LEVEL =
-1 = raggedright, 0 = center, 1 = raggedleft
*/
- int align_i_;
+ Direction align_i_;
String text_str_;
String style_str_;
Atom
Lookup::vbrace (Real &y) const
{
- if (y < 2* 20 PT)
+ Atom brace = (*symtables_p_)("param")->lookup ("brace");
+ Interval ydims = brace.dim_[Y_AXIS];
+ Real min_y = ydims[LEFT];
+ Real max_y = ydims[RIGHT];
+ Real step = 2.0 PT;
+
+ if (y < min_y)
{
warning (_("piano brace too small (") + print_dimen (y)+ ")");
- y = 2*20 PT;
+ y = min_y;
}
- if (y > 67 * 2 PT)
+ if (y > max_y)
{
warning (_("piano brace too big (") + print_dimen (y)+ ")");
- y = 67 *2 PT;
+ y = max_y;
}
- int idx = int (rint ((y/2.0 - 20) + 148));
-
- Atom s = (*symtables_p_)("param")->lookup ("brace");
+
+ int idx = int (rint ((y- min_y)/step)) + 1;
+
{
Array<String> a;
a.push (idx);
- s.tex_ = substitute_args (s.tex_,a);
- s.dim_.y() = Interval (-y/2,y/2);
+ brace.tex_ = substitute_args (brace.tex_,a);
+ brace.dim_[Y_AXIS] = Interval (-y/2,y/2);
}
-
- return s;
+ return brace;
}
Getopt_long oparser (argc, argv,theopts);
cout << get_version_str() << endl;
- String init_str ("symbol.ly");
+ String init_str ("lily-init.ly");
while (Long_option_init const * opt = oparser())
{
;
gen_script_def:
- text_def { $$ = $1; }
+ text_def { $$ = $1;
+ ((Text_def*) $$)->align_i_ = CENTER; /* UGH */
+ }
| mudela_script { $$ = $1;
$$-> set_spot (THIS->here_input ());
}
Text_def::Text_def()
{
- align_i_ = 1; // right
+ align_i_ = RIGHT;
style_str_ = "roman";
}
Begin3
Titel: LilyPond
-Versie: 0.1.34
-Inschrijf datum: 03DEC97
+Versie: 0.1.35
+Inschrijf datum: 05DEC97
Beschrijving: LilyPond is de muziek typesetter van het GNU Project.
Het programma genereert muziek in zichtbare of
hoorbare vorm uit uit een muzikale definitie file:
jan@digicash.com (Jan Nieuwenhuizen)
Onderhouden door: hanwen@stack.nl (Han-Wen Nienhuys)
Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
- 395k lilypond-0.1.34.tar.gz
+ 395k lilypond-0.1.35.tar.gz
Oorspronkelijke plek: pcnov095.win.tue.nl /pub/lilypond/
- 395k lilypond-0.1.34.tar.gz
+ 395k lilypond-0.1.35.tar.gz
Copi"eer politie: GPL
End
Begin3
Title: LilyPond
-Version: 0.1.34
-Entered-date: 03DEC97
+Version: 0.1.35
+Entered-date: 05DEC97
Description: LilyPond is the GNU Project music typesetter. The program
generates visual or auditive output from a music
definition file: it can typeset formatted sheet music
jan@digicash.com (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 440k lilypond-0.1.34.tar.gz
+ 460k lilypond-0.1.35.tar.gz
Original-site: pcnov095.win.tue.nl /pub/lilypond/development/
- 440k lilypond-0.1.34.tar.gz
+ 460k lilypond-0.1.35.tar.gz
Copying-policy: GPL
End
jan@digicash.com (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 440k lilypond-@TOPLEVEL_VERSION@.tar.gz
+ 460k lilypond-@TOPLEVEL_VERSION@.tar.gz
Original-site: pcnov095.win.tue.nl /pub/lilypond/development/
- 440k lilypond-@TOPLEVEL_VERSION@.tar.gz
+ 460k lilypond-@TOPLEVEL_VERSION@.tar.gz
Copying-policy: GPL
End
Name: lilypond
-Version: 0.1.34
+Version: 0.1.35
Release: 1
Copyright: GPL
Group: Applications/Publishing
-Source0: alpha.gnu.org:/gnu/lilypond/development/lilypond-0.1.34.tar.gz
+Source0: alpha.gnu.org:/gnu/lilypond/development/lilypond-0.1.35.tar.gz
Summary: A program for typesetting music.
URL: http://www.stack.nl/~hanwen/lilypond
Packager: Han-Wen Nienhuys <hanwen@stack.nl>
- more symbols
* some scripts:
* piano pedals,
- * braces.
* trills
* maxima notehead
* coda signs.
--- /dev/null
+input feta-macros;
+input feta-params;
+
+save code;
+code :=0;
+
+
+def draw_brace( expr height_sharp, width_sharp) =
+ save pendir, height, width, thin, thick;
+ save penangle;
+ height# := height_sharp;
+ width# := width_sharp;
+
+ beginchar(incr code, width#, height#/2, height#/2);
+
+ define_pixels (height, width);
+ thin = 2 stafflinethickness;
+ thick = .5 interline;
+
+ z2 = .5 [z1, z3];
+ y3 = y1 + height/2;
+ x3 = x1 + width;
+ y1 =0;
+ x3 = - width / 2;
+
+ pair pendir;
+ pendir = unitvector(x3 - x1, y3/6 - y1);
+ penangle = angle pendir - 90;
+ penpos3(thin, penangle);
+ penpos2(thick, angle(z3 -z1) -90 );
+ penpos1(2/3 thin, penangle);
+
+ penlabels(1,2,3);
+ fill z2r .. simple_serif (z3r, z3l, 90)
+ .. z2l .. simple_serif (z1l, z1r, 90) ..cycle;
+
+ addto currentpicture also currentpicture yscaled -1;
+endchar;
+enddef;
+
+
+for h := 2 staffsize# step 2 pt# until (6 * staffsize#):
+ draw_brace(h, interline# );
+endfor
--- /dev/null
+
+%
+% feta-braces16.mf -- implement
+%
+% source file of the Feta (Font-En-Tja) music font
+%
+% (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+%
+
+font_identifier:="feta-braces16";
+font_size 16;
+mode_setup;
+
+staffsize#:=16pt#;
+input feta-beugel;
+end.
+
--- /dev/null
+%
+% feta-braces20.mf -- implement
+%
+% source file of the Feta (Font-En-Tja) music font
+%
+% (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+%
+
+font_identifier:="feta-braces16";
+font_size 20;
+mode_setup;
+
+staffsize#:=20pt#;
+input feta-beugel;
+end.
labels(2,4);
penlabels(1,2,3,4);
- pickup pencircle scaled (.35 reduced_il);
+ save dot_diam;
+ 2 dot_diam = reduction* (interline - stafflinethickness);
+ pickup pencircle scaled dot_diam;
draw z5;
draw z5 yscaled -1;
enddef;
pen beam_pen;
beam_pen:=penrazor scaled beamheight rotated 90;
-ELEM_TAN:=0.05;
-SLOPES:=20;
-LENGTHS:=6;
-ELEM_FACTOR := 2;
-ELEM_INITIAL_LEN:=2;
+elem_tan:=0.05;
+slopes:=20;
+lengths:=6;
+elem_factor := 2;
+elem_initial_len:=2;
-for i := -SLOPES upto SLOPES:
- width:= ELEM_INITIAL_LEN;
- for j:=1 upto LENGTHS:
- beginchar(128 + i * LENGTHS + j -1 ,width,0,0);
+for i := -slopes upto slopes:
+ width:= elem_initial_len;
+ for j:=1 upto lengths:
+ beginchar(128 + i * lengths + j -1 ,width,0,0);
pickup beam_pen;
- draw origin--(lft w,w*i*ELEM_TAN);
+ draw origin--(lft w,w*i*elem_tan);
endchar;
- width:=ELEM_FACTOR *width;
+ width:=elem_factor *width;
endfor;
endfor;
% generated automatically by mf-to-table.py version 0.4
-% on Thu Dec 4 23:42:11 1997
+% on Fri Dec 5 11:52:40 1997
% Do not edit
% input from out/feta16.log
% name
% generated automatically by mf-to-table.py version 0.4
-% on Thu Dec 4 23:42:34 1997
+% on Fri Dec 5 11:52:42 1997
% Do not edit
% input from out/feta20.log
% name
\font\vetfont=feta-beams16
\font\fetanummer=feta-nummer8
\font\dynfont=feta-din10 scaled \magstep1
- \font\fingerfont=feta-nummer4
+ \font\bracefont=feta-braces16
+ \font\fingerfont=feta-nummer4
}
\def\fettwentydefs{
\font\fontentja=feta20
\font\vetfont=feta-beams20
\font\fetanummer=feta-nummer10
\font\dynfont=feta-din10 scaled \magstep2
- \font\fingerfont=feta-nummer5
+ \font\bracefont=feta-braces20
+ \font\fingerfont=feta-nummer5
}
+
\def\fetdef#1#2{\def#1{%
\hbox{\fetchar{#2}}}}
\hbox to0.45\balkheight{\hss\fetanummer #2\hss}%
\vss}}
+\def\pianobrace#1{{\bracefont\char #1}}
+
\newcount\embedcount\embedcount=0
\newwrite\checkexists
\newwrite\embedfile
}
+
\def\startbar#1{\leftalign{\thickbar{#1}\kern\smallspace\thinbar{#1}}}
\def\finishbar#1{\rightalign{\thinbar{#1}\kern\smallspace\thickbar{#1}}}
-\def\pianobrace#1{{\musicdraw\char#1}}
\def\slurcharh#1{{\slurhfont\char#1}}
\def\slurcharu#1{{\slurufont\char#1}}
\def\slurchard#1{{\slurdfont\char#1}}
\musicdef\downbow{22}
\def\tr{{\it tr}}
+\def\pianobrace#1{{\musicdraw\char#1}}
% \def\beamuslope#1#2{{\count0=#2\advance\count0 by#1
% \advance\count0 by 122
\def\thearranger{}
\def\theinstrument{}
%
-\newcommand*{\title}[1]{\def\thetitle{#1\\}}
+% duh. LaTeX has a \title too.
+\renewcommand*{\title}[1]{\def\thetitle{#1\\}}
\newcommand*{\subtitle}[1]{\def\thesubtitle{#1\\}}
\newcommand*{\composer}[1]{\def\thecomposer{#1\\}}
\newcommand*{\arranger}[1]{\def\thearranger{#1}}