From 6a1295eaacbc3e6b5a7ce19f7f942b23f8d7f2ff Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Fri, 6 Mar 1998 02:15:37 +0100 Subject: [PATCH] release: 0.1.47 --- AUTHORS.txt | 4 +- BUGS | 4 + Documentation/INSTALL.pod | 19 +- Documentation/Makefile | 2 +- Documentation/Rules.make | 11 +- Documentation/introduction.doc | 191 ++++++++++++++++++ Documentation/other-packages.pod | 16 +- INSTALL.txt | 20 +- NEWS | 14 ++ TODO | 20 ++ VERSION | 2 +- bin/convert-mudela.pl | 2 +- bin/convert-mudela.py | 318 ++++++++++++++++++++++++++++++ bin/cvm.py | 318 ++++++++++++++++++++++++++++++ bin/genheader.py | 2 +- bin/ly2dvi.sh | 4 + bin/make-docxx.sh | 2 +- bin/make-website.py | 10 +- bin/mudela-book.pl | 2 +- configure | 2 +- configure.in | 2 +- debian/out/dummy.dep | 0 flower/dictionary.cc | 37 ++++ flower/include/full-storage.icc | 1 + flower/include/interval.hh | 1 + flower/include/interval.tcc | 7 + flower/interval.cc | 2 + flower/string.cc | 4 + flower/test/main.cc | 9 +- init/feta11.ly | 14 +- init/feta13.ly | 28 +-- init/feta16.ly | 6 +- init/feta19.ly | 14 +- init/feta20.ly | 16 +- init/feta23.ly | 16 +- init/feta26.ly | 6 +- init/paper16.ly | 4 +- init/script.ly | 8 +- init/simple-init.ly | 11 ++ input/font-body.ly | 2 +- input/praeludium-fuga-E.ly | 188 ++++++++++++++++++ input/toccata-fuga-E.ly | 158 --------------- lily/Makefile | 5 +- lily/VERSION | 2 +- lily/abbrev.cc | 99 ++++++++++ lily/clef-grav.cc | 4 + lily/clef-item.cc | 16 +- lily/debug.cc | 15 +- lily/identifier.cc | 3 +- lily/include/abbrev.hh | 27 +++ lily/include/direction.hh | 6 + lily/include/engraver.hh | 1 - lily/include/lily-proto.hh | 1 + lily/include/linespace.hh | 8 - lily/include/minmax.tcc | 17 ++ lily/include/spring-spacer.hh | 8 - lily/include/stem-grav.hh | 1 + lily/include/stem.hh | 6 +- lily/include/timing-translator.hh | 1 + lily/midi-item.cc | 5 +- lily/musical-request.cc | 3 +- lily/parser.y | 65 ++++-- lily/score-elem.cc | 2 +- lily/score.cc | 1 + lily/spring-spacer.cc | 64 +++--- lily/stem-grav.cc | 13 +- lily/stem.cc | 64 +----- lily/symtable.cc | 2 + lily/tex-stream.cc | 2 +- lily/timing-translator.cc | 12 +- make/Rules.make | 2 - make/Variables.make | 4 +- make/lelievijver.lsm | 8 +- make/lilypond.lsm | 8 +- make/lilypond.spec | 8 +- mf/Makefile | 9 +- mf/TODO | 2 +- mf/feta-generic.mf | 12 +- mf/feta-schrift.mf | 78 +++++--- mf/grayimagen.mf | 9 + mf/mf.dep | 99 ---------- mutopia/J.S.Bach/preludes-1.ly | 8 +- mutopia/J.S.Bach/preludes-2.ly | 7 +- mutopia/J.S.Bach/preludes-3.ly.m4 | 8 +- mutopia/J.S.Bach/preludes-4.ly | 24 ++- mutopia/J.S.Bach/preludes-5.ly | 50 +++-- mutopia/J.S.Bach/preludes-6.ly | 51 +++-- mutopia/out/dummy.dep | 0 tex/feta11.tex | 36 ++-- tex/feta13.tex | 36 ++-- tex/feta16.tex | 36 ++-- tex/feta19.tex | 36 ++-- tex/feta20.tex | 36 ++-- tex/feta23.tex | 36 ++-- tex/feta26.tex | 36 ++-- tex/lily-ps-defs.tex | 8 +- tex/lilyponddefs.tex | 8 +- 97 files changed, 1880 insertions(+), 725 deletions(-) create mode 100644 Documentation/introduction.doc create mode 100644 bin/convert-mudela.py create mode 100644 bin/cvm.py create mode 100644 debian/out/dummy.dep create mode 100644 flower/dictionary.cc create mode 100644 init/simple-init.ly create mode 100644 input/praeludium-fuga-E.ly delete mode 100644 input/toccata-fuga-E.ly create mode 100644 lily/abbrev.cc create mode 100644 lily/include/abbrev.hh create mode 100644 lily/include/minmax.tcc create mode 100644 mf/grayimagen.mf delete mode 100644 mf/mf.dep create mode 100644 mutopia/out/dummy.dep diff --git a/AUTHORS.txt b/AUTHORS.txt index 415b79c60d..a57e2b1cb2 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -61,7 +61,7 @@ CONTRIBUTORS -29/Jan/98 LilyPond 0.1.46 1 +29/Jan/98 LilyPond 0.1.47 1 @@ -127,6 +127,6 @@ AUTHORS(1) LilyPond documentation AUTHORS(1) -29/Jan/98 LilyPond 0.1.46 2 +29/Jan/98 LilyPond 0.1.47 2 diff --git a/BUGS b/BUGS index 810766b46e..10c0b999d2 100644 --- a/BUGS +++ b/BUGS @@ -8,6 +8,10 @@ and before. Glibc upto 2.0.5 also has problems with memmem (), but these should not affect LilyPond. +[IRIX (5.3?)] + +coredump from strstream::strstream () upon the first read of a file + [Linux Intel] LilyPond occasionally crashes while parsing the initialisation files. diff --git a/Documentation/INSTALL.pod b/Documentation/INSTALL.pod index d724945a9a..33e6b0d44f 100644 --- a/Documentation/INSTALL.pod +++ b/Documentation/INSTALL.pod @@ -25,15 +25,15 @@ For compilation you need. =item * A GNU system: GNU LilyPond is known to run on these GNU systems: Linux -(PPC, intel), FreeBSD, AIX, NeXTStep, Digital Unix and Solaris. +(PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix and Solaris. If you have the Cygnus WINDOWS32 port of the GNU utils, it will even work in Windows NT/95, but we don't promise to support it. =item * -GNU C++ v2.7 or better, with libg++ installed. Version 2.7.2 -or better recommended. +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. =item * @@ -197,10 +197,10 @@ contain all files generated during compilation). =head2 Building for multiple hosts LilyPond does not follow the GNU standards when it comes to -configuring and making Makefiles. In LilyPond, F generates I -output in output directories (called F, by default). -You can have multiple compiles from the same source-tree, by -overriding the setting for the output directory. +configuring and making Makefiles. In LilyPond, F generates +I output in output directories (called F, by default). You +can have multiple compiles from the same source-tree, by overriding +the setting for the output directory. Example: on my system, I do debugging and lots compiling. For this I use the configuration as follows: @@ -218,8 +218,9 @@ and I want to do profiling. For that I use These two commands build two entirely separate versions of LilyPond. In Real Life, you would probably also want to have two -different prefixes. On my machine this is no problem; I never do -C. My prefix dirs are linked back to my source directory. +different prefixes. On my machine this is no problem; I never do +C. My prefix dirs are linked back to my source +directory. =head1 INSTALLING diff --git a/Documentation/Makefile b/Documentation/Makefile index 48df92b09d..d6a4cf732e 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -58,7 +58,7 @@ include $(depth)/make/Rules.make # localclean: - rm -f `find $(outdir)` + rm -f `find $(outdir) -type f` diff --git a/Documentation/Rules.make b/Documentation/Rules.make index fc9a6198f1..c32f9214ff 100644 --- a/Documentation/Rules.make +++ b/Documentation/Rules.make @@ -24,14 +24,19 @@ $(outdir)/%.txt: $(outdir)/%.1 $(depth)/%.txt: $(outdir)/%.txt cp $< $@ -do_pod2html=$(pod2html) $< +do_pod2html=$(pod2html) --infile $< --outfile=$@ +# do this for perl 5.003 +# do_pod2html=$(pod2html) $< +# mv $(notdir $@) $(outdir)/ + # do this for perl 5.004 # $ make do_pod2html='$(pod2html) --infile $< --outfile=$@' html -# + + $(outdir)/%.html: %.pod $(depth)/VERSION $(do_pod2html) - mv $(notdir $@) $(outdir)/ +# $(outdir)/%.5: %.pod $(pod2groff) diff --git a/Documentation/introduction.doc b/Documentation/introduction.doc new file mode 100644 index 0000000000..0b40054c99 --- /dev/null +++ b/Documentation/introduction.doc @@ -0,0 +1,191 @@ +% -*-latex-*- + +% this document should be run through the mudela-book script after lilypond +% has been installed. The rules have been precooked into the +% Documentation/Rules.make file; do +% +% make out/introduction.dvi +% +% or +% +% mudela-book --outdir=out/ --outname=introduction.mudtex introduction.doc +% latex '\nonstopmode \input out/introduction.mudtex' + + +\documentclass{article} +\usepackage{a4wide} +\title{Introduction to GNU LilyPond} +\author{Jan Nieuwenhuizen} +\date{March 2, 1998} + +% ugh: trick to get examples not generate par +% these are for 16pt +\def\mudelapaperlinewidth{-28.452756}% +\def\mudelapaperindent{28.452756}% +\def\mudelapaperrulethickness{0.400000}% +\def\mudelapaperbarsize{16.000000}% +\def\mudelapaperinterline{4.000000}% +\def\mudelapapernotewidth{5.930000}% +\def\mudelapaperwholewidth{8.640000}% +\def\mudelapaperunitspace{22.000000}% +\def\mudelapaperbasicspace{4.000000}% +\def\mudelapapergeometric{0.000000}% +\def\mudelapaperarithmetic_basicspace{2.000000}% +\def\mudelapaperarithmetic_multiplier{4.800000}% +\def\mudelapaperinterbeam{3.140000}% +\def\mudelapapergourlay_energybound{100000.000000}% +\def\mudelapapergourlay_maxmeasures{14.000000}% + +% ful of pars, needs the above +\input lilyponddefs +% generates par +\musixsixteendefs +\def\musixsixteendefs{} +% generates par +\turnOnPostScript% +\def\turnOnPostScript{} +% + +\begin{document} +\maketitle + +\def\interexample{\hskip15mm$\Longrightarrow$\hskip15mm} +\def\preexample{} +\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} + +\emph{\Large ***Under construction***} + +\section{Introduction} +This document should provide a gentle introduction to +LilyPond's input language, Mudela. +For completeness and nifty features see +\verb+input/*.ly+ +and +\verb+lily/parser.y, lily/lexer.l+. + + +\section{Notes: pitches and durations} + +\begin[fragment,verbatim]{mudela} +c +\end{mudela} + +\begin[fragment,verbatim]{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. + +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 +\end{mudela} +note the explicit duration change for +the quarter e in the last measure. + +Same for notes with flags +\begin[fragment,verbatim]{mudela} +a8 a16 a32 a64 a128 +\end{mudela} + +\begin[fragment,verbatim]{mudela} +c c' c'' +\end{mudela} + +\begin[fragment,verbatim]{mudela} +a 'a ''a +\end{mudela} + +\section{Slurs and Ties} + +A tie connects two adjacent noteheads + +\begin[fragment,verbatim]{mudela} +c' ~ c +\end{mudela} + +Whereas a slur rather connects `chords', +and tries to avoid crossing stems. + +\begin[fragment,verbatim]{mudela} +c'( )c +\end{mudela} + +A (legato) slur can span several notes +\begin[fragment,verbatim]{mudela} +c'( d e )c +\end{mudela} + +\section{Beams and plets} + +\begin[fragment,verbatim]{mudela} +[a8 a] [a16 a a a] +\end{mudela} + +% [2/3 a8 a a]1/1 +\begin[fragment,verbatim]{mudela} +[/3 a8 a a]/1 +\end{mudela} + +\begin[fragment,verbatim]{mudela} +\[/3 a4 a8\] +\end{mudela} + +\section{Commands} + +\begin[fragment,verbatim]{mudela} +\clef "bass"; 'c +\end{mudela} + +\begin[fragment,verbatim]{mudela} +\meter 3/4; c g g | +\end{mudela} + +\begin[fragment,verbatim]{mudela} +\key fis cis; +'g 'a 'b cis d e fis g' +\end{mudela} + +\section{Example} + +A Mudela file needs some red tape + +\begin[verbatim]{mudela} +\score{ + \melodic{ + \octave c'; + c d e c + } +} +\end{mudela} + +\section{Lyrics} + +% this nesting syntax sucks +\begin[verbatim]{mudela} +\score{ + < + \melodic \type Staff = bla < \melodic{\octave c'; c d e c} > +% huh? +% \lyric \type Lyrics = bli < \lyric{Fre- re Ja- que} > + > +} +\end{mudela} + +\section{Variables} + +\end{document} + diff --git a/Documentation/other-packages.pod b/Documentation/other-packages.pod index b04410aa3e..56cd0f9c83 100644 --- a/Documentation/other-packages.pod +++ b/Documentation/other-packages.pod @@ -11,7 +11,7 @@ packages. Feel free to add info (and mail it to me). =over 4 -=item Rosegarden, http://www.bath.ac.uk/~masjpf/rose.html +=item Rosegarden, http://www.bath.ac.uk/~masjpf/rose.html. A Notation editor/Sequencer for X. Also outputs musictex. @@ -171,6 +171,8 @@ clones. It uses MIDI-keyboard input =head2 Unknown +=over 4 + =item MusE, [no WWW address known] A-R Music Engraving, by A-R Editions, Inc. Professional engraving on @@ -189,12 +191,24 @@ Dominique Montel (a professional music typesetter) is now working together with computer scientists on his own software for music publishing, called "Berlioz". +=back + =head2 Other stuff +=over 4 + =item Sonata, http://www.adobe.com/type/browser/F/F_SONA.html The music font by Adobe. +=item Haskore, http://haskell.systemscz.cs.yale.edu/haskore/onlinetutorial/index.html + +A programming system for music, based on Haskell, a functional +programming language. It outputs MIDI, CSound, NeXTStep MusicKit and +CMN. + +=back + diff --git a/INSTALL.txt b/INSTALL.txt index 966420ae5a..1e8ba2b80f 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -25,14 +25,15 @@ PREREQUISITES o A GNU system: GNU LilyPond is known to run on these GNU systems: Linux (PPC, intel), FreeBSD, AIX, - NeXTStep, Digital Unix and Solaris. + NeXTStep, IRIX, Digital Unix and Solaris. If you have the Cygnus WINDOWS32 port of the GNU 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. - Version 2.7.2 or better recommended. + 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 make. @@ -60,8 +61,7 @@ RECOMMENDED - -28/Jan/98 LilyPond 0.1.46 1 +6/Mar/98 LilyPond 0.1.47 1 @@ -127,7 +127,7 @@ CONFIGURING and COMPILING -28/Jan/98 LilyPond 0.1.46 2 +6/Mar/98 LilyPond 0.1.47 2 @@ -193,7 +193,7 @@ INSTALL(1) LilyPond documentation INSTALL(1) -28/Jan/98 LilyPond 0.1.46 3 +6/Mar/98 LilyPond 0.1.47 3 @@ -259,7 +259,7 @@ EXAMPLE -28/Jan/98 LilyPond 0.1.46 4 +6/Mar/98 LilyPond 0.1.47 4 @@ -325,7 +325,7 @@ MUSIXTEX -28/Jan/98 LilyPond 0.1.46 5 +6/Mar/98 LilyPond 0.1.47 5 @@ -391,6 +391,6 @@ AUTHORS -28/Jan/98 LilyPond 0.1.46 6 +6/Mar/98 LilyPond 0.1.47 6 diff --git a/NEWS b/NEWS index 13e1992ee0..60d9a467b5 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,17 @@ +pl 47 + - Abbreviation now a separate item. + - bf'd some gcc 2.8 warnings. + - bf'd spurious space in autodep. + - more clefs (MB) + +pl 46.jcn1 + - start mudela introduction + - plet-fraction abbrev by guessing; /3 -> 2/3 etc. + - bf's: preludes-* + +******* +feb 27 + pl 46 - span-bar at upstep. - bf: \score { \score_identifier } diff --git a/TODO b/TODO index ae2a8a6eb3..e966bc71f1 100644 --- a/TODO +++ b/TODO @@ -42,6 +42,24 @@ grep for TODO and ugh/ugr * bf: abbrevs over whole note + * spanner that is not spanned gives assert (). + +* 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) + +* tie/slur dir & curvature + +* stem len adjustable + +* mindist for spanners + + + STUFF @@ -81,6 +99,8 @@ STUFF 3RD PARTY BUGS: + * gdb on RedHat 5 + * xdvi: PS magnifying glass. * Rational infty(HUGE_VAL) on glibc / w32 diff --git a/VERSION b/VERSION index 4bdb5e8521..cab5f19d38 100644 --- a/VERSION +++ b/VERSION @@ -1,6 +1,6 @@ TOPLEVEL_MAJOR_VERSION = 0 TOPLEVEL_MINOR_VERSION = 1 -TOPLEVEL_PATCH_LEVEL = 46 +TOPLEVEL_PATCH_LEVEL = 47 TOPLEVEL_MY_PATCH_LEVEL = # use the above to send patches, always empty for released version: diff --git a/bin/convert-mudela.pl b/bin/convert-mudela.pl index 06578f3157..3be80d97da 100644 --- a/bin/convert-mudela.pl +++ b/bin/convert-mudela.pl @@ -336,7 +336,7 @@ sub do_one_arg identify; -GetOptions ("help", "output=s", "from=i", "to=i", "minor=i", "edit", "show-rules"); +GetOptions ("help", "output=s", "from=s", "to=s", "minor=i", "edit", "show-rules"); if ($opt_help) { usage(); diff --git a/bin/convert-mudela.py b/bin/convert-mudela.py new file mode 100644 index 0000000000..9654db9377 --- /dev/null +++ b/bin/convert-mudela.py @@ -0,0 +1,318 @@ +#!@PYTHON@ -w +# -*-perl-*- + +version = "0.2"; + +################################################################ + +sub no_conv +{ +} + +sub convert_0_0_52_to_0_0_53 +{ + + s/include \"/$1\\include \"/g; +} + + +sub convert_0_0_54_to_0_0_55 +{ + s/%{/% {/g; +} + + +sub convert_0_0_53_to_0_0_54 +{ + print STDERR "Not smart enough to convert \\transpose\n" if (/\\transpose/) ; +} + +# we-re not at 58 yet, but this is at least one of the rules +sub convert_0_0_55_to_0_0_56 +{ + s/\"\|\|\"/\"|.\"/g; +} + +sub convert_0_0_56_to_0_0_57 +{ + s/\(([ \]\[|\t-\.>]|\\[a-z]+)*\)/\~ $1/g; +} + +sub convert_0_0_57_to_0_0_58 +{ + s/\[ *([^\[\]]*)\] *([1-9]*) *\/ *([1-9]*)/[$2\/$3 $1]1\/1/g; +} + +sub convert_0_0_58_to_0_0_59 +{ + die "Not smart enough to convert 0.0.58 to 0.0.59\n"; +} + +sub convert_0_0_59_to_0_0_60 +{ + s/(\\unitspace [0-9.mcptin\\ ]+|\\geometric [0-9.]+|\\width [0-9.mcp\\tin]+)/$1;/g; + s/(\\output \"[^\"]+\")/$1;/; + s/(\\tempo [0-9: ]+)/$1;/; +} + +sub convert_0_0_60_to_0_0_61 +{ + s/(\\unitspace|\\geometric|\\width)/$1=/g; + +} + +sub convert_0_1_0_to_0_1_1 +{ + s/\\tempo (.*):(.*);/\\tempo $1 = $2;/g +} + +sub convert_0_1_2_to_0_1_3 +{ + s/\\stem *(\\up|1) *;/\\stemup/g; + s/\\stem *(\\down|-1) *;/\\stemdown/g; + s/\\stem *0 *;/\\stemboth/g; + s/\\hshift ([^;]+) *;/\\property Voice.hshift = $1/g; +} + +my $header_b = 0; + +sub generic_conversion_scan +{ + if (/\\header *\{/) + { + $header_b = 1; + } + if ($header_b && /^ *\}/) + { + $header_b = 0; + } +} +sub convert_0_1_4_to_0_1_5 +{ + s/([<{]) *\\id "Piano" (.+);/\\type Grandstaff = $3 $1/; + s/([<{]) *\\id (.+) (.+);/\\type $2 = $3 $1/; +} + + +sub convert_0_1_5_to_0_1_6 +{ + s/< *\\multi (.*);/\\multi $1 \&no_conv, + "0.0.52" => \&convert_0_0_50_to_0_0_52, + "0.0.53" => \&convert_0_0_52_to_0_0_53, + "0.0.54" => \&convert_0_0_53_to_0_0_54, + "0.0.55" => \&convert_0_0_54_to_0_0_55, + "0.0.56" => \&convert_0_0_55_to_0_0_56, + "0.0.57" => \&convert_0_0_56_to_0_0_57, + "0.0.58" => \&convert_0_0_57_to_0_0_58, + "0.0.59" => \&convert_0_0_58_to_0_0_59, + "0.0.60" => \&convert_0_0_59_to_0_0_60, + "0.0.61" => \&convert_0_0_60_to_0_0_61, + "0.1.1" => \&convert_0_1_0_to_0_1_1, + "0.1.2" => \&no_conv, + "0.1.3" => \&convert_0_1_2_to_0_1_3, + "0.1.4" => \&no_conv, + "0.1.5" => \&convert_0_1_4_to_0_1_5, + "0.1.6" => \&convert_0_1_5_to_0_1_6 + ,"0.1.7" => \&convert_0_1_6_to_0_1_7 + ,"0.1.8" => \&convert_0_1_7_to_0_1_8 + ,"0.1.9" => \&convert_0_1_8_to_0_1_9 + ); + + + +sub versions +{ + return (sort { cmpver; } (keys %minor_conversions)); +} + + +sub show_rules +{ + my (@v) = versions; + + print "Rules: ", join(", ", @v), "\n"; + +} + +sub do_conversion +{ + my ($from,$to) = @_; + + my @applicable_conversion; + my @mudela_levels; + + my @v = versions; + foreach $ver (@v) { + if (version_compare($ver, $from) > 0 && version_compare($ver,$to) <= 0 ){ + push @applicable_conversion, $minor_conversions{$ver}; + push @mudela_levels, $ver; + } + } + + print STDERR "Applying following rules: ", join(", ", @mudela_levels) , "\n"; + + while () { + generic_conversion_scan; + foreach $subroutine (@applicable_conversion) { + + &$subroutine; + + } + version_string_conv $from, $to; + print OUTLY; + } +} + +sub get_auto_from +{ + my ($fn)=@_; + my ($ver); + open INLY, $fn || die "Can't open"; + + while () { + s/^.*\\version \"([^\"]*)\".*$//; + if (defined ($1)) { + print STDERR "Guessing version: ", $1, ".. "; + $ver = $1; + last; + } + } + if (!defined($ver)){ + print STDERR "can't determine mudela version in $fn.\n"; + my $u; + return $u; + } + close INLY; + return $ver; +} + +sub set_files +{ + $infile = "-"; + $outfile = "-"; + $outfile = $opt_output if (defined($opt_output)); + + if ($ARGV [0]) { + $infile = $ARGV[0]; + } + if (!(-f $infile) && !($infile =~ /\.ly$/s)) { + $infile .= ".ly"; + } + if ($opt_edit && $infile ne "-") { + $opt_edit = 1; + $outfile = "$infile.NEW"; + $infile = "$infile"; + } + print STDERR "Input ", (($infile eq "-") ?"STDIN" : $infile), " .. "; + +} + +sub do_one_arg +{ + set_files; + + local ($from_version, $to_version); + $from_version = $opt_from; + $to_version = $opt_to; + + ($from_version = get_auto_from $infile) unless defined($opt_from); + return if (!defined($from_version)); + + ($to_version = last_conversion) unless (defined($opt_to)); + + die "can't open \`$infile\'" unless open INLY,$infile ; + die "can't open \`$outfile\'" unless open OUTLY, ">$outfile"; + + do_conversion $from_version, $to_version; + close INLY; + close OUTLY; + + if ($opt_edit) { + rename $infile, "$infile~"; + rename $outfile, "$infile"; + } +} + +## "main" + +identify; + + +GetOptions ("help", "output=s", "from=i", "to=i", "minor=i", "edit", "show-rules"); + +if ($opt_help) { + usage(); + $opt_help = 0; # to extinguish typo check. + exit 0; +} + +if ($opt_show_rules) { + show_rules ; + $opt_show_rules = 0; # to extinguish typo check. + exit 0; +} + +local ( $infile,$outfile); +my $processed_one=0; + +while (defined($ARGV[0])) { + do_one_arg; + shift @ARGV; + $processed_one = 1; +} +do_one_arg unless ($processed_one); + + diff --git a/bin/cvm.py b/bin/cvm.py new file mode 100644 index 0000000000..9654db9377 --- /dev/null +++ b/bin/cvm.py @@ -0,0 +1,318 @@ +#!@PYTHON@ -w +# -*-perl-*- + +version = "0.2"; + +################################################################ + +sub no_conv +{ +} + +sub convert_0_0_52_to_0_0_53 +{ + + s/include \"/$1\\include \"/g; +} + + +sub convert_0_0_54_to_0_0_55 +{ + s/%{/% {/g; +} + + +sub convert_0_0_53_to_0_0_54 +{ + print STDERR "Not smart enough to convert \\transpose\n" if (/\\transpose/) ; +} + +# we-re not at 58 yet, but this is at least one of the rules +sub convert_0_0_55_to_0_0_56 +{ + s/\"\|\|\"/\"|.\"/g; +} + +sub convert_0_0_56_to_0_0_57 +{ + s/\(([ \]\[|\t-\.>]|\\[a-z]+)*\)/\~ $1/g; +} + +sub convert_0_0_57_to_0_0_58 +{ + s/\[ *([^\[\]]*)\] *([1-9]*) *\/ *([1-9]*)/[$2\/$3 $1]1\/1/g; +} + +sub convert_0_0_58_to_0_0_59 +{ + die "Not smart enough to convert 0.0.58 to 0.0.59\n"; +} + +sub convert_0_0_59_to_0_0_60 +{ + s/(\\unitspace [0-9.mcptin\\ ]+|\\geometric [0-9.]+|\\width [0-9.mcp\\tin]+)/$1;/g; + s/(\\output \"[^\"]+\")/$1;/; + s/(\\tempo [0-9: ]+)/$1;/; +} + +sub convert_0_0_60_to_0_0_61 +{ + s/(\\unitspace|\\geometric|\\width)/$1=/g; + +} + +sub convert_0_1_0_to_0_1_1 +{ + s/\\tempo (.*):(.*);/\\tempo $1 = $2;/g +} + +sub convert_0_1_2_to_0_1_3 +{ + s/\\stem *(\\up|1) *;/\\stemup/g; + s/\\stem *(\\down|-1) *;/\\stemdown/g; + s/\\stem *0 *;/\\stemboth/g; + s/\\hshift ([^;]+) *;/\\property Voice.hshift = $1/g; +} + +my $header_b = 0; + +sub generic_conversion_scan +{ + if (/\\header *\{/) + { + $header_b = 1; + } + if ($header_b && /^ *\}/) + { + $header_b = 0; + } +} +sub convert_0_1_4_to_0_1_5 +{ + s/([<{]) *\\id "Piano" (.+);/\\type Grandstaff = $3 $1/; + s/([<{]) *\\id (.+) (.+);/\\type $2 = $3 $1/; +} + + +sub convert_0_1_5_to_0_1_6 +{ + s/< *\\multi (.*);/\\multi $1 \&no_conv, + "0.0.52" => \&convert_0_0_50_to_0_0_52, + "0.0.53" => \&convert_0_0_52_to_0_0_53, + "0.0.54" => \&convert_0_0_53_to_0_0_54, + "0.0.55" => \&convert_0_0_54_to_0_0_55, + "0.0.56" => \&convert_0_0_55_to_0_0_56, + "0.0.57" => \&convert_0_0_56_to_0_0_57, + "0.0.58" => \&convert_0_0_57_to_0_0_58, + "0.0.59" => \&convert_0_0_58_to_0_0_59, + "0.0.60" => \&convert_0_0_59_to_0_0_60, + "0.0.61" => \&convert_0_0_60_to_0_0_61, + "0.1.1" => \&convert_0_1_0_to_0_1_1, + "0.1.2" => \&no_conv, + "0.1.3" => \&convert_0_1_2_to_0_1_3, + "0.1.4" => \&no_conv, + "0.1.5" => \&convert_0_1_4_to_0_1_5, + "0.1.6" => \&convert_0_1_5_to_0_1_6 + ,"0.1.7" => \&convert_0_1_6_to_0_1_7 + ,"0.1.8" => \&convert_0_1_7_to_0_1_8 + ,"0.1.9" => \&convert_0_1_8_to_0_1_9 + ); + + + +sub versions +{ + return (sort { cmpver; } (keys %minor_conversions)); +} + + +sub show_rules +{ + my (@v) = versions; + + print "Rules: ", join(", ", @v), "\n"; + +} + +sub do_conversion +{ + my ($from,$to) = @_; + + my @applicable_conversion; + my @mudela_levels; + + my @v = versions; + foreach $ver (@v) { + if (version_compare($ver, $from) > 0 && version_compare($ver,$to) <= 0 ){ + push @applicable_conversion, $minor_conversions{$ver}; + push @mudela_levels, $ver; + } + } + + print STDERR "Applying following rules: ", join(", ", @mudela_levels) , "\n"; + + while () { + generic_conversion_scan; + foreach $subroutine (@applicable_conversion) { + + &$subroutine; + + } + version_string_conv $from, $to; + print OUTLY; + } +} + +sub get_auto_from +{ + my ($fn)=@_; + my ($ver); + open INLY, $fn || die "Can't open"; + + while () { + s/^.*\\version \"([^\"]*)\".*$//; + if (defined ($1)) { + print STDERR "Guessing version: ", $1, ".. "; + $ver = $1; + last; + } + } + if (!defined($ver)){ + print STDERR "can't determine mudela version in $fn.\n"; + my $u; + return $u; + } + close INLY; + return $ver; +} + +sub set_files +{ + $infile = "-"; + $outfile = "-"; + $outfile = $opt_output if (defined($opt_output)); + + if ($ARGV [0]) { + $infile = $ARGV[0]; + } + if (!(-f $infile) && !($infile =~ /\.ly$/s)) { + $infile .= ".ly"; + } + if ($opt_edit && $infile ne "-") { + $opt_edit = 1; + $outfile = "$infile.NEW"; + $infile = "$infile"; + } + print STDERR "Input ", (($infile eq "-") ?"STDIN" : $infile), " .. "; + +} + +sub do_one_arg +{ + set_files; + + local ($from_version, $to_version); + $from_version = $opt_from; + $to_version = $opt_to; + + ($from_version = get_auto_from $infile) unless defined($opt_from); + return if (!defined($from_version)); + + ($to_version = last_conversion) unless (defined($opt_to)); + + die "can't open \`$infile\'" unless open INLY,$infile ; + die "can't open \`$outfile\'" unless open OUTLY, ">$outfile"; + + do_conversion $from_version, $to_version; + close INLY; + close OUTLY; + + if ($opt_edit) { + rename $infile, "$infile~"; + rename $outfile, "$infile"; + } +} + +## "main" + +identify; + + +GetOptions ("help", "output=s", "from=i", "to=i", "minor=i", "edit", "show-rules"); + +if ($opt_help) { + usage(); + $opt_help = 0; # to extinguish typo check. + exit 0; +} + +if ($opt_show_rules) { + show_rules ; + $opt_show_rules = 0; # to extinguish typo check. + exit 0; +} + +local ( $infile,$outfile); +my $processed_one=0; + +while (defined($ARGV[0])) { + do_one_arg; + shift @ARGV; + $processed_one = 1; +} +do_one_arg unless ($processed_one); + + diff --git a/bin/genheader.py b/bin/genheader.py index 4a68b3b80d..57f0e9fb8f 100644 --- a/bin/genheader.py +++ b/bin/genheader.py @@ -47,7 +47,7 @@ def project_str(): if regex.search('flower', cwd) <> -1: PROJECT = "the Flower Library" elif regex.search('mf$', cwd) <> -1: - PROJECT = "the Feta (Font-En-Tja) music font" + PROJECT = "the Feta (defintively not an abbreviation for Font-En-Tja) music font" else: PROJECT = "the GNU LilyPond music typesetter" return PROJECT diff --git a/bin/ly2dvi.sh b/bin/ly2dvi.sh index 2698d77d17..005a311196 100644 --- a/bin/ly2dvi.sh +++ b/bin/ly2dvi.sh @@ -14,6 +14,10 @@ IDENTIFICATION="$NAME $VERSION" NOW=`date` echo "$IDENTIFICATION" 1>&2 +# TODO + +# should detect crashing lilypond + # NEWS # 0.6.hwn1.jaf diff --git a/bin/make-docxx.sh b/bin/make-docxx.sh index ba04446924..b274731309 100644 --- a/bin/make-docxx.sh +++ b/bin/make-docxx.sh @@ -5,4 +5,4 @@ then fi p1=`find $LILYTOP -name '*.hh' |egrep -v out/` p2=`find $LILYTOP -name '*.cc' |egrep -v out/` -doc++ -d docxx/ -S -k -p $BANNEROPT $p1 $p2 +doc++ -f -d docxx/ -S -k -p $BANNEROPT $p1 $p2 diff --git a/bin/make-website.py b/bin/make-website.py index 15da0c6e43..a2243a78f9 100644 --- a/bin/make-website.py +++ b/bin/make-website.py @@ -95,7 +95,7 @@ def my_system(cmds): base="lilypond/"; examples=["twinkle-pop", - "toccata-fuga-E", + "praeludium-fuga-E", "cadenza", "twinkle", "collisions", @@ -123,8 +123,11 @@ def gen_examples(inputs): print 'generating examples:\n' outputs = [] for i in inputs: - located = multiple_find ([i + '.ly'], include_path) [0] - + try: + located = multiple_find ([i + '.ly'], include_path) [0] + except IndexError: + print 'continuing dazed & confused (%s) ' % i + continue outputs.append (located) if not file_exist_b(i + '.dvi'): my_system (['ly2dvi %s' % located]) @@ -275,6 +278,7 @@ def edit_html(): s = regsub.sub ('', footstr('index.html') + makewebsite_id + '', s) s = regsub.sub('\(.*\)$', 'LilyPond WWW: \\1', s) + dump_file (f,s) diff --git a/bin/mudela-book.pl b/bin/mudela-book.pl index bf65dd7806..a5ed477aea 100644 --- a/bin/mudela-book.pl +++ b/bin/mudela-book.pl @@ -83,7 +83,7 @@ sub open_mudela print BOOK "\\begin{verbatim}\n"; } if ($fragment_b) { - print MUDELA "\\score { \\melodic {"; + print MUDELA "\\score { \\melodic {\\octave c';"; } } diff --git a/configure b/configure index eba42b2cda..3cd69740dd 100755 --- a/configure +++ b/configure @@ -12,7 +12,7 @@ ac_help= ac_default_prefix=/usr/local # Any additions from configure.in: ac_help="$ac_help - enable-printing turn on debug printing" + enable-printing turn on debug printing. Default: off" ac_help="$ac_help enable-checking set runtime checks (assert calls). Default: on" ac_help="$ac_help diff --git a/configure.in b/configure.in index 31fb726411..53928a8cd4 100644 --- a/configure.in +++ b/configure.in @@ -27,7 +27,7 @@ profile_b=no AC_LANG_CPLUSPLUS AC_ARG_ENABLE(printing, - [ enable-printing turn on debug printing], + [ enable-printing turn on debug printing. Default: off], [printing_b=$enableval]) diff --git a/debian/out/dummy.dep b/debian/out/dummy.dep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/flower/dictionary.cc b/flower/dictionary.cc new file mode 100644 index 0000000000..d8e50282cb --- /dev/null +++ b/flower/dictionary.cc @@ -0,0 +1,37 @@ + +#if 0 + + +/** + neuk. hsearch_* is te dom. + */ +template +class Dictionary +{ + hsearch_data * hash_p_; + +public: + Dictionary (); + ~Dictionary (); + Dictionary (Dictionary const&); + T &elem (String s); + T const &elem (String s) const; + bool elt_b (String s) const; + void add (String, T); + void clear (); +} + +Dictionary::Dictionary () +{ + hash_p_ = new hsearch_data; + hash_p_->table = 0; + + int start_size = 51; + int retval = hcreate_r (start_size, hash_p_); + + assert (retval); +} + + + +#endif diff --git a/flower/include/full-storage.icc b/flower/include/full-storage.icc index a8ad166711..359edb6b4c 100644 --- a/flower/include/full-storage.icc +++ b/flower/include/full-storage.icc @@ -27,6 +27,7 @@ Full_storage::valid (int i, int j) const INLINE Full_storage::Full_storage (Full_storage const&s) + : Matrix_storage (s) { init(); (*this) = s; diff --git a/flower/include/interval.hh b/flower/include/interval.hh index 2fd76090a3..d236759219 100644 --- a/flower/include/interval.hh +++ b/flower/include/interval.hh @@ -83,6 +83,7 @@ struct Interval_t { return *this; } String str() const; + void print () const; bool elt_b (T r); }; diff --git a/flower/include/interval.tcc b/flower/include/interval.tcc index 1a483b5f18..88dc1a7016 100644 --- a/flower/include/interval.tcc +++ b/flower/include/interval.tcc @@ -14,7 +14,14 @@ #include #include "interval.hh" #include "string.hh" +#include "flower-debug.hh" +template +void +Interval_t::print () const +{ + fdebug << str (); +} template int diff --git a/flower/interval.cc b/flower/interval.cc index f425bfd295..7d2c009839 100644 --- a/flower/interval.cc +++ b/flower/interval.cc @@ -14,6 +14,8 @@ template INTERVAL__INSTANTIATE(Real); + + Real Interval_t::infinity() { diff --git a/flower/string.cc b/flower/string.cc index 9f5fca9dad..0e479de3e5 100644 --- a/flower/string.cc +++ b/flower/string.cc @@ -6,6 +6,10 @@ */ +#ifndef _GNU_SOURCE // we want memmem +#define _GNU_SOURCE +#endif + #include #include diff --git a/flower/test/main.cc b/flower/test/main.cc index 8cd10797c5..26aaf3cff9 100644 --- a/flower/test/main.cc +++ b/flower/test/main.cc @@ -13,8 +13,9 @@ void reg_test (fptr f) int main () { - if (test_arr_p) { - for (int i=0; i < test_arr_p->size (); i++) - (*test_arr_p)[i] (); - } + if (test_arr_p) + { + for (int i=0; i < test_arr_p->size (); i++) + (*test_arr_p)[i] (); + } } diff --git a/init/feta11.ly b/init/feta11.ly index 0ecd6c7ada..f874201e80 100644 --- a/init/feta11.ly +++ b/init/feta11.ly @@ -4,8 +4,8 @@ % input from out/feta11.log % name=\symboltables { "rests" = \table { - "0" "\\wholerest" -0.00\pt 4.13\pt -1.72\pt 0.00\pt - "1" "\\halfrest" -0.00\pt 4.13\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 @@ -16,8 +16,8 @@ "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.13\pt 4.13\pt - "0" "\\natural" -0.00\pt 1.83\pt -4.13\pt 4.13\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 @@ -54,8 +54,10 @@ "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 - "pedalheel" "\\pedalheel" -1.38\pt 1.38\pt -1.38\pt 1.83\pt - "pedaltoe" "\\pedaltoe" -1.38\pt 1.38\pt -0.00\pt 4.13\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 + "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 } "flags" = \table { diff --git a/init/feta13.ly b/init/feta13.ly index 2cec6814a7..4be008a657 100644 --- a/init/feta13.ly +++ b/init/feta13.ly @@ -18,19 +18,19 @@ "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" "\\flat" -0.39\pt 2.60\pt -1.63\pt 6.50\pt - "-2" "\\flatflat" -0.39\pt 4.71\pt -1.63\pt 6.50\pt - "2" "\\sharpsharp" -0.00\pt 3.25\pt -1.63\pt 1.63\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 } "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.63\pt 1.63\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 - "-1l" "\\brevisledger" -1.63\pt 8.13\pt -0.33\pt 0.33\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 - "-2l" "\\longaledger" -1.63\pt 8.13\pt -0.33\pt 0.33\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 "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 @@ -41,21 +41,23 @@ "scripts" = \table { "ufermata" "\\ufermata" -4.31\pt 4.31\pt -0.24\pt 4.71\pt "dfermata" "\\dfermata" -4.31\pt 4.31\pt -4.71\pt 0.24\pt - "sforzato" "\\sforzatoaccent" -2.92\pt 2.92\pt -1.63\pt 1.63\pt + "sforzato" "\\sforzatoaccent" -2.92\pt 2.92\pt -1.62\pt 1.62\pt "staccato" "\\staccato" -0.49\pt 0.49\pt -0.49\pt 0.49\pt "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.63\pt 1.63\pt -0.00\pt 3.58\pt - "dmarcato" "\\dmarcato" -1.63\pt 1.63\pt -3.58\pt 0.00\pt - "open" "\\ouvert" -1.30\pt 1.30\pt -1.63\pt 1.63\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 "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 - "pedalheel" "\\pedalheel" -1.63\pt 1.63\pt -1.63\pt 2.17\pt - "pedaltoe" "\\pedaltoe" -1.63\pt 1.63\pt -0.00\pt 4.88\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 + "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 } "flags" = \table { @@ -71,7 +73,7 @@ "clefs" = \table { "alto" "\\altoclef" -3.25\pt 12.10\pt -6.50\pt 6.50\pt "alto_change" "\\caltoclef" -2.60\pt 9.68\pt -5.20\pt 5.20\pt - "bass" "\\bassclef" -1.63\pt 11.70\pt -8.13\pt 3.25\pt + "bass" "\\bassclef" -1.62\pt 11.70\pt -8.12\pt 3.25\pt "bass_change" "\\cbassclef" -1.30\pt 9.36\pt -6.50\pt 2.60\pt "violin" "\\violinclef" -2.83\pt 12.15\pt -9.75\pt 16.25\pt "violin_change" "\\cviolinclef" -2.46\pt 9.52\pt -7.80\pt 13.00\pt diff --git a/init/feta16.ly b/init/feta16.ly index 520fde4b34..c8bcf1ee2d 100644 --- a/init/feta16.ly +++ b/init/feta16.ly @@ -54,8 +54,10 @@ "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 - "pedalheel" "\\pedalheel" -2.00\pt 2.00\pt -2.00\pt 2.67\pt - "pedaltoe" "\\pedaltoe" -2.00\pt 2.00\pt -0.00\pt 6.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 + "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 } "flags" = \table { diff --git a/init/feta19.ly b/init/feta19.ly index 1b8d266f5c..146a35974e 100644 --- a/init/feta19.ly +++ b/init/feta19.ly @@ -4,8 +4,8 @@ % input from out/feta19.log % name=\symboltables { "rests" = \table { - "0" "\\wholerest" -0.00\pt 7.13\pt -2.97\pt 0.00\pt - "1" "\\halfrest" -0.00\pt 7.13\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 @@ -16,8 +16,8 @@ "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.13\pt 7.13\pt - "0" "\\natural" -0.00\pt 3.17\pt -7.13\pt 7.13\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 @@ -54,8 +54,10 @@ "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 - "pedalheel" "\\pedalheel" -2.38\pt 2.38\pt -2.38\pt 3.17\pt - "pedaltoe" "\\pedaltoe" -2.38\pt 2.38\pt -0.00\pt 7.13\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 + "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 } "flags" = \table { diff --git a/init/feta20.ly b/init/feta20.ly index b11fd20be0..13488ac1ca 100644 --- a/init/feta20.ly +++ b/init/feta20.ly @@ -4,10 +4,10 @@ % input from out/feta20.log % name=\symboltables { "rests" = \table { - "0" "\\wholerest" -0.00\pt 7.50\pt -3.13\pt 0.00\pt - "1" "\\halfrest" -0.00\pt 7.50\pt -0.00\pt 3.13\pt - "0o" "\\outsidewholerest" -3.13\pt 10.62\pt -3.13\pt 0.50\pt - "1o" "\\outsidehalfrest" -3.13\pt 10.62\pt -0.50\pt 3.13\pt + "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 @@ -23,7 +23,7 @@ "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.13\pt 1.13\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 { @@ -54,8 +54,10 @@ "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 - "pedalheel" "\\pedalheel" -2.50\pt 2.50\pt -2.50\pt 3.33\pt - "pedaltoe" "\\pedaltoe" -2.50\pt 2.50\pt -0.00\pt 7.50\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 + "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 } "flags" = \table { diff --git a/init/feta23.ly b/init/feta23.ly index bdebc4e996..e1ad925c23 100644 --- a/init/feta23.ly +++ b/init/feta23.ly @@ -9,7 +9,7 @@ "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.63\pt 15.98\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 @@ -20,7 +20,7 @@ "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.63\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 @@ -53,9 +53,11 @@ "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.63\pt 5.63\pt -0.00\pt 12.66\pt - "pedalheel" "\\pedalheel" -2.81\pt 2.81\pt -2.81\pt 3.75\pt - "pedaltoe" "\\pedaltoe" -2.81\pt 2.81\pt -0.00\pt 8.44\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 + "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 } "flags" = \table { @@ -69,9 +71,9 @@ "d6" "\\dsixtyfourthflag" -0.28\pt 7.68\pt -0.28\pt 24.83\pt } "clefs" = \table { - "alto" "\\altoclef" -5.63\pt 20.94\pt -11.25\pt 11.25\pt + "alto" "\\altoclef" -5.62\pt 20.94\pt -11.25\pt 11.25\pt "alto_change" "\\caltoclef" -4.50\pt 16.75\pt -9.00\pt 9.00\pt - "bass" "\\bassclef" -2.81\pt 20.25\pt -14.06\pt 5.63\pt + "bass" "\\bassclef" -2.81\pt 20.25\pt -14.06\pt 5.62\pt "bass_change" "\\cbassclef" -2.25\pt 16.20\pt -11.25\pt 4.50\pt "violin" "\\violinclef" -4.90\pt 21.02\pt -16.88\pt 28.12\pt "violin_change" "\\cviolinclef" -4.26\pt 16.48\pt -13.50\pt 22.50\pt diff --git a/init/feta26.ly b/init/feta26.ly index ac951291ab..eeafb78848 100644 --- a/init/feta26.ly +++ b/init/feta26.ly @@ -54,8 +54,10 @@ "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 - "pedalheel" "\\pedalheel" -3.25\pt 3.25\pt -3.25\pt 4.33\pt - "pedaltoe" "\\pedaltoe" -3.25\pt 3.25\pt -0.00\pt 9.75\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 + "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 } "flags" = \table { diff --git a/init/paper16.ly b/init/paper16.ly index 69cac72395..8abf148a52 100644 --- a/init/paper16.ly +++ b/init/paper16.ly @@ -32,7 +32,9 @@ paper_sixteen = \paper { % ( 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"? + % ugh: interline *in fact* is rule_thickness + "interline"? --jcn + + % No --hwn interbeam = 3.14; gourlay_energybound = 100000.; diff --git a/init/script.ly b/init/script.ly index 8db8016258..7b70c66a4a 100644 --- a/init/script.ly +++ b/init/script.ly @@ -13,10 +13,10 @@ staccato = \script { "staccato" 1 -1 0 0 0 } tenuto = \script {"tenuto" 0 -1 0 0 0 } upbow = \script { "upbow" 0 0 1 0 0 } downbow = \script { "downbow" 0 0 1 0 0 } -lheel = \script { "pedalheel" 0 0 -1 0 0 } -rheel = \script { "pedalheel" 0 0 1 0 0 } -ltoe = \script { "pedaltoe" 0 0 -1 0 0 } -rtoe = \script { "pedaltoe" 0 0 1 0 0 } +lheel = \script { "upedalheel" 0 0 -1 0 0 } +rheel = \script { "dpedalheel" 0 0 1 0 0 } +ltoe = \script { "upedaltoe" 0 0 -1 0 0 } +rtoe = \script { "dpedaltoe" 0 0 1 0 0 } turn = \script { "turn" 0 0 1 0 0 } open = \script { "open" 0 0 1 0 0 } flageolet = \script { "flageolet" 0 0 1 0 0 } diff --git a/init/simple-init.ly b/init/simple-init.ly new file mode 100644 index 0000000000..13c7ce38ba --- /dev/null +++ b/init/simple-init.ly @@ -0,0 +1,11 @@ +% Toplevel initialisation file. +Gourlay = 1.0 +\include "dutch.ly" + +\include "paper16.ly" + +default_paper = \paper{ + \paper_sixteen +} + + diff --git a/input/font-body.ly b/input/font-body.ly index cd6938ef44..f4314227c2 100644 --- a/input/font-body.ly +++ b/input/font-body.ly @@ -25,7 +25,7 @@ FontBody= \melodic{ \clef "violin"; e8_. g'8-> e16^^ g'16_^ e32 _| g'32^| g''32-\ltoe g''32-\lheel - e64 g'64 c4... | + e64-\rtoe g'64-\rheel c4... | \octave c''; \meter 4/4; diff --git a/input/praeludium-fuga-E.ly b/input/praeludium-fuga-E.ly new file mode 100644 index 0000000000..23c66d0c1e --- /dev/null +++ b/input/praeludium-fuga-E.ly @@ -0,0 +1,188 @@ +\header { + filename = "praeludium-fuga-E.ly"; + title = "praeludium and fuga in E-major"; + opus = "BWV 566"; + description = "Praeludium 3 bar excerpt, " + "2nd fuga transposed subject -- 4 bar excerpt. " + "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"; + copyright = "public domain"; +} + +%{ + Tested Features: + purpose of this file is testing: + * real-life collisions + * multi-voice input --- splitting? + * organ staff... +%} + + +\version "0.1.9"; + +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'; + \clef violin; + + % 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] | + 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 ~ | + [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 | + a4. cis'8 gis2 | + fis4 gis4 gis4 r8 e8 } + > | + % 16 +} + +praeludium_left = \melodic { + \$praeludium_commands + \octave c; + \clef bass; + + % 13 + \multi 2 < + { \stemup r4 dis'4 cis'4 cis'4 ~ | + [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 | + a4. fis8 gis4. a8 ~ | + a4 gis4 gis4 r8 gis8 } + { \stemup \property Voice.hshift = 2 s4 fis4 e} + { \stemdown s4 dis4 cis4 } + > | + % 16 +} + +praeludium_pedal = \melodic { + \$praeludium_commands + \octave c; + \clef bass; + + % 13 + r4 'fis4-\ltoe 'e4.-\lheel e8-\rheel | + fis4.-\rtoe fis8-\rtoe fis4-\rtoe [e8-\ltoe a8-\rtoe] | + dis4-\ltoe gis4-\rtoe [cis8-\ltoe 'b!8-\lheel 'ais8-\rtoe 'gis8-\ltoe] | + % 16 +} + + +fuga2_commands = \melodic{ + \meter 3/4; + \key fis cis gis dis; % E-major +} + +fuga2_right = \melodic { + \$fuga2_commands + \octave c'; + \clef violin; + + % 15 + \multi 2 < + { \stemup [b8 fis8] b4 } + { \stemdown fis2 } + > + %{ this chord is usually set like this: + | + x|| + x|| + x| + |x + | + %} + \multi 2 < + { \stemup \noshift e'4 } + { \stemup \doshift cis'4 } + { \stemup \property Voice.hshift = 2 ais4 } + { \stemdown fis4 } + > | + % 16 + \multi 2 < + { \stemup dis'2 dis'4 | + cis'2 cis'4 | + b4. [cis'8 dis'8 e'8] } + { \stemup \doshift [b8 fis8] b2 ~ | + [b8 a!16 gis16] a2 ~ | + a4 gis2 } + { \stemdown fis2. ~ | + fis2. ~ | + fis4 e2 } + > | + % 19 +} + +fuga2_left = \melodic { + \$fuga2_commands + \octave c; + \clef bass; + + % 15 + \multi 2 < + { \stemdown b2 \stemup ais4 | + b2 b4 } + { \stemdown s2 e4 | + fis2 fis4 } + > + \stemdown cis'2 e'4 | + b4. b8 b4 | + % 19 +} + +fuga2_pedal = \melodic { + \$fuga2_commands + \octave c; + \clef bass; + + % 15 + dis4.-\ltoe e8-\rtoe cis4 | + 'b4.-\lheel [cis8-\ltoe dis8-\rtoe e8-\rheel] | + fis4.-\rtoe [e8-\rheel dis8-\rtoe cis8-\ltoe] | + dis4-\rtoe e4-\rheel 'e4-\ltoe | + % 19 +} + +break = \melodic { + %\meter 4/4; + r1 +} + + +% these should be two separate scores... +\score{ + \type Score < + \type Grandstaff < + \type Staff = treble { + \praeludium_right \break \fuga2_right } + \type Staff = bass { + \praeludium_left \break \fuga2_left } + > + \type Staff = pedal { + \praeludium_pedal \break \fuga2_pedal } + > + + \paper{} + + \midi { + \tempo 4 = 96; } +} diff --git a/input/toccata-fuga-E.ly b/input/toccata-fuga-E.ly deleted file mode 100644 index 1c5c9c42c3..0000000000 --- a/input/toccata-fuga-E.ly +++ /dev/null @@ -1,158 +0,0 @@ -\header{ -filename = "toccata-fuga-E.ly"; -title = "toccata and fuga in E-major "; -opus = "BWV 566"; -description = "toccata 3 bar excerpt, " - "2nd fuga transposed subject --- 4 bar excerpt"; - -composer = "Johann Sebastian Bach (1685-1750)"; -enteredby = "JCN"; -copyright = "public domain"; - -} - -%{ - Tested Features: - purpose of this file is testing: - * real-life collisions - * multi-voice input --- splitting? - * organ staff... -%} - - -\version "0.1.9"; - -toccata_commands = \melodic{ - \meter 4/4; - \key fis cis gis dis; % E-major -} - -toccata_right = \melodic{ - \$toccata_commands - % 13 -- how to type -- where to split -- this more neatly ? - \octave c'; - \multi 2 < - { \stemup r4 dis'4 e'4.-. e'8( | \property Voice.hshift = 1 )e'4 [d'8 fis'8] \property Voice.hshift = 0 gis'4 [gis'8 fis'16 e'16] | fis'4~ [fis'8 e'16 dis'16] e'4 r8 e'8 } - { \stemup \property Voice.hshift = 1 r4 bis4 cis'4-. cis'4 | \property Voice.hshift = 0 a'4~ [a'16 gis'16 a'16 b'16] \property Voice.hshift = 1 dis'4 cis'4~ [cis'8 dis'16 a16] bis4 cis'4 r8 b8 } - { \stemdown r4 < gis4 fis4 dis4 > gis4-. gis4 | a4. cis'8 gis2 | fis4 gis4 gis4 r8 e8 } - > | - % 16 -} - -toccata_left = \melodic{ - \$toccata_commands - \octave c; - \clef bass; - % 13 - \multi 2 < - { \stemup bis2 cis'4-. cis'4~ [cis'8 a8 d'8 cis'8] [bis8 gis8] cis'4 | dis'2 cis'4 r8 cis'8 } - { \stemup \property Voice.hshift = 1 r4 gis4. gis8~ gis4 | \stemdown \property Voice.hshift = 0 a4. fis8 gis4. a8~ a4 gis4-. gis4 r8 gis8 } - { \stemdown r4 < dis4 fis4 > < cis4 e4 > } - > | - % 16 -} - -toccata_pedal = \melodic{ - \$toccata_commands - \octave c; - \clef bass; - % 13 - r4 'fis4-\ltoe 'e4.-\lheel e8-\rheel | - % 14 - fis4.-\rtoe fis8-.-\rtoe fis4-\rtoe [e8-\ltoe a8-\rtoe] | - % 15 - dis4-\ltoe gis4-\rtoe [cis8-\ltoe 'b8-\lheel 'a8-\rtoe 'gis8-\ltoe] | - % 16 -} - -fuga2_commands = \melodic{ - \meter 3/4; - \key fis cis gis dis; % E-major -} - -fuga2_right = \melodic{ - \$fuga2_commands - \clef violin; - % 15 - \octave c'; - \multi 2 < - { \stemup [b8 fis8] b4 } - { \stemdown fis2 } - > - %{ this chord is usually set like this: - | - x|| - x|| - x| - |x - | - %} - \multi 2 < - { \stemup \property Voice.hshift = 0 e'4 } - { \stemup \property Voice.hshift = 1 cis'4 } - { \stemup \property Voice.hshift = 2 ais4 } - { \stemdown fis4 } - > | - % 16 - \multi 2 < - { \stemup dis'2 dis'4 | cis'2 cis'4 | b4~ [b8 cis'8 dis'8 e'8] } - { \stemup \property Voice.hshift = 1 [b8 fis8] b2~ [b8 a16 g16] a2 | a4 gis2 } - { \stemdown fis2.~ fis2.~ fis4 e2 } - > | - % 19 -} - -fuga2_left = \melodic{ - \$fuga2_commands - \octave c; - \clef bass; - % 15 - b2 - \multi 2 < - { \stemup ais4 | bes2. } - { \stemdown e4 | fis2 fis4 } - > - % 17 - cis'2 e'4 | - % 18 - b4. b8 b4 | -} - -fuga2_pedal = \melodic{ - \$fuga2_commands - \octave c; - \clef bass; - % 15 - dis4.-\ltoe e8-\rtoe cis4 | - % 16 - 'b4.-\lheel [c8-\ltoe dis8-\rtoe e8-\rheel] | - % 17 - fis4.-\rtoe [e8-\rheel dis8-\rtoe cis8-\ltoe] | - % 18 - dis4-\rtoe e4-\rheel 'e4-\ltoe | -} - -break = \melodic{ - %\meter 4/4; - r1 -} - -% these should be two separate scores... -\score{ - \type Score < - \type Grandstaff < - \type Staff=treble { - \toccata_right \break \fuga2_right - } - \type Staff=bass { - \toccata_left \break \fuga2_left - } - > - \type Staff=pedal { \toccata_pedal \break \fuga2_pedal } - > - \paper{} - \midi{ - \tempo 4 = 96; - } -} - diff --git a/lily/Makefile b/lily/Makefile index 16f59f5d5c..be43876df3 100644 --- a/lily/Makefile +++ b/lily/Makefile @@ -38,13 +38,16 @@ EXTRA_DISTFILES = VERSION # list of custom libraries: # MODULE_LIBDEPS= check-flower-deps check-lib-deps -MODULE_LIBES= -llily -lflower +MODULE_LIBES= -llily -lflower -lmcheck # # main target of this module: # + default: $(EXECUTABLE) + +out/engraver.o: include/engraver.hh # include ./$(depth)/make/Files.make diff --git a/lily/VERSION b/lily/VERSION index 60de703345..9da9e31cad 100644 --- a/lily/VERSION +++ b/lily/VERSION @@ -1,4 +1,4 @@ MAJOR_VERSION = 0 MINOR_VERSION = 1 -PATCH_LEVEL = 46 +PATCH_LEVEL = 47 MY_PATCH_LEVEL = diff --git a/lily/abbrev.cc b/lily/abbrev.cc new file mode 100644 index 0000000000..d91899c756 --- /dev/null +++ b/lily/abbrev.cc @@ -0,0 +1,99 @@ +/* + abbrev.cc -- implement Abbreviation + + source file of the GNU LilyPond music typesetter + + (c) 1997 Han-Wen Nienhuys + + */ + +#include "abbrev.hh" +#include "debug.hh" +#include "beam.hh" +#include "paper-def.hh" +#include "lookup.hh" +#include "stem.hh" +#include "dimen.hh" + +Abbreviation::Abbreviation () +{ + stem_l_ = 0; + abbrev_flags_i_ = 1; +} + +void +Abbreviation::do_print () const +{ + DOUT << "abbrev_flags_i_ " << abbrev_flags_i_; +} + +Molecule* +Abbreviation::brew_molecule_p () const +{ + Real dy = paper ()->interbeam_f (); + Real w = 1.5 * paper ()->lookup_l ()->ball (2).dim_.x ().length (); + Real interline_f = paper ()->interline_f (); + Real beamdy = interline_f/2; + + int beams_i = 0; + Real slope_f = paper ()->internote_f () / 4; + + if (stem_l_ && stem_l_->beam_l_) { + // huh? + slope_f = 2 * stem_l_->beam_l_->slope_f_; + // ugh, rather calc from Abbreviation_req + beams_i = stem_l_->beams_right_i_ >? stem_l_->beams_left_i_; + } + paper ()->lookup_l ()->beam (slope_f, 20 PT, 1 PT); + + Atom a (paper ()->lookup_l ()->beam (slope_f, w, .48 * interline_f)); + a.translate (Offset (-w/2, w / 2 * slope_f)); + + Molecule *beams= new Molecule; + for (int i = 0; i < abbrev_flags_i_; i++) + { + Atom b (a); + b.translate_axis (dy * i, Y_AXIS); + beams->add (b); + } + beams->translate_axis (-beams->extent ()[Y_AXIS].center (), Y_AXIS); + + if (stem_l_) + { + /* Try to be in the middle of the open part of the stem and + between on the staff. + + (urgh) + */ + Direction sd = stem_l_->dir_; + Interval empty_stem (stem_l_->chord_start_f () * sd , + (stem_l_->stem_end_f ()* sd) - beams_i * dy); + empty_stem *= sd; + + Interval instaff = empty_stem; + instaff.intersect (interline_f * Interval (-2,2)); + if (instaff.empty_b ()) + instaff = empty_stem; + + instaff.print (); + beams->translate (Offset(stem_l_->hpos_f () - hpos_f (), + instaff.center ())); + } + + return beams; +} + +void +Abbreviation::do_substitute_dependent (Score_elem*o, Score_elem*n) +{ + if (stem_l_ == o) + stem_l_ = n ? (Stem*)n->item () : 0; +} + + +void +Abbreviation::set_stem (Stem *s) +{ + stem_l_ = s; + add_dependency (s); +} diff --git a/lily/clef-grav.cc b/lily/clef-grav.cc index 6bb055c2fa..589dbf3282 100644 --- a/lily/clef-grav.cc +++ b/lily/clef-grav.cc @@ -30,6 +30,10 @@ Clef_engraver::set_type (String s) { c0_position_i_= -6; } + else if (clef_type_str_ == "soprano") + { + c0_position_i_= -4; + } else if (clef_type_str_ == "alto") { c0_position_i_= 0; diff --git a/lily/clef-item.cc b/lily/clef-item.cc index 927d3f2335..a63d8b72bd 100644 --- a/lily/clef-item.cc +++ b/lily/clef-item.cc @@ -38,17 +38,25 @@ void Clef_item::read (String t) { symbol_= t; - if (t == "violin") + if (t == "violin") { y_position_i_ = -2; - if (t == "alto") + } + else if (t == "soprano") { + symbol_="alto"; + y_position_i_ = -4; + } + else if (t == "alto") { y_position_i_ = 0; - if (t == "tenor") { + } + else if (t == "tenor") { symbol_="alto"; y_position_i_ = 2; } - if (t == "bass") + else if (t == "bass") { y_position_i_ = 2; + } } + void Clef_item::read (Clef_engraver const &k) { diff --git a/lily/debug.cc b/lily/debug.cc index c369f070ee..f90e2e49eb 100644 --- a/lily/debug.cc +++ b/lily/debug.cc @@ -8,7 +8,9 @@ */ #include #include -#include + +// libg++ 2.8.0 +// #include #include #include "debug.hh" #include "dstream.hh" @@ -59,7 +61,8 @@ debug_init() { rat_printer = print_rat; #ifndef NDEBUG - set_new_handler (&mynewhandler); + // libg++ 2.8.0 doesn't have set_new_handler + // set_new_handler (&mynewhandler); #endif set_flower_debug (*monitor, check_debug); @@ -74,6 +77,9 @@ bool check_malloc_b = false; // #define MEMORY_PARANOID #ifdef MEMORY_PARANOID + +#include + void * operator new (size_t size) { @@ -103,5 +109,10 @@ set_debug (bool b) check_debug =b; set_flower_debug (*monitor, check_debug); check_malloc_b = experimental_features_global_b; +#ifdef MEMORY_PARANOID + if (check_malloc_b) + if (mcheck (0)) + warning ("Can't set mem-checking!"); +#endif } diff --git a/lily/identifier.cc b/lily/identifier.cc index 62f0a3a840..107bd2417d 100644 --- a/lily/identifier.cc +++ b/lily/identifier.cc @@ -118,7 +118,8 @@ IMPLEMENT_ID_CLASS(Request_id, Request, request); IMPLEMENT_ID_CLASS(Midi_def_id, Midi_def, mididef); IMPLEMENT_ID_CLASS(Paper_def_id, Paper_def, paperdef); -Identifier::Identifier (Identifier const&) +Identifier::Identifier (Identifier const&s) + : Input (s) { assert (false); } diff --git a/lily/include/abbrev.hh b/lily/include/abbrev.hh new file mode 100644 index 0000000000..9428be7dc2 --- /dev/null +++ b/lily/include/abbrev.hh @@ -0,0 +1,27 @@ +/* + abbrev.hh -- declare Abbreviation + + source file of the GNU LilyPond music typesetter + + (c) 1997 Han-Wen Nienhuys + + */ + +#ifndef ABBREV_HH +#define ABBREV_HH + +#include "item.hh" +class Abbreviation : public Item { + Stem * stem_l_; +protected: + virtual void do_print () const; + virtual Molecule *brew_molecule_p () const; + virtual void do_substitute_dependent (Score_elem*, Score_elem*); +public: + int abbrev_flags_i_; + Abbreviation (); + void set_stem (Stem *); +}; + +#endif /* ABBREV_HH */ + diff --git a/lily/include/direction.hh b/lily/include/direction.hh index 032effc64f..d02274f6c1 100644 --- a/lily/include/direction.hh +++ b/lily/include/direction.hh @@ -22,5 +22,11 @@ enum Direction }; +/** + if d > 0: the max operator + if d < 0: the min operator + */ +template minmax (Direction d, T, T); + #endif // DIRECTION_HH diff --git a/lily/include/engraver.hh b/lily/include/engraver.hh index b0f466d3dd..4efd405f46 100644 --- a/lily/include/engraver.hh +++ b/lily/include/engraver.hh @@ -64,7 +64,6 @@ public: Engraver () {} DECLARE_MY_RUNTIME_TYPEINFO; - void print() const; virtual Engraver * engraver_l () { return this; } }; diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh index 48d8e98723..1d39aad243 100644 --- a/lily/include/lily-proto.hh +++ b/lily/include/lily-proto.hh @@ -12,6 +12,7 @@ struct Absolute_dynamic_req; +struct Abbreviation; struct Abbreviation_req; struct Abbreviation_beam_req; struct Abbreviation_beam_engraver; diff --git a/lily/include/linespace.hh b/lily/include/linespace.hh index 12058cfc8e..396c840a12 100644 --- a/lily/include/linespace.hh +++ b/lily/include/linespace.hh @@ -68,14 +68,6 @@ class Spacing_problem { void handle_loose_cols(); void position_loose_cols (Vector &) const; - /** - add a idealspacing to the problem. - - One pair of columns can have no, one or more idealspacings, - since they can be "summed" if the columns to which #i# refers are - not in this problem, the spacing is ignored. - */ - void add_ideal (Idealspacing const *i); void print_ideal (Idealspacing const *) const; Vector try_initial_solution() const; void calcideal(); diff --git a/lily/include/minmax.tcc b/lily/include/minmax.tcc new file mode 100644 index 0000000000..5f3fa895e7 --- /dev/null +++ b/lily/include/minmax.tcc @@ -0,0 +1,17 @@ + +/* + minmax.cc -- implement minmax() + + source file of the GNU LilyPond music typesetter + + (c) 1997 Han-Wen Nienhuys + + */ + +template +minmax (Direction d, T t1, T t2) +{ + if (d > 0) return t1 >? t2; + else return t1 yextent_drul_; @@ -51,8 +50,6 @@ class Stem : public Item { Link_array rest_l_arr_; public: - /// abbrev flag? + count - int abbrev_flag_i_; /// how many abbrev beam don't reach stem? int beam_gap_i_; @@ -79,7 +76,8 @@ public: DECLARE_MY_RUNTIME_TYPEINFO; - Real hpos_f() const; + Real hpos_f () const; + Real chord_start_f () const; int type_i () const; diff --git a/lily/include/timing-translator.hh b/lily/include/timing-translator.hh index f03459bfc4..cd8248aaf0 100644 --- a/lily/include/timing-translator.hh +++ b/lily/include/timing-translator.hh @@ -26,6 +26,7 @@ public: Rhythmic_grouping default_grouping_; Link_array timing_req_l_arr_; protected: + virtual void do_print () const; virtual void do_creation_processing (); virtual bool do_try_request (Request *req_l); virtual void do_process_requests(); diff --git a/lily/midi-item.cc b/lily/midi-item.cc index 24f297942d..f688baf6d5 100644 --- a/lily/midi-item.cc +++ b/lily/midi-item.cc @@ -119,7 +119,7 @@ Midi_header::Midi_header (int format_i, int tracks_i, int clocks_per_4_i) char const* const instrument_name_sz_a_[ ] = { /* default is usually piano */ - /* 0 */ "piano", + /* 0 "piano", */ /* (1-8 piano) */ /* 1 */ "acoustic grand", @@ -535,7 +535,8 @@ Midi_track::Midi_track () void Midi_track::add (Moment delta_time_mom, Midi_item* mitem_p) { - assert (delta_time_mom >= 0); + assert (delta_time_mom >= Moment (0)); + event_p_list_.bottom ().add (new Midi_event (delta_time_mom, mitem_p)); } diff --git a/lily/musical-request.cc b/lily/musical-request.cc index bf2fe3590b..bc46309810 100644 --- a/lily/musical-request.cc +++ b/lily/musical-request.cc @@ -198,7 +198,8 @@ Rhythmic_req::do_print() const Moment -Rhythmic_req::duration() const { +Rhythmic_req::duration() const +{ return duration_.length(); } /* *************** */ diff --git a/lily/parser.y b/lily/parser.y index 159978d3dc..13cc69a973 100644 --- a/lily/parser.y +++ b/lily/parser.y @@ -40,6 +40,16 @@ #include "duration-convert.hh" #include "change-translator.hh" +int const GUESS_PLET = 5; +int guess_plet_a[GUESS_PLET] = +{ + 1, + 3, + 2, + 3, + 4 +}; + #ifndef NDEBUG #define YYDEBUG 1 #endif @@ -91,6 +101,7 @@ char c; const char *consstr; int i; + int pair[2]; int ii[10]; } %{ @@ -224,6 +235,7 @@ yylex (YYSTYPE *s, void * v_l) %type unit %type abbrev_command_req %type post_request structured_post_request +%type plet_fraction %type command_req verbose_command_req %type script_req dynamic_req %type score_block score_body @@ -846,13 +858,26 @@ dynamic_req: } ; +plet_fraction: + unsigned '/' unsigned { + $$[0] = $1; + $$[1] = $3; + } + | + '/' unsigned { + int num = $2 >? 1; + $$[0] = guess_plet_a[(num plet_.type_i_ = $4; - THIS->plet_.iso_i_ = $2; - THIS->default_duration_.plet_.type_i_ = $4; - THIS->default_duration_.plet_.iso_i_ = $2; + THIS->plet_.type_i_ = $2[1]; + THIS->plet_.iso_i_ = $2[0]; + THIS->default_duration_.plet_.type_i_ = $2[1]; + THIS->default_duration_.plet_.iso_i_ = $2[0]; } | TELP { $$ = TELP; @@ -861,12 +886,12 @@ close_plet_parens: THIS->default_duration_.plet_.iso_i_ = 1; THIS->default_duration_.plet_.type_i_ = 1; } - | TELP unsigned '/' unsigned { + | TELP plet_fraction { $$ = TELP; - THIS->plet_.type_i_ = $4; - THIS->plet_.iso_i_ = $2; - THIS->default_duration_.plet_.type_i_ = $4; - THIS->default_duration_.plet_.iso_i_ = $2; + THIS->plet_.type_i_ = $2[1]; + THIS->plet_.iso_i_ = $2[0]; + THIS->default_duration_.plet_.type_i_ = $2[1]; + THIS->default_duration_.plet_.iso_i_ = $2[0]; } ; @@ -903,19 +928,19 @@ open_abbrev_parens: ; open_plet_parens: - '[' unsigned '/' unsigned { + '[' plet_fraction { $$ = BEAMPLET; - THIS->plet_.type_i_ = $4; - THIS->plet_.iso_i_ = $2; - THIS->default_duration_.plet_.type_i_ = $4; - THIS->default_duration_.plet_.iso_i_ = $2; + THIS->plet_.type_i_ = $2[1]; + THIS->plet_.iso_i_ = $2[0]; + THIS->default_duration_.plet_.type_i_ = $2[1]; + THIS->default_duration_.plet_.iso_i_ = $2[0]; } - | PLET unsigned '/' unsigned { + | PLET plet_fraction { $$ = PLET; - THIS->plet_.type_i_ = $4; - THIS->plet_.iso_i_ = $2; - THIS->default_duration_.plet_.type_i_ = $4; - THIS->default_duration_.plet_.iso_i_ = $2; + THIS->plet_.type_i_ = $2[1]; + THIS->plet_.iso_i_ = $2[0]; + THIS->default_duration_.plet_.type_i_ = $2[1]; + THIS->default_duration_.plet_.iso_i_ = $2[0]; } ; diff --git a/lily/score-elem.cc b/lily/score-elem.cc index beb8797ac9..1a6ec4105e 100644 --- a/lily/score-elem.cc +++ b/lily/score-elem.cc @@ -27,7 +27,7 @@ Score_elem::Score_elem() } Score_elem::Score_elem (Score_elem const&s) - : Graphical_element (s) + : Directed_graph_node (s), Graphical_element (s) { /* called from derived ctor, so most info points to the same deps as (Directed_graph_node&)s. Nobody points to us, so don't copy diff --git a/lily/score.cc b/lily/score.cc index b628441475..5dac696086 100644 --- a/lily/score.cc +++ b/lily/score.cc @@ -30,6 +30,7 @@ Score::Score() } Score::Score (Score const &s) + : Input (s) { music_p_ = (s.music_p_) ? s.music_p_->clone() : 0; for (int i=0; i < s.def_p_arr_.size (); i++) diff --git a/lily/spring-spacer.cc b/lily/spring-spacer.cc index 2b030e6c71..bf5a8094a5 100644 --- a/lily/spring-spacer.cc +++ b/lily/spring-spacer.cc @@ -531,15 +531,15 @@ Spring_spacer::calc_idealspacing() Real durational_distance = 0; - Moment delta_t = scol_l (i+1)->when() - scol_l (i)->when () ; + Moment delta_t = scol_l (i+1)->when() - scol_l (i)->when () ; - Real k= paper_l()->arithmetic_constant(context_shortest_arr[i]); - /* - ugh should use shortest_playing distance - */ - if (delta_t) - durational_distance = paper_l()->duration_to_dist (delta_t,k); - symbol_distance += -cols[i+1].width_[LEFT]; + Real k= paper_l()->arithmetic_constant(context_shortest_arr[i]); + /* + ugh should use shortest_playing distance + */ + if (delta_t) + durational_distance = paper_l()->duration_to_dist (delta_t,k); + symbol_distance += -cols[i+1].width_[LEFT]; ideal_arr_[i] = symbol_distance >? durational_distance; @@ -574,32 +574,32 @@ Spring_spacer::calc_idealspacing() dist *= delta_t / shortest_playing_len; /* - According to [Ross] and [Wanske], and from what i've seen: + According to [Ross] and [Wanske], and from what i've seen: - * whitespace at the begin of the bar should be fixed at - (about) one interline. - [Ross]: - when spacing gets real tight, a smaller fixed value may be - used, so that there are two discrete amounts of whitespace - possible at the begin of a bar; but this is not implemented - right now. + * whitespace at the begin of the bar should be fixed at + (about) one interline. + [Ross]: + when spacing gets real tight, a smaller fixed value may be + used, so that there are two discrete amounts of whitespace + possible at the begin of a bar; but this is not implemented + right now. - * whitespace at the end of the bar is the normal amount of - "hinterfleish" that would have been used, had there been - yet another note in the bar. - [Ross]: - some editors argue that the bar line should not take any - space, not to hinder the flow of music spaced around a bar - line. - [Ross] and [Wanske] do not suggest this, however. Further, - it introduces some spacing problems and think that it is ugly - too. - [jcn] - */ + * whitespace at the end of the bar is the normal amount of + "hinterfleish" that would have been used, had there been + yet another note in the bar. + [Ross]: + some editors argue that the bar line should not take any + space, not to hinder the flow of music spaced around a bar + line. + [Ross] and [Wanske] do not suggest this, however. Further, + it introduces some spacing problems and think that it is ugly + too. + [jcn] + */ /* first musical column of bar - */ + */ if (i && scol_l (i - 1)->breakable_b_) { // fixed: probably should set minimum (rod/spring)? @@ -610,7 +610,7 @@ Spring_spacer::calc_idealspacing() /* last musical column of bar - */ + */ if (i + 1 < cols.size () && scol_l(i+1)->breakable_b_) { // hmm, how bout? @@ -621,8 +621,8 @@ Spring_spacer::calc_idealspacing() someone was junking this last "hinterfleisch" whitespace?! but this seems to be fixed now :-) - */ - // set minimum rod + */ + // set minimum rod cols[i].width_[RIGHT] += interline_f; } diff --git a/lily/stem-grav.cc b/lily/stem-grav.cc index 4cef2a9594..1a552bcf2c 100644 --- a/lily/stem-grav.cc +++ b/lily/stem-grav.cc @@ -12,11 +12,13 @@ #include "musical-request.hh" #include "duration-convert.hh" #include "misc.hh" +#include "abbrev.hh" Stem_engraver::Stem_engraver() { abbrev_req_l_ = 0; stem_p_ = 0; + abbrev_p_ = 0; default_abbrev_i_ = 16; dir_ = CENTER; } @@ -52,7 +54,10 @@ Stem_engraver::acknowledge_element(Score_elem_info i) t = default_abbrev_i_; else default_abbrev_i_ = t; - stem_p_->abbrev_flag_i_ =intlog2 (t) - (durlog_i>? 2); + + abbrev_p_ = new Abbreviation; + announce_element (Score_elem_info (abbrev_p_, abbrev_req_l_)); + abbrev_p_->abbrev_flags_i_ =intlog2 (t) - (durlog_i>? 2); } announce_element (Score_elem_info (stem_p_, r)); } @@ -63,6 +68,12 @@ Stem_engraver::acknowledge_element(Score_elem_info i) void Stem_engraver::do_pre_move_processing() { + if (abbrev_p_) + { + abbrev_p_->set_stem (stem_p_); + typeset_element (abbrev_p_); + abbrev_p_ = 0; + } if (stem_p_) { Scalar prop = get_property ("ydirection"); diff --git a/lily/stem.cc b/lily/stem.cc index 5a74da6df8..c4c502d268 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -20,7 +20,7 @@ #include "beam.hh" #include "rest.hh" -const int STEMLEN=7; +const int STEMLEN = 7; IMPLEMENT_IS_TYPE_B1 (Stem,Item); @@ -29,7 +29,6 @@ Stem::Stem () /* TODO: staff-size */ - abbrev_flag_i_ = 0; beam_l_ = 0; beams_left_i_ = 0; beams_right_i_ = 0; @@ -60,7 +59,7 @@ void Stem::do_print () const { #ifndef NPRINT - DOUT << "flag "<< flag_i_ << "abbrev_flag_i_" << abbrev_flag_i_; + DOUT << "flag "<< flag_i_ ; if (beam_l_) DOUT << "beamed"; #endif @@ -78,6 +77,12 @@ Stem::stem_begin_f () const return yextent_drul_[Direction(-dir_)]; } +Real +Stem::chord_start_f () const +{ + return head_positions()[dir_] * paper ()->internote_f (); +} + Real Stem::stem_end_f () const { @@ -158,11 +163,6 @@ Stem::set_default_stemlen () Real len = STEMLEN; Real dy = paper ()->interbeam_f (); - // ugh, should get nice *rule* for this - if (abbrev_flag_i_ > 1) - len += (abbrev_flag_i_ - 1)* dy / 2; - - if (!dir_) set_default_dir (); @@ -252,11 +252,7 @@ Interval Stem::do_width () const { Interval r (0, 0); - if (abbrev_flag_i_) - { - r = abbrev_mol ().extent ().x (); - } - else if (beam_l_ || abs (flag_i_) <= 2) + if (beam_l_ || abs (flag_i_) <= 2) ; // TODO! else { @@ -269,44 +265,6 @@ Stem::do_width () const -Molecule -Stem::abbrev_mol () const -{ - Real dy = paper ()->interbeam_f (); - Real w = 1.5 * paper ()->lookup_l ()->ball (2).dim_.x ().length (); - Real interline_f = paper ()->interline_f (); - Real beamdy = interline_f/2; - - int beams_i = 0; - Real slope_f = paper ()->internote_f () / 4; - - if (beam_l_) { - // huh? - slope_f = 2 * beam_l_->slope_f_; - // ugh, rather calc from Abbreviation_req - beams_i = beams_right_i_ >? beams_left_i_; - } - paper ()->lookup_l ()->beam (slope_f, 20 PT, 1 PT); - - Molecule beams; - Atom a (paper ()->lookup_l ()->beam (slope_f, w, .48 * interline_f)); - a.translate (Offset(- w / 2, stem_end_f () - (w / 2 * slope_f))); - - // ugh - if (!beams_i) - a.translate_axis (dy + beamdy - dir_ * dy, Y_AXIS); - else - a.translate_axis (2 * beamdy - dir_ * (beamdy - dy), Y_AXIS); - - for (int i = 0; i < abbrev_flag_i_; i++) - { - Atom b (a); - b.translate_axis (-dir_ * dy * (beams_i + i), Y_AXIS); - beams.add (b); - } - - return beams; -} const Real ANGLE = 20* (2.0*M_PI/360.0); // ugh! @@ -336,12 +294,8 @@ Stem::brew_molecule_p () const Atom fl = p->lookup_l ()->flag (flag_i_, dir_); fl.translate_axis(stem_y[dir_]*dy, Y_AXIS); mol_p->add(fl); - assert (!abbrev_flag_i_); } - if (abbrev_flag_i_) - mol_p->add (abbrev_mol ()); - if (head_l_arr_.size()) { mol_p->translate_axis (note_delta_f (), X_AXIS); diff --git a/lily/symtable.cc b/lily/symtable.cc index d247fa6494..0be5fbf742 100644 --- a/lily/symtable.cc +++ b/lily/symtable.cc @@ -19,7 +19,9 @@ Symtables::Symtables() { } + Symtables::Symtables (Symtables const &s) + : Dictionary (s) { for (Assoc_iter i (s); i.ok(); i++) { diff --git a/lily/tex-stream.cc b/lily/tex-stream.cc index 02c33a8707..d861e6ecde 100644 --- a/lily/tex-stream.cc +++ b/lily/tex-stream.cc @@ -33,7 +33,7 @@ Tex_stream::header() *os << _("% Creator: ") << get_version_str() << "\n"; *os << _("% Automatically generated, at "); time_t t (time (0)); - *os << ctime (&t)<<"\n"; + *os << ctime (&t) << "%\n"; } Tex_stream::~Tex_stream() { diff --git a/lily/timing-translator.cc b/lily/timing-translator.cc index c7e4e03032..f294431972 100644 --- a/lily/timing-translator.cc +++ b/lily/timing-translator.cc @@ -14,7 +14,7 @@ Timing_translator::Timing_translator () { - default_grouping_ = Rhythmic_grouping (MInterval (0,4),4); // ugh + default_grouping_ = Rhythmic_grouping (MInterval (0, 1), 4); // ugh } bool @@ -94,7 +94,6 @@ Timing_translator::do_process_requests() else if (tr_l->cadenza()) { time_.set_cadenza (tr_l->cadenza()->on_b_); - } else if (tr_l->measuregrouping()) { @@ -132,3 +131,12 @@ Timing_translator::do_post_move_processing() { time_.add (now_moment () - time_.when_); } + +void +Timing_translator::do_print () const +{ +#ifndef NPRINT + time_.print (); + default_grouping_.print (); +#endif +} diff --git a/make/Rules.make b/make/Rules.make index a5ea5760d5..6062fbc2d3 100644 --- a/make/Rules.make +++ b/make/Rules.make @@ -10,8 +10,6 @@ # this is supposed to clear all suffixes: .SUFFIXES: -# so why does make still consider xx.y : RCS/xx.y,v ? -# there is no suffix ,v anymore! .SUFFIXES: .cc .o .hh .y .l .dep diff --git a/make/Variables.make b/make/Variables.make index 884f2ffb2c..e7564f48a4 100644 --- a/make/Variables.make +++ b/make/Variables.make @@ -153,7 +153,7 @@ CXXFLAGS = $(CFLAGS) $(USER_CXXFLAGS) $(EXTRA_CXXFLAGS) $(MODULE_CXXFLAGS) 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++ # need lg++ for win32, really! +LOADLIBES = $(EXTRA_LIBES) $(MODULE_LIBES) -lg++ -lstdc++ # need lg++ for win32, really! # # macro compiler: @@ -181,7 +181,7 @@ LD_COMMAND = $(LD) $(LDFLAGS) -o $@ # dependencies: # -depfile = $(depdir)/$(subst .o,.dep,$(notdir $@)) +depfile = $(depdir)/$(subst .o,.dep,$(notdir $@))# DODEP=rm -f $(depfile); DEPENDENCIES_OUTPUT="$(depfile) $(outdir)/$(notdir $@)" # diff --git a/make/lelievijver.lsm b/make/lelievijver.lsm index adfe9b3f2b..72e1d2a8a6 100644 --- a/make/lelievijver.lsm +++ b/make/lelievijver.lsm @@ -1,7 +1,7 @@ Begin3 Titel: LilyPond -Versie: 0.1.46 -Inschrijf datum: 17FEB98 +Versie: 0.1.47 +Inschrijf datum: 06MAR98 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: @@ -16,8 +16,8 @@ Auteur: hanwen@stack.nl (Han-Wen Nienhuys) 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.46.tar.gz + 395k lilypond-0.1.47.tar.gz Oorspronkelijke plek: pcnov095.win.tue.nl /pub/lilypond/ - 395k lilypond-0.1.46.tar.gz + 395k lilypond-0.1.47.tar.gz Copi"eer politie: GPL End diff --git a/make/lilypond.lsm b/make/lilypond.lsm index 4e6df5ae07..a0620497c1 100644 --- a/make/lilypond.lsm +++ b/make/lilypond.lsm @@ -1,7 +1,7 @@ Begin3 Title: LilyPond -Version: 0.1.46 -Entered-date: 17FEB98 +Version: 0.1.47 +Entered-date: 06MAR98 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 @@ -15,8 +15,8 @@ Author: hanwen@stack.nl (Han-Wen Nienhuys) 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.46.tar.gz + 470k lilypond-0.1.47.tar.gz Original-site: pcnov095.win.tue.nl /pub/lilypond/development/ - 470k lilypond-0.1.46.tar.gz + 470k lilypond-0.1.47.tar.gz Copying-policy: GPL End diff --git a/make/lilypond.spec b/make/lilypond.spec index 30bec0b72e..1092351059 100644 --- a/make/lilypond.spec +++ b/make/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 0.1.46 +Version: 0.1.47 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: alpha.gnu.org:/gnu/lilypond/development/lilypond-0.1.46.tar.gz +Source0: alpha.gnu.org:/gnu/lilypond/development/lilypond-0.1.47.tar.gz Summary: A program for typesetting music. URL: http://www.stack.nl/~hanwen/lilypond Packager: Han-Wen Nienhuys @@ -31,8 +31,8 @@ strip lily/out/lilypond mi2mu/out/mi2mu 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/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/toccata-fuga-E.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/rhythm.ly input/scales.ly input/scripts.ly input/sleur.ly input/slurs.ly input/spacing.ly input/stem.ly input/toccata-fuga-E.ly input/twinkle-pop.ly input/twinkle.ly 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/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/lelie_logo.gif /usr/bin/convert-mudela /usr/bin/mudela-book diff --git a/mf/Makefile b/mf/Makefile index 00b46f2f99..95cb53e788 100644 --- a/mf/Makefile +++ b/mf/Makefile @@ -12,8 +12,8 @@ include ./$(depth)/make/Include.make # TEXFILES = $(wildcard *.tex) MFFILES = $(wildcard *.mf) -MFDEPS = mf.dep -EXTRA_DISTFILES = $(MFFILES) $(TEXFILES) $(MFDEPS) TODO README +MFDEPS = $(outdir)/mf.dep +EXTRA_DISTFILES = $(MFFILES) $(TEXFILES) TODO README # FONT_FILES = $(wildcard *[0-9].mf) @@ -28,7 +28,10 @@ TEXTABLES = $(addprefix $(texout)/, $(FET_FILES:.mf=.tex)) all: $(LYTABLES) $(TEXTABLES) localclean: - rm -f $(LYTABLES) $(TEXTABLES) $(MFDEPS) + rm -f $(LYTABLES) $(TEXTABLES) + +localrealclean: + rm -f $(MFDEPS) $(outdir)/%.dvi: %.mf mf $< diff --git a/mf/TODO b/mf/TODO index 4607752e69..9029d68668 100644 --- a/mf/TODO +++ b/mf/TODO @@ -2,6 +2,7 @@ - design decent macro for bulbed endings - printer dependencies. - y-refpoint for rests should be the 4th staffline (gclef: b') + - segno, coda - versioning - lo-res fixes. - work out sizes of character fonts. @@ -12,5 +13,4 @@ * coda signs. - 128th flags - include important spacing dims in fetalog - - more sizes, see readme diff --git a/mf/feta-generic.mf b/mf/feta-generic.mf index 9891168c1e..315f49383d 100644 --- a/mf/feta-generic.mf +++ b/mf/feta-generic.mf @@ -1,3 +1,11 @@ +% +% feta-generic.mf -- implement +% +% source file of the Feta (defintively not an abbreviation for Font-En-Tja) +% music font +% +% (c) 1997 Han-Wen Nienhuys +% if test = -1: @@ -28,7 +36,7 @@ else: % input feta-bolletjes; % input feta-banier; % input feta-eindelijk; - input feta-klef; +% input feta-klef; % input feta-toevallig; -% input feta-schrift; + input feta-schrift; fi diff --git a/mf/feta-schrift.mf b/mf/feta-schrift.mf index 9cc309f3fb..9a08537316 100644 --- a/mf/feta-schrift.mf +++ b/mf/feta-schrift.mf @@ -1,7 +1,8 @@ -% +% -*- Fundamental -*- (emacs-20 mf mode mucks % feta-schrift.mf -- implement scripts % -% source file of the Feta (Font-En-Tja) music font +% source file of the Feta (defintively not an abbreviation for Font-En-Tja) +% music font % % (c) 1997 Han-Wen Nienhuys % Jan Nieuwenhuizen @@ -12,39 +13,39 @@ fet_begingroup("scripts") def draw_fermata = - save alpha, radius, crook_thinness, crook_fatness, dot_diam; - + save alpha, radius, crook_thinness, crook_fatness, dot_diam; + % [Wanske] and some Baerenreiter editions % suggest ca 80 degrees iso half-circle - alpha := 10; + alpha := 10; - radius# = 1.25 interline#; - crook_thinness# = 1.5stafflinethickness#; - crook_fatness# = 4 stafflinethickness#; + radius# = 1.25 interline#; + crook_thinness# = 1.5stafflinethickness#; + crook_fatness# = 4 stafflinethickness#; - radius# + crook_fatness#/2 = h#; - radius# + crook_thinness#/2 = w#; - set_char_box(w#, w#, crook_thinness#/2, h#); - - define_pixels(radius, crook_thinness, crook_fatness); - dot_diam = 4/3 crook_fatness; + radius# + crook_fatness#/2 = h#; + radius# + crook_thinness#/2 = w#; + set_char_box(w#, w#, crook_thinness#/2, h#); + + define_pixels(radius, crook_thinness, crook_fatness); + dot_diam = 4/3 crook_fatness; - penpos1(crook_thinness, 0); - penpos2(crook_fatness, -90); - z1 = (-radius,0); - z2 = (0, radius); + penpos1(crook_thinness, 0); + penpos2(crook_fatness, -90); + z1 = (-radius,0); + z2 = (0, radius); - fill z1l{dir (-alpha-90)}..{dir (90-alpha)}z1r.. - {right}z2r -- z2l{left} .. cycle; + fill z1l{dir (-alpha-90)}..{dir (90-alpha)}z1r.. + {right}z2r -- z2l{left} .. cycle; - addto currentpicture also - currentpicture xscaled -1; + addto currentpicture also + currentpicture xscaled -1; - pickup pencircle scaled dot_diam; - x4 =0; - bot y4 = - crook_thinness/2; - draw z4; + pickup pencircle scaled dot_diam; + x4 =0; + bot y4 = - crook_thinness/2; + draw z4; enddef; fet_beginchar("fermata up", "ufermata", "ufermata") @@ -453,7 +454,8 @@ fet_beginchar("Trill (`tr')","trill","trill") draw_bulb(-1, z13r, z13l, bulb_size * r_fatness, 1.5); fet_endchar; -fet_beginchar("organ-heel", "pedalheel", "pedalheel") + +def draw_heel = save radius, thickness, wall; radius# := .5 interline#; @@ -474,10 +476,21 @@ fet_beginchar("organ-heel", "pedalheel", "pedalheel") draw z1{down} .. z2{down} .. z3{left}; addto currentpicture also currentpicture xscaled -1; + +enddef; + + +fet_beginchar("left heel", "upedalheel", "upedalheel") + draw_heel; labels(1,2,3); fet_endchar; -fet_beginchar("organ-toe", "pedaltoe", "pedaltoe") +fet_beginchar("right heel", "dpedalheel", "dpedalheel") + draw_heel; + y_mirror_char; +fet_endchar; + +def draw_toe = save ht,wd; thickness := 1.5 stafflinethickness; @@ -497,8 +510,17 @@ fet_beginchar("organ-toe", "pedaltoe", "pedaltoe") draw z1 -- z2 -- z3; + +enddef; + +fet_beginchar("left toe", "upedaltoe", "upedaltoe") + draw_toe; labels(1,2,3); fet_endchar; +fet_beginchar("right toe", "dpedaltoe", "dpedaltoe") + draw_toe; + y_mirror_char; +fet_endchar; fet_beginchar("Flageolet", "flageolet", "flageolet") save height,width,thickness; diff --git a/mf/grayimagen.mf b/mf/grayimagen.mf new file mode 100644 index 0000000000..db627b06ce --- /dev/null +++ b/mf/grayimagen.mf @@ -0,0 +1,9 @@ +% Gray font for Imagen 8/300; proofsheet resolution is 75 pixels per inch. +% Each pixel is represented by a 4x4 square, with 4/16 of the dots on. + + +font_identifier "GRAYIMAGEN"; + +boolean lightweight; + +input grayf diff --git a/mf/mf.dep b/mf/mf.dep deleted file mode 100644 index 590fb527e3..0000000000 --- a/mf/mf.dep +++ /dev/null @@ -1,99 +0,0 @@ - -# Automatically generated by mf-deps.py 0.2 - -out/feta-beams16.log: feta-beams16.mf feta-watzieik.mf feta-params.mf -out/feta-beams16.dvi: feta-beams16.mf feta-watzieik.mf feta-params.mf -out/feta-beams16.2602gf: feta-beams16.mf feta-watzieik.mf feta-params.mf -out/feta-beams16.tfm: feta-beams16.mf feta-watzieik.mf feta-params.mf -out/feta-beams20.log: feta-beams20.mf feta-watzieik.mf feta-params.mf -out/feta-beams20.dvi: feta-beams20.mf feta-watzieik.mf feta-params.mf -out/feta-beams20.2602gf: feta-beams20.mf feta-watzieik.mf feta-params.mf -out/feta-beams20.tfm: feta-beams20.mf feta-watzieik.mf feta-params.mf -out/feta-beams26.log: feta-beams26.mf feta-watzieik.mf feta-params.mf -out/feta-beams26.dvi: feta-beams26.mf feta-watzieik.mf feta-params.mf -out/feta-beams26.2602gf: feta-beams26.mf feta-watzieik.mf feta-params.mf -out/feta-beams26.tfm: feta-beams26.mf feta-watzieik.mf feta-params.mf -out/feta-black16.log: feta-black16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta-black16.dvi: feta-black16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta-black16.2602gf: feta-black16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta-black16.tfm: feta-black16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta-braces16.log: feta-braces16.mf feta-beugel.mf feta-macros.mf feta-params.mf -out/feta-braces16.dvi: feta-braces16.mf feta-beugel.mf feta-macros.mf feta-params.mf -out/feta-braces16.2602gf: feta-braces16.mf feta-beugel.mf feta-macros.mf feta-params.mf -out/feta-braces16.tfm: feta-braces16.mf feta-beugel.mf feta-macros.mf feta-params.mf -out/feta-braces20.log: feta-braces20.mf feta-beugel.mf feta-macros.mf feta-params.mf -out/feta-braces20.dvi: feta-braces20.mf feta-beugel.mf feta-macros.mf feta-params.mf -out/feta-braces20.2602gf: feta-braces20.mf feta-beugel.mf feta-macros.mf feta-params.mf -out/feta-braces20.tfm: feta-braces20.mf feta-beugel.mf feta-macros.mf feta-params.mf -out/feta-din10.log: feta-din10.mf feta-autometric.mf feta-ital-f.mf feta-ital-p.mf feta-ital-m.mf feta-ital-r.mf feta-ital-s.mf feta-ital-z.mf -out/feta-din10.dvi: feta-din10.mf feta-autometric.mf feta-ital-f.mf feta-ital-p.mf feta-ital-m.mf feta-ital-r.mf feta-ital-s.mf feta-ital-z.mf -out/feta-din10.2602gf: feta-din10.mf feta-autometric.mf feta-ital-f.mf feta-ital-p.mf feta-ital-m.mf feta-ital-r.mf feta-ital-s.mf feta-ital-z.mf -out/feta-din10.tfm: feta-din10.mf feta-autometric.mf feta-ital-f.mf feta-ital-p.mf feta-ital-m.mf feta-ital-r.mf feta-ital-s.mf feta-ital-z.mf -out/feta-nummer10.log: feta-nummer10.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer10.dvi: feta-nummer10.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer10.2602gf: feta-nummer10.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer10.tfm: feta-nummer10.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer12.log: feta-nummer12.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer12.dvi: feta-nummer12.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer12.2602gf: feta-nummer12.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer12.tfm: feta-nummer12.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer3.log: feta-nummer3.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer3.dvi: feta-nummer3.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer3.2602gf: feta-nummer3.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer3.tfm: feta-nummer3.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer4.log: feta-nummer4.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer4.dvi: feta-nummer4.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer4.2602gf: feta-nummer4.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer4.tfm: feta-nummer4.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer5.log: feta-nummer5.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer5.dvi: feta-nummer5.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer5.2602gf: feta-nummer5.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer5.tfm: feta-nummer5.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer6.log: feta-nummer6.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer6.dvi: feta-nummer6.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer6.2602gf: feta-nummer6.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer6.tfm: feta-nummer6.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer7.log: feta-nummer7.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer7.dvi: feta-nummer7.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer7.2602gf: feta-nummer7.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer7.tfm: feta-nummer7.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer8.log: feta-nummer8.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer8.dvi: feta-nummer8.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer8.2602gf: feta-nummer8.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-nummer8.tfm: feta-nummer8.mf feta-nummer-generic.mf feta-autometric.mf feta-macros.mf feta-params.mf feta-nummer.mf -out/feta-test16.log: feta-test16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta-test16.dvi: feta-test16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta-test16.2602gf: feta-test16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta-test16.tfm: feta-test16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta-test20.log: feta-test20.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta-test20.dvi: feta-test20.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta-test20.2602gf: feta-test20.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta-test20.tfm: feta-test20.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta11.log: feta11.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta11.dvi: feta11.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta11.2602gf: feta11.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta11.tfm: feta11.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta13.log: feta13.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta13.dvi: feta13.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta13.2602gf: feta13.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta13.tfm: feta13.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta16.log: feta16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta16.dvi: feta16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta16.2602gf: feta16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta16.tfm: feta16.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta19.log: feta19.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta19.dvi: feta19.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta19.2602gf: feta19.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta19.tfm: feta19.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta20.log: feta20.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta20.dvi: feta20.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta20.2602gf: feta20.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta20.tfm: feta20.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta23.log: feta23.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta23.dvi: feta23.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta23.2602gf: feta23.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta23.tfm: feta23.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta26.log: feta26.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta26.dvi: feta26.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta26.2602gf: feta26.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf -out/feta26.tfm: feta26.mf feta-autometric.mf feta-generic.mf feta-macros.mf feta-params.mf feta-eindelijk.mf feta-toevallig.mf feta-puntje.mf feta-bolletjes.mf feta-schrift.mf feta-banier.mf feta-klef.mf diff --git a/mutopia/J.S.Bach/preludes-1.ly b/mutopia/J.S.Bach/preludes-1.ly index c627ea5c5d..c46593a660 100644 --- a/mutopia/J.S.Bach/preludes-1.ly +++ b/mutopia/J.S.Bach/preludes-1.ly @@ -13,7 +13,7 @@ rh = \melodic{ \octave c''; \textstyle "italic"; r16\p_"legato"\< ['g-1( c-3 )e-5] r ['g-1( c )e] - r [g( c )d] r ['b-1( d-2 \!)g-5] | + r ['g( c )d] r ['b-1( d-2 \!)g-5] | r\mf ['a( d-2 ) g-5] r ['a(\< d )f-4] r ['a( d )e-3] r [c-1( e-2 \!)a-5] | r\f ['b e a-5] r ['b e-3 g-5] @@ -76,9 +76,9 @@ lh = \melodic{ % f4-1 e d-3\tr c | f4-1 e d-3 c | % g( )'g g\pr-"(#)"( )'g | - g( )'g g-"(\\textsharp)"( )'g | - % g\pr-"(\\textsharp)"( )'g g\pr-"(\\textsharp)"( )'g | - g-"(\\textsharp)"( )'g g-"(\\textsharp)"( )'g | + g ~ 'g g-"(\\textsharp)" ~ 'g | + % g\pr-"(\\textsharp)" ~ 'g g\pr-"(\\textsharp)" ~ 'g | + g-"(\\textsharp)" ~ 'g g-"(\\textsharp)" ~ 'g | % ugh, f should be at upper staff 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] diff --git a/mutopia/J.S.Bach/preludes-2.ly b/mutopia/J.S.Bach/preludes-2.ly index e0e1f57595..c82b6d784a 100644 --- a/mutopia/J.S.Bach/preludes-2.ly +++ b/mutopia/J.S.Bach/preludes-2.ly @@ -39,6 +39,7 @@ rh = \melodic{ { \stemup; c2 r4 < {c-5 ~ c8} {'a4 ~ 'a8} > } { \stemdown; c2 r4 'e4 ~ 'e8 } > + \stemboth; ['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] | @@ -82,10 +83,10 @@ lh = \melodic{ % [g32-1( fis-2 g8.-1] ) 'g4 g( )'g\mr | % my edition has mordents on every g here - [g32-1( fis-2 g8.-1] ) 'g4 g( )'g | + [g32-1( fis-2 g8.-1] ) 'g4 g ~ 'g | % 'g( )g\mr 'g( )g\mr | - g( )'g g( )'g | - g( )'g g( )'g | + g ~ 'g g ~ 'g | + g ~ 'g g ~ 'g | [g8 'g-5( 'b-4 d-2] ['b-4 'g-5 f!-1 d-3] | [)e-2 c-4 e-2 g-1] [e-3 c-5 c' e-4] | \textstyle "finger"; diff --git a/mutopia/J.S.Bach/preludes-3.ly.m4 b/mutopia/J.S.Bach/preludes-3.ly.m4 index 88f575edd3..e7e85b9185 100644 --- a/mutopia/J.S.Bach/preludes-3.ly.m4 +++ b/mutopia/J.S.Bach/preludes-3.ly.m4 @@ -39,7 +39,8 @@ rh = \melodic{ s('bes d g) - s(c fis a -"poco a poco cresc.") +%# s(c fis a -"poco a poco cresc.") + t(c,fis,a,-"poco a poco cresc.") s(d g bes) s(d fis c') @@ -57,7 +58,8 @@ rh = \melodic{ s('fis 'a c) s('fis 'a c) r16\p ['g 'a c] ['b 'g 'b 'g] r 'g r 'g - s('a c fis -"poco cresc.") +%# s('a c fis -"poco cresc.") + t('a,c,fis,-"poco cresc.") s(c fis a) s('b d g) s('b d f -"dim.") @@ -118,7 +120,7 @@ lh = \melodic{ 'd4 r ['bes8 'g] | 'd4 r [es8 c] | - 'd4 r [d8 c] | + 'd4 r [d8 a] | 'g4 r [es8 c] | 'g4 r [d8 'b] | diff --git a/mutopia/J.S.Bach/preludes-4.ly b/mutopia/J.S.Bach/preludes-4.ly index 9b54a623dc..4dc6d24caf 100644 --- a/mutopia/J.S.Bach/preludes-4.ly +++ b/mutopia/J.S.Bach/preludes-4.ly @@ -35,6 +35,7 @@ one = \melodic{ \stemup )'fis4\p \skip 4*7; | + \textstyle "finger"; d4.\mf cis8-"4\\_5" ~ cis 'b4-5 'a8-"4\\_5" ~ | \textstyle "italic"; 'a 'g4-5 'fis8-4 ~ ['fis16 'fis-4-"dim." 'e-3 'd-2] @@ -51,6 +52,7 @@ one = \melodic{ 'b4-5 'a ~ ['a8 'g-5 ~] ['g16 'fis8-4 'e'16-3] | ['fis8-4 'e-5~] ['e 'd-5~] 'd4 'cis-4 | 'd2\p-"rall." ~ ['d16 ''a-2( ''b-3 'cis-4] )'d4-5 | + \bar "|."; } two = \melodic{ @@ -58,25 +60,26 @@ two = \melodic{ \textstyle "finger"; % ugh: koor % \translator Staff=bass \octave c; \stemup + \stemup; fis4-1( e8-2 a4 a4 gis8-2 | ) a8 \translator Staff=treble \octave c''; \stemdown 'a4 'a8 'b4.-"2\\_1" cis8 ~ | cis8 \translator Staff=bass \octave c; \stemup - a8 ~ [a d'] ~ d' d'4-> c'8 | + a8 ~ [a d'] ~ d' d'4-> cis'8 | d'8 \translator Staff=treble \octave c''; \stemdown d4-> cis8-1 ~ cis 'b4-1 'b8 | r8 'a4 'a8 \translator Staff=bass \octave c; \stemup [g'8-1( fis'-2] )e'4-1 ~ | - e'4 d' ~ [d'16 d-1 cis'-2 g-1] cis'4-2 ~ | - [c'8 a-3] d'4.-1 d'4-> cis'8-2 | + e'4 d' ~ [d'16 d'-1 cis'-2 b-1] cis'4-2 ~ | + [cis'8 a-3] d'4.-1 d'4^> cis'8-2 | \translator Staff=treble \octave c''; \stemdown 'd4 \stemboth - r16 [''b-1\< d-2 ''b~] <'g4-5 'e-3 ''b> + 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> r16 ['fis-1 'a 'fis~] | @@ -109,7 +112,8 @@ two = \melodic{ } > [g-1 fis-2 g-1 a-2] [g-1 b-3 a-2 g-1 ~] | - [g g-1 fis-2 e-1] fis-2 ~ fis2 + [g g-1 fis-2 e-1] fis4-2 ~ fis2 + \bar "|."; } three = \melodic{ @@ -133,14 +137,14 @@ three = \melodic{ [fis-2 g a-2 fis-4] | )fis16 ['g( 'b 'g] [d-2 e fis-2 d-4] [)g8-. 'g-.] r16 [cis-4( e cis] | [)fis8-. 'fis-.] \stemdown r16 ['b-4( d 'b] [)e8-. 'e-.] - r16 ['a-4 cis a] | + r16 ['a-4 cis 'a] | \stemboth [d-1 e-3 fis-2 d-4] [g-1 fis-2 e-3 d-1] [cis!-3 'a-5 'b cis] [d-2 e fis-2 d-4] | - [g8 e-3] \stemdown [a 'a] ['b8.-4 'g16-5] a4-4 | + [g8 e-3] \stemdown [a 'a] ['b8.-4 'g16-5] 'a4-4 | [d8-5 a-2~] [a g-3~] [g g-3] fis4-4 | \stemup - r16 [g-2 b-1 g-3] [b'8.-1 c'16-1] [b8.-2 bes16-3] [a8-1 g] | + r16 [g-2 b-1 g-3] [d'8.-1 c'16-1] [b8.-2 bes16-3] [a8-1 g] | \stemdown r16 ['a-2 cis!-1 a-2] [d-1 e fis d] [e8-1 d-2] [e-1 'a-2] | [d 'a-2~] ['a16 'a-2 'b cis-2] d2 | @@ -218,6 +222,10 @@ global = \melodic{ \paper{ \paper_twenty linewidth= 195.\mm; +% arithmetic_basicspace = 2.; +% arithmetic_multiplier = 6.\pt; + arithmetic_basicspace = 3.; + arithmetic_multiplier = 6.\pt; } \midi{ \tempo 4 = 110; diff --git a/mutopia/J.S.Bach/preludes-5.ly b/mutopia/J.S.Bach/preludes-5.ly index aee8b4c4a5..b0812f72b1 100644 --- a/mutopia/J.S.Bach/preludes-5.ly +++ b/mutopia/J.S.Bach/preludes-5.ly @@ -24,10 +24,10 @@ rh = \melodic{ \multi 2 < { \stemup -% c4\mr^"(\\textsharp)"\p r r | -% c4\mr^"(\\textsharp)" r r - c4^"(\\textsharp)"\p r r | - c4^"(\\textsharp)" r r +% 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 @@ -35,6 +35,7 @@ rh = \melodic{ a4 r r } > | + \stemboth; [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 | @@ -43,12 +44,12 @@ rh = \melodic{ [)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 fis-1 e-2] | + [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] + [cis'32-4 b cis'16 e'8-5-"poco cresc." cis'-3 a e' cis'] } { \stemdown @@ -73,11 +74,12 @@ rh = \melodic{ [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] s4 s | + [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] [d-2-"m.g." f a] \stemup d'-1 | + 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] | a'8-5 \multi 2 < @@ -124,32 +126,33 @@ lh = \melodic{ gis4-3 r r | e-4( )gis-2 e | [a8-4 e'-1 c'-2 a-4 e'-1 c'-2 ] | + [g!-5 es'-1 c'-1 g-5 es'-1 c'-1 ] | fis4-5 r r d-4( ) fis d-5 | -% g\mr-"(\textsharp)" r r f!8 | - g-"(\textsharp)" r r8 f! | +% g\mr-"(\\textsharp)" r r f!8 | + g-"(\\textsharp)" r r8 f! | [e32 f e8.] r4 r | % f\pr r r8 e | f r r8 e | d4 r8 [f-1 e d] | [e-2 d-3 cis-4 e-1 d-2 cis-3] | - d4-2( )c! 'b-4 | - 'a( )a a | - 'a( )a a | - 'a( )a a | - 'a( )a a | - 'b r r | - 'b-5( )b 'b | + d4-2( )c! 'bes-4 | + 'a( )a 'a | + 'a( )a 'a | + 'a( )a 'a | + 'a( )a 'a | + 'bes r r | + 'bes-5( )bes 'bes | 'a r r | 'a-2( )d-1 'd | 'g r r | - 'g( )g g | + 'g( )g 'g | 'g r r | - 'g( )g g | + 'g( )g 'g | 'a r r | - 'a( )a a | + 'a( )a 'a | 'a r r | - 'a( )a a | + 'a( )a 'a | 'cis r r | 'cis( )cis 'cis | 'd-4 s16 @@ -165,6 +168,7 @@ lh = \melodic{ \stemdown % [d-4-"m.g." f-"cresc."] a s s8 s4\dep | [d-4-"m.g." f-"cresc."] a s s8 s4-"*" | + \stemboth % ugh, whole rest has duration of one bar % r1 | r4 r r | @@ -205,6 +209,10 @@ global = \melodic{ \paper{ \paper_twenty linewidth= 195.\mm; +% arithmetic_basicspace = 2.; +% arithmetic_multiplier = 6.\pt; + arithmetic_basicspace = 2.; + arithmetic_multiplier = 8.\pt; } \midi{ \tempo 4 = 90; diff --git a/mutopia/J.S.Bach/preludes-6.ly b/mutopia/J.S.Bach/preludes-6.ly index 14d1bf6fb5..b25d5a287f 100644 --- a/mutopia/J.S.Bach/preludes-6.ly +++ b/mutopia/J.S.Bach/preludes-6.ly @@ -12,24 +12,26 @@ one = \melodic{ \octave c'; \skip 4*4; | \stemup - r4 d2-5( cis4-4 | + r4 d'2-5( cis'4-4 | \stemboth - [)d16-5\mf a'-4( g' f'] [e' f'-4 cis'-2 d'-1] - [e32-3 d e8 f16] [d'8.-1 cis'16-3] | + [)d'16-5\mf a'-4( g' f'] [e' f'-4 cis'-2 d'-1] + [e'32-3 d' e'8 f'16] [d'8.-1 cis'16-3] | \stemup - )cis'4\> ~ [cis16 a \!d'8 ~] d4 c-5 | + )cis'4\> ~ [cis'16 a \!d'8 ~] d'4 c'-5 | b2-4 ~ b4 a-5 ~ | [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] r16 [bes-2 a-2 \!g-1] | - ) d'1-5 + fis4-4 g r8\<-"rall." [g16-1( bes-2] \!e'4-5\> | + \!)d'1-5 + \bar "|."; } two = \melodic{ \octave c'; r16\p [d'-5( c'-4 bes-3] [a-2 bes-3 f-1 g-2] [a32-3 g a8 bes16-1] [g8. f16-1] | + \stemdown )f2 e2 | \translator Staff=bass \octave c; \stemup r4 a-1 bes-2 b-1 | @@ -39,7 +41,7 @@ two = \melodic{ 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.] r8 e'4-5 | + r16 [e-3 d-1 c!-2] ['bes! d8.] s4 r16 [bes-2 a-2 \!g-1] | fis1-2 } @@ -47,24 +49,32 @@ three = \melodic{ \octave c; \stemup f2-1( e-2 | - [)d16 b'( c' bes] [a-4 bes-2 f-5 g-4] + \stemboth; + [)d16 d'( c' bes] [a-4 bes-2 f-5 g-4] [a32 g a8 bes16-2] [g8.-4 f16-5] | )f2-5 g4-4 gis | a2-2 ~ [a16 a-1( g f] [e-4 f-2 c-5 d] | [e32 d e8 f16] [d8.-4 c16-5] \stemboth )c4.-5 d8-4 | + \stemdown e4 ~ [e16 f-2( e-3 d-4] [cis 'a 'b cis-3] [d-4 e-3 f-2 d-4] | \textstyle "finger"; )'bes!2-"5\\_4" 'a ~ | - a a | + 'a 'a | 'd cis-5 | - b1-2 + a1-2 + \bar "|."; } four = \melodic{ \octave c; + \stemdown; d2-3 cis-4 | - \skip 4*16; + \skip 4*12; + \translator Staff=treble \octave c'; \stemup \property Voice.hshift = 1 + a4 gis-2 ~ [gis16 gis-3 fis e] + \skip 4*1; + \translator Staff=bass \octave c; \stemdown \property Voice.hshift = 0 \stemup b2-1 a-1 | g a4. [gis16 a] | @@ -106,16 +116,21 @@ global = \melodic{ \type Staff=treble < \global % huh? try these iso directly! - \lh -% \one -% \two +% \lh + \multi 2 < + \one + \two + > > \type Staff=bass < \global - \rh +% \rh % or try \two having here, iso above! -% \three -% \four + \clef "bass"; + \multi 2 < + \three + \four + > > > \paper{ @@ -123,6 +138,6 @@ global = \melodic{ linewidth= 195.\mm; } \midi{ - \tempo 4 = 110; + \tempo 4 = 40; } } diff --git a/mutopia/out/dummy.dep b/mutopia/out/dummy.dep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tex/feta11.tex b/tex/feta11.tex index cc41d5b43d..48504f2348 100644 --- a/tex/feta11.tex +++ b/tex/feta11.tex @@ -54,25 +54,27 @@ \fetdef\downbow{39} \fetdef\turn{40} \fetdef\trill{41} -\fetdef\pedalheel{42} -\fetdef\pedaltoe{43} -\fetdef\flageolet{44} +\fetdef\upedalheel{42} +\fetdef\dpedalheel{43} +\fetdef\upedaltoe{44} +\fetdef\dpedaltoe{45} +\fetdef\flageolet{46} % flags -\fetdef\eighthflag{45} -\fetdef\sixteenthflag{46} -\fetdef\thirtysecondflag{47} -\fetdef\sixtyfourthflag{48} -\fetdef\deighthflag{49} -\fetdef\dsixteenthflag{50} -\fetdef\dthirtysecondflag{51} -\fetdef\dsixtyfourthflag{52} +\fetdef\eighthflag{47} +\fetdef\sixteenthflag{48} +\fetdef\thirtysecondflag{49} +\fetdef\sixtyfourthflag{50} +\fetdef\deighthflag{51} +\fetdef\dsixteenthflag{52} +\fetdef\dthirtysecondflag{53} +\fetdef\dsixtyfourthflag{54} % clefs -\fetdef\altoclef{53} -\fetdef\caltoclef{54} -\fetdef\bassclef{55} -\fetdef\cbassclef{56} -\fetdef\violinclef{57} -\fetdef\cviolinclef{58} +\fetdef\altoclef{55} +\fetdef\caltoclef{56} +\fetdef\bassclef{57} +\fetdef\cbassclef{58} +\fetdef\violinclef{59} +\fetdef\cviolinclef{60} diff --git a/tex/feta13.tex b/tex/feta13.tex index 72412742d6..8d83dbf518 100644 --- a/tex/feta13.tex +++ b/tex/feta13.tex @@ -54,25 +54,27 @@ \fetdef\downbow{39} \fetdef\turn{40} \fetdef\trill{41} -\fetdef\pedalheel{42} -\fetdef\pedaltoe{43} -\fetdef\flageolet{44} +\fetdef\upedalheel{42} +\fetdef\dpedalheel{43} +\fetdef\upedaltoe{44} +\fetdef\dpedaltoe{45} +\fetdef\flageolet{46} % flags -\fetdef\eighthflag{45} -\fetdef\sixteenthflag{46} -\fetdef\thirtysecondflag{47} -\fetdef\sixtyfourthflag{48} -\fetdef\deighthflag{49} -\fetdef\dsixteenthflag{50} -\fetdef\dthirtysecondflag{51} -\fetdef\dsixtyfourthflag{52} +\fetdef\eighthflag{47} +\fetdef\sixteenthflag{48} +\fetdef\thirtysecondflag{49} +\fetdef\sixtyfourthflag{50} +\fetdef\deighthflag{51} +\fetdef\dsixteenthflag{52} +\fetdef\dthirtysecondflag{53} +\fetdef\dsixtyfourthflag{54} % clefs -\fetdef\altoclef{53} -\fetdef\caltoclef{54} -\fetdef\bassclef{55} -\fetdef\cbassclef{56} -\fetdef\violinclef{57} -\fetdef\cviolinclef{58} +\fetdef\altoclef{55} +\fetdef\caltoclef{56} +\fetdef\bassclef{57} +\fetdef\cbassclef{58} +\fetdef\violinclef{59} +\fetdef\cviolinclef{60} diff --git a/tex/feta16.tex b/tex/feta16.tex index db0adac5e9..15cedcde16 100644 --- a/tex/feta16.tex +++ b/tex/feta16.tex @@ -54,25 +54,27 @@ \fetdef\downbow{39} \fetdef\turn{40} \fetdef\trill{41} -\fetdef\pedalheel{42} -\fetdef\pedaltoe{43} -\fetdef\flageolet{44} +\fetdef\upedalheel{42} +\fetdef\dpedalheel{43} +\fetdef\upedaltoe{44} +\fetdef\dpedaltoe{45} +\fetdef\flageolet{46} % flags -\fetdef\eighthflag{45} -\fetdef\sixteenthflag{46} -\fetdef\thirtysecondflag{47} -\fetdef\sixtyfourthflag{48} -\fetdef\deighthflag{49} -\fetdef\dsixteenthflag{50} -\fetdef\dthirtysecondflag{51} -\fetdef\dsixtyfourthflag{52} +\fetdef\eighthflag{47} +\fetdef\sixteenthflag{48} +\fetdef\thirtysecondflag{49} +\fetdef\sixtyfourthflag{50} +\fetdef\deighthflag{51} +\fetdef\dsixteenthflag{52} +\fetdef\dthirtysecondflag{53} +\fetdef\dsixtyfourthflag{54} % clefs -\fetdef\altoclef{53} -\fetdef\caltoclef{54} -\fetdef\bassclef{55} -\fetdef\cbassclef{56} -\fetdef\violinclef{57} -\fetdef\cviolinclef{58} +\fetdef\altoclef{55} +\fetdef\caltoclef{56} +\fetdef\bassclef{57} +\fetdef\cbassclef{58} +\fetdef\violinclef{59} +\fetdef\cviolinclef{60} diff --git a/tex/feta19.tex b/tex/feta19.tex index 992b3bfc10..38d26c7e17 100644 --- a/tex/feta19.tex +++ b/tex/feta19.tex @@ -54,25 +54,27 @@ \fetdef\downbow{39} \fetdef\turn{40} \fetdef\trill{41} -\fetdef\pedalheel{42} -\fetdef\pedaltoe{43} -\fetdef\flageolet{44} +\fetdef\upedalheel{42} +\fetdef\dpedalheel{43} +\fetdef\upedaltoe{44} +\fetdef\dpedaltoe{45} +\fetdef\flageolet{46} % flags -\fetdef\eighthflag{45} -\fetdef\sixteenthflag{46} -\fetdef\thirtysecondflag{47} -\fetdef\sixtyfourthflag{48} -\fetdef\deighthflag{49} -\fetdef\dsixteenthflag{50} -\fetdef\dthirtysecondflag{51} -\fetdef\dsixtyfourthflag{52} +\fetdef\eighthflag{47} +\fetdef\sixteenthflag{48} +\fetdef\thirtysecondflag{49} +\fetdef\sixtyfourthflag{50} +\fetdef\deighthflag{51} +\fetdef\dsixteenthflag{52} +\fetdef\dthirtysecondflag{53} +\fetdef\dsixtyfourthflag{54} % clefs -\fetdef\altoclef{53} -\fetdef\caltoclef{54} -\fetdef\bassclef{55} -\fetdef\cbassclef{56} -\fetdef\violinclef{57} -\fetdef\cviolinclef{58} +\fetdef\altoclef{55} +\fetdef\caltoclef{56} +\fetdef\bassclef{57} +\fetdef\cbassclef{58} +\fetdef\violinclef{59} +\fetdef\cviolinclef{60} diff --git a/tex/feta20.tex b/tex/feta20.tex index 7b3b459a2a..050ed6fcf9 100644 --- a/tex/feta20.tex +++ b/tex/feta20.tex @@ -54,25 +54,27 @@ \fetdef\downbow{39} \fetdef\turn{40} \fetdef\trill{41} -\fetdef\pedalheel{42} -\fetdef\pedaltoe{43} -\fetdef\flageolet{44} +\fetdef\upedalheel{42} +\fetdef\dpedalheel{43} +\fetdef\upedaltoe{44} +\fetdef\dpedaltoe{45} +\fetdef\flageolet{46} % flags -\fetdef\eighthflag{45} -\fetdef\sixteenthflag{46} -\fetdef\thirtysecondflag{47} -\fetdef\sixtyfourthflag{48} -\fetdef\deighthflag{49} -\fetdef\dsixteenthflag{50} -\fetdef\dthirtysecondflag{51} -\fetdef\dsixtyfourthflag{52} +\fetdef\eighthflag{47} +\fetdef\sixteenthflag{48} +\fetdef\thirtysecondflag{49} +\fetdef\sixtyfourthflag{50} +\fetdef\deighthflag{51} +\fetdef\dsixteenthflag{52} +\fetdef\dthirtysecondflag{53} +\fetdef\dsixtyfourthflag{54} % clefs -\fetdef\altoclef{53} -\fetdef\caltoclef{54} -\fetdef\bassclef{55} -\fetdef\cbassclef{56} -\fetdef\violinclef{57} -\fetdef\cviolinclef{58} +\fetdef\altoclef{55} +\fetdef\caltoclef{56} +\fetdef\bassclef{57} +\fetdef\cbassclef{58} +\fetdef\violinclef{59} +\fetdef\cviolinclef{60} diff --git a/tex/feta23.tex b/tex/feta23.tex index 031ebf9b61..36361972a4 100644 --- a/tex/feta23.tex +++ b/tex/feta23.tex @@ -54,25 +54,27 @@ \fetdef\downbow{39} \fetdef\turn{40} \fetdef\trill{41} -\fetdef\pedalheel{42} -\fetdef\pedaltoe{43} -\fetdef\flageolet{44} +\fetdef\upedalheel{42} +\fetdef\dpedalheel{43} +\fetdef\upedaltoe{44} +\fetdef\dpedaltoe{45} +\fetdef\flageolet{46} % flags -\fetdef\eighthflag{45} -\fetdef\sixteenthflag{46} -\fetdef\thirtysecondflag{47} -\fetdef\sixtyfourthflag{48} -\fetdef\deighthflag{49} -\fetdef\dsixteenthflag{50} -\fetdef\dthirtysecondflag{51} -\fetdef\dsixtyfourthflag{52} +\fetdef\eighthflag{47} +\fetdef\sixteenthflag{48} +\fetdef\thirtysecondflag{49} +\fetdef\sixtyfourthflag{50} +\fetdef\deighthflag{51} +\fetdef\dsixteenthflag{52} +\fetdef\dthirtysecondflag{53} +\fetdef\dsixtyfourthflag{54} % clefs -\fetdef\altoclef{53} -\fetdef\caltoclef{54} -\fetdef\bassclef{55} -\fetdef\cbassclef{56} -\fetdef\violinclef{57} -\fetdef\cviolinclef{58} +\fetdef\altoclef{55} +\fetdef\caltoclef{56} +\fetdef\bassclef{57} +\fetdef\cbassclef{58} +\fetdef\violinclef{59} +\fetdef\cviolinclef{60} diff --git a/tex/feta26.tex b/tex/feta26.tex index a8d47ee860..71ac49c793 100644 --- a/tex/feta26.tex +++ b/tex/feta26.tex @@ -54,25 +54,27 @@ \fetdef\downbow{39} \fetdef\turn{40} \fetdef\trill{41} -\fetdef\pedalheel{42} -\fetdef\pedaltoe{43} -\fetdef\flageolet{44} +\fetdef\upedalheel{42} +\fetdef\dpedalheel{43} +\fetdef\upedaltoe{44} +\fetdef\dpedaltoe{45} +\fetdef\flageolet{46} % flags -\fetdef\eighthflag{45} -\fetdef\sixteenthflag{46} -\fetdef\thirtysecondflag{47} -\fetdef\sixtyfourthflag{48} -\fetdef\deighthflag{49} -\fetdef\dsixteenthflag{50} -\fetdef\dthirtysecondflag{51} -\fetdef\dsixtyfourthflag{52} +\fetdef\eighthflag{47} +\fetdef\sixteenthflag{48} +\fetdef\thirtysecondflag{49} +\fetdef\sixtyfourthflag{50} +\fetdef\deighthflag{51} +\fetdef\dsixteenthflag{52} +\fetdef\dthirtysecondflag{53} +\fetdef\dsixtyfourthflag{54} % clefs -\fetdef\altoclef{53} -\fetdef\caltoclef{54} -\fetdef\bassclef{55} -\fetdef\cbassclef{56} -\fetdef\violinclef{57} -\fetdef\cviolinclef{58} +\fetdef\altoclef{55} +\fetdef\caltoclef{56} +\fetdef\bassclef{57} +\fetdef\cbassclef{58} +\fetdef\violinclef{59} +\fetdef\cviolinclef{60} diff --git a/tex/lily-ps-defs.tex b/tex/lily-ps-defs.tex index cab0aaa82c..78933d0c4b 100644 --- a/tex/lily-ps-defs.tex +++ b/tex/lily-ps-defs.tex @@ -23,13 +23,12 @@ % transplant a TeX dimension into the PS output. \def\PSsetTeXdimen#1{\expandafter\special{! /#1 (\the\csname #1\endcsname) deftexdimen}} -\def\turnOnPostScript{ +\def\turnOnPostScript{% \def\embeddedps##1{% % This sets CTM so that you get to the currentpoint % by executing a 0 0 moveto \special{ps: @beginspecial @setspecial ##1 @endspecial} } - % % width, slope, height % @@ -60,8 +59,7 @@ def def } def } - - +% \PSsetTeXdimen{staffrulethickness} \PSsetTeXdimen{staffheight} \special{! % @@ -164,7 +162,7 @@ def -\def\turnOnExperimentalFeatures{ +\def\turnOnExperimentalFeatures{% % draw a slur in embedded postscript \special{ps: }} diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex index 8a03396e18..7a84124155 100644 --- a/tex/lilyponddefs.tex +++ b/tex/lilyponddefs.tex @@ -2,10 +2,12 @@ %% include file for LilyPond %% %% this file defines various macros to accomodate lilypond output - +%% +%% let's not make par before endinput +% % TeXbook ex 7.7 \def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax} - +% % skip if included already \def\SkipLilydefs{\endinput} \ifundefined{EndLilyPondOutput} @@ -13,7 +15,7 @@ \def\SkipLilydefs{} \fi \SkipLilydefs - +% \ifundefined{mudelacopyright} \def\mudelacopyright{\copyright\ \number\year} \fi -- 2.39.2