InitParser 1
Parser 1
InitDeclarations 1
-Declarations 1
+Declarations 0
# FlexLexer debug
InitLexer 1
Lexer 1
-walking 1
+walking 0
# flower lib
File_path 1
-
-
-
-AUTHORS(1) LilyPond documentation AUTHORS(1)
-
-
-NAME
- AUTHORS - who did what on GNU LilyPond?
-
-DESCRIPTION
- This file lists authors of GNU LilyPond, and what they
- wrote.
-
-AUTHORS
- o Han-Wen Nienhuys <hanwen@stack.nl>,
- http://www.stack.nl/~hanwen
- Main author.
-
- o Jan Nieuwenhuizen <jan@digicash.com>,
- http://www.digicash.com/~jan
- Main author
-
-CONTRIBUTORS
- o Mats Bengtsson <matsb@s3.kth.se>,
- parts of clef-reg.cc, clef-item.cc swedish notenames,
- testing, general comments, duration logs/longa/brevis
- etc
-
- o Jan Arne Fagertun <Jan.A.Fagertun@energy.sintef.no>,
- TeX titling and lytodvi.sh
-
- o Shay Rojanski
- Some mudela source.
-
- o Werner Lemberg <xlwy01@uxp1.hrz.uni-dortmund.de>,
- misc bugfixes, some Beam and Stem code.
-
- o Donald Ervin Knuth, http://www.cs.stanford.edu/~?
- mf/ital-*.mf (these were taken from the CM fonts)
-
- o Alexandre Oliva <oliva@dcc.unicamp.br>,
- http://sunsite.unicamp.br/?
- testing
-
- o Anthony Fok <foka@debian.org>,
- debian package: debian/*
-
- o Franc,ois Pinard <pinard@iro.umontreal.ca>,
- Documentation/Vocab*, internationalization stuff
-
- o Neil Jerram <nj104@cus.cam.ac.uk>.
- Documentation/Vocab*
-
- o David R. Linn <drl@vuse.vanderbilt.edu>,
- Mailing list maintenance.
-
- Your name could be here! If you want to help, then take a
- look at the SMALLISH PROJECTS section of in the file TODO.
- Some do not involve coding C++
-
-
-
-
-29/Jan/98 LilyPond 0.1.47 1
-
-
-
-
-
-AUTHORS(1) LilyPond documentation AUTHORS(1)
-
-
- [And of course we sincerely thank J.S.Bach, F.Schubert, T.
- Merula and W.A.Mozart for their beautiful music]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-29/Jan/98 LilyPond 0.1.47 2
-
-
Document Really Ugly Bugs (coredumps, assert fails, etc)
+\score{
+ \melodic{
+ [a8 a-2] /bla
+ }
+}
+koor.ly: 4: error: parse error, expecting `DIGIT' or `UNSIGNED':
+ [a8 a-2] /bla
+
+koor.ly: 5: error: Have to be in Lyric mode for lyrics:
+ }
+
+lilypond: parser.y:765: int yyparse(void *): Assertion `((My_lily_parser *) my_lily_parser_l)->post_reqs.empty ()' failed.
+Aborted (core dumped)
+
+
+[gcc 2.8.x/libstdc++ 2.8.x/libg++ 2.8.0]
+
+The latest gcc release causes lily to crash just after Interpreting
+music:
+
+stacktrace looks something like:
+
+ __DTOR_END__ ()
+ __malloc ()
+
[GNU libc]
The GNU extension memmem() is known to be buggy on linux libc 5.0.9
=over 4
-=item * Han-Wen Nienhuys <hanwen@stack.nl>, http://www.stack.nl/~hanwen
+=item * Han-Wen Nienhuys <hanwen@cs.ruu.nl>, http://www.stack.nl/~hanwen
Main author.
=item *
-GNU C++ v2.7 or better, with libg++ installed. If you use gcc 2.8 or
-egcs then you should install a matching libg++ (ie. 2.8) version.
+GNU C++ v2.7 or better.
=item *
=head1 AUTHORS
-Han-Wen Nienhuys <hanwen@stack.nl>
+Han-Wen Nienhuys <hanwen@cs.ruu.nl>
Jan Nieuwenhuizen <jan@digicash.com>
#
XPMS=$(wildcard *.xpm)
giffiles=$(XPMS:.xpm=.gif)
-
-gifs: $(addprefix $(outdir)/, $(giffiles))
+outgiffiles=$(addprefix $(outdir)/, $(giffiles))
EXTRA_DISTFILES = $(XPMS) $(DOCFILES) vocabulary-data vocabulary-forms.el
+
# don't do DVI files. They can only be made if lily is installed
do-doc: $(TEXTFILES)
+gifs: $(outgiffiles)
+
+
html: $(HTMLFILES)
htmldist: html
-MAN1FILES = lilypond convert-mudela mi2mu mudela-book
+MAN1FILES = lilypond convert-mudela mi2mu mudela-book ly2dvi
MAN1GROFF = $(addprefix $(outdir)/, $(addsuffix .1,$(MAN1FILES)))
localinstall: $(outdir)/lilypond.1
mv $(notdir $@) $(outdir)
$(outdir)/%.mudtex: %.doc
- $(binout)/mudela-book --outdir=$(outdir)/ --outname=$(notdir $@) $<
+ $(binout)/mudela-book --noindex --outdir=$(outdir)/ --outname=$(notdir $@) $<
$(outdir)/%.txt: $(outdir)/%.1
troff -man -Tascii $< | grotty -b -u -o > $@
$(depth)/%.txt: $(outdir)/%.txt
cp $< $@
-do_pod2html=$(pod2html) --infile $< --outfile=$@
+do_pod2html=$(pod2html) --noindex --infile $< --outfile=$@; sh $(depth)/bin/add-URLs.sh $@
# do this for perl 5.003
# do_pod2html=$(pod2html) $<
# mv $(notdir $@) $(outdir)/
</a
>
+=item *
+<a href=ly2dvi.html
+>
+Easy titling for LilyPond
+</a
+>
+
=item *
<a href=convert-mudela.html
>
\author{Jan Nieuwenhuizen}
\date{March 2, 1998}
+\def\file#1{\verb+#1+}
+
% ugh: trick to get examples not generate par
% these are for 16pt
\def\mudelapaperlinewidth{-28.452756}%
\def\mudelapaperinterbeam{3.140000}%
\def\mudelapapergourlay_energybound{100000.000000}%
\def\mudelapapergourlay_maxmeasures{14.000000}%
+% huh?
+% \def\exampleheight{2\mudelapaperbarsize pt}
+\def\exampleheight{2cm}
% ful of pars, needs the above
\input lilyponddefs
% generates par
\turnOnPostScript%
\def\turnOnPostScript{}
+% generates par
+\def\interscoreline{}
%
\begin{document}
\maketitle
-\def\interexample{\hskip15mm$\Longrightarrow$\hskip15mm}
-\def\preexample{}
+%\def\interexample{\hskip15mm$\Longrightarrow$\hskip15mm}
+%\def\interexample{\hbox to10mm{\hfill\hbox to0pt{\hss\vbox to\exampleheight{\vss$\Longrightarrow$\vss}\hss}\hfill}}
+\def\interexample{}
+\def\preexample{\par}
\def\postexample{\par\medskip}
-% ugh, howto?
-% \def\frag{\vbox to 2\mudelapaperbarsize pt{\vss}
-% \def\interexample{\vss}\hskip15mm$\Longrightarrow$\hskip15mm}
-% \def\preexample{\vbox to 2\mudelabarsize pt{\vss}
-% \def\postexample{\vss}\par\medskip}
-
\def\file#1{{\texttt{#1}}}
\setcounter{secnumdepth}{-1}
This document should provide a gentle introduction to
LilyPond's input language, Mudela.
For completeness and nifty features see
-\verb+input/*.ly+
+\file{input/*.ly}
and
-\verb+lily/parser.y, lily/lexer.l+.
-
-
-\section{Notes: pitches and durations}
-
-\begin[fragment,verbatim]{mudela}
+\file{lily/parser.y}, \file{lily/lexer.l}.
+By tradition, Mudela files have the extension \file{.ly}.
+
+Mudela is an ascii script language
+that is especially designed
+to be easy to read and write.
+In the following sections
+the basic elements of Mudela are presented
+in a series of simple examples.
+Each example has
+a verbatim snippet of Mudela%
+% a snippet of Mudela as it's typed-in%
+\footnote{
+In an effort not to bore you too much with details,
+we leave-out some red tape
+that's needed for a valid piece of Mudela.
+Therefore, before you try-out any of the examples,
+be sure to read the section `A complete example'.}
+on the left
+and the resulting fragment of music on the right
+as it was produced by LilyPond.
+
+\section{Notes}
+
+Let's start with a single note, a quarter C
+
+\begin[fragment,verbatim,center]{mudela}
c
\end{mudela}
-\begin[fragment,verbatim]{mudela}
+Now that was easy and entering a scale is not much harder
+
+%\subsection{Pitches}
+
+\begin[fragment,verbatim,center]{mudela}
c d e f g a b
\end{mudela}
-Durations are entered as reciproce values
-\begin[fragment,verbatim]{mudela}
-a1 | a2 a | a4 a a a
-\end{mudela}
-and default to the last previously used duration.
+% \subsection{Durations}
-Now we can write a little tune
-\begin[fragment,verbatim]{mudela}
-c d e c | c d e c | e f g2 | e4 f g2
+However, having only quarter notes may get a bit dull.
+Durations are entered as their reciproce values
+% a1 a2 a4 a a8 a a16 a a32 a a64 a a a a
+\begin[fragment,verbatim,center]{mudela}
+a1 a2 a4 a a8 a a16 a32 a64
\end{mudela}
-note the explicit duration change for
-the quarter e in the last measure.
+note that you only have to specify
+the duration when it changes:
+Lily assumes a note has the same duration as the previous one.
-Same for notes with flags
-\begin[fragment,verbatim]{mudela}
-a8 a16 a32 a64 a128
+Now we can already write a little tune
+\begin[fragment,verbatim,center]{mudela}
+c d e c | c d e c | e f g2
\end{mudela}
-
-\begin[fragment,verbatim]{mudela}
+As you'll probably have guessed,
+the vertical bar (pipe) \verb+|+ may be used to mark
+measures.
+
+In the scale shown above
+we left-out the last c note of the next octave.
+Postfixing the pitch with a quote \verb+'+
+produces a note by one octave higher
+\begin[fragment,verbatim,center]{mudela}
c c' c''
\end{mudela}
-\begin[fragment,verbatim]{mudela}
+Prefixing the pitch with a quote \verb+'+
+produces a note by one octave lower
+\begin[fragment,verbatim,center]{mudela}
a 'a ''a
\end{mudela}
A tie connects two adjacent noteheads
-\begin[fragment,verbatim]{mudela}
-c' ~ c
+\begin[fragment,verbatim,center]{mudela}
+e' ~ e
\end{mudela}
Whereas a slur rather connects `chords',
-and tries to avoid crossing stems.
+and tries to avoid crossing stems
-\begin[fragment,verbatim]{mudela}
-c'( )c
+\begin[fragment,verbatim,center]{mudela}
+e'( )e
\end{mudela}
-A (legato) slur can span several notes
-\begin[fragment,verbatim]{mudela}
-c'( d e )c
+And of course, such a (legato) slur can span several notes
+\begin[fragment,verbatim,center]{mudela}
+c( d e )f
\end{mudela}
-\section{Beams and plets}
+\section{Beams and Plets}
-\begin[fragment,verbatim]{mudela}
+A beam is
+\begin[fragment,verbatim,center]{mudela}
[a8 a] [a16 a a a]
\end{mudela}
-% [2/3 a8 a a]1/1
-\begin[fragment,verbatim]{mudela}
+Here's a beamed triplet
+\begin[fragment,verbatim,center]{mudela}
[/3 a8 a a]/1
\end{mudela}
-\begin[fragment,verbatim]{mudela}
+a triplet without a beam
+\begin[fragment,verbatim,center]{mudela}
\[/3 a4 a8\]
\end{mudela}
+and a combination
+\begin[fragment,verbatim,center]{mudela}
+[/3 a8 a16 a] a8 \]
+\end{mudela}
+
+Abbreviations
+\begin[fragment,verbatim,center]{mudela}
+c1:16 [:16 e1 g]
+\end{mudela}
+
+\begin[fragment,verbatim,center]{mudela}
+c4:32 [:16 c8 d8]
+\end{mudela}
+
+\section{Notenames}
+
+Lily has predefined sets of notenames
+for various languages%
+\footnote{These are Dutch, English, German, Italian and Swedish.
+Simply include the language specific init file \file{<language.ly>}.}.
+The default set are the ones we like best are the Dutch notenames.
+
+A sharp is formed by adding \verb+is+
+\begin[fragment,verbatim,center]{mudela}
+cis dis eis fis gis ais bis
+\end{mudela}
+
+and a flat is formed by adding \verb+es+%
+%\footnote{Exceptions: \verb+es+ and \verb+as+.}
+\footnote{Exceptions: {\tt es} and {\tt as}.}
+\begin[fragment,verbatim,center]{mudela}
+ces des es fes ges as bes
+\end{mudela}
+
+With the obvious names for double sharps
+\begin[fragment,verbatim,center]{mudela}
+cisis disis eisis fisis gisis aisis bisis
+\end{mudela}
+
+and double flats
+\begin[fragment,verbatim,center]{mudela}
+ceses deses eses feses geses ases beses
+\end{mudela}
+See why we like-em?
+
+There are two special `notenames', the rest
+\begin[fragment,verbatim,center]{mudela}
+r16 [a a a]
+\end{mudela}
+
+and the space
+\begin[fragment,verbatim,center]{mudela}
+a2 s-"diminuendo" | a
+\end{mudela}
+
+
\section{Commands}
-\begin[fragment,verbatim]{mudela}
+\begin[fragment,verbatim,center]{mudela}
\clef "bass"; 'c
\end{mudela}
-\begin[fragment,verbatim]{mudela}
+and a clef-change
+\begin[fragment,verbatim,center]{mudela}
+\clef "violin"; f' e' \clef "alto"; d' c'
+\end{mudela}
+
+\begin[fragment,verbatim,center]{mudela}
\meter 3/4; c g g |
\end{mudela}
-\begin[fragment,verbatim]{mudela}
+\begin[fragment,verbatim,center]{mudela}
\key fis cis;
'g 'a 'b cis d e fis g'
\end{mudela}
+Note how Mudela allows you to
+convey a musical message
+rather than forces you to produce a list of typesetting commands.
+If the music a \verb+cis+, you type a \verb+cis+.
+Depending on the key and context of the note
+Lily will determine what accidentals to typeset.
+
+A reminder accidental can be forced by
+using an exclamation mark \verb+!+
+on a pitch a reminder accidental
+\begin[fragment,verbatim,center]{mudela}
+cis d e cis | c! d e c |
+\end{mudela}
+
+\begin[fragment,verbatim,center]{mudela}
+\meter 2/4;
+\bar "|:"; c c \bar ":|:"; c c \bar ":|"; c c \bar "|.";
+\end{mudela}
-\section{Example}
+\section{Scripts}
+
+Staccato may be abbreviated
+\begin[fragment,verbatim,center]{mudela}
+a-\staccato a-.
+\end{mudela}
+
+Marcato
+\begin[fragment,verbatim,center]{mudela}
+a-\marcato a-|
+\end{mudela}
+
+Staccatissimo
+\begin[fragment,verbatim,center]{mudela}
+a-\staccatissimo a-^
+\end{mudela}
+
+Sforzato
+% duh?
+% a-\sforzato a->
+\begin[fragment,verbatim,center]{mudela}
+a-\accent a->
+\end{mudela}
+
+\begin[fragment,verbatim,center]{mudela}
+a-\fermata
+\end{mudela}
+
+\begin[fragment,verbatim,center]{mudela}
+a-\fermata
+\end{mudela}
+
+Dynamics from pianississimo upto mezzopiano
+\begin[fragment,verbatim,center]{mudela}
+a\ppp a\pp a\p a\mp
+\end{mudela}
+
+from fortississimo downto mezzoforte
+\begin[fragment,verbatim,center]{mudela}
+a\fff a\ff a\f a\mf
+\end{mudela}
+
+sforzando, sforzato and rinforzato
+% huh?
+% a\sfz a\sf a\rf
+\begin[fragment,verbatim,center]{mudela}
+a\sfz a\sf
+\end{mudela}
+
+Fingering
+\begin[fragment,verbatim,center]{mudela}
+[e8-1 c'-5 g-3 f-2] a''-\flageolet
+\end{mudela}
+
+Bowing
+\begin[fragment,verbatim,center]{mudela}
+c-\upbow d-\downbow
+\end{mudela}
+
+Footwork
+\begin[fragment,verbatim,center]{mudela}
+\clef "bass"; \octave c;
+ 'b4.-\lheel [cis8-\ltoe dis8-\rtoe e8-\rheel]
+\end{mudela}
+
+\section{Chords and Voices}
+
+Here's a simple chord
+\begin[fragment,verbatim,center]{mudela}
+<c e g>
+\end{mudela}
+
+here are a few
+\begin[fragment,verbatim,center]{mudela}
+<
+ { c()d()c }
+ { e()f()e }
+ { g()a()g }
+>
+\end{mudela}
+
+and similarly voices
+\begin[fragment,verbatim,center]{mudela}
+<
+ { \voiceone c g c g }
+ { \voicetwo 'c2 'g2 }
+>
+\end{mudela}
+
+
+\section{A complete example}
+%\label{se:complete}
A Mudela file needs some red tape
-\begin[verbatim]{mudela}
+\begin[verbatim,center]{mudela}
\score{
- \melodic{
+ \melodic {
\octave c';
- c d e c
+ c d e c |
+ c d e c |
+ e f g2 |
}
}
\end{mudela}
\section{Lyrics}
-% this nesting syntax sucks
-\begin[verbatim]{mudela}
+\begin[verbatim,center]{mudela}
\score{
<
- \melodic \type Staff = bla < \melodic{\octave c'; c d e c} >
-% huh?
-% \lyric \type Lyrics = bli < \lyric{Fre- re Ja- que} >
- >
+ \melodic{
+ \octave c';
+ c d e c | c d e c |
+ e f g2 | e4 f g2
+ \bar "|.";
+ }
+ \type Lyrics \lyric{
+ Fr\`e-4 re Ja- que
+ Fr\`e- re Ja- que
+ Dor- mez vous?2
+ Dor-4 mez vous?2
+ }
+ >
}
\end{mudela}
\section{Variables}
+
+\section{Ly2dvi}
+Check-out this handy little script
+that not only may save you quite some keystrokes,
+but produces titles and takes care of
+margins and (hopefully) papersizes.
+See \file{ly2dvi (1)}.
+
\end{document}
=item *
-Han-Wen Nienhuys <hanwen@stack.nl>, http://www.stack.nl/~hanwen
+Han-Wen Nienhuys <hanwen@cs.ruu.nl>, http://www.stack.nl/~hanwen
=item *
info-gnu-music-request@gnu.org.
As this list is moderated, normal people should ask to drl@gnu.org or
-hanwen@stack.nl to forward announces instead of sending it to
+hanwen@cs.ruu.nl to forward announces instead of sending it to
info-gnu-music@gnu.org
=item help-gnu-music@gnu.org
Dave Philips' Linux sound applications page
+=item http://www.home.fh-karlsruhe.de/~rost0001/web/musik/musik.html
+
+Stochastic composing using LilyPond
+
=item http://www.medieval.org/emfaq/scores/software.html
More software for (early) music.
=head1 SYNOPSIS
- ly2dvi file[.ly]
+ ly2dvi [options] inputfile[.ly] [....]
=head1 DESCRIPTION
-ly2dvi is a script that will setup LaTeX and TeX for you to ...
+ly2dvi is a shell script which creates input file for LaTeX,
+based on information from the output file(s) from lilypond.
+The script handles multiple files. If a mudela file name is
+specified lilypond is run to make an output (TeX) file.
+
+One or more LaTeX files are created, based on information found
+in the output (TeX) file(s), and latex is finally run to create
+one or more DVI files.
=head1 OPTIONS
=over 5
-=item B<--help>
+=item B<-D,--debug>
+
+Set debug mode. There are two levels - in level one some debug
+info is written, in level two the command C<set -x> is run, which
+echoes every command in the ly2dvi script.
+
+=item B<-O,--orientation=>
+
+Set orientation - portrait is the default.
+(C<-O> landscape produces C<\usepackage[landscape]{article}>)
+
+=item B<-o,--output=>
+
+Set output directory.
+
+=item B<-h,--help>
+
+Print help.
-give help
+=item B<-k,--keep>
-=item .....
+Keep the LaTeX file after the run.
+
+=item B<-l,--language>
+
+Specify LaTeX language.
+(C<-l norsk> produces C<\usepackage[norsk]{babel}>).
+
+=item B<-p,--papersize=>
+
+Specify papersize.
+(C<-p a4paper> produces C<\usepackage[a4paper]{article}>)
+
+=item B<-s,--separate>
+
+Normally all output files are included into one LaTeX file.
+With this switch all files are run separately, to produce one
+DVI file for each.
=back
-=head1 SOMETHING
+=head1 FEATURES
+
+ly2dvi responds to several parameters specified in the mudela
+file. They are overridden by corresponding command line options.
+
+=over 5
+
+=item B<papersize>
+
+Specify papersize.
+
+=item B<orientation>
+
+Set orientation.
+
+=item B<language>
+
+Specify LaTeX language
+
+=item B<paperlinewidth>
+
+Specify the width (pt, mm or cm) of the printed lines.
+
+=back
=head1 ENVIRONMENT
+=over 5
+
+=item B<LILYINCLUDE>
+
+Additional directories for the input file(s).
+
+=item B<TMP>
+
+Temporary directory. Default is /tmp
+
+=back
+
=head1 FILES
-F</etc/papersize> contains ...
+F<titledefs.tex> is inspected for definitions used to extract
+additional text definitions from the mudela file. In the current
+version the following are defined:
+
+=over 5
+
+=item B<title>
+
+The title of the music. Centered on top of the first page.
+
+=item B<subtitle>
+
+Subtitle, centered below the title.
+
+=item B<composer>
+
+Name of the composer, rightflushed below the subtitle.
+
+=item B<arranger>
+
+Name of the arranger, rightflushed below the composer.
+
+=item B<instrument>
+
+Name of the instrument, leftflushed at same level as the composer.
+
+=back
=head1 SEE ALSO
-lilypond(1),
+lilypond(1), TeX, LaTeX
=head1 AUTHOR
-JAF
+Jan Arne Fagertun <Jan.A.Fagertun@energy.sintef.no>,
+http://www.termo.unit.no/mtf/people/janaf/
=head1 BUGS
-Does not handle margins properly
+If you have found a bug, you should send a bugreport.
+
+=over 4
+
+=item *
+Send a copy of the input which causes the error.
+
+=item *
+Send a description of the platform you use.
+
+=item *
+Send a description of the LilyPond and ly2dvi version you use.
+
+=item *
+Send a description of the bug itself.
+
+=item *
+Send it to bug-gnu-music@gnu.org (you don't have to subscribe
+to this mailinglist).
+
+=back
+
+=head1 REMARKS
+
+Only one papersize is supported, A4. Information on other sizes
+(LaTeX names, horizontal and vertical sizes) should be mailed to
+the author or to the mailing list.
utils, it will even work in Windows NT/95, but we
don't promise to support it.
- o GNU C++ v2.7 or better, with libg++ installed. If
- you use gcc 2.8 or egcs then you should install a
- matching libg++ (ie. 2.8) version.
+ o GNU C++ v2.7 or better.
o GNU make.
-6/Mar/98 LilyPond 0.1.47 1
+
+
+11/Mar/98 LilyPond 0.1.48 1
-6/Mar/98 LilyPond 0.1.47 2
+11/Mar/98 LilyPond 0.1.48 2
-6/Mar/98 LilyPond 0.1.47 3
+11/Mar/98 LilyPond 0.1.48 3
-6/Mar/98 LilyPond 0.1.47 4
+11/Mar/98 LilyPond 0.1.48 4
-6/Mar/98 LilyPond 0.1.47 5
+11/Mar/98 LilyPond 0.1.48 5
tex/eglerdefs.tex.
AUTHORS
- Han-Wen Nienhuys <hanwen@stack.nl>
+ Han-Wen Nienhuys <hanwen@cs.ruu.nl>
Jan Nieuwenhuizen <jan@digicash.com>
-6/Mar/98 LilyPond 0.1.47 6
+11/Mar/98 LilyPond 0.1.48 6
+pl 48
+ - Pitch_squash_engraver makes Rhythmic_staff possible.
+ - some fixes to buildscripts for sgi irix
+ - misc. patches (WL)
+ - move away from libg++: rolled own Rational class..
+ - don't make gif files Documentation/ by default
+ - ly2dvi manpage (JAF)
+ - ly2dvi 0.7 (JAF)
+ - more clefs. (MB)
+
+pl 47.jcn2
+ - bf: interbeams and beam-stemlengths for size != 16
+ - bf's: preludes
+ - more introduction
+
+pl 47.jcn1
+ - voice{one,two,three} defines
+ - preludes-*: fixes, junked multi, broke-down score-block
+ - mudela-book: added center option
+
+******
pl 47
- Abbreviation now a separate item.
- bf'd some gcc 2.8 warnings.
pl 46.jcn1
- start mudela introduction
- - plet-fraction abbrev by guessing; /3 -> 2/3 etc.
+
+
+pl 46.jcn2
- bf's: preludes-*
*******
grep for TODO and ugh/ugr
0.2:
- * abbrevs
+
+ * check for groff / troff/ nroff et
* use kpsepath to find all TeX dirs
- configure.in
* forced breakpoints
+ * nicen examples:
+ - remove all \multi
+ - break-up heavily-nested score blocks
+
* --metafont
* disable spaces in TeX stuff
* fix stdin input
* documentation
+ - introduction?
- info?
- LaTeX?
- more manpages?
* spanner that is not spanned gives assert ().
-* the warning about the negative slur/tie length appears twice
-which is irritating.
+ * the warning about the negative slur/tie length appears twice
+ which is irritating.
-* The `3' in the meter key is a one or two pixels too thin (at 600dpi)
-in the middle:
-
-* better hshift (dots, distance, head dependent)
+ * The `3' in the meter key is a one or two pixels too thin (at 600dpi)
+ in the middle:
+
+ * better hshift (dots, distance, head dependent)
-* tie/slur dir & curvature
+ * tie/slur dir & curvature
-* stem len adjustable
+ * stem len adjustable
-* mindist for spanners
+ * mindist for spanners
* gdb on RedHat 5
- * xdvi: PS magnifying glass.
+ * xdvi: PS in magnifying glass.
* Rational infty(HUGE_VAL) on glibc / w32
TOPLEVEL_MAJOR_VERSION = 0
TOPLEVEL_MINOR_VERSION = 1
-TOPLEVEL_PATCH_LEVEL = 47
+TOPLEVEL_PATCH_LEVEL = 48
TOPLEVEL_MY_PATCH_LEVEL =
# use the above to send patches, always empty for released version:
sed 's!@PYTHON@!$(PYTHON)!' < $< > $@
chmod 755 $@
-EXECUTABLES=convert-mudela mudela-book
+EXECUTABLES=convert-mudela mudela-book ly2dvi
localinstall: all
$(INSTALL) -d $(bindir)
- $(INSTALL) -m 755 $(outdir)/convert-mudela $(bindir)
- $(INSTALL) -m 755 $(outdir)/mudela-book $(bindir)
+ cd $(outdir); \
+ for a in $(EXECUTABLES); \
+ do $(INSTALL) -m 755 $$a $(bindir); \
+ done
localuninstall:
- rm -f $(bindir)/convert-mudela $(bindir)/mudela-book
+ for a in $(EXECUTABLES); \
+ do rm -f $(bindir)/convert-mudela $(bindir)/mudela-book; \
+ done
--- /dev/null
+#!/bin/sh
+
+# add URLs for broken perl 5.004
+
+perl -i~ -pe 's! ([a-z]+://[^ \t]+)! <a href=$1>$1</a>!g' $*
print 'Please set LILYPOND_SOURCEDIR to the toplevel source, eg LILYPOND_SOURCEDIR=/home/foobar/lilypond-1.2.3/'
sys.exit(1)
- self.release_dir = self.topdir + '../releases/'
- self.patch_dir = self.topdir + '../patches/'
+ try:
+ self.groupdir = os.environ['LILYPOND_GROUPDIR'] + '/'
+ except KeyError:
+ self.groupdir = self.topdir + '../'
+
+ self.release_dir = self.groupdir + '/releases/'
+ self.patch_dir = self.groupdir + '/patches/'
def version_tuple(self):
f = open (self.topdir + 'VERSION')
# Original LaTeX file made by Mats Bengtsson, 17/8 1997
#
-VERSION="0.6.jaf2"
+VERSION="0.7"
NAME=ly2dvi.sh
IDENTIFICATION="$NAME $VERSION"
NOW=`date`
# TODO
-# should detect crashing lilypond
+# 0.7
+# - Improved Lilypond error checking
+# - Output orientation (landscape...). Overrides mudela file
+# variable orientation="landscape";
+# - Paper width and heigth put into variables (only A4!)
+# - Adjusted top margin to default.....
+#
+#TODO
+# - Include more papersizes.
+# - Manual page.......
+# - should detect crashing lilypond
+
# NEWS
Options:
-D, --debug set debug mode
- -o, --output set output directory
+ -O, --orientation= set orientation (landscape or portrait (default))
+ -o, --output= set output directory
-h, --help this help text
-k, --keep keep LaTeX file
-l, --language= give LaTeX language (babel)
EOF
}
+PWIDTH=600; # Width of A4 paper!
+PHEIGTH=830; # Heigth of A4 paper!
#
# RC-files ?
#
#
# "x:" x takes argument
#
-switches="Do:hkl:p:s\?"
+switches="DO:hkl:o:p:s\?"
options=""
#
# ugh, "\-" is a hack to support long options
fi
debug_echo=echo
;;
+ O )
+ ORI=$OPTARG
+ ;;
h )
help;
exit 0
p*|-p*)
PSZ=`echo $OPTARG | sed -e s/"^.*="//`
;;
- o*|-o*)
- OUTPUTDIR=$OPTARG
- ;;
+ or*|-or*)
+ ORI=`echo $OPTARG | sed -e s/"^.*="//`
+ ;;
+ ou*|-ou*)
+ OUTPUTDIR=`echo $OPTARG | sed -e s/"^.*="//`
+ ;;
s*|-s*)
SEPFILE=Y
;;
fi
#
# Find:
-# paper size (PSZ, overridden by command line option -p)
-# language (LNG, overridden by command line option -l)
+# paper size (PSZ, overridden by command line option -p)
+# paper orientation (ORI, overridden by command line option -o)
+# language (LNG, overridden by command line option -l)
# textwidth
#
eval `sed -n \\
-e 's/\\\\def\\\\mudelapapersize{\([^}]*\).*$/fPSZ=\1;/p' \\
+ -e 's/\\\\def\\\\mudelaorientation{\([^}]*\).*$/fORI=\1;/p' \\
-e 's/\\\\def\\\\mudelalanguage{\([^}]*\).*$/fLNG=\1;/p' \\
-e 's/\\\\def\\\\mudelapaperlinewidth{\([^}]*\).*$/TWN=\1;/p' \\
$File`
-if [ "$PSZ" = "" ]
+if [ -z "$PSZ" ]
then
PSZ=$fPSZ
fi
-if [ "$PSZ" != "" ]
+if [ ! -z "$PSZ" ]
then
- PAPER="["$PSZ"]"
+ PAPEROPT=$PSZ
fi
#
-if [ "$LNG" = "" ]
+if [ -z "$ORI" ]
+then
+ ORI=$fORI
+fi
+if [ ! -z "$ORI" ]
+then
+ if [ -z "$PAPEROPT" ]
+ then
+ PAPEROPT=$ORI
+ else
+ PAPEROPT=$PAPEROPT,$ORI
+ fi
+fi
+#
+if [ ! -z "$PAPEROPT" ]
+then
+ PAPER="["$PAPEROPT"]"
+fi
+#
+if [ -z "$LNG" ]
then
LNG=$fLNG
fi
-if [ "$LNG" != "" ]
+if [ ! -z "$LNG" ]
then
LLNG="\usepackage["$LNG"]{babel}"
else
#
# Find textwidth
#
-if [ "$TWN" != "" ]
+if [ ! -z "$TWN" ]
then
TW=$TWN
case $TW in
$debug_echo "Text width = "$TW
fi
TWp=`echo $TW | sed -e 's/\..*$//'`
-PWp=600; # Width of A4 paper!
+PWp=$PWIDTH
+if [ "$ORI" = "landscape" ]
+then
+ PWp=$PHEIGTH
+fi
MARG=`expr $PWp - $TWp`
MARG=`expr $MARG / 2`"pt"
#
%\addtolength{\oddsidemargin}{-1cm}
%\addtolength{\topmargin}{-1cm}
\setlength{\textwidth}{$TW}
-\geometry{width=$TW, left=$MARG, top=1cm}
+%\geometry{width=$TW, left=$MARG, top=1cm}
+\geometry{width=$TW, left=$MARG}
\input lilyponddefs
\input titledefs
\begin{document}
#
endFile(){
cat << EOF >> $LF
-\vfill\hfill{\small\LilyIdString}
+\vfill\hfill{(\LilyIdString)}
\end{document}
EOF
#
lilypond $IF 2>&1 | tee /tmp/lilylog.$$
OF=`egrep '^TeX output to ' /tmp/lilylog.$$ | \\
sed -e 's/TeX output to//' -e 's/\.\.\.//'`
- rm /tmp/lilylog.$$
$debug_echo "==> "$OF
+ STATUS=`grep -i error /tmp/lilylog.$$`
+ rm /tmp/lilylog.$$
+ if [ ! -z "$STATUS" ]
+ then
+ exit 10
+ fi
fi
#
# "Spin through" all the files
def makepatch(fv, tv, patfile_nm):
import tempfile
prev_cwd = os.getcwd();
- os.chdir ('/tmp')
+ try:
+ os.mkdir ('/tmp/make-patch');
+ except:
+ pass
+
+ os.chdir ('/tmp/make-patch');
untar(released_tarball(fv))
untar(released_tarball(tv))
remove_automatic([dirname(fv), dirname(tv)])
sys.stderr.write('diffing to %s... ' % patfile_nm)
os.system('diff -urN ../%s . >> %s' % (dirname(fv), patfile_nm))
#os.system('gzip -9f %s' % patfile_nm)
- os.chdir('/tmp')
+ os.chdir('/tmp/make-patch')
sys.stderr.write('cleaning ... ')
os.system('rm -fr %s %s' % (dirname(tv), dirname(fv)))
self.write('\"%s\"\t' % str)
def print_f_dimen(self, f):
- self.write( '%.2f\\pt\t' % f);
+ dimstr = '%.2f' % f
+
+ # try to mask rounding errors
+ if (dimstr == '-0.00'):
+ dimstr = '0.00'
+ self.write( dimstr +'\\pt\t');
def print_dimen(self, str):
self.print_f_dimen(atof(str))
{
$mudela_b = 0;
if ($fragment_b) {
- print MUDELA "}\n \\paper { linewidth = -1.0\\cm; castingalgorithm = \\Wordwrap; } }\n";
+ print MUDELA "}\n \\paper { linewidth = -1.0\\cm;";
+ print MUDELA "castingalgorithm = \\Wordwrap; } }\n";
$fragment_b =0;
}
- if ( $verbatim_b) {
- print BOOK "\\end{verbatim}\n\\interexample";
- $verbatim_b =0;
+ if ($verbatim_b) {
+ print BOOK "\\end{verbatim}";
+ }
+ if ($center_b) {
+ print BOOK "\\end{minipage}";
+ }
+ if ($verbatim_b) {
+ print BOOK "\\interexample";
+ $verbatim_b = 0;
}
close MUDELA;
my $status =0;
my_system "lilypond ". gen_mufile;
rename gen_texbase, gen_texfile;
}
- print BOOK "\\preexample\\input " . gen_texfile . "\n\\postexample\n";
-
+
+ if ($center_b) {
+ print BOOK "\\begin{minipage}[c]{.5\\textwidth}\n";
+ }
+ print BOOK "\\input " . gen_texfile . "%\n";
+ if ($center_b) {
+ print BOOK "\\end{minipage}";
+ $center_b = 0;
+ }
+ print BOOK "\\postexample%\n";
}
sub open_mudela
$mudcount++;
$mudela_b = 1 ;
open MUDELA, ">$outdir/book-mudela.ly";
+ print BOOK "\\preexample%\n";
+ if ($center_b) {
+ print BOOK "\\begin{minipage}[c]{.5\\textwidth}\n";
+ }
if ($verbatim_b) {
print BOOK "\\begin{verbatim}\n";
}
if ($fragment_b) {
print MUDELA "\\score { \\melodic {\\octave c';";
+ } else {
+ print MUDELA "default_paper = \\paper { \\paper_sixteen ";
+ print MUDELA "linewidth = 7.\\cm;}";
}
}
$verbatim_b =1 if ($s =~ /verbatim/ );
$fragment_b = 1 if ($s =~ /fragment/ );
+ $center_b = 1 if ($s =~ /center/ );
}
sub help
sub main
{
GetOptions( 'outdir=s', 'outname=s', 'help');
- help if ( $opt_help ) ;
+ if ( $opt_help ) {
+ help();
+ $opt_help = 0; # to extinguish typo check. brr, what a language
+ }
if (defined ($opt_outdir)) {
$outdir = $opt_outdir . "/";
os.system('make dist')
cur_ver = lilydirs.version_tuple()
print tarball(cur_ver)
-os.rename('out/' + tarball(cur_ver), released_tarball(cur_ver))
-os.chdir('../test')
+try:
+ os.rename('out/' + tarball(cur_ver), released_tarball(cur_ver))
+except posix.error:
+ os.system('cp out/' + tarball(cur_ver) + ' ' + released_tarball(cur_ver))
+ os.unlink('out/' + tarball (cur_ver))
+
+os.chdir(lilydirs.groupdir + '/test')
os.system('pwd')
os.system('rm ../test/*gz')
-os.link(released_tarball(cur_ver), tarball(cur_ver))
+#huh?
+#os.symlink(released_tarball(cur_ver), tarball(cur_ver))
+
+try:
+ os.link(released_tarball(cur_ver), tarball(cur_ver))
+except posix.error:
+ os.system('cp ' + released_tarball(cur_ver) + ' '+ tarball(cur_ver))
# not a module, but a script (JCN)
# makepatch.main()
+pl 38
+ - Rational
+ - Real.hh fixes
pl 37
- various String/File_path mucking
MAJOR_VERSION = 1
MINOR_VERSION = 1
-PATCH_LEVEL = 36
+PATCH_LEVEL = 38
# use to send patches, always empty for released version:
MY_PATCH_LEVEL = # include separator: "-1" or ".a"
#
--- /dev/null
+/*
+ arithmetic-operator.hh -- declare
+
+ source file of the Flower Library
+
+ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+
+ */
+
+#ifndef ARITHMETIC_OPERATOR_HH
+#define ARITHMETIC_OPERATOR_HH
+
+#define IMPLEMENT_ARITHMETIC_OPERATOR(type, op) \
+inline type \
+operator op (type a1, type const& a2) \
+{ \
+ a1 op ## = a2; \
+ return a1; \
+}
+
+#endif /* ARITHMETIC_OPERATOR_HH */
+
struct String;
struct Matrix_storage;
struct Vector ;
+struct MyRational;
+
+
+#if PARANOIA
+#ifndef Rational
+#define Rational MyRational
+#endif
+#else
struct Rational;
+#endif
+
struct Text_stream;
struct Data_file;
struct Text_db;
/* ************** */
static T infinity() ;
+ static String T_to_str (T arg);
T center() { return (left + right) / T(2);}
void translate (T t) {
return "[empty]";
String s ("[");
- return s + String (left) + String ("," ) + String (right ) + String ("]" );
+ return s + T_to_str (left) + String ("," ) + T_to_str (right ) + String ("]" );
}
template<class T>
#ifndef RATIONAL_HH
#define RATIONAL_HH
-#include <Rational.h>
-/// print a Rational. To be called from the debugger
-void print_rat (Rational const&);
+#if PARANOIA
+#ifndef Rational
+#define Rational MyRational
+#endif
+#endif
+
+#include "compare.hh"
+#include "arithmetic-operator.hh"
+#include "fproto.hh"
+
+class Rational {
+ int sign_;
+ unsigned int num_, den_;
+ void normalise ();
+ void copy (Rational const &);
+public:
+ void set_infinite (int sign);
+ bool infty_b () const;
+ void invert ();
+ int num () const { return sign_ * num_; }
+ int den () const { return den_; }
+ Rational truncated () const;
+ void negate ();
+ operator bool () const;
+ operator String () const;
+ Rational operator - () const;
+ Rational ();
+ Rational (int, int =1);
+ Rational (double);
+ Rational (Rational const&);
+
+ Rational &operator = (Rational const &);
+ Rational &operator *= (Rational);
+ Rational &operator /= (Rational);
+ Rational &operator += (Rational);
+ Rational &operator -= (Rational);
+ static int compare (Rational const&, Rational const&);
+ int sign () const;
+ String str () const;
+};
+
+IMPLEMENT_ARITHMETIC_OPERATOR (Rational, / );
+IMPLEMENT_ARITHMETIC_OPERATOR (Rational, + );
+IMPLEMENT_ARITHMETIC_OPERATOR (Rational, * );
+IMPLEMENT_ARITHMETIC_OPERATOR (Rational, - );
+
+INSTANTIATE_COMPARE (Rational const&, Rational::compare);
+
+int compare (Rational const&,Rational const&);
+int sign (Rational r);
+
+inline void
+Rational::copy (Rational const&r)
+{
+ sign_ = r.sign_;
+ num_ = r.num_;
+ den_ = r.den_;
+}
+
+class ostream;
+ostream &
+operator << (ostream &, Rational);
#endif // RATIONAL_HH
#define REAL_HH
-#include <builtin.h>
-#include <minmax.h>
#include <math.h>
#include <limits.h>
typedef double Real;
const Real infinity_f = HUGE_VAL;
+
+template<class T> inline T abs (T x)
+{
+ return x > 0 ? x : -x;
+}
+
+template<class T> inline int sign (T x)
+{
+ if (x)
+ return x > 0 ? 1 : -1;
+ return 0;
+}
+
+template<class T> inline T max (T x, T y)
+{
+ return x >? y;
+}
+
+template<class T> inline T sqr (T x)
+{
+ return x*x;
+}
+
+
+template<class T> inline T min (T x, T y)
+{
+ return x <? y;
+}
+
inline Real
distance (Real x,Real y)
{
#include <string.h>
#include <iostream.h>
-#include <Rational.h>
-
+#include "arithmetic-operator.hh"
+#include "fproto.hh"
#include "string-handle.hh"
/*
/** init to empty string. This is needed because other
constructors are provided.*/
String ();
- String (Rational);
/// String s = "abc";
String (char const* source);
return String (s2) !=s1;
}
-
-inline String
-operator + (String s1, String s2)
-{
- s1 += s2;
- return s1;
-}
+IMPLEMENT_ARITHMETIC_OPERATOR (String, +);
inline ostream &
operator << (ostream& os, String d)
{
return HUGE_VAL;
}
+
+String
+Interval_t<Real>::T_to_str (Real r)
+{
+ return String (r);
+}
/*
- rational.cc -- implement Rational related functions
-
+ rational.cc -- implement Rational
+
source file of the Flower Library
(c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
*/
-
+#include <stdlib.h>
#include "rational.hh"
#include "string.hh"
+#include "string-convert.hh"
+#include "libc-extension.hh"
+
+
+Rational::operator bool () const
+{
+ return sign_;
+}
+
+ostream &
+operator << (ostream &o, Rational r)
+{
+ o << r.str ();
+ return o;
+}
+
+
+
+Rational
+Rational::truncated () const
+{
+ return Rational(num_ - (num_ % den_), den_);
+}
+
+Rational::Rational ()
+{
+ sign_ = 1;
+ num_ = den_ = 1;
+}
+
+Rational::Rational (int n, int d)
+{
+ sign_ = ::sign (n) * ::sign (d);
+ num_ = abs (n);
+ den_ = abs (d);
+ normalise ();
+}
+
+
+static
+int gcd (int a, int b)
+{
+ int t;
+ while ((t = a % b))
+ {
+ a = b;
+ b = t;
+ }
+ return b;
+}
+
+static
+int lcm (int a, int b)
+{
+ return abs (a*b / gcd (a,b));
+}
+
+void
+Rational::set_infinite (int s)
+{
+ sign_ = ::sign (s) * 2;
+}
+
+Rational
+Rational::operator - () const
+{
+ Rational r(*this);
+ r.negate ();
+ return r;
+}
+
+void
+Rational::normalise ()
+{
+ if (!sign_)
+ {
+ den_ = 1;
+ num_ = 0;
+ return ;
+ }
+ if (!den_)
+ sign_ = 2;
+ if (!num_)
+ sign_ = 0;
+
+ int g = gcd (num_ , den_);
+
+ num_ /= g;
+ den_ /= g;
+}
+
+int
+Rational::sign () const
+{
+ return ::sign (sign_);
+}
+
+bool
+Rational::infty_b () const
+{
+ return abs (sign_) > 1;
+}
+
+int
+Rational::compare (Rational const &r, Rational const &s)
+{
+ if (r.sign_ < s.sign_)
+ return -1;
+ else if (r.sign_ > s.sign_)
+ return 1;
+ else if (r.infty_b ())
+ return 0;
+
+ return (r - s).sign ();
+}
+
+int
+compare (Rational const &r, Rational const &s)
+{
+ return Rational::compare (r, s );
+}
+
+Rational &
+Rational::operator += (Rational r)
+{
+ if (infty_b ())
+ ;
+ else if (r.infty_b ())
+ {
+ *this = r;
+ }
+ else
+ {
+ int n = sign_ * num_ *r.den_ + r.sign_ * den_ * r.num_;
+ int d = den_ * r.den_;
+ sign_ = ::sign (n) * ::sign(d);
+ num_ = abs (n);
+ den_ = abs (d);
+ normalise ();
+ }
+ return *this;
+}
+
+
+/*
+ copied from libg++ 2.8.0
+ */
+Rational::Rational(double x)
+{
+ num_ = 0;
+ den_ = 1;
+ if (x != 0.0)
+ {
+ sign_ = ::sign (x);
+ x *= sign_;
+
+ const long shift = 15; // a safe shift per step
+ const double width = 32768.0; // = 2^shift
+ const int maxiter = 20; // ought not be necessary, but just in case,
+ // max 300 bits of precision
+ int expt;
+ double mantissa = frexp(x, &expt);
+ long exponent = expt;
+ double intpart;
+ int k = 0;
+ while (mantissa != 0.0 && k++ < maxiter)
+ {
+ mantissa *= width;
+ mantissa = modf(mantissa, &intpart);
+ num_ <<= shift;
+ num_ += (long)intpart;
+ exponent -= shift;
+ }
+ if (exponent > 0)
+ num_ <<= exponent;
+ else if (exponent < 0)
+ den_ <<= -exponent;
+ } else {
+ sign_ = 0;
+ }
+ normalise();
+}
+
void
-print_rat (Rational const &m)
+Rational::invert ()
{
- cout << String (m) << flush;
+ int r (num_);
+ num_ = den_;
+ den_ = r;
+}
+
+Rational &
+Rational::operator *= (Rational r)
+{
+ sign_ *= ::sign (r.sign_);
+ if (r.infty_b ())
+ {
+ sign_ = sign () * 2;
+ goto exit_func;
+ }
+
+ num_ *= r.num_;
+ den_ *= r.den_;
+
+ normalise ();
+ exit_func:
+ return *this;
}
+Rational &
+Rational::operator /= (Rational r)
+{
+ r.invert ();
+ return (*this *= r);
+}
+
+void
+Rational::negate ()
+{
+ sign_ *= -1;
+}
+
+Rational&
+Rational::operator -= (Rational r)
+{
+ r.negate ();
+ return (*this += r);
+}
+
+/*
+ be paranoid about overiding libg++ stuff
+ */
+Rational &
+Rational::operator = (Rational const &r)
+{
+ copy (r);
+ return *this;
+}
+Rational::Rational (Rational const &r)
+{
+ copy (r);
+}
+
+Rational::operator String () const
+{
+ return str ();
+}
+
+String
+Rational::str () const
+{
+ if (infty_b ())
+ {
+ String s (sign_ > 0 ? "" : "-" );
+ return String (s + "infinity");
+ }
+ String s (num ());
+ if (den () != 1 && num ())
+ s += "/" + String (den ());
+ return s;
+}
+
+int
+sign (Rational r)
+{
+ return r.sign ();
+}
/*
- scalar.cc -- implement
+ scalar.cc -- implement Scalar
source file of the Flower Library
#include <assert.h>
#include <stdio.h>
#include "scalar.hh"
+#include "rational.hh"
Scalar::Scalar (Rational r)
- :String (r)
{
-
+ (*this) = r.str ();
}
Scalar::operator Rational ()
--*/
-
+#include <stdio.h>
#include <assert.h>
#include <limits.h>
#include "libc-extension.hh"
#include "string.hh"
#include "string-convert.hh"
+#include "rational.hh"
/**
a safe length for stringconversion buffers
String
String_convert::rational_str (Rational r)
{
- char * n = Itoa (r.numerator()); // LEAK????
-
- String s = n;
- if (r.denominator() != 1)
- {
- char * d = Itoa (r.denominator());
- s += String ('/') + String (d);
- //delete d;
- }
- /* delete n;
- */
- return s;
+ return r.str ();
}
String
return *this;
}
-
-String::String (Rational r)
-{
- *this = String_convert::rational_str (r);
-}
-
String::String (double f, char const* fmt)
{
*this= String_convert::double_str (f,fmt);
--- /dev/null
+#include <iostream.h>
+#include "rational.hh"
+#include "flower-test.hh"
+#include "string.hh"
+
+
+#define EXP_PRINT(a) #a << ": " << (a) << "\n"
+
+void
+rattest ()
+{
+ Rational r (1,4);
+ Rational q(1,2);
+ Rational s(6,4);
+ Rational i;
+ i.set_infinite (1);
+
+ cout << r << " " << s << " " << q << "\n";
+ cout << r + q << " " << (s * q + s) << " " << (q / r) << "\n";
+ cout << i;
+ cout << "inf * r" << i * r << "inf * inf " << i * i << "inf + r" << i + r;
+ cout << EXP_PRINT(-i);
+ cout << EXP_PRINT(i >? -i) << EXP_PRINT(i >? r);
+ cout << EXP_PRINT(i <? r) ;
+ Rational one(1);
+ cout << EXP_PRINT(one/4);
+ cout << EXP_PRINT(one + one/4);
+ Rational nul (0,1);
+ Rational kwart (1,4);
+ nul += kwart;
+ cout << EXP_PRINT(nul);
+ nul -= 2 * kwart;
+ cout << EXP_PRINT(nul);
+
+ cout << EXP_PRINT(Rational (1,128) + Rational (1919,128));
+
+}
+
+ADD_TEST (rattest);
}
-
-
-
-keyCminor = \key \bes \es \as;
cr = \spandynamic { 1 1 }
decr = \spandynamic { -1 1 }
-rc = \spandynamic { 1 2 } % stop a crescendo (worrks for decrescendo too)
-
+rc = \spandynamic { 1 2 } % stop a crescendo
+rced = \spandynamic { 1 2 } % stop a decrescendo
\consists "Staff_sym_engraver";
\consists "Collision_engraver";
\consists "Rest_collision_engraver";
-
\consists "Line_group_engraver";
\accepts "Voice";
}
+Rhythmic_staff = \translator
+{
+ \type "Engraver_group_engraver";
+ nolines = "1";
+ \consists "Pitch_squash_engraver";
+
+ \consists "Bar_engraver";
+ \consists "Meter_engraver";
+ \consists "Staff_sym_engraver";
+ \consists "Line_group_engraver";
+ \accepts "Voice";
+}
Voice = \translator {
\type "Engraver_group_engraver";
\consists "Dynamic_engraver";
\consists "Vertical_align_engraver";
\consists "Line_group_engraver";
\accepts "Staff";
+ \accepts "Rhythmic_staff";
\accepts "Grandstaff";
\accepts "Lyrics";
}
\accepts "Staff_group";
\accepts "Staff";
+ \accepts "Rhythmic_staff";
\accepts "Lyrics";
\accepts "Grandstaff";
}
% input from out/feta11.log
% name=\symboltables {
"rests" = \table {
- "0" "\\wholerest" -0.00\pt 4.12\pt -1.72\pt 0.00\pt
- "1" "\\halfrest" -0.00\pt 4.12\pt -0.00\pt 1.72\pt
+ "0" "\\wholerest" 0.00\pt 4.12\pt -1.72\pt 0.00\pt
+ "1" "\\halfrest" 0.00\pt 4.12\pt 0.00\pt 1.72\pt
"0o" "\\outsidewholerest" -1.72\pt 5.84\pt -1.72\pt 0.28\pt
"1o" "\\outsidehalfrest" -1.72\pt 5.84\pt -0.28\pt 1.72\pt
- "2" "\\quartrest" -0.00\pt 2.97\pt 2.06\pt 9.90\pt
- "3" "\\eighthrest" -0.00\pt 3.67\pt 2.75\pt 7.81\pt
- "4" "\\sixteenthrest" -0.00\pt 4.27\pt -0.00\pt 7.81\pt
- "5" "\\thirtysecondrest" -0.00\pt 4.81\pt -0.00\pt 10.56\pt
- "6" "\\sixtyfourthrest" -0.00\pt 5.16\pt -0.00\pt 13.31\pt
- "7" "\\hundredtwentyeighthrest" -0.00\pt 5.75\pt -0.00\pt 16.06\pt
+ "2" "\\quartrest" 0.00\pt 2.97\pt 2.06\pt 9.90\pt
+ "3" "\\eighthrest" 0.00\pt 3.67\pt 2.75\pt 7.81\pt
+ "4" "\\sixteenthrest" 0.00\pt 4.27\pt 0.00\pt 7.81\pt
+ "5" "\\thirtysecondrest" 0.00\pt 4.81\pt 0.00\pt 10.56\pt
+ "6" "\\sixtyfourthrest" 0.00\pt 5.16\pt 0.00\pt 13.31\pt
+ "7" "\\hundredtwentyeighthrest" 0.00\pt 5.75\pt 0.00\pt 16.06\pt
}
"accidentals" = \table {
- "1" "\\sharp" -0.00\pt 3.03\pt -4.12\pt 4.12\pt
- "0" "\\natural" -0.00\pt 1.83\pt -4.12\pt 4.12\pt
+ "1" "\\sharp" 0.00\pt 3.03\pt -4.12\pt 4.12\pt
+ "0" "\\natural" 0.00\pt 1.83\pt -4.12\pt 4.12\pt
"-1" "\\flat" -0.33\pt 2.20\pt -1.38\pt 5.50\pt
"-2" "\\flatflat" -0.33\pt 3.99\pt -1.38\pt 5.50\pt
- "2" "\\sharpsharp" -0.00\pt 2.75\pt -1.38\pt 1.38\pt
+ "2" "\\sharpsharp" 0.00\pt 2.75\pt -1.38\pt 1.38\pt
}
"dots" = \table {
- "dot" "\\dot" -0.00\pt 1.24\pt -0.62\pt 0.62\pt
- "repeatcolon" "\\repeatcolon" -0.00\pt 1.24\pt -1.38\pt 1.38\pt
+ "dot" "\\dot" 0.00\pt 1.24\pt -0.62\pt 0.62\pt
+ "repeatcolon" "\\repeatcolon" 0.00\pt 1.24\pt -1.38\pt 1.38\pt
}
"balls" = \table {
- "-1" "\\brevisball" -0.00\pt 5.50\pt -1.51\pt 1.51\pt
+ "-1" "\\brevisball" 0.00\pt 5.50\pt -1.51\pt 1.51\pt
"-1l" "\\brevisledger" -1.38\pt 6.88\pt -0.28\pt 0.28\pt
- "-2" "\\longaball" -0.00\pt 5.50\pt -1.51\pt 1.51\pt
+ "-2" "\\longaball" 0.00\pt 5.50\pt -1.51\pt 1.51\pt
"-2l" "\\longaledger" -1.38\pt 6.88\pt -0.28\pt 0.28\pt
- "0" "\\wholeball" -0.00\pt 5.45\pt -1.51\pt 1.51\pt
+ "0" "\\wholeball" 0.00\pt 5.45\pt -1.51\pt 1.51\pt
"0l" "\\wholeledger" -1.36\pt 6.81\pt -0.28\pt 0.28\pt
- "1" "\\halfball" -0.00\pt 3.79\pt -1.51\pt 1.51\pt
+ "1" "\\halfball" 0.00\pt 3.79\pt -1.51\pt 1.51\pt
"1l" "\\halfledger" -0.95\pt 4.74\pt -0.28\pt 0.28\pt
- "2" "\\quartball" -0.00\pt 3.63\pt -1.51\pt 1.51\pt
+ "2" "\\quartball" 0.00\pt 3.63\pt -1.51\pt 1.51\pt
"2l" "\\quartledger" -0.91\pt 4.54\pt -0.28\pt 0.28\pt
}
"scripts" = \table {
"ustaccatissimo" "\\ustaccatissimo" -0.55\pt 0.55\pt -0.20\pt 2.75\pt
"dstaccatissimo" "\\dstaccatissimo" -0.55\pt 0.55\pt -2.75\pt 0.20\pt
"tenuto" "\\tenuto" -2.47\pt 2.47\pt -0.17\pt 0.17\pt
- "umarcato" "\\umarcato" -1.38\pt 1.38\pt -0.00\pt 3.03\pt
+ "umarcato" "\\umarcato" -1.38\pt 1.38\pt 0.00\pt 3.03\pt
"dmarcato" "\\dmarcato" -1.38\pt 1.38\pt -3.03\pt 0.00\pt
"open" "\\ouvert" -1.10\pt 1.10\pt -1.38\pt 1.38\pt
"stopped" "\\plusstop" -1.51\pt 1.51\pt -1.51\pt 1.51\pt
- "upbow" "\\upbow" -1.79\pt 1.79\pt -0.00\pt 5.72\pt
- "downbow" "\\downbow" -2.06\pt 2.06\pt -0.00\pt 3.67\pt
+ "upbow" "\\upbow" -1.79\pt 1.79\pt 0.00\pt 5.72\pt
+ "downbow" "\\downbow" -2.06\pt 2.06\pt 0.00\pt 3.67\pt
"turn" "\\turn" -3.01\pt 3.01\pt -1.46\pt 1.46\pt
- "trill" "\\trill" -2.75\pt 2.75\pt -0.00\pt 6.19\pt
+ "trill" "\\trill" -2.75\pt 2.75\pt 0.00\pt 6.19\pt
"upedalheel" "\\upedalheel" -1.38\pt 1.38\pt -1.38\pt 1.83\pt
"dpedalheel" "\\dpedalheel" -1.38\pt 1.38\pt -1.83\pt 1.38\pt
- "upedaltoe" "\\upedaltoe" -1.38\pt 1.38\pt -0.00\pt 4.12\pt
+ "upedaltoe" "\\upedaltoe" -1.38\pt 1.38\pt 0.00\pt 4.12\pt
"dpedaltoe" "\\dpedaltoe" -1.38\pt 1.38\pt -4.12\pt 0.00\pt
"flageolet" "\\flageolet" -1.47\pt 1.47\pt -1.47\pt 1.47\pt
}
% input from out/feta13.log
% name=\symboltables {
"rests" = \table {
- "0" "\\wholerest" -0.00\pt 4.88\pt -2.03\pt 0.00\pt
- "1" "\\halfrest" -0.00\pt 4.88\pt -0.00\pt 2.03\pt
+ "0" "\\wholerest" 0.00\pt 4.88\pt -2.03\pt 0.00\pt
+ "1" "\\halfrest" 0.00\pt 4.88\pt 0.00\pt 2.03\pt
"0o" "\\outsidewholerest" -2.03\pt 6.91\pt -2.03\pt 0.33\pt
"1o" "\\outsidehalfrest" -2.03\pt 6.91\pt -0.33\pt 2.03\pt
- "2" "\\quartrest" -0.00\pt 3.51\pt 2.44\pt 11.70\pt
- "3" "\\eighthrest" -0.00\pt 4.33\pt 3.25\pt 9.24\pt
- "4" "\\sixteenthrest" -0.00\pt 5.04\pt -0.00\pt 9.24\pt
- "5" "\\thirtysecondrest" -0.00\pt 5.69\pt -0.00\pt 12.49\pt
- "6" "\\sixtyfourthrest" -0.00\pt 6.10\pt -0.00\pt 15.74\pt
- "7" "\\hundredtwentyeighthrest" -0.00\pt 6.79\pt -0.00\pt 18.99\pt
+ "2" "\\quartrest" 0.00\pt 3.51\pt 2.44\pt 11.70\pt
+ "3" "\\eighthrest" 0.00\pt 4.33\pt 3.25\pt 9.24\pt
+ "4" "\\sixteenthrest" 0.00\pt 5.04\pt 0.00\pt 9.24\pt
+ "5" "\\thirtysecondrest" 0.00\pt 5.69\pt 0.00\pt 12.49\pt
+ "6" "\\sixtyfourthrest" 0.00\pt 6.10\pt 0.00\pt 15.74\pt
+ "7" "\\hundredtwentyeighthrest" 0.00\pt 6.79\pt 0.00\pt 18.99\pt
}
"accidentals" = \table {
- "1" "\\sharp" -0.00\pt 3.58\pt -4.88\pt 4.88\pt
- "0" "\\natural" -0.00\pt 2.17\pt -4.88\pt 4.88\pt
+ "1" "\\sharp" 0.00\pt 3.58\pt -4.88\pt 4.88\pt
+ "0" "\\natural" 0.00\pt 2.17\pt -4.88\pt 4.88\pt
"-1" "\\flat" -0.39\pt 2.60\pt -1.62\pt 6.50\pt
"-2" "\\flatflat" -0.39\pt 4.71\pt -1.62\pt 6.50\pt
- "2" "\\sharpsharp" -0.00\pt 3.25\pt -1.62\pt 1.62\pt
+ "2" "\\sharpsharp" 0.00\pt 3.25\pt -1.62\pt 1.62\pt
}
"dots" = \table {
- "dot" "\\dot" -0.00\pt 1.46\pt -0.73\pt 0.73\pt
- "repeatcolon" "\\repeatcolon" -0.00\pt 1.46\pt -1.62\pt 1.62\pt
+ "dot" "\\dot" 0.00\pt 1.46\pt -0.73\pt 0.73\pt
+ "repeatcolon" "\\repeatcolon" 0.00\pt 1.46\pt -1.62\pt 1.62\pt
}
"balls" = \table {
- "-1" "\\brevisball" -0.00\pt 6.50\pt -1.79\pt 1.79\pt
+ "-1" "\\brevisball" 0.00\pt 6.50\pt -1.79\pt 1.79\pt
"-1l" "\\brevisledger" -1.62\pt 8.12\pt -0.33\pt 0.33\pt
- "-2" "\\longaball" -0.00\pt 6.50\pt -1.79\pt 1.79\pt
+ "-2" "\\longaball" 0.00\pt 6.50\pt -1.79\pt 1.79\pt
"-2l" "\\longaledger" -1.62\pt 8.12\pt -0.33\pt 0.33\pt
- "0" "\\wholeball" -0.00\pt 6.44\pt -1.79\pt 1.79\pt
+ "0" "\\wholeball" 0.00\pt 6.44\pt -1.79\pt 1.79\pt
"0l" "\\wholeledger" -1.61\pt 8.04\pt -0.33\pt 0.33\pt
- "1" "\\halfball" -0.00\pt 4.48\pt -1.79\pt 1.79\pt
+ "1" "\\halfball" 0.00\pt 4.48\pt -1.79\pt 1.79\pt
"1l" "\\halfledger" -1.12\pt 5.60\pt -0.33\pt 0.33\pt
- "2" "\\quartball" -0.00\pt 4.29\pt -1.79\pt 1.79\pt
+ "2" "\\quartball" 0.00\pt 4.29\pt -1.79\pt 1.79\pt
"2l" "\\quartledger" -1.07\pt 5.37\pt -0.33\pt 0.33\pt
}
"scripts" = \table {
"ustaccatissimo" "\\ustaccatissimo" -0.65\pt 0.65\pt -0.20\pt 3.25\pt
"dstaccatissimo" "\\dstaccatissimo" -0.65\pt 0.65\pt -3.25\pt 0.20\pt
"tenuto" "\\tenuto" -2.92\pt 2.92\pt -0.20\pt 0.20\pt
- "umarcato" "\\umarcato" -1.62\pt 1.62\pt -0.00\pt 3.58\pt
+ "umarcato" "\\umarcato" -1.62\pt 1.62\pt 0.00\pt 3.58\pt
"dmarcato" "\\dmarcato" -1.62\pt 1.62\pt -3.58\pt 0.00\pt
"open" "\\ouvert" -1.30\pt 1.30\pt -1.62\pt 1.62\pt
"stopped" "\\plusstop" -1.79\pt 1.79\pt -1.79\pt 1.79\pt
- "upbow" "\\upbow" -2.11\pt 2.11\pt -0.00\pt 6.76\pt
- "downbow" "\\downbow" -2.44\pt 2.44\pt -0.00\pt 4.33\pt
+ "upbow" "\\upbow" -2.11\pt 2.11\pt 0.00\pt 6.76\pt
+ "downbow" "\\downbow" -2.44\pt 2.44\pt 0.00\pt 4.33\pt
"turn" "\\turn" -3.55\pt 3.55\pt -1.72\pt 1.72\pt
- "trill" "\\trill" -3.25\pt 3.25\pt -0.00\pt 7.31\pt
+ "trill" "\\trill" -3.25\pt 3.25\pt 0.00\pt 7.31\pt
"upedalheel" "\\upedalheel" -1.62\pt 1.62\pt -1.62\pt 2.17\pt
"dpedalheel" "\\dpedalheel" -1.62\pt 1.62\pt -2.17\pt 1.62\pt
- "upedaltoe" "\\upedaltoe" -1.62\pt 1.62\pt -0.00\pt 4.88\pt
+ "upedaltoe" "\\upedaltoe" -1.62\pt 1.62\pt 0.00\pt 4.88\pt
"dpedaltoe" "\\dpedaltoe" -1.62\pt 1.62\pt -4.88\pt 0.00\pt
"flageolet" "\\flageolet" -1.73\pt 1.73\pt -1.73\pt 1.73\pt
}
% input from out/feta16.log
% name=\symboltables {
"rests" = \table {
- "0" "\\wholerest" -0.00\pt 6.00\pt -2.50\pt 0.00\pt
- "1" "\\halfrest" -0.00\pt 6.00\pt -0.00\pt 2.50\pt
+ "0" "\\wholerest" 0.00\pt 6.00\pt -2.50\pt 0.00\pt
+ "1" "\\halfrest" 0.00\pt 6.00\pt 0.00\pt 2.50\pt
"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.37\pt
- "4" "\\sixteenthrest" -0.00\pt 6.21\pt -0.00\pt 11.37\pt
- "5" "\\thirtysecondrest" -0.00\pt 7.00\pt -0.00\pt 15.37\pt
- "6" "\\sixtyfourthrest" -0.00\pt 7.51\pt -0.00\pt 19.37\pt
- "7" "\\hundredtwentyeighthrest" -0.00\pt 8.36\pt -0.00\pt 23.37\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.37\pt
+ "4" "\\sixteenthrest" 0.00\pt 6.21\pt 0.00\pt 11.37\pt
+ "5" "\\thirtysecondrest" 0.00\pt 7.00\pt 0.00\pt 15.37\pt
+ "6" "\\sixtyfourthrest" 0.00\pt 7.51\pt 0.00\pt 19.37\pt
+ "7" "\\hundredtwentyeighthrest" 0.00\pt 8.36\pt 0.00\pt 23.37\pt
}
"accidentals" = \table {
- "1" "\\sharp" -0.00\pt 4.40\pt -6.00\pt 6.00\pt
- "0" "\\natural" -0.00\pt 2.67\pt -6.00\pt 6.00\pt
+ "1" "\\sharp" 0.00\pt 4.40\pt -6.00\pt 6.00\pt
+ "0" "\\natural" 0.00\pt 2.67\pt -6.00\pt 6.00\pt
"-1" "\\flat" -0.48\pt 3.20\pt -2.00\pt 8.00\pt
"-2" "\\flatflat" -0.48\pt 5.80\pt -2.00\pt 8.00\pt
- "2" "\\sharpsharp" -0.00\pt 4.00\pt -2.00\pt 2.00\pt
+ "2" "\\sharpsharp" 0.00\pt 4.00\pt -2.00\pt 2.00\pt
}
"dots" = \table {
- "dot" "\\dot" -0.00\pt 1.80\pt -0.90\pt 0.90\pt
- "repeatcolon" "\\repeatcolon" -0.00\pt 1.80\pt -2.00\pt 2.00\pt
+ "dot" "\\dot" 0.00\pt 1.80\pt -0.90\pt 0.90\pt
+ "repeatcolon" "\\repeatcolon" 0.00\pt 1.80\pt -2.00\pt 2.00\pt
}
"balls" = \table {
- "-1" "\\brevisball" -0.00\pt 8.00\pt -2.20\pt 2.20\pt
+ "-1" "\\brevisball" 0.00\pt 8.00\pt -2.20\pt 2.20\pt
"-1l" "\\brevisledger" -2.00\pt 10.00\pt -0.40\pt 0.40\pt
- "-2" "\\longaball" -0.00\pt 8.00\pt -2.20\pt 2.20\pt
+ "-2" "\\longaball" 0.00\pt 8.00\pt -2.20\pt 2.20\pt
"-2l" "\\longaledger" -2.00\pt 10.00\pt -0.40\pt 0.40\pt
- "0" "\\wholeball" -0.00\pt 7.92\pt -2.20\pt 2.20\pt
+ "0" "\\wholeball" 0.00\pt 7.92\pt -2.20\pt 2.20\pt
"0l" "\\wholeledger" -1.98\pt 9.90\pt -0.40\pt 0.40\pt
- "1" "\\halfball" -0.00\pt 5.51\pt -2.20\pt 2.20\pt
+ "1" "\\halfball" 0.00\pt 5.51\pt -2.20\pt 2.20\pt
"1l" "\\halfledger" -1.38\pt 6.89\pt -0.40\pt 0.40\pt
- "2" "\\quartball" -0.00\pt 5.28\pt -2.20\pt 2.20\pt
+ "2" "\\quartball" 0.00\pt 5.28\pt -2.20\pt 2.20\pt
"2l" "\\quartledger" -1.32\pt 6.61\pt -0.40\pt 0.40\pt
}
"scripts" = \table {
"ustaccatissimo" "\\ustaccatissimo" -0.80\pt 0.80\pt -0.20\pt 4.00\pt
"dstaccatissimo" "\\dstaccatissimo" -0.80\pt 0.80\pt -4.00\pt 0.20\pt
"tenuto" "\\tenuto" -3.60\pt 3.60\pt -0.24\pt 0.24\pt
- "umarcato" "\\umarcato" -2.00\pt 2.00\pt -0.00\pt 4.40\pt
+ "umarcato" "\\umarcato" -2.00\pt 2.00\pt 0.00\pt 4.40\pt
"dmarcato" "\\dmarcato" -2.00\pt 2.00\pt -4.40\pt 0.00\pt
"open" "\\ouvert" -1.60\pt 1.60\pt -2.00\pt 2.00\pt
"stopped" "\\plusstop" -2.20\pt 2.20\pt -2.20\pt 2.20\pt
- "upbow" "\\upbow" -2.60\pt 2.60\pt -0.00\pt 8.32\pt
- "downbow" "\\downbow" -3.00\pt 3.00\pt -0.00\pt 5.33\pt
+ "upbow" "\\upbow" -2.60\pt 2.60\pt 0.00\pt 8.32\pt
+ "downbow" "\\downbow" -3.00\pt 3.00\pt 0.00\pt 5.33\pt
"turn" "\\turn" -4.38\pt 4.38\pt -2.12\pt 2.12\pt
- "trill" "\\trill" -4.00\pt 4.00\pt -0.00\pt 9.00\pt
+ "trill" "\\trill" -4.00\pt 4.00\pt 0.00\pt 9.00\pt
"upedalheel" "\\upedalheel" -2.00\pt 2.00\pt -2.00\pt 2.67\pt
"dpedalheel" "\\dpedalheel" -2.00\pt 2.00\pt -2.67\pt 2.00\pt
- "upedaltoe" "\\upedaltoe" -2.00\pt 2.00\pt -0.00\pt 6.00\pt
+ "upedaltoe" "\\upedaltoe" -2.00\pt 2.00\pt 0.00\pt 6.00\pt
"dpedaltoe" "\\dpedaltoe" -2.00\pt 2.00\pt -6.00\pt 0.00\pt
"flageolet" "\\flageolet" -2.13\pt 2.13\pt -2.13\pt 2.13\pt
}
% input from out/feta19.log
% name=\symboltables {
"rests" = \table {
- "0" "\\wholerest" -0.00\pt 7.12\pt -2.97\pt 0.00\pt
- "1" "\\halfrest" -0.00\pt 7.12\pt -0.00\pt 2.97\pt
+ "0" "\\wholerest" 0.00\pt 7.12\pt -2.97\pt 0.00\pt
+ "1" "\\halfrest" 0.00\pt 7.12\pt 0.00\pt 2.97\pt
"0o" "\\outsidewholerest" -2.97\pt 10.09\pt -2.97\pt 0.48\pt
"1o" "\\outsidehalfrest" -2.97\pt 10.09\pt -0.48\pt 2.97\pt
- "2" "\\quartrest" -0.00\pt 5.13\pt 3.56\pt 17.10\pt
- "3" "\\eighthrest" -0.00\pt 6.33\pt 4.75\pt 13.50\pt
- "4" "\\sixteenthrest" -0.00\pt 7.37\pt -0.00\pt 13.50\pt
- "5" "\\thirtysecondrest" -0.00\pt 8.32\pt -0.00\pt 18.25\pt
- "6" "\\sixtyfourthrest" -0.00\pt 8.92\pt -0.00\pt 23.00\pt
- "7" "\\hundredtwentyeighthrest" -0.00\pt 9.93\pt -0.00\pt 27.75\pt
+ "2" "\\quartrest" 0.00\pt 5.13\pt 3.56\pt 17.10\pt
+ "3" "\\eighthrest" 0.00\pt 6.33\pt 4.75\pt 13.50\pt
+ "4" "\\sixteenthrest" 0.00\pt 7.37\pt 0.00\pt 13.50\pt
+ "5" "\\thirtysecondrest" 0.00\pt 8.32\pt 0.00\pt 18.25\pt
+ "6" "\\sixtyfourthrest" 0.00\pt 8.92\pt 0.00\pt 23.00\pt
+ "7" "\\hundredtwentyeighthrest" 0.00\pt 9.93\pt 0.00\pt 27.75\pt
}
"accidentals" = \table {
- "1" "\\sharp" -0.00\pt 5.23\pt -7.12\pt 7.12\pt
- "0" "\\natural" -0.00\pt 3.17\pt -7.12\pt 7.12\pt
+ "1" "\\sharp" 0.00\pt 5.23\pt -7.12\pt 7.12\pt
+ "0" "\\natural" 0.00\pt 3.17\pt -7.12\pt 7.12\pt
"-1" "\\flat" -0.57\pt 3.80\pt -2.38\pt 9.50\pt
"-2" "\\flatflat" -0.57\pt 6.89\pt -2.38\pt 9.50\pt
- "2" "\\sharpsharp" -0.00\pt 4.75\pt -2.38\pt 2.38\pt
+ "2" "\\sharpsharp" 0.00\pt 4.75\pt -2.38\pt 2.38\pt
}
"dots" = \table {
- "dot" "\\dot" -0.00\pt 2.14\pt -1.07\pt 1.07\pt
- "repeatcolon" "\\repeatcolon" -0.00\pt 2.14\pt -2.38\pt 2.38\pt
+ "dot" "\\dot" 0.00\pt 2.14\pt -1.07\pt 1.07\pt
+ "repeatcolon" "\\repeatcolon" 0.00\pt 2.14\pt -2.38\pt 2.38\pt
}
"balls" = \table {
- "-1" "\\brevisball" -0.00\pt 9.50\pt -2.61\pt 2.61\pt
+ "-1" "\\brevisball" 0.00\pt 9.50\pt -2.61\pt 2.61\pt
"-1l" "\\brevisledger" -2.38\pt 11.88\pt -0.48\pt 0.48\pt
- "-2" "\\longaball" -0.00\pt 9.50\pt -2.61\pt 2.61\pt
+ "-2" "\\longaball" 0.00\pt 9.50\pt -2.61\pt 2.61\pt
"-2l" "\\longaledger" -2.38\pt 11.88\pt -0.48\pt 0.48\pt
- "0" "\\wholeball" -0.00\pt 9.41\pt -2.61\pt 2.61\pt
+ "0" "\\wholeball" 0.00\pt 9.41\pt -2.61\pt 2.61\pt
"0l" "\\wholeledger" -2.35\pt 11.76\pt -0.48\pt 0.48\pt
- "1" "\\halfball" -0.00\pt 6.54\pt -2.61\pt 2.61\pt
+ "1" "\\halfball" 0.00\pt 6.54\pt -2.61\pt 2.61\pt
"1l" "\\halfledger" -1.64\pt 8.18\pt -0.48\pt 0.48\pt
- "2" "\\quartball" -0.00\pt 6.27\pt -2.61\pt 2.61\pt
+ "2" "\\quartball" 0.00\pt 6.27\pt -2.61\pt 2.61\pt
"2l" "\\quartledger" -1.57\pt 7.84\pt -0.48\pt 0.48\pt
}
"scripts" = \table {
"ustaccatissimo" "\\ustaccatissimo" -0.95\pt 0.95\pt -0.20\pt 4.75\pt
"dstaccatissimo" "\\dstaccatissimo" -0.95\pt 0.95\pt -4.75\pt 0.20\pt
"tenuto" "\\tenuto" -4.27\pt 4.27\pt -0.29\pt 0.29\pt
- "umarcato" "\\umarcato" -2.38\pt 2.38\pt -0.00\pt 5.23\pt
+ "umarcato" "\\umarcato" -2.38\pt 2.38\pt 0.00\pt 5.23\pt
"dmarcato" "\\dmarcato" -2.38\pt 2.38\pt -5.23\pt 0.00\pt
"open" "\\ouvert" -1.90\pt 1.90\pt -2.38\pt 2.38\pt
"stopped" "\\plusstop" -2.61\pt 2.61\pt -2.61\pt 2.61\pt
- "upbow" "\\upbow" -3.09\pt 3.09\pt -0.00\pt 9.88\pt
- "downbow" "\\downbow" -3.56\pt 3.56\pt -0.00\pt 6.33\pt
+ "upbow" "\\upbow" -3.09\pt 3.09\pt 0.00\pt 9.88\pt
+ "downbow" "\\downbow" -3.56\pt 3.56\pt 0.00\pt 6.33\pt
"turn" "\\turn" -5.20\pt 5.20\pt -2.51\pt 2.51\pt
- "trill" "\\trill" -4.75\pt 4.75\pt -0.00\pt 10.69\pt
+ "trill" "\\trill" -4.75\pt 4.75\pt 0.00\pt 10.69\pt
"upedalheel" "\\upedalheel" -2.38\pt 2.38\pt -2.38\pt 3.17\pt
"dpedalheel" "\\dpedalheel" -2.38\pt 2.38\pt -3.17\pt 2.38\pt
- "upedaltoe" "\\upedaltoe" -2.38\pt 2.38\pt -0.00\pt 7.12\pt
+ "upedaltoe" "\\upedaltoe" -2.38\pt 2.38\pt 0.00\pt 7.12\pt
"dpedaltoe" "\\dpedaltoe" -2.38\pt 2.38\pt -7.12\pt 0.00\pt
"flageolet" "\\flageolet" -2.53\pt 2.53\pt -2.53\pt 2.53\pt
}
% input from out/feta20.log
% name=\symboltables {
"rests" = \table {
- "0" "\\wholerest" -0.00\pt 7.50\pt -3.12\pt 0.00\pt
- "1" "\\halfrest" -0.00\pt 7.50\pt -0.00\pt 3.12\pt
+ "0" "\\wholerest" 0.00\pt 7.50\pt -3.12\pt 0.00\pt
+ "1" "\\halfrest" 0.00\pt 7.50\pt 0.00\pt 3.12\pt
"0o" "\\outsidewholerest" -3.12\pt 10.62\pt -3.12\pt 0.50\pt
"1o" "\\outsidehalfrest" -3.12\pt 10.62\pt -0.50\pt 3.12\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.21\pt
- "4" "\\sixteenthrest" -0.00\pt 7.76\pt -0.00\pt 14.21\pt
- "5" "\\thirtysecondrest" -0.00\pt 8.75\pt -0.00\pt 19.21\pt
- "6" "\\sixtyfourthrest" -0.00\pt 9.38\pt -0.00\pt 24.21\pt
- "7" "\\hundredtwentyeighthrest" -0.00\pt 10.45\pt -0.00\pt 29.21\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.21\pt
+ "4" "\\sixteenthrest" 0.00\pt 7.76\pt 0.00\pt 14.21\pt
+ "5" "\\thirtysecondrest" 0.00\pt 8.75\pt 0.00\pt 19.21\pt
+ "6" "\\sixtyfourthrest" 0.00\pt 9.38\pt 0.00\pt 24.21\pt
+ "7" "\\hundredtwentyeighthrest" 0.00\pt 10.45\pt 0.00\pt 29.21\pt
}
"accidentals" = \table {
- "1" "\\sharp" -0.00\pt 5.50\pt -7.50\pt 7.50\pt
- "0" "\\natural" -0.00\pt 3.33\pt -7.50\pt 7.50\pt
+ "1" "\\sharp" 0.00\pt 5.50\pt -7.50\pt 7.50\pt
+ "0" "\\natural" 0.00\pt 3.33\pt -7.50\pt 7.50\pt
"-1" "\\flat" -0.60\pt 4.00\pt -2.50\pt 10.00\pt
"-2" "\\flatflat" -0.60\pt 7.25\pt -2.50\pt 10.00\pt
- "2" "\\sharpsharp" -0.00\pt 5.00\pt -2.50\pt 2.50\pt
+ "2" "\\sharpsharp" 0.00\pt 5.00\pt -2.50\pt 2.50\pt
}
"dots" = \table {
- "dot" "\\dot" -0.00\pt 2.25\pt -1.12\pt 1.12\pt
- "repeatcolon" "\\repeatcolon" -0.00\pt 2.25\pt -2.50\pt 2.50\pt
+ "dot" "\\dot" 0.00\pt 2.25\pt -1.12\pt 1.12\pt
+ "repeatcolon" "\\repeatcolon" 0.00\pt 2.25\pt -2.50\pt 2.50\pt
}
"balls" = \table {
- "-1" "\\brevisball" -0.00\pt 10.00\pt -2.75\pt 2.75\pt
+ "-1" "\\brevisball" 0.00\pt 10.00\pt -2.75\pt 2.75\pt
"-1l" "\\brevisledger" -2.50\pt 12.50\pt -0.50\pt 0.50\pt
- "-2" "\\longaball" -0.00\pt 10.00\pt -2.75\pt 2.75\pt
+ "-2" "\\longaball" 0.00\pt 10.00\pt -2.75\pt 2.75\pt
"-2l" "\\longaledger" -2.50\pt 12.50\pt -0.50\pt 0.50\pt
- "0" "\\wholeball" -0.00\pt 9.90\pt -2.75\pt 2.75\pt
+ "0" "\\wholeball" 0.00\pt 9.90\pt -2.75\pt 2.75\pt
"0l" "\\wholeledger" -2.48\pt 12.38\pt -0.50\pt 0.50\pt
- "1" "\\halfball" -0.00\pt 6.89\pt -2.75\pt 2.75\pt
+ "1" "\\halfball" 0.00\pt 6.89\pt -2.75\pt 2.75\pt
"1l" "\\halfledger" -1.72\pt 8.61\pt -0.50\pt 0.50\pt
- "2" "\\quartball" -0.00\pt 6.61\pt -2.75\pt 2.75\pt
+ "2" "\\quartball" 0.00\pt 6.61\pt -2.75\pt 2.75\pt
"2l" "\\quartledger" -1.65\pt 8.26\pt -0.50\pt 0.50\pt
}
"scripts" = \table {
"ustaccatissimo" "\\ustaccatissimo" -1.00\pt 1.00\pt -0.20\pt 5.00\pt
"dstaccatissimo" "\\dstaccatissimo" -1.00\pt 1.00\pt -5.00\pt 0.20\pt
"tenuto" "\\tenuto" -4.50\pt 4.50\pt -0.30\pt 0.30\pt
- "umarcato" "\\umarcato" -2.50\pt 2.50\pt -0.00\pt 5.50\pt
+ "umarcato" "\\umarcato" -2.50\pt 2.50\pt 0.00\pt 5.50\pt
"dmarcato" "\\dmarcato" -2.50\pt 2.50\pt -5.50\pt 0.00\pt
"open" "\\ouvert" -2.00\pt 2.00\pt -2.50\pt 2.50\pt
"stopped" "\\plusstop" -2.75\pt 2.75\pt -2.75\pt 2.75\pt
- "upbow" "\\upbow" -3.25\pt 3.25\pt -0.00\pt 10.40\pt
- "downbow" "\\downbow" -3.75\pt 3.75\pt -0.00\pt 6.67\pt
+ "upbow" "\\upbow" -3.25\pt 3.25\pt 0.00\pt 10.40\pt
+ "downbow" "\\downbow" -3.75\pt 3.75\pt 0.00\pt 6.67\pt
"turn" "\\turn" -5.47\pt 5.47\pt -2.65\pt 2.65\pt
- "trill" "\\trill" -5.00\pt 5.00\pt -0.00\pt 11.25\pt
+ "trill" "\\trill" -5.00\pt 5.00\pt 0.00\pt 11.25\pt
"upedalheel" "\\upedalheel" -2.50\pt 2.50\pt -2.50\pt 3.33\pt
"dpedalheel" "\\dpedalheel" -2.50\pt 2.50\pt -3.33\pt 2.50\pt
- "upedaltoe" "\\upedaltoe" -2.50\pt 2.50\pt -0.00\pt 7.50\pt
+ "upedaltoe" "\\upedaltoe" -2.50\pt 2.50\pt 0.00\pt 7.50\pt
"dpedaltoe" "\\dpedaltoe" -2.50\pt 2.50\pt -7.50\pt 0.00\pt
"flageolet" "\\flageolet" -2.67\pt 2.67\pt -2.67\pt 2.67\pt
}
% input from out/feta23.log
% name=\symboltables {
"rests" = \table {
- "0" "\\wholerest" -0.00\pt 8.44\pt -3.52\pt 0.00\pt
- "1" "\\halfrest" -0.00\pt 8.44\pt -0.00\pt 3.52\pt
+ "0" "\\wholerest" 0.00\pt 8.44\pt -3.52\pt 0.00\pt
+ "1" "\\halfrest" 0.00\pt 8.44\pt 0.00\pt 3.52\pt
"0o" "\\outsidewholerest" -3.52\pt 11.95\pt -3.52\pt 0.56\pt
"1o" "\\outsidehalfrest" -3.52\pt 11.95\pt -0.56\pt 3.52\pt
- "2" "\\quartrest" -0.00\pt 6.08\pt 4.22\pt 20.25\pt
- "3" "\\eighthrest" -0.00\pt 7.50\pt 5.62\pt 15.98\pt
- "4" "\\sixteenthrest" -0.00\pt 8.73\pt -0.00\pt 15.98\pt
- "5" "\\thirtysecondrest" -0.00\pt 9.85\pt -0.00\pt 21.61\pt
- "6" "\\sixtyfourthrest" -0.00\pt 10.56\pt -0.00\pt 27.23\pt
- "7" "\\hundredtwentyeighthrest" -0.00\pt 11.75\pt -0.00\pt 32.86\pt
+ "2" "\\quartrest" 0.00\pt 6.08\pt 4.22\pt 20.25\pt
+ "3" "\\eighthrest" 0.00\pt 7.50\pt 5.62\pt 15.98\pt
+ "4" "\\sixteenthrest" 0.00\pt 8.73\pt 0.00\pt 15.98\pt
+ "5" "\\thirtysecondrest" 0.00\pt 9.85\pt 0.00\pt 21.61\pt
+ "6" "\\sixtyfourthrest" 0.00\pt 10.56\pt 0.00\pt 27.23\pt
+ "7" "\\hundredtwentyeighthrest" 0.00\pt 11.75\pt 0.00\pt 32.86\pt
}
"accidentals" = \table {
- "1" "\\sharp" -0.00\pt 6.19\pt -8.44\pt 8.44\pt
- "0" "\\natural" -0.00\pt 3.75\pt -8.44\pt 8.44\pt
+ "1" "\\sharp" 0.00\pt 6.19\pt -8.44\pt 8.44\pt
+ "0" "\\natural" 0.00\pt 3.75\pt -8.44\pt 8.44\pt
"-1" "\\flat" -0.68\pt 4.50\pt -2.81\pt 11.25\pt
"-2" "\\flatflat" -0.68\pt 8.16\pt -2.81\pt 11.25\pt
- "2" "\\sharpsharp" -0.00\pt 5.62\pt -2.81\pt 2.81\pt
+ "2" "\\sharpsharp" 0.00\pt 5.62\pt -2.81\pt 2.81\pt
}
"dots" = \table {
- "dot" "\\dot" -0.00\pt 2.53\pt -1.27\pt 1.27\pt
- "repeatcolon" "\\repeatcolon" -0.00\pt 2.53\pt -2.81\pt 2.81\pt
+ "dot" "\\dot" 0.00\pt 2.53\pt -1.27\pt 1.27\pt
+ "repeatcolon" "\\repeatcolon" 0.00\pt 2.53\pt -2.81\pt 2.81\pt
}
"balls" = \table {
- "-1" "\\brevisball" -0.00\pt 11.25\pt -3.09\pt 3.09\pt
+ "-1" "\\brevisball" 0.00\pt 11.25\pt -3.09\pt 3.09\pt
"-1l" "\\brevisledger" -2.81\pt 14.06\pt -0.56\pt 0.56\pt
- "-2" "\\longaball" -0.00\pt 11.25\pt -3.09\pt 3.09\pt
+ "-2" "\\longaball" 0.00\pt 11.25\pt -3.09\pt 3.09\pt
"-2l" "\\longaledger" -2.81\pt 14.06\pt -0.56\pt 0.56\pt
- "0" "\\wholeball" -0.00\pt 11.14\pt -3.09\pt 3.09\pt
+ "0" "\\wholeball" 0.00\pt 11.14\pt -3.09\pt 3.09\pt
"0l" "\\wholeledger" -2.78\pt 13.92\pt -0.56\pt 0.56\pt
- "1" "\\halfball" -0.00\pt 7.75\pt -3.09\pt 3.09\pt
+ "1" "\\halfball" 0.00\pt 7.75\pt -3.09\pt 3.09\pt
"1l" "\\halfledger" -1.94\pt 9.69\pt -0.56\pt 0.56\pt
- "2" "\\quartball" -0.00\pt 7.43\pt -3.09\pt 3.09\pt
+ "2" "\\quartball" 0.00\pt 7.43\pt -3.09\pt 3.09\pt
"2l" "\\quartledger" -1.86\pt 9.29\pt -0.56\pt 0.56\pt
}
"scripts" = \table {
"ustaccatissimo" "\\ustaccatissimo" -1.13\pt 1.13\pt -0.20\pt 5.63\pt
"dstaccatissimo" "\\dstaccatissimo" -1.13\pt 1.13\pt -5.63\pt 0.20\pt
"tenuto" "\\tenuto" -5.06\pt 5.06\pt -0.34\pt 0.34\pt
- "umarcato" "\\umarcato" -2.81\pt 2.81\pt -0.00\pt 6.19\pt
+ "umarcato" "\\umarcato" -2.81\pt 2.81\pt 0.00\pt 6.19\pt
"dmarcato" "\\dmarcato" -2.81\pt 2.81\pt -6.19\pt 0.00\pt
"open" "\\ouvert" -2.25\pt 2.25\pt -2.81\pt 2.81\pt
"stopped" "\\plusstop" -3.09\pt 3.09\pt -3.09\pt 3.09\pt
- "upbow" "\\upbow" -3.66\pt 3.66\pt -0.00\pt 11.70\pt
- "downbow" "\\downbow" -4.22\pt 4.22\pt -0.00\pt 7.50\pt
+ "upbow" "\\upbow" -3.66\pt 3.66\pt 0.00\pt 11.70\pt
+ "downbow" "\\downbow" -4.22\pt 4.22\pt 0.00\pt 7.50\pt
"turn" "\\turn" -6.15\pt 6.15\pt -2.98\pt 2.98\pt
- "trill" "\\trill" -5.62\pt 5.62\pt -0.00\pt 12.66\pt
+ "trill" "\\trill" -5.62\pt 5.62\pt 0.00\pt 12.66\pt
"upedalheel" "\\upedalheel" -2.81\pt 2.81\pt -2.81\pt 3.75\pt
"dpedalheel" "\\dpedalheel" -2.81\pt 2.81\pt -3.75\pt 2.81\pt
- "upedaltoe" "\\upedaltoe" -2.81\pt 2.81\pt -0.00\pt 8.44\pt
+ "upedaltoe" "\\upedaltoe" -2.81\pt 2.81\pt 0.00\pt 8.44\pt
"dpedaltoe" "\\dpedaltoe" -2.81\pt 2.81\pt -8.44\pt 0.00\pt
"flageolet" "\\flageolet" -3.00\pt 3.00\pt -3.00\pt 3.00\pt
}
% input from out/feta26.log
% name=\symboltables {
"rests" = \table {
- "0" "\\wholerest" -0.00\pt 9.75\pt -4.06\pt 0.00\pt
- "1" "\\halfrest" -0.00\pt 9.75\pt -0.00\pt 4.06\pt
+ "0" "\\wholerest" 0.00\pt 9.75\pt -4.06\pt 0.00\pt
+ "1" "\\halfrest" 0.00\pt 9.75\pt 0.00\pt 4.06\pt
"0o" "\\outsidewholerest" -4.06\pt 13.81\pt -4.06\pt 0.65\pt
"1o" "\\outsidehalfrest" -4.06\pt 13.81\pt -0.65\pt 4.06\pt
- "2" "\\quartrest" -0.00\pt 7.02\pt 4.88\pt 23.40\pt
- "3" "\\eighthrest" -0.00\pt 8.67\pt 6.50\pt 18.47\pt
- "4" "\\sixteenthrest" -0.00\pt 10.08\pt -0.00\pt 18.47\pt
- "5" "\\thirtysecondrest" -0.00\pt 11.38\pt -0.00\pt 24.97\pt
- "6" "\\sixtyfourthrest" -0.00\pt 12.20\pt -0.00\pt 31.47\pt
- "7" "\\hundredtwentyeighthrest" -0.00\pt 13.58\pt -0.00\pt 37.97\pt
+ "2" "\\quartrest" 0.00\pt 7.02\pt 4.88\pt 23.40\pt
+ "3" "\\eighthrest" 0.00\pt 8.67\pt 6.50\pt 18.47\pt
+ "4" "\\sixteenthrest" 0.00\pt 10.08\pt 0.00\pt 18.47\pt
+ "5" "\\thirtysecondrest" 0.00\pt 11.38\pt 0.00\pt 24.97\pt
+ "6" "\\sixtyfourthrest" 0.00\pt 12.20\pt 0.00\pt 31.47\pt
+ "7" "\\hundredtwentyeighthrest" 0.00\pt 13.58\pt 0.00\pt 37.97\pt
}
"accidentals" = \table {
- "1" "\\sharp" -0.00\pt 7.15\pt -9.75\pt 9.75\pt
- "0" "\\natural" -0.00\pt 4.33\pt -9.75\pt 9.75\pt
+ "1" "\\sharp" 0.00\pt 7.15\pt -9.75\pt 9.75\pt
+ "0" "\\natural" 0.00\pt 4.33\pt -9.75\pt 9.75\pt
"-1" "\\flat" -0.78\pt 5.20\pt -3.25\pt 13.00\pt
"-2" "\\flatflat" -0.78\pt 9.42\pt -3.25\pt 13.00\pt
- "2" "\\sharpsharp" -0.00\pt 6.50\pt -3.25\pt 3.25\pt
+ "2" "\\sharpsharp" 0.00\pt 6.50\pt -3.25\pt 3.25\pt
}
"dots" = \table {
- "dot" "\\dot" -0.00\pt 2.92\pt -1.46\pt 1.46\pt
- "repeatcolon" "\\repeatcolon" -0.00\pt 2.92\pt -3.25\pt 3.25\pt
+ "dot" "\\dot" 0.00\pt 2.92\pt -1.46\pt 1.46\pt
+ "repeatcolon" "\\repeatcolon" 0.00\pt 2.92\pt -3.25\pt 3.25\pt
}
"balls" = \table {
- "-1" "\\brevisball" -0.00\pt 13.00\pt -3.58\pt 3.58\pt
+ "-1" "\\brevisball" 0.00\pt 13.00\pt -3.58\pt 3.58\pt
"-1l" "\\brevisledger" -3.25\pt 16.25\pt -0.65\pt 0.65\pt
- "-2" "\\longaball" -0.00\pt 13.00\pt -3.58\pt 3.58\pt
+ "-2" "\\longaball" 0.00\pt 13.00\pt -3.58\pt 3.58\pt
"-2l" "\\longaledger" -3.25\pt 16.25\pt -0.65\pt 0.65\pt
- "0" "\\wholeball" -0.00\pt 12.87\pt -3.58\pt 3.58\pt
+ "0" "\\wholeball" 0.00\pt 12.87\pt -3.58\pt 3.58\pt
"0l" "\\wholeledger" -3.22\pt 16.09\pt -0.65\pt 0.65\pt
- "1" "\\halfball" -0.00\pt 8.95\pt -3.58\pt 3.58\pt
+ "1" "\\halfball" 0.00\pt 8.95\pt -3.58\pt 3.58\pt
"1l" "\\halfledger" -2.24\pt 11.19\pt -0.65\pt 0.65\pt
- "2" "\\quartball" -0.00\pt 8.59\pt -3.58\pt 3.58\pt
+ "2" "\\quartball" 0.00\pt 8.59\pt -3.58\pt 3.58\pt
"2l" "\\quartledger" -2.15\pt 10.73\pt -0.65\pt 0.65\pt
}
"scripts" = \table {
"ustaccatissimo" "\\ustaccatissimo" -1.30\pt 1.30\pt -0.20\pt 6.50\pt
"dstaccatissimo" "\\dstaccatissimo" -1.30\pt 1.30\pt -6.50\pt 0.20\pt
"tenuto" "\\tenuto" -5.85\pt 5.85\pt -0.39\pt 0.39\pt
- "umarcato" "\\umarcato" -3.25\pt 3.25\pt -0.00\pt 7.15\pt
+ "umarcato" "\\umarcato" -3.25\pt 3.25\pt 0.00\pt 7.15\pt
"dmarcato" "\\dmarcato" -3.25\pt 3.25\pt -7.15\pt 0.00\pt
"open" "\\ouvert" -2.60\pt 2.60\pt -3.25\pt 3.25\pt
"stopped" "\\plusstop" -3.58\pt 3.58\pt -3.58\pt 3.58\pt
- "upbow" "\\upbow" -4.23\pt 4.23\pt -0.00\pt 13.52\pt
- "downbow" "\\downbow" -4.88\pt 4.88\pt -0.00\pt 8.67\pt
+ "upbow" "\\upbow" -4.23\pt 4.23\pt 0.00\pt 13.52\pt
+ "downbow" "\\downbow" -4.88\pt 4.88\pt 0.00\pt 8.67\pt
"turn" "\\turn" -7.11\pt 7.11\pt -3.44\pt 3.44\pt
- "trill" "\\trill" -6.50\pt 6.50\pt -0.00\pt 14.62\pt
+ "trill" "\\trill" -6.50\pt 6.50\pt 0.00\pt 14.62\pt
"upedalheel" "\\upedalheel" -3.25\pt 3.25\pt -3.25\pt 4.33\pt
"dpedalheel" "\\dpedalheel" -3.25\pt 3.25\pt -4.33\pt 3.25\pt
- "upedaltoe" "\\upedaltoe" -3.25\pt 3.25\pt -0.00\pt 9.75\pt
+ "upedaltoe" "\\upedaltoe" -3.25\pt 3.25\pt 0.00\pt 9.75\pt
"dpedaltoe" "\\dpedaltoe" -3.25\pt 3.25\pt -9.75\pt 0.00\pt
"flageolet" "\\flageolet" -3.47\pt 3.47\pt -3.47\pt 3.47\pt
}
% interbeam = interline - (beam_thickness + staffline_thickness) / 2
% interbeam = 3.6;
% ugh: interline *in fact* is rule_thickness + "interline"?
- interbeam = 3.9;
+ interbeam = 3.0\pt;
gourlay_energybound = 100000.;
gourlay_maxmeasures = 12.;
% interbeam = interline - (beam_thickness + staffline_thickness) / 2
% interbeam = 3.6;
% ugh: interline *in fact* is rule_thickness + "interline"?
- interbeam = 3.9;
+ interbeam = 3.5\pt;
gourlay_energybound = 100000.;
gourlay_maxmeasures = 12.;
arithmetic_multiplier = 4.8\pt;
% three beams span two interlines, including stafflines:
- % 2 interbeam + beam_thickness = 2 interline - staffline_thickness
- % ( beam_thickness = 0.48 interline for now...)
- % interbeam = interline - (beam_thickness + staffline_thickness) / 2
- % interbeam = 2.84;
- % ugh: interline *in fact* is rule_thickness + "interline"? --jcn
-
- % No --hwn
- interbeam = 3.14;
+ % 2ib + bt = 2 il - st
+ % bt = 0.48(il - st) for now.
+ % 2ib + 0.48il - 0.48 st = 2il - st
+ % 2ib = 1.52il - 0.52 st
+ % ib = 0.76il - 0.26st = 2.94 --jcn
+ % now, it seams rather ib = 0.76il + 0.26st = 3.14
+ % interbeam = 2.94\pt;
+ % No -- hwn
+ interbeam = 3.14\pt;
gourlay_energybound = 100000.;
gourlay_maxmeasures = 14.;
arithmetic_basicspace = 2.;
arithmetic_multiplier = 6.\pt;
- %
% three beams span two interlines, including stafflines:
- % 2 interbeam + beam_thickness = 2 interline - staffline_thickness
- % ( beam_thickness = 0.48 interline for now...)
- % interbeam = interline - (beam_thickness + staffline_thickness) / 2
- % interbeam = 3.6;
- % ugh: interline *in fact* is rule_thickness + "interline"?
- interbeam = 3.9;
+ % 2ib + bt = 2 il - st
+ % bt = 0.48(il - st) for now.
+ % 2ib + 0.48il - 0.48 st = 2il - st
+ % 2ib = 1.52il - 0.52 st
+ % ib = 0.76il - 0.26st = 3.70
+ % now, it seams rather ib = 0.76il + 0.26st = 3.90
+ % interbeam = 3.70\pt;
+ interbeam = 3.90\pt;
gourlay_energybound = 100000.;
gourlay_maxmeasures = 12.;
paper_twentysix = \paper {
linewidth = 15.0 \cm;
- indent = 12.0\mm
+ indent = 12.0\mm;
rulethickness = 0.5\pt;
barsize = 26.0 \pt;
interline = 6.5\pt;
arithmetic_basicspace = 2.;
arithmetic_multiplier = 7.\pt;
- %
% three beams span two interlines, including stafflines:
- % 2 interbeam + beam_thickness = 2 interline - staffline_thickness
- % ( beam_thickness = 0.48 interline for now...)
- % interbeam = interline - (beam_thickness + staffline_thickness) / 2
- % interbeam = 3.6;
- % ugh: interline *in fact* is rule_thickness + "interline"?
- interbeam = 3.9;
+ % 2ib + bt = 2 il - st
+ % bt = 0.48(il - st) for now.
+ % 2ib + 0.48il - 0.48 st = 2il - st
+ % 2ib = 1.52il - 0.52 st
+ % ib = 0.76il - 0.26st = 4.81
+ % interbeam = 4.81\pt;
+ % now, it seams rather ib = 0.76il + 0.26st = 5.07
+ interbeam = 5.07\pt;
gourlay_energybound = 100000.;
gourlay_maxmeasures = 12.;
\property Voice.ydirection = \down
}
+onevoice = {
+ \property Voice.ydirection = \center
+ \property Voice.hshift = 0
+}
+
+voiceone = {
+ \type Voice = one
+ \skip 1*0;
+ \property Voice.ydirection = \up
+}
+
+voicetwo = {
+ \type Voice = two
+ \skip 1*0;
+ \property Voice.ydirection = \down
+}
+
+voicethree = {
+ \type Voice = three
+ \skip 1*0;
+ \property Voice.ydirection = \up
+ \property Voice.hshift = 1
+}
+
+voicefour = {
+ \type Voice = four
+ \skip 1*0;
+ \property Voice.ydirection = \down
+ \property Voice.hshift = 1
+}
+
% ugh, cluttering global namespace...
none=0
free=0
--- /dev/null
+% silly file to test beam stem lengths
+% compare to *ugly* bug in preludes-1: [e'16 c'' g' f']
+% here it's okee ??
+
+one = \melodic{
+ \octave c';
+ [e'8 c'' g' f']
+ \octave c'';
+ [e16-1\f c'-5( g-3 f-2] % [e-1 c'-5 g-3 e-2]
+ \octave c';
+% [e'16 c'' g' f']
+ [e'32 c'' g' f']
+ [c32 c] ['b 'b]
+ [c8 c]
+ [e8 g b]
+ [e16 g b] c c c
+ [e32 g b] c
+ [c c c c]
+ c4 c4
+ \onevoice;
+ [e'8 c'' g' f']
+ [e'16 c'' g' f']
+ [e'32 c'' g' f']
+ [c32 c] ['b 'b]
+ [c8 c]
+ [e8 g b]
+ [e16 g b] c
+ [e32 g b] c
+ [c c c c]
+ c4
+}
+
+\score{
+ \one
+}
"We try to imitate the Griepenkerl/Keller edition which "
"gives the best approximation to Bach's original layout.";
composer = "Johann Sebastian Bach (1685-1750)";
- enteredby = "JCN, WL";
+ enteredby = "JCN";
copyright = "public domain";
}
* organ staff...
%}
-
\version "0.1.9";
+noShift = { \property Voice.hshift = 0 }
+Shift = { \property Voice.hshift = 1 }
+
+
praeludium_commands = \melodic {
\meter 4/4;
\key fis cis gis dis; % E-major
}
-doshift = \property Voice.hshift = 1
-noshift = \property Voice.hshift = 0
-
praeludium_right = \melodic {
\$praeludium_commands
\octave c';
% 13 -- how to type -- where to split -- this more neatly?
\multi 2 <
{ \stemup r4 dis'4 e'4. e'8 ~ |
- \doshift e'4 [d'8 fis'8]
- \noshift gis'4 ~ [gis'8 fis'16 e'16] |
+ \Shift e'4 [d'8 fis'8] \noShift gis'4 ~ [gis'8 fis'16 e'16] |
fis'4 ~ [fis'8 e'16 dis'16] e'4 r8 e'8 }
- { \stemup r4 bis4 cis'4 cis'4 |
- \noshift a'4 ~ [a'16 gis'16 a'16 b'16]
- \doshift dis'4 cis'4 ~ |
+ { \stemup \Shift r4 bis4 cis'4 \noShift cis'4 |
+ a'4 ~ [a'16 gis'16 a'16 b'16] \Shift dis'4 cis'4 ~ |
[cis'8 dis'16 ais16] bis4 cis'4 r8 b8 }
- { \stemup \property Voice.hshift = 2 s4 gis4 }
- { \stemdown \property Voice.hshift = 2 r4 fis4
- \noshift gis4 gis4 |
+ { \stemup \Shift s4 gis4 }
+ { \stemdown \Shift r4 fis4 \noShift gis4 gis4 |
a4. cis'8 gis2 |
fis4 gis4 gis4 r8 e8 }
> |
[cis'8 a8 d'8 cis'8] [bis8 gis8] cis'4 |
dis'2 cis'4 r8 cis'8 }
{ \stemup bis2 }
- { \stemup \doshift r4 gis4 ~
- [gis 8 gis8] ~ \stemdown \noshift gis4 |
+ { \stemup \Shift r4 gis4 ~ [gis 8 gis8] ~ \stemdown \noShift gis4 |
a4. fis8 gis4. a8 ~ |
a4 gis4 gis4 r8 gis8 }
- { \stemup \property Voice.hshift = 2 s4 fis4 e}
+ { \stemup \Shift s4 fis4 e}
{ \stemdown s4 dis4 cis4 }
> |
% 16
|
%}
\multi 2 <
- { \stemup \noshift e'4 }
- { \stemup \doshift cis'4 }
- { \stemup \property Voice.hshift = 2 ais4 }
+ { \stemup \noShift e'4 }
+ { \stemup \Shift cis'4 }
+ { \stemup \Shift ais4 }
{ \stemdown fis4 }
> |
% 16
{ \stemup dis'2 dis'4 |
cis'2 cis'4 |
b4. [cis'8 dis'8 e'8] }
- { \stemup \doshift [b8 fis8] b2 ~ |
+ { \stemup \Shift [b8 fis8] b2 ~ |
[b8 a!16 gis16] a2 ~ |
a4 gis2 }
{ \stemdown fis2. ~ |
\type Staff_group <
\ritme
\another
- \yanother
+ \type Rhythmic_staff {
+ \yanother
+ }
>
\paper{
\accepts "Grandstaff";
}
+Rhythmic_staff = \translator
+{
+ \type "Engraver_group_engraver";
+ nolines = "1";
+ \consists "Pitch_squash_engraver";
+
+ \consists "Bar_engraver";
+ \consists "Meter_engraver";
+ \consists "Staff_sym_engraver";
+ \consists "Line_group_engraver";
+ \consists "Timing_engraver";
+ \accepts "Voice";
+}
%% add Timing_engraver to the staff
Staff = \translator {
\type "Engraver_group_engraver";
// Moment as_plet_mom = mom / dur.mom ();
Moment as_plet_mom = mom / dur.length ();
as_plet_mom *= dur.plet_.mom ();
- long num = as_plet_mom.numerator ().as_long ();
- long den = as_plet_mom.denominator ().as_long ();
+ long num = as_plet_mom.num ();
+ long den = as_plet_mom.den ();
dur.set_plet (num, den);
return dur;
}
Can't we name this Saint_jut_mom (Sintjuttemis ?) */
-const infinity_mom = Rational (INT_MAX);
+const infinity_mom = INT_MAX;
class String;
typedef Rational Moment;
#include "string.hh"
#include "moment.hh"
-void
-printm (Moment const &m)
-{
- cout << String (m) << flush;
-}
-
-
# list of custom libraries:
#
MODULE_LIBDEPS= check-flower-deps check-lib-deps
-MODULE_LIBES= -llily -lflower -lmcheck
+MODULE_LIBES= -llily -lflower
#
MAJOR_VERSION = 0
MINOR_VERSION = 1
-PATCH_LEVEL = 47
+PATCH_LEVEL = 48
MY_PATCH_LEVEL =
if (!current_grouping_p_->child_fit_b (start))
{
String s (_("please fix me: Stem at ")
- + String(now_moment ()) + _(" does not fit in beam"));
+ + now_moment ().str ()
+ + _(" does not fit in beam"));
if (i.req_l_)
i.req_l_->warning(s);
else
IMPLEMENT_IS_TYPE_B1 (Beam, Spanner);
// ugh, hardcoded
-const int MINIMUM_STEMLEN[] = {
+const Real MINIMUM_STEMLEN[] = {
0, // just in case
5,
4,
int mult = max (stems_[j]->beams_left_i_, stems_[j]->beams_right_i_);
if (mult > 1)
// dim(y) = internote
- y -= (mult - 1) * interbeam_f / internote_f;
+ y -= (Real)(mult - 1) * interbeam_f / internote_f;
if (y < MINIMUM_STEMLEN[mult])
dy = dy >? (MINIMUM_STEMLEN[mult] - y);
}
Moment
Chord_iterator::next_moment() const
{
- Moment next_ = infinity_mom;
+ Moment next;
+ next.set_infinite (1);
for (PCursor<Music_iterator*> i (children_p_list_.top()); i.ok (); i++)
- next_ = next_ <? i->next_moment() ;
- return next_;
+ next = next <? i->next_moment() ;
+ return next;
}
c0_position_i_ =0;
}
+/*
+ Ugh. Should have support for Dictionaries in mudela.
+ */
bool
Clef_engraver::set_type (String s)
{
- clef_type_str_ = s;
+ clef_type_str_ = s;
if (clef_type_str_ == "violin")
- {
- c0_position_i_= -6;
- }
+ c0_position_i_= -6;
+ else if (clef_type_str_ == "french")
+ c0_position_i_= -8;
else if (clef_type_str_ == "soprano")
- {
- c0_position_i_= -4;
- }
+ c0_position_i_= -4;
+ else if (clef_type_str_ == "mezzosoprano")
+ c0_position_i_ = -2;
else if (clef_type_str_ == "alto")
- {
- c0_position_i_= 0;
- }
+ c0_position_i_= 0;
else if (clef_type_str_ == "tenor")
- {
- c0_position_i_= 2;
- }
+ c0_position_i_= 2;
+ else if (clef_type_str_ == "baritone")
+ c0_position_i_ = 4;
+ else if (clef_type_str_ == "varbaritone")
+ c0_position_i_ = 4;
else if (clef_type_str_ == "bass")
- {
- c0_position_i_= 6;
- }
+ c0_position_i_= 6;
+ else if (clef_type_str_ == "subbass")
+ c0_position_i_ = 8;
else
return false;
-
+
return true;
}
Clef_item::read (String t)
{
symbol_= t;
- if (t == "violin") {
- y_position_i_ = -2;
- }
- else if (t == "soprano") {
- symbol_="alto";
- y_position_i_ = -4;
- }
- else if (t == "alto") {
- y_position_i_ = 0;
- }
- else if (t == "tenor") {
- symbol_="alto";
- y_position_i_ = 2;
- }
- else if (t == "bass") {
- y_position_i_ = 2;
- }
+ if (t == "violin")
+ {
+ y_position_i_ = -2;
+ }
+ else if (t == "french")
+ {
+ symbol_="violin";
+ y_position_i_ = -4;
+ }
+ else if (t == "soprano")
+ {
+ symbol_="alto";
+ y_position_i_ = -4;
+ }
+ else if (t == "mezzosoprano")
+ {
+ symbol_ = "alto";
+ y_position_i_ = -2;
+ }
+ else if (t == "alto")
+ {
+ y_position_i_ = 0;
+ }
+ else if (t == "tenor")
+ {
+ symbol_="alto";
+ y_position_i_ = 2;
+ }
+ else if (t == "baritone")
+ {
+ symbol_ = "alto";
+ y_position_i_ = 4;
+ }
+ else if (t == "varbaritone")
+ {
+ symbol_ = "bass";
+ y_position_i_ = 0;
+ }
+ else if (t == "bass")
+ {
+ y_position_i_ = 2;
+ }
+ else if (t == "subbass")
+ {
+ symbol_ = "bass";
+ y_position_i_ = 4;
+ }
}
void
#include "dstream.hh"
#include "flower-debug.hh"
#include "moment.hh"
+
#include "main.hh"
Dstream *monitor=0;
ostream * nulldev =0;
assert (false);
}
-/// just to make sure print_rat is linked in
-static void (*rat_printer)(Moment const&);
void
debug_init()
{
- rat_printer = print_rat;
#ifndef NDEBUG
// libg++ 2.8.0 doesn't have set_new_handler
// set_new_handler (&mynewhandler);
if (!no_dots_i_)
{
transparent_b_ = true;
- set_empty(true);
+ set_empty (true);
}
}
Dots::brew_molecule_p () const
{
Molecule *out = new Molecule;
- Atom fill = paper()->lookup_l ()->fill (Box(Interval(0,0),Interval(0,0)));
+ Atom fill = paper ()->lookup_l ()->fill (Box (Interval (0,0),
+ Interval (0,0)));
out->add(fill);
Atom d = paper ()->lookup_l ()->dots ();
- Real dw = d.dim_[X_AXIS].length();
- d.translate_axis(-dw,X_AXIS);
+ Real dw = d.dim_[X_AXIS].length ();
+ d.translate_axis (-dw, X_AXIS);
for (int i=no_dots_i_; i--; )
{
- d.translate_axis(2*dw,X_AXIS);
+ d.translate_axis (2*dw,X_AXIS);
out->add (d);
}
Real inter_f = paper ()->internote_f ();
/*
- headreg.cc -- part of GNU LilyPond
+ head-grav.cc -- part of GNU LilyPond
(c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#define GLOBAL_TRANSLATOR_HH
#include "translator-group.hh"
+#include "rational.hh"
#include "pqueue.hh"
class Global_translator : public virtual Translator_group{
--- /dev/null
+/*
+ pitch-squash-grav.hh -- declare Pitch_squash_engraver
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+
+ */
+
+#ifndef PITCH_SQUASH_GRAV_HH
+#define PITCH_SQUASH_GRAV_HH
+
+#include "engraver.hh"
+
+class Pitch_squash_engraver : public Engraver {
+public:
+ DECLARE_MY_RUNTIME_TYPEINFO;
+ TRANSLATOR_CLONE (Pitch_squash_engraver);
+ virtual void acknowledge_element (Score_elem_info);
+
+};
+
+#endif /* PITCH_SQUASH_GRAV_HH */
+
*/
class Staff_symbol : public Spanner
{
+public:
/// this many lines.
int no_lines_i_;
Real interline_f_;
-public:
+
DECLARE_MY_RUNTIME_TYPEINFO;
- Staff_symbol (int lines);
+ Staff_symbol ();
Real inter_note_f() const;
int steps_i() const;
protected:
*/
class Text_item : public Item ,public Staff_side
{
-public:
public:
/// do I have width?
/* ***************/
- Text_item (General_script_def* ,Direction dir=0);
+ Text_item (General_script_def* ,Direction dir=CENTER);
virtual ~Text_item ();
DECLARE_MY_RUNTIME_TYPEINFO;
Key_item::set_c_position (int c0)
{
int from_bottom_pos = c0 + 4; // ugh
- int octaves =(abs (from_bottom_pos) / 7) +1 ;
+ int octaves =(from_bottom_pos / 7) +1 ;
from_bottom_pos =(from_bottom_pos + 7*octaves)%7;
c_position = from_bottom_pos - 4;
}
void
Key_item::add (int p, int a)
{
- if ((a<0 && p>FLAT_TOP_PITCH) ||
- (a>0 && p>SHARP_TOP_PITCH))
+ if ((a<0 && ((p>FLAT_TOP_PITCH) || (p+c_position>4)) && (p+c_position>1))
+ ||
+ (a>0 && ((p>SHARP_TOP_PITCH) || (p+c_position>5)) && (p+c_position>2)))
{
p -= 7; /* Typeset below c_position */
}
(c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
*/
+#include <stdlib.h>
#include <iostream.h>
#include <assert.h>
#include "proto.hh"
void
Meter_engraver::do_process_requests()
{
- Timing_engraver * timing_grav_l= (Timing_engraver*)
- daddy_grav_l()->get_simple_translator (Timing_engraver::static_name())
- ->engraver_l ();
+ Translator * result =
+ daddy_grav_l()->get_simple_translator (Timing_engraver::static_name());
+
+ if (!result)
+ {
+ warning ("Lost in time: can't find Timing_translator");
+ return ;
+ }
+
+ Timing_engraver * timing_grav_l= (Timing_engraver*) result->engraver_l ();
Meter_change_req *req = timing_grav_l->meter_req_l();
if (req)
;
abbrev_command_req:
- '|' {
+ '|' {
$$ = new Barcheck_req;
}
| COMMAND_IDENTIFIER {
}
| SKIP duration_length {
Skip_req * skip_p = new Skip_req;
- skip_p->duration_.set_plet ($2->numerator ().as_long (),
- $2->denominator ().as_long ());
+ skip_p->duration_.set_plet ($2->num (),
+ $2->den ());
delete $2;
$$ = skip_p;
--- /dev/null
+/*
+ pitch-squash-grav.cc -- implement Pitch_squash_engraver
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+
+ */
+
+#include "pitch-squash-grav.hh"
+#include "note-head.hh"
+
+void
+Pitch_squash_engraver::acknowledge_element (Score_elem_info i)
+{
+ if (i.elem_l_->is_type_b (Note_head::static_name ()))
+ {
+ Note_head * nl = (Note_head*)i.elem_l_->item ();
+ nl->position_i_ =0;
+ }
+}
+
+ADD_THIS_TRANSLATOR (Pitch_squash_engraver);
+IMPLEMENT_IS_TYPE_B1(Pitch_squash_engraver, Engraver);
+
if (!d)
{
warning (_("Ignoring zero duration added to column at ")
- + String (when_)
- );
+ + when_.str ());
return;
}
while (iter->ok() || trans_p->moments_left_i ())
{
- Moment w = infinity_mom;
+ Moment w;
+ w.set_infinite (1);
if (iter->ok())
{
w = iter->next_moment();
scol_l (i)->print ();
}
int start_context_i=0;
- Moment context_shortest = infinity_mom;
+ Moment context_shortest;
+ context_shortest.set_infinite (1);
context_shortest_arr.set_size(cols.size());
for (int i=0; i < cols.size(); i++)
{
Moment now = scol_l (i)->when();
- Moment shortest_playing = infinity_mom;
+ Moment shortest_playing;
+ shortest_playing.set_infinite (1);
if (scol_l (i)->breakable_b_)
{
for (int ji=i; ji >= start_context_i; ji--)
context_shortest_arr[ji] = context_shortest;
start_context_i = i;
- context_shortest = infinity_mom;
+ context_shortest.set_infinite (1);
}
if (scol_l (i)->durations.size())
{
if (! shortest_playing_len)
{
warning (_("Can't find a ruling note at ")
- +String (scol_l (i)->when()));
+ +scol_l (i)->when().str ());
shortest_playing_len = 1;
}
if (! context_shortest)
{
warning(_("No minimum in measure at ")
- + String (scol_l (i)->when()));
+ + scol_l (i)->when().str ());
context_shortest = 1;
}
Moment delta_t = scol_l (i+1)->when() - scol_l (i)->when ();
#include "score.hh"
#include "p-col.hh"
-const NO_LINES = 5;
void
Staff_sym_engraver::fill_staff_info (Staff_info&i)
void
Staff_sym_engraver::do_creation_processing()
{
- span_p_ = new Staff_symbol (NO_LINES);
+ span_p_ = new Staff_symbol;
span_p_->set_bounds(LEFT,get_staff_info().command_pcol_l ());
announce_element (Score_elem_info (span_p_, 0));
}
void
Staff_sym_engraver::do_removal_processing()
{
+ Scalar l (get_property ("nolines"));
+ if (l.isnum_b ())
+ {
+ span_p_->no_lines_i_ = l;
+ }
+
span_p_->set_bounds(RIGHT,get_staff_info().command_pcol_l ());
typeset_element (span_p_);
span_p_ =0;
#include "dimen.hh"
-Staff_symbol::Staff_symbol (int l)
+Staff_symbol::Staff_symbol ()
{
- no_lines_i_ = l;
+ no_lines_i_ = 5;
interline_f_ = 0 PT;
}
Stem_info::Stem_info (Stem const *s)
{
- x = s->hpos_f();
+ x = s->hpos_f ();
dir_ = s->dir_;
beams_i_ = 0 >? (abs (s->flag_i_) - 2);
*/
- Real notehead_y = s->paper()->interline_f ();
- // huh? why do i need the / 2
- // Real interbeam_f = s->paper()->interbeam_f ();
- Real interbeam_f = s->paper()->interbeam_f () / 2;
+ Real internote_f = s->paper ()->internote_f ();
+ Real interline_f = 2 * internote_f;
+ Real notehead_y = interline_f;
+ // huh? why do i seem to need the / 2 ?
+ Real interbeam_f = s->paper ()->interbeam_f ();
+ // Real interbeam_f = s->paper ()->interbeam_f () / 2;
+ // perhaps bo dim (y) = internote?
- /* well eh, huh?
- idealy_f_ = dir_ * s->stem_begin_f() + beams_i_ * interbeam_f;
- if (beams_i_ < 3)
+ idealy_f_ = dir_ * s->stem_begin_f () + beams_i_ * interbeam_f;
+ if (beams_i_ < 3)
idealy_f_ += 2 * interline_f;
- else
+ else
idealy_f_ += 1.5 * interline_f;
- */
-
- idealy_f_ = dir_ * s->stem_end_f();
-
- miny_f_ = dir_ * s->stem_begin_f() + notehead_y + beams_i_ * interbeam_f;
+ idealy_f_ /= internote_f;
+ miny_f_ = dir_ * s->stem_begin_f () + 2 + beams_i_ * interbeam_f / internote_f;
idealy_f_ = miny_f_ >? idealy_f_;
// assert (miny_f_ <= idealy_f_);
Direction
Stem::get_default_dir ()
{
- return (get_center_distance (UP) >=
+ return (get_center_distance (UP) >
get_center_distance (DOWN))
? DOWN
: UP;
Rational
Interval_t<Rational>::infinity()
{
- return Rational (INT_MAX);
+ Rational infty;
+ infty.set_infinite (1);
+ return infty;
+}
+
+String
+Interval_t<Rational>::T_to_str (Rational a)
+{
+ return a.str ();
}
int
{
return INT_MAX;
}
+
+String
+Interval_t<int>::T_to_str (int i)
+{
+ return String (i);
+}
s+=String (" (cadenza) ");
s+= "at ";
s+=when_;
- s+="\nmeter " + String (whole_per_measure_/one_beat_) +":" +
- String (Rational (Rational (1)/one_beat_));
- s+= "\nposition "+String (bars_i_) + ":"+ whole_in_measure_ +"\n}\n";
+ s+="\nmeter " + (whole_per_measure_/one_beat_).str () +":" +
+ (Rational (Rational (1)/one_beat_)).str ();
+ s+= "\nposition "+String (bars_i_) + ":"+ whole_in_measure_.str () +"\n}\n";
return s;
}
#include "translator.hh"
#include "debug.hh"
#include "pcursor.hh"
+#include "rational.hh"
Translator_group::Translator_group (Translator_group const&s)
: Translator(s)
#include "debug.hh"
#include "translator-group.hh"
#include "dictionary-iter.hh"
+#include "rational.hh"
Translator::~Translator ()
{
void
error_t (String const & s, Moment const & r)
{
- String t_mom = String (trunc (r)) + String (r - Moment (trunc (r)));
+ String t_mom = r.truncated ().str () + (r - r.truncated ()).str ();
String e=s+ " (t = " + t_mom + ")";
error (e);
}
void
error_t (String const & s, Time_description const &t_tdes)
{
- String e=s+ " (at t=" + String (t_tdes.bars_i_) + ": " + String (t_tdes.whole_in_measure_) + ")\n";
+ String e=s+ " (at t=" + String(t_tdes.bars_i_) + ": " + (t_tdes.whole_in_measure_).str () + ")\n";
error (e);
}
$(depth)/%.txt: check-doc-deps
rm -f $@
- ln `find ${depth}/Documentation -name $@|head -1` .
+ ln `find ${depth}/Documentation -name $@ -print|head -1 ` .
dist:
-mkdir $(distdir)
$(MAKE) localdist
- chmod -Rf a+rX $(distdir)
+ chmod -R a+r $(distdir)
+ chmod a+x `find $(distdir) -type d -print`
(cd ./$(depth)/$(outdir); $(TAR) cf - $(DIST_NAME) | gzip -9 > $(DIST_NAME).tar.gz)
INSTALL.txt: check-doc-deps check-mf-deps
rm -f INSTALL.txt
- ln `$(FIND) ./ -name INSTALL.txt|head -1` .
+ ln `$(FIND) ./ -name INSTALL.txt -print |head -1` .
# all machine generated junk resides in out/
distclean:
- set -e; for i in `find -type d -name 'out'`; do \
+ set -e; for i in `find . -type d -name 'out' -print`; do \
rm -f $$i/* $$i/.build; done
rm -rf *-build-dir
( cd flower && rm -f config.cache config.status config.log )
echo '# WARNING WARNING WARNING WARNING' > $@
echo '# do not edit! this is generated from make/Toplevel.make.in' >> $@
cat $< >> $@
+ chmod -w $@
INCLUDES = -Iinclude -I$(outdir) -I$(include-lib) -I$(libout) -I$(include-flower) -I$(flowerout)
CXX_OUTPUT_OPTION = $< -o $@
LDFLAGS = $(ILDFLAGS) $(USER_LDFLAGS) $(EXTRA_LDFLAGS) $(MODULE_LDFLAGS) -L$(depth)/lib/$(OUTDIR_NAME) -L$(depth)/flower/$(OUTDIR_NAME)
-LOADLIBES = $(EXTRA_LIBES) $(MODULE_LIBES) -lg++ -lstdc++ # need lg++ for win32, really!
+LOADLIBES = $(EXTRA_LIBES) $(MODULE_LIBES) -lstdc++ # need lg++ for win32, really!
#
# macro compiler:
Begin3
Titel: LilyPond
-Versie: 0.1.47
-Inschrijf datum: 06MAR98
+Versie: 0.1.48
+Inschrijf datum: 12MAR98
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.47.tar.gz
+ 395k lilypond-0.1.48.tar.gz
Oorspronkelijke plek: pcnov095.win.tue.nl /pub/lilypond/
- 395k lilypond-0.1.47.tar.gz
+ 395k lilypond-0.1.48.tar.gz
Copi"eer politie: GPL
End
Begin3
Title: LilyPond
-Version: 0.1.47
-Entered-date: 06MAR98
+Version: 0.1.48
+Entered-date: 12MAR98
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
- 470k lilypond-0.1.47.tar.gz
+ 470k lilypond-0.1.48.tar.gz
Original-site: pcnov095.win.tue.nl /pub/lilypond/development/
- 470k lilypond-0.1.47.tar.gz
+ 470k lilypond-0.1.48.tar.gz
Copying-policy: GPL
End
Name: lilypond
-Version: 0.1.47
+Version: 0.1.48
Release: 1
Copyright: GPL
Group: Applications/Publishing
-Source0: alpha.gnu.org:/gnu/lilypond/development/lilypond-0.1.47.tar.gz
+Source0: alpha.gnu.org:/gnu/lilypond/development/lilypond-0.1.48.tar.gz
Summary: A program for typesetting music.
URL: http://www.stack.nl/~hanwen/lilypond
Packager: Han-Wen Nienhuys <hanwen@stack.nl>
make -C Documentation gifs
make prefix="$RPM_BUILD_ROOT/usr" install
%files
-%doc Documentation/out/ANNOUNCE.txt Documentation/out/AUTHORS.txt Documentation/out/CodingStyle.txt Documentation/out/DEDICATION.txt Documentation/out/INSTALL.txt Documentation/out/MANIFESTO.txt Documentation/out/NEWS.txt Documentation/out/TODO.txt Documentation/out/cadenza.ly.txt Documentation/out/collisions.ly.txt Documentation/out/convert-mudela.txt Documentation/out/faq.txt Documentation/out/font16.ly.txt Documentation/out/font20.ly.txt Documentation/out/gallina.ly.txt Documentation/out/gnu-music.txt Documentation/out/index.txt Documentation/out/internals.txt Documentation/out/language.txt Documentation/out/lilypond.txt Documentation/out/links.txt Documentation/out/literature.txt Documentation/out/ly2dvi.txt Documentation/out/mi2mu.txt Documentation/out/mudela-book.txt Documentation/out/multi.ly.txt Documentation/out/mutopia.txt Documentation/out/other-packages.txt Documentation/out/praeludium-fuga-E.ly.txt Documentation/out/preludes-1.ly.txt Documentation/out/preludes-2.ly.txt Documentation/out/rhythm.ly.txt Documentation/out/scsii-menuetto.ly.txt Documentation/out/standje.ly.txt Documentation/out/twinkle-pop.ly.txt Documentation/out/twinkle.ly.txt Documentation/out/wtk1-fugue2.ly.txt Documentation/out/wtk1-prelude1.ly.txt BUGS TODO NEWS DEDICATION ANNOUNCE README
-%doc input/beams.ly input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/denneboom.ly input/font-body.ly input/font.ly input/font11.ly input/font13.ly input/font16.ly input/font20.ly input/font26.ly input/gourlay.ly input/keys.ly input/kortjakje.ly input/multi.ly input/pedal.ly input/praeludium-fuga-E.ly input/rhythm.ly input/scales.ly input/scripts.ly input/sleur.ly input/slurs.ly input/spacing.ly input/stem.ly input/twinkle-pop.ly input/twinkle.ly Documentation/introduction.doc Documentation/mudela-course.doc Documentation/mudela-man.doc
+%doc Documentation/out/ANNOUNCE.txt Documentation/out/AUTHORS.txt Documentation/out/CodingStyle.txt Documentation/out/DEDICATION.txt Documentation/out/INSTALL.txt Documentation/out/MANIFESTO.txt Documentation/out/NEWS.txt Documentation/out/TODO.txt Documentation/out/convert-mudela.txt Documentation/out/faq.txt Documentation/out/gnu-music.txt Documentation/out/index.txt Documentation/out/internals.txt Documentation/out/language.txt Documentation/out/lilypond.txt Documentation/out/links.txt Documentation/out/literature.txt Documentation/out/ly2dvi.txt Documentation/out/mi2mu.txt Documentation/out/mudela-book.txt Documentation/out/mutopia.txt Documentation/out/other-packages.txt BUGS TODO NEWS DEDICATION ANNOUNCE README
+%doc input/beam-bug.ly input/beams.ly input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/denneboom.ly input/font-body.ly input/font.ly input/font11.ly input/font13.ly input/font16.ly input/font20.ly input/font26.ly input/gourlay.ly input/keys.ly input/kortjakje.ly input/multi.ly input/pedal.ly input/praeludium-fuga-E.ly input/rhythm.ly input/scales.ly input/scripts.ly input/sleur.ly input/slurs.ly input/spacing.ly input/stem.ly input/twinkle-pop.ly input/twinkle.ly Documentation/introduction.doc Documentation/mudela-course.doc Documentation/mudela-man.doc
%doc Documentation/out/lelie_logo.gif
/usr/bin/convert-mudela
/usr/bin/mudela-book
include $(MFDEPS)
#
+# silly workaround for stupid TeXs
+systempks:
+# irix 5.3
+# MakeTeXPK feta16 300 300 magstep\(0.0\)
+ set -e ; for a in $(FONT_FILES); do \
+ MakeTeXPK `basename $$a .mf` 300 300 magstep\(0.0\) ; \
+ mf "\mode=ljfour; input `basename $$a .mf`" ;\
+ mv -f `find . -name '*.tfm' -print -o -name '*gf' -print` out/ ; \
+ done
+
input feta-ital-s;
input feta-ital-z;
-font_slant slant; font_x_height x_height#;
+font_slant slant;
+font_x_height x_height#;
+font_quad 18u#; % to have a working em unit
fet_endfont("feta-din");
end.
Verbose level_ver = NORMAL_ver;
-/// just to make sure print_rat is linked in
-static void (*rat_printer)(Moment const&);
-
void
usage()
{
main (int argc_i, char* argv_sz_a[])
{
Mudela_key key (0, 0);
- rat_printer = print_rat;
Long_option_init long_option_init_a[] =
{
for (PCursor<Mudela_item*> i (items); i.ok();)
{
- LOGOUT(DEBUG_ver) << "At: " << i->at_mom() << "; ";
- LOGOUT(DEBUG_ver) << "dur: " << i->duration_mom() << "; ";
- LOGOUT(DEBUG_ver) << "mom: " << mom << " -> ";
+ LOGOUT(DEBUG_ver) << "At: " << String (i->at_mom()) << "; ";
+ LOGOUT(DEBUG_ver) << "dur: " << String (i->duration_mom()) << "; ";
+ LOGOUT(DEBUG_ver) << "mom: " << String (mom) << " -> ";
if (i->at_mom() > mom)
{
Moment dur = i->at_mom() - mom;
}
else if (i.ok())
i++;
- LOGOUT(DEBUG_ver) << "mom: " << mom << "\n";
+ LOGOUT(DEBUG_ver) << "mom: " << String (mom) << "\n";
}
}
\include "paper20.ly"
-rh = \melodic{
+one = \melodic{
\octave c'';
\textstyle "italic";
r16\p_"legato"\< ['g-1( c-3 )e-5] r ['g-1( c )e]
r [''b 'd 'a-5] r [''b 'd 'g-4]
r [''a 'c 'g-5] r [''a 'c 'f!-4] |
% ugh, arpeggio
- \multi 2 <
- { \stemup; 'f4 r s }
- { \stemdown; <''g4 'd> r s }
+ <
+ { \voiceone; 'f4 r s }
+ { \voicetwo; <''g4 'd> r s }
>
- \stemboth;
+ \onevoice;
% ugh beam across staffs, slur starts at lower staff
r16 [''g-1( ''b 'd] |
- \stemup;
+ \voiceone;
)''b s4 ['g16-1( 'b-2 d] )'b s s s [f-2 g-3 b-5 f-2] |
- \stemboth;
+ \onevoice;
[e-1\f c'-5( g-3 f-2] [e-1 c'-5 g-3 e-2]
[)d c'-5( f-3 e-2] [d-1 b-5 f-3 d-2] |
[)c b-5( e-3 d-2] [c-1 a-5 e-3 c-2]
[f-5 d-3 es-4 c-2] ['fis-1 es-4 d-3 c-2] |
['b-1 d-5 'b-3 'g-1] ['as-4-"cresc. e rall." 'f-2 'g-3 'd-1]
['es-2 'fis-3 'a-4 c-5]
- \multi 2 <
- { \stemup; r [c8 'b16] }
- { \stemdown; ['d8 'f-2] }
+ <
+ { \voiceone; r [c8 'b16] }
+ { \voicetwo; ['d8 'f-2] }
>
- \stemboth; |
+ \onevoice; |
<c1\mf 'g 'e>
\bar "|.";
}
-lh = \melodic{
+two = \melodic{
\octave c;
- \clef bass;
\textstyle "roman";
c4-5 e-3 [g32-1 fis-2 g8.-1] 'g4 |
d-5 f-3 [a32-1 gis a8.] 'a4 |
g r r16 ['g-5( 'b-4 d] )f-1 s s s |
s [g-5( b-4 d'-2] )f'-1 s s s s \clef violin; [g'-4 b'-2 d''-1]
s s s s \clef bass; |
- \multi 2 <
- { \stemup; g1 ~ g ~ g ~ g ~ g ~ g ~ g }
- { \stemdown; 'g1 ~ 'g ~ 'g ~ 'g ~ 'g ~ 'g ~ 'g }
+ <
+ { \voiceone; g1 ~ g ~ g ~ g ~ g ~ g ~ g }
+ { \voicetwo; 'g1 ~ 'g ~ 'g ~ 'g ~ 'g ~ 'g ~ 'g }
>
<c1 'c>
\bar "|.";
\meter 4/4;
}
+treble_staff = \type Staff = treble <
+ \global
+ \one
+>
+
+bass_staff = \type Staff = bass <
+% bass = Staff <
+ \clef "bass";
+ \global
+ \two
+>
+
+grand_staff = \type Grandstaff <
+ \treble_staff
+ \bass_staff
+>
+
+a4 = \paper{
+ \paper_twenty
+ linewidth= 195.\mm;
+}
+
\score{
- % Moderato
- % it would be nice to shut-off fingering...
- \melodic \type Grandstaff <
- <
- \global
- \rh
- >
- <
- \global
- \lh
- >
- >
- \paper{
- \paper_twenty
- linewidth= 195.\mm;
- }
- \midi{
- \tempo 4 = 70;
- }
+ % Moderato
+ \grand_staff
+ \paper{ \a4 }
+ \midi{ \tempo 4 = 80; }
}
\include "paper20.ly"
-rh = \melodic{
+one = \melodic{
\octave c'';
\textstyle "italic";
r8\mf ['c-1( 'e-2 'g-4] ['e-2 'c-1 'bes-5 'g-3] |
[)'a-4\< 'c-1( 'f-2 'a-4] ['f 'c c-5 'a-3] |
[)'b-4 'g-1( 'b-2 d-4] ['b-2 'g f-5 \!d-3] |
- \multi 2 <
- {\stemup; )e2-4\f r4 e-5 }
- {\stemdown; <c2 'g> r4 <c 'g> }
+ <
+ {\voiceone; )e2-4\f r4 e-5 }
+ {\voicetwo; <c2 'g> r4 <c 'g> }
>
- \stemboth; |
- \multi 2 <
- { \stemup; d2-4 r4 d-4 }
- { \stemdown; <c2 'a> r4 <c 'a> }
+ \onevoice; |
+ <
+ { \voiceone; d2-4 r4 d-4 }
+ { \voicetwo; <c2 'a> r4 <c 'a> }
>
- \stemboth; |
- \multi 2 <
- { \stemup; d8 }
- { \stemdown; <'b8 'g> }
+ \onevoice; |
+ <
+ { \voiceone; d8 }
+ { \voicetwo; <'b8 'g> }
>
- \stemboth;
+ \onevoice;
['g8-1\mf( 'b-2 d-4]
- \multi 2 <
- { \stemup; )'b4 e-5 }
- { \stemdown; 'g4 'b }
+ <
+ { \voiceone; )'b4 e-5 }
+ { \voicetwo; 'g4 'b }
>
- \stemboth; |
- \multi 2 <
- { \stemup; c2 r4 < {c-5 ~ c8} {'a4 ~ 'a8} > }
- { \stemdown; c2 r4 'e4 ~ 'e8 }
+ \onevoice; |
+ <
+ { \voiceone; c2 r4 < {c-5 ~ c8} {'a4 ~ 'a8} > }
+ { \voicetwo; c2 r4 'e4 ~ 'e8 }
>
- \stemboth;
+ \onevoice;
['d-1\p( 'fis-2 'a-4] ['fis-2 'd-1 c-5 'a-3] |
[)'b-4\< 'g-1( 'b-2 d-4] [ 'b-2 'g-1 f!-5 d-3] |
[)e-4 'g-1( c-2 e-4] [c-2 'g g-5 e-3] |
[)fis-4 'a-1( c-2 fis-4] [c 'a a-5 \!fis-3] |
- \multi 2 <
- { \stemup; )g2-5\f }
- { \stemdown; <d2 'b> }
+ <
+ { \voiceone; )g2-5\f }
+ { \voicetwo; <d2 'b> }
>
- \stemboth;
+ \onevoice;
r4 b4-2( |
[c8-1 e-2 g c'] [g-2 e-1 bes-4 g-2] |
[)a16->-3 g-2 f-1 e-3] [d c 'b!-3 'a-2]
['b-3\< 'g-1 'a 'b] [c-1 d e \!f] |
g4-5\ff
- \multi 2 <
- { \stemup; c2-5 'b4-4 }
- { \stemdown; 'g2-2 'd4-1 }
+ <
+ { \voiceone; c2-5 'b4-4 }
+ { \voicetwo; 'g2-2 'd4-1 }
>
- \stemboth;
- \multi 2 <
- { \stemup; c1^5 }
- { \stemdown; 'e1_1}
+ \onevoice;
+ <
+ { \voiceone; c1^5 }
+ { \voicetwo; 'e1_1}
>
- \stemboth;
+ \onevoice;
\bar "|.";
}
-lh = \melodic{
+two = \melodic{
\octave c;
- \clef bass;
- \multi 2 <
- { \stemup; c1 ~ c ~ c }
- { \stemdown; 'c1 ~ 'c ~ 'c }
+ <
+ { \voiceone; c1 ~ c ~ c }
+ { \voicetwo; 'c1 ~ 'c ~ 'c }
>
- \stemboth; |
+ \onevoice; |
r8 [c-5( e-3 g-1] [e-3 c-5 c' e-4] |
[)fis-3 d-5( fis-3 a-1] [fis-3 d-5 d' fis-4] |
)g2-3 r4 g-2( |
\meter 4/4;
}
+treble_staff = \type Staff = treble <
+ \global
+ \one
+>
+
+bass_staff = \type Staff = bass <
+% bass = Staff <
+ \clef "bass";
+ \global
+ \two
+>
+
+grand_staff = \type Grandstaff <
+ \treble_staff
+ \bass_staff
+>
+
+a4 = \paper{
+ \paper_twenty
+ linewidth= 195.\mm;
+}
+
\score{
- % Moderato
- % it would be nice to shut-off fingering...
- \melodic \type Grandstaff <
- <
- \global
- \rh
- >
- <
- \global
- \lh
- >
- >
- \paper{
- \paper_twenty
- linewidth= 195.\mm;
- }
- \midi{
- \tempo 4 = 90;
- }
+ % Moderato
+ \grand_staff
+ \paper{ \a4 }
+ \midi{ \tempo 4 = 100; }
}
+
define(s, `comma(translit($*,` ', `,'))')
define(t, r16 [$1$4 $2 $3] [$2 $1 $2 $6$1] r $1$7 r $5$1 |)
-rh = \melodic{
+one = \melodic{
\octave c';
\textstyle "italic";
%# s(`c' `es' `g' `\p(\<' `\!' `)\!' `\>')
\bar "|.";
}
-lh = \melodic{
+two = \melodic{
\octave c;
\clef bass;
% c4 r [g8-.(\ped )es-.\*] |
\key bes es as;
}
+treble_staff = \type Staff = treble <
+ \global
+ \one
+>
+
+bass_staff = \type Staff = bass <
+% bass = Staff <
+ \clef "bass";
+ \global
+ \two
+>
+
+grand_staff = \type Grandstaff <
+ \treble_staff
+ \bass_staff
+>
+
+a4 = \paper{
+ \paper_twenty
+ linewidth= 195.\mm;
+}
+
\score{
% Semplice e non troppo legato
- \melodic \type Grandstaff <
- <
- \global
- \rh
- >
- <
- \global
- \lh
- >
- >
- \paper{
- \paper_twenty
- linewidth= 195.\mm;
- }
- \midi{
- \tempo 4 = 90;
- }
+ \grand_staff
+ \paper{ \a4 }
+ \midi{ \tempo 4 = 100; }
}
\stemup;
)cis4-2 fis-5 ~ [fis8 fis-4] e4-3 ~ |
e16\< \stemboth ['a16( cis 'a] [d-2 e fis d-1]
- [g-3 fis g a-4] [a-3 b a \!g] |
+ [g-3 fis g a-4] [g-3 b a \!g] |
\stemup
)fis4-"2\\_3" [e8-2 a-5] <fis4-4 d-2> <gis-5 e-3> |
<a4-5( e> <fis-4 d-2> <[)g!16-5 d> fis-2 g-3 a-4]
['d8. 'e16~] ['e 'd8 'cis16] |
\stemup
r16 ['d-1\< 'fis 'd] ['g 'a 'b 'g-1] [c-3 'b c d] [c e d-4 \!c] |
- 'b4-5 'a ~ ['a8 'g-5 ~] ['g16 'fis8-4 'e'16-3] |
+ 'b4-5 'a ~ ['a8 'g-5 ~] ['g16 'fis8-4 'e16-3] |
['fis8-4 'e-5~] ['e 'd-5~] 'd4 'cis-4 |
'd2\p-"rall." ~ ['d16 ''a-2( ''b-3 'cis-4] )'d4-5 |
\bar "|.";
\textstyle "finger";
% ugh: koor
% \translator Staff=bass \octave c; \stemup
- \stemup;
+% \stemup;
fis4-1( e8-2 a4 a4 gis8-2 |
) a8
\translator Staff=treble \octave c''; \stemdown
\stemboth
r16 [''b-1\< 'd-2 ''b~] <'g4-5 'e-3 ''b>
r16 ['cis-1 'e-2 \!'cis~] |
- <'a4-5 'f-3 'cis> r16 ['d-1 'fis-2 'd~] <'b4-5 'g-3 'd>
+ <'a4-5 'fis-3 'cis> r16 ['d-1 'fis-2 'd~] <'b4-5 'g-3 'd>
r16 ['fis-1 'a 'fis~] |
\stemdown
'fis4 'e 'd 'cis |
\translator Staff=treble \octave c''; \stemdown
'd8.-1 ~ ['d8 'c] 'd4 [''a8 ''g] |
\translator Staff=bass \octave c; \stemup
- [fis'8 c'-1] b4-1 <a
+ [fis'8 c'-1] b4-1 \stemdown <a
\translator Staff=treble \octave c''; \stemdown
''a4.-2>
\stemdown
'a8~ |
- ['a 'g-3~] ['g16 'e 'fis8~] ['fis16 'd8.~] ['d8. cis!16] |
+ ['a 'g-3~] ['g16 'e 'fis8~] ['fis16 'd8.~] ['d8. 'cis!16] |
\translator Staff=bass \octave c; \stemup
% <[d'8-2 a-1> <a~ g]> <a4 [fis16-2> e-1 fis-2 d-1]
- \multi 2 <
- {
- [d'8-2 a~] a4
- }
- {
- \property Voice.hshift = 1
- [a8-1 g] [fis16-2 e-1 fis-2 d-1]
- \property Voice.hshift = 0
- }
+ <
+ { \voiceone; [d'8-2 a~] a4 }
+ { \voicethree; [a8-1 g] [fis16-2 e-1 fis-2 d-1] }
>
+ \voiceone;
[g-1 fis-2 g-1 a-2] [g-1 b-3 a-2 g-1 ~] |
[g g-1 fis-2 e-1] fis4-2 ~ fis2
\bar "|.";
three = \melodic{
\octave c;
- \stemdown;
+% \stemdown;
d4-3 c-4 'b e-3 |
a16 ['a-5\mf( cis-3 'a-5] [d-2 e-1 fis-2 d-4]
[g-1 fis-3 g a] [g b a g] |
four = \melodic{
\skip 4*36;
\octave c';
- \stemup;
- \property Voice.hshift = 1
+% \stemup;
+% \property Voice.hshift = 1
a2 fis |
d
- \property Voice.hshift = 0
+% \property Voice.hshift = 0
\skip 4*11;
\translator Staff=bass \octave c; \stemup
a4 ~ [a16 d-2 g8-1] [fis e-1] |
'd2 'd2
}
-rh = \melodic{
- \multi 2 <
- \one
- \four
- >
- \bar "|.";
+global = \melodic{
+ \meter 4/4;
+ \key fis cis;
}
+treble_staff = \type Staff = treble <
+ \global
+ { \voiceone \one }
+ { \voicefour \four }
+>
-lh = \melodic{
+bass_staff = \type Staff = bass <
+% bass = Staff <
\clef "bass";
- \multi 2 <
- \two
- \three
- >
- \bar "|.";
-}
+ \global
+% { \voiceone \two }
+ { \type Voice = bone \skip 1*0; \property Voice.ydirection = \up \two }
+ { \voicetwo \three }
+>
+grand_staff = \type Grandstaff <
+ \treble_staff
+ \bass_staff
+>
-global = \melodic{
- \meter 4/4;
- \key fis cis;
+widea4 = \paper{
+ \paper_twenty
+ linewidth= 195.\mm;
+% arithmetic_basicspace = 2.;
+% arithmetic_multiplier = 6.\pt;
+ arithmetic_basicspace = 3.;
+ arithmetic_multiplier = 6.\pt;
}
\score{
- % Allegretto
- % it would be nice to shut-off fingering...
- \melodic \type Grandstaff <
- \type Staff=treble <
- \global
-% huh? try these iso directly!
-% \lh
- \multi 2 <
- \one
- \four
- >
- >
- \type Staff=bass <
- \global
-% \rh
-% or try \two having here, iso above!
-% \two
- {
- \clef "bass";
- \multi 2 <
- \two
- \three
- >
- }
- >
- >
- \paper{
- \paper_twenty
- linewidth= 195.\mm;
-% arithmetic_basicspace = 2.;
-% arithmetic_multiplier = 6.\pt;
- arithmetic_basicspace = 3.;
- arithmetic_multiplier = 6.\pt;
- }
- \midi{
- \tempo 4 = 110;
- }
+ % Allegretto
+ \grand_staff
+ \paper{ \widea4 }
+ \midi{ \tempo 4 = 70; }
}
\include "paper20.ly"
-rh = \melodic{
+one = \melodic{
\octave c';
\textstyle "italic";
[d8-1\p a-5-"legato" f-3 d-1 a-5 f-3] |
[d-1 a-5 f-3 d-1 a-5 f-3] |
- [d-1\< b-4 g-2 d-1 b-4 \!g-2] |
- [d-1 b-4 g-2 d-1 b-5 g-3] |
+ [d-1\< bes-4 g-2 d-1 bes-4 \!g-2] |
+ [d-1 bes-4 g-2 d-1 bes-5 g-3] |
[cis-1\mf g-4 e-2 cis-1 g-4 e-2] |
- [cis-1 b-5 g-4 e-2 a-5 g-4] |
+ [cis-1 bes-5 g-4 e-2 a-5 g-4] |
[f-3\< d-1 f-2 a-4 f-1 a-2] |
[d'-5 a-1 d'-2 f'-4 d'-1 \!f'-2] |
[b'\> f'-3 e' d' c'-3 b] |
[a gis-3 fis e d'-5 \!b-2] |
- \multi 2 <
+ <
{
- \stemup
+ \voiceone;
% c'4\mr^"(\\textsharp)"\p r r |
% c'4\mr^"(\\textsharp)" r r
c'4^"(\\textsharp)"\p r r |
c'4^"(\\textsharp)" r r
}
- {
- \stemdown
- a4 r r |
- a4 r r
- }
+ { \voicetwo; a4 r r | a4 r r }
> |
- \stemboth;
+ \onevoice;
[a'8\mf( es'-3\> d' c' bes!-3 a] |
[g fis-3 e!-2 d-1 c'-4 \!a] |
[)bes32(\p a bes16] [d'8-5 bes-3 g-1] )g'4 |
-% r8 [d'-5( c bes a\pr g] |
- r8 [d'-5( c bes a g] |
+% r8 [d'-5( c' bes a\pr g] |
+ r8 [d'-5( c' bes a g] |
[)a-2 c'-4( a f] ) f'4 |
% r8 [c'-5 bes a g\tr f] |
r8 [c'-5 bes a g f] |
[g-2 bes-4 a g f-1 e-2] |
[f-3 d-1 f-2 a-3 d'-5 g-2] |
- \multi 2 <
- {
- \stemup
- [cis'32-4 b cis'16 e'8-5-"poco cresc." cis'-3 a e' cis']
- }
- {
- \stemdown
- a4
+ <
+ {
+ \voiceone;
+ [cis'32-4 bes cis'16 e'8-5-"poco cresc." cis'-3 a e' cis']
}
+ { \voicetwo; a4 }
>
- \stemboth
+ \onevoice;
[a8 e'-5 cis' a bes!-3 a] |
[g e'-5 cis'-3 g e'-5 cis'-3] |
[g-1 e'-5 cis' g a-3 g] |
[f-"dim." d'-5 bes f d' bes] |
[f d'-5 bes f d' bes] |
[fis-2-"dim." c'-5 a-3 fis-2 c'-5 a-3] |
- [fis-2 c'-5 a-3 fis-2 c-5 a-3] |
+ [fis-2 c'-5 a-3 fis-2 c'-5 a-3] |
[bes-4 g-1 fis-2 g-3 d-1 g-2] |
[bes-4 g-2 d-1 bes-5 g-3 d-1] |
[e-2\p g-4 fis-3 g-1 bes-4 g-2] |
[d-1 a-5 f-3 d-1 cis-2 d-1] |
[e-3\< g-5 e-3 'bes-1 g-5 e-3] |
['bes-1 g-5 e-3 \!cis-2 'a-1 g-5] |
- [f16-4\mf d-2 c-1 'bes-3] /stemup 'a-2 s16 s8 s4 |
+ [f16-4\mf d-2 c-1 'bes-3] \stemup 'a-2 s16 s8 s4 |
% ugh
% s1 |
s4 s4 s4 |
s4 s16 [d16-1-"m.d." f-2 a-4] \stemdown [d-2-"m.g." f a] \stemup d'-1 |
\stemboth
- [f' a'-4 f' d'] [f'-4 d' b d'-5] [gis-2 b a g] |
+ [f' a'-4 f' d'] [f'-4 d' b d'-5] [gis-2 b a gis] |
<g'!4.-5\f e' a> a'8-5
- \multi 2 <
+ <
{
- \stemup
+ \voiceone;
f'4-4\> ~ | \![f'8 e'] [e'32-4 f' e'8. ~] [e'8 d'-3]
}
- {
- \stemdown
- <d'4 a> r4 cis'-2
- }
+ { \voicetwo; <d'4 a> r4 cis'-2 }
> |
- \stemboth;
+ \onevoice;
[d'8-4 c'!-3 a-1 d'-4 bes-2 g-1] |
[c'-5 a-3 fis-2 bes-4 g e ] |
[a-5 fis-"dim. e rall." d g-5 e cis-2] |
- \multi 2 <
- {
- \stemup
- <fis2-.-5\p 'a>
- }
- {
- \stemdown
- [d32( cis d8. ~] ) d2
- }
+ <
+ { \voiceone; <fis2-.-5\p 'a> }
+ { \voicetwo; [d32( cis d8. ~] ) d2 }
> |
\bar "|.";
}
-lh = \melodic{
+two = \melodic{
\clef "bass";
\octave c;
[d32( cis )d8.] r4 r |
r4 r r |
%{
ugh, 'forget' the 8 below:
- [cis-3( e cis 'a] [d16-1 c 'b 'a] |
+ [cis-3( e cis 'a] [d16-1 c 'bes 'a] |
and lily dumps koor
lilypond: ../flower/include/varray.hh:116: struct Rhythmic_grouping *& Array<Rhythmic_grouping *>::elem(int) const: Assertion `i >=0&&i<size_' failed.
Aborted (core dumped)
%}
- [cis8-3( e cis 'a] [d16-1 c 'b 'a] |
+ [cis8-3( e cis 'a] [d16-1 c 'bes 'a] |
[)'g8 g a-2( g-3 a-1 'a] |
)d4-3 d'-1 d |
d r r |
\bar "|.";
}
-global = \melodic{
+global = \melodic{
\meter 3/4;
\key bes;
}
+treble_staff = \type Staff = treble <
+ \global
+ \one
+>
+
+bass_staff = \type Staff = bass <
+% bass = Staff <
+ \clef "bass";
+ \global
+ \two
+>
+
+grand_staff = \type Grandstaff <
+ \treble_staff
+ \bass_staff
+>
+
+widea4 = \paper {
+ \paper_twenty
+% arithmetic_basicspace = 2.;
+% arithmetic_multiplier = 6.\pt;
+ arithmetic_basicspace = 2.;
+ arithmetic_multiplier = 8.\pt;
+ linewidth= 195.\mm;
+}
+
\score{
- % Moderato
- % it would be nice to shut-off fingering...
- \melodic \type Grandstaff <
- <
- \global
- \rh
- >
- <
- \global
- \lh
- >
- >
- \paper{
- \paper_twenty
- linewidth= 195.\mm;
-% arithmetic_basicspace = 2.;
-% arithmetic_multiplier = 6.\pt;
- arithmetic_basicspace = 2.;
- arithmetic_multiplier = 8.\pt;
- }
- \midi{
- \tempo 4 = 90;
- }
+ % Moderato
+ \grand_staff
+ \paper{ \widea4 }
+ \midi{ \tempo 4 = 90; }
}
+
[a16 a-5 \stemup g! f] g4-4\< ~ g f-3 ~ |
[\!f16 a g f] [e16 g8.-5 ~] [g16 g-5 f-4 e-3] [d-1 f8.-4 ~] |
[f16 f-3 e d] b4 a-5 g-5 |
- fis4-4 g r8\<-"rall." [g16-1( bes-2] \!e'4-5\> |
+ fis4-4 g r8\<-"rall." [g16-1( bes-2] \!e'4-5 |
\!)d'1-5
\bar "|.";
}
s4 [e32 d e8.~] e4 d4 ~ |
d4. [cis16-2 d-1] cis4 d-1 ~ |
d8 r r16 [e-2 f d] r16 [e-2 f d] r [d-1 e-3 cis] |
- r16 [e-3 d-1 c!-2] ['bes! d8.] s4 r16 [bes-2 a-2 \!g-1] |
+ r16 [e-3 d-1 c!-2] ['bes! d8.] s4 r16\> [bes-2 a-2 \!g-1] |
fis1-2
}
b2-1 a-1 |
g a4. [gis16 a] |
gis2 <[g8 cis> <f-3 d-1]> e4-2 |
- d4. [fis16-3 g-2] r16 b8.-1 ~ b4 |
+ d4. [fis16-3 g-2] r16 bes8.-1 ~ bes4 |
\stemdown
d1-5
}
-rh = \melodic{
- \one
- \multi 2 <
- \one
- \two
- >
- \bar "|.";
+global = \melodic{
+ \meter 4/4;
+ \key bes;
}
-lh = \melodic{
+treble_staff = \type Staff = treble <
+ \global
+ \one
+ \two
+>
+
+bass_staff = \type Staff = bass <
+% bass = Staff <
\clef "bass";
- \multi 2 <
- \three
- \four
- >
- \bar "|.";
-}
+ \global
+ \three
+ \four
+>
+grand_staff = \type Grandstaff <
+ \treble_staff
+ \bass_staff
+>
-global = \melodic{
- \meter 4/4;
- \key bes;
+a4 = \paper{
+ \paper_twenty
+ linewidth = 195.\mm;
}
\score{
- % Allegretto
- % it would be nice to shut-off fingering...
- \melodic \type Grandstaff <
- \type Staff=treble <
- \global
-% huh? try these iso directly!
-% \lh
- \multi 2 <
- \one
- \two
- >
- >
- \type Staff=bass <
- \global
-% \rh
-% or try \two having here, iso above!
- \clef "bass";
- \multi 2 <
- \three
- \four
- >
- >
- >
- \paper{
- \paper_twenty
- linewidth= 195.\mm;
- }
- \midi{
- \tempo 4 = 40;
- }
+ % Allegretto
+ \grand_staff
+ \paper{ \a4 }
+ \midi{ \tempo 4 = 40; }
}
+
\hsize210mm
\vsize269mm
\advance\topmargin-25mm
-\advance\textheight45mm
+\advance\textheight50mm
\pagestyle{empty}
\input titledefs
\kern-\staffheight
\piece{1}{preludes-1}{Moderato}
-\vskip2\staffheight
\piece{2}{preludes-2}{Moderato}
\newpage
\piece{3}{preludes-3}{Semplice e non troppo legato}
\version "0.1.9";
+keyCminor = \melodic \key bes es as;
% should add \need{dutch.ini} for
% correct parsing of note names
-global =
- \melodic {
+global = \melodic {
\meter 4/4; % should be \meter C
\keyCminor
\skip 1*31;
\bar "|."; |
- }
+}
-dux =
- \melodic {
+dux = \melodic {
\clef "violin";
\octave c';
%% 30
f4 r8 f [f es16 d] [es8 <f as]> |
<B d> r <B d> r <G2 c> |
- }
+}
-comes =
- \melodic {
+comes = \melodic {
\octave c'';
\stemup
r1 |
%% 30
[As c16 B] [c8 <d 'b! 'as!]> [G8 c16 B] [c8 d] |
[F16 G] As4 [G16 F] E2 |
- }
+}
-bassdux =
- \melodic {
+bassdux = \melodic {
\clef "bass";
\octave c';
r1 |
\score {
- \melodic \type Grandstaff <
+ \type Grandstaff <
\type Staff=treble <
\global
\dux
% dyndefs.tex
%
+%\let\dyn\dynfont
\def\dyn{\dynfont}
-\def\dynaf{\dynfont\char0}
-\def\dynnf{\dynfont\char1}
-\def\dynnf{\dynfont\char1}
-\def\dynp{\dynfont\char2}
-\def\dynm{\raise.08ex\hbox{\dynfont\char3}}
-\def\dynr{\raise.1ex\hbox{\dynfont\char4}}
-\def\dyns{\raise.1ex\hbox{\dynfont\char5}}
-\def\dynz{\raise.1ex\hbox{\dynfont\char6}}
-\def\kdynf{\dynnf\kern-.25ex}
-\def\kdynp{\dynp\kern-.15ex}
+\chardef\dynaf = 0
+\chardef\dynnf = 1
+\chardef\dynnp = 2
+\chardef\dynnm = 3
+\chardef\dynnr = 4
+\chardef\dynns = 5
+\chardef\dynnz = 6
-\def\dynf{{\dynaf}}
-\def\dynpp{{\kdynp\dynp}}
-\def\dynppp{{\kdynp\kdynp\dynp}}
-\def\dynmp{{\raise.1ex\hbox{\dynm}\kern -.25ex\dynp}}
-\def\dynmf{{\dynfont\raise.08ex\hbox{\dynm}\kern-.45ex\dynnf}}
-\def\dynff{{\kdynf\dynnf}}
-\def\dynfff{{\kdynf\kdynf\dynnf}}
+\def\dynm{\raise .2ex\hbox{\dynnm}}
+\def\dynmm{\raise .1ex\hbox{\dynnm}}
+\def\dynr{\raise .2ex\hbox{\dynnr}}
+\def\dyns{\raise .15ex\hbox{\dynns}}
+\def\dynz{\raise .15ex\hbox{\dynnz}}
-\def\dynfp{{\kdynf\kern.1ex\dynp}}
-\def\dynsf{{\dyns\kern-.5ex\dynnf}}
-\def\dynsfz{{\dynsf\kern-.15ex\dynz}}
-\def\dynfz{{\dynf\dynz}}
-\def\dynrf{{\dynr\kern-.4ex\dynf}}
+\def\kdynf{\dynnf\kern -0.1em}
+\def\kdynp{\dynnp\kern -0.05em}
+\def\dynp{{\dyn\dynnp}}
+\def\dynpp{{\dyn\kdynp\dynnp}}
+\def\dynppp{{\dyn\kdynp\kdynp\dynnp}}
+\def\dynmp{{\dyn\dynmm\kern -0.07em\dynnp}}
+\def\dynmf{{\dyn\dynm\kern -0.14em\dynnf}}
+\def\dynf{{\dyn\dynaf}}
+\def\dynff{{\dyn\kdynf\dynnf}}
+\def\dynfff{{\dyn\kdynf\kdynf\dynnf}}
+
+\def\dynfp{{\dyn\dynnf\kern -0.04em\dynnp}}
+\def\dynsf{{\dyn\dyns\kern -0.13em\dynnf}}
+\def\dynsfz{{\dyn\dynsf\dynz}}
+\def\dynfz{{\dyn\dynnf\dynz}}
+\def\dynrf{{\dyn\dynr\kern -0.1em\dynnf}}
+
+\endinput
% fetdefs.tex
% encapsulating tex backend for auto-generated feta definitions
-\def\fetsixteendefs{
- \font\feta=feta16
- \font\vetfont=feta-beams16
- \font\fetanummer=feta-nummer8
- \font\dynfont=feta-din10 scaled \magstep1
- \font\bracefont=feta-braces16
- \font\fingerfont=feta-nummer4
+\def\fetsixteendefs{%
+ \font\feta = feta16
+ \font\vetfont = feta-beams16
+ \font\fetanummer = feta-nummer8
+ \font\dynfont = feta-din10 scaled \magstep 1
+ \font\bracefont = feta-braces16
+ \font\fingerfont = feta-nummer4
}
-\def\fettwentydefs{
- \font\feta=feta20
- \font\vetfont=feta-beams20
- \font\fetanummer=feta-nummer10
- \font\dynfont=feta-din10 scaled \magstep2
- \font\bracefont=feta-braces20
- \font\fingerfont=feta-nummer5
+
+\def\fettwentydefs{%
+ \font\feta = feta20
+ \font\vetfont = feta-beams20
+ \font\fetanummer = feta-nummer10
+ \font\dynfont = feta-din10 scaled \magstep 2
+ \font\bracefont = feta-braces20
+ \font\fingerfont = feta-nummer5
}
-\def\fettwentysixdefs{
- \font\feta=feta26
- \font\vetfont=feta-beams26
- \font\fetanummer=feta-nummer12
- \font\dynfont=feta-din10 scaled \magstep3
- \font\bracefont=feta-braces16
- \font\fingerfont=feta-nummer7
+
+\def\fettwentysixdefs{%
+ \font\feta = feta26
+ \font\vetfont = feta-beams26
+ \font\fetanummer = feta-nummer12
+ \font\dynfont = feta-din10 scaled \magstep 3
+ \font\bracefont = feta-braces16
+ \font\fingerfont = feta-nummer7
}
-\def\fetthirteendefs{
- \font\feta=feta13
- \font\vetfont=feta-beams26
- \font\fetanummer=feta-nummer5
- \font\dynfont=feta-din10 scaled \magstep0
- \font\bracefont=feta-braces16
- \font\fingerfont=feta-nummer3
+
+\def\fetthirteendefs{%
+ \font\feta = feta13
+ \font\vetfont = feta-beams26
+ \font\fetanummer = feta-nummer5
+ \font\dynfont = feta-din10 scaled \magstep 0
+ \font\bracefont = feta-braces16
+ \font\fingerfont = feta-nummer3
}
-\def\fetelevendefs{
- \font\feta=feta11
- \font\vetfont=feta-beams26
- \font\fetanummer=feta-nummer5
- \font\dynfont=feta-din10 %scaled \magstep-1
- \font\bracefont=feta-braces16
- \font\fingerfont=feta-nummer3
+
+\def\fetelevendefs{%
+ \font\feta = feta11
+ \font\vetfont = feta-beams26
+ \font\fetanummer = feta-nummer5
+ \font\dynfont = feta-din10 % scaled \magstep-1
+ \font\bracefont = feta-braces16
+ \font\fingerfont = feta-nummer3
}
\def\twentysixfonts{\fettwentysixdefs\cmrtwenty}
\def\elevenfonts{\fetelevendefs\cmreleven}
\def\thirteenfonts{\fetthirteendefs\cmrthirteen}
-\def\fetdef#1#2{\def#1{%
- \hbox{\fetchar{#2}}}}
+\def\fetdef#1#2{%
+ \def#1{\hbox{\fetchar{#2}}}}
\def\fetchar#1{\feta\char#1}
%\input feta16
% stacked numbers; overrules def in lilyponddefs
% widest num should be .40 balkheight
% oeps: \meter 12/8;
+%
+% \allabreve, \threetwometer etc. have zero as the second parameter.
+
\def\generalmeter#1#2{%
- \vbox to 0pt{\vss%
- \hbox to0.45\staffheight{\hss\fetanummer #1\hss}%
- \nointerlineskip%
- \hbox to0.45\staffheight{\hss\fetanummer #2\hss}%
- \vss}}
+ \ifnum #2 = 0\relax
+ \ifcase #1
+ \or\or
+ % 2
+ \allabreve
+ \or
+ % 3
+ \threetwometer % tempus perfectum cum prolatione imperfecta
+ \or
+ % 4
+ \fourfourmeter % tempus imperfectum cum prolatione imperfecta
+ \or\or
+ % 6
+ \sixfourmeter % tempus imperfectum cum prolatione perfecta
+ \or\or\or
+ % 9
+ \ninefourmeter % tempus perfectum cum prolatione perfecta
+ \fi
+ \else
+ \vbox to 0pt{%
+ \vss
+ \hbox to 0.45\staffheight{\hss\fetanummer #1\hss}%
+ \nointerlineskip
+ \hbox to 0.45\staffheight{\hss\fetanummer #2\hss}%
+ \vss}%
+ \fi}
\def\pianobrace#1{{\bracefont\char #1}}
%
% \input lily-mf-defs
-\def\EndLilyPondOutput{
- \embedclose
- \csname bye\endcsname
+\def\EndLilyPondOutput{%
+ \embedclose
+ \csname bye\endcsname
}
-
-
+\endinput
\def\cmrtwenty{
\font\meterfont=cmbx15
- \font\italicfont=cmti10
+ \font\italicfont=cmti10 scaled \magstep1
\font\musicmathfont=cmsy10
\font\normaltextfont=cmr10 %\textfont is a primitive
\font\smalltextfont=cmr8
\font\smalltextfont=cmr6
\font\normaltextfont=cmr8 %\textfont is a primitive
\font\meterfont=cmbx12
- \font\italicfont=cmti8
+ \font\italicfont=cmti9
\font\textmusic=cmmi10
\font\boldfont=cmbx8
}