summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHan-Wen Nienhuys <hanwen@xs4all.nl>1998-01-27 19:26:37 +0100
committerHan-Wen Nienhuys <hanwen@xs4all.nl>1998-01-27 19:26:37 +0100
commit745b9d0980d8811783e4fe62380363d05fd6140c (patch)
treeaf42072831e35ef7d7b2cb188d0f25cfc158dd7f
parentb3735dc71a2d69d87a52fdc363cdef3039c4e325 (diff)
release: 0.1.42
-rw-r--r--AUTHORS.text4
-rw-r--r--Documentation/Makefile2
-rw-r--r--Documentation/faq.pod29
-rw-r--r--Documentation/internals.pod2
-rw-r--r--Documentation/language.pod4
-rw-r--r--Documentation/lilypond.pod2
-rw-r--r--Documentation/links.pod4
-rw-r--r--Documentation/literature.pod12
-rw-r--r--Documentation/ly2dvi.pod44
-rw-r--r--Documentation/other-packages.pod21
-rw-r--r--Documentation/out/dummy.dep0
-rw-r--r--INSTALL.text12
-rw-r--r--NEWS24
-rw-r--r--TODO12
-rw-r--r--VERSION2
-rw-r--r--bin/clean-fonts.sh5
-rw-r--r--bin/convert-mudela.pl7
-rw-r--r--bin/ly2dvi.sh527
-rw-r--r--bin/make-website.py31
-rw-r--r--bin/out/dummy.dep0
-rw-r--r--flower/TODO1
-rw-r--r--flower/include/dictionary.hh15
-rw-r--r--flower/include/libc-extension.hh2
-rw-r--r--flower/include/out/dummy.dep0
-rw-r--r--flower/out/dummy.dep0
-rw-r--r--flower/test/out/dummy.dep0
-rw-r--r--init/english.ly13
-rw-r--r--init/engraver.ly2
-rw-r--r--init/feta20.ly10
-rw-r--r--init/italian.ly49
-rw-r--r--init/lily-init.ly2
-rw-r--r--init/out/dummy.dep0
-rw-r--r--init/table20.ly3
-rw-r--r--input/beams.ly2
-rw-r--r--input/cadenza.ly2
-rw-r--r--input/collisions.ly2
-rw-r--r--input/coriolan-alto.ly2
-rw-r--r--input/font-body.ly2
-rw-r--r--input/font.ly4
-rw-r--r--input/font16.ly2
-rw-r--r--input/gallina.ly2
-rw-r--r--input/gourlay.ly46
-rw-r--r--input/keys.ly2
-rw-r--r--input/kortjakje.ly2
-rw-r--r--input/multi.ly2
-rw-r--r--input/out/dummy.dep0
-rw-r--r--input/pedal.ly2
-rw-r--r--input/rhythm.ly2
-rw-r--r--input/scales.ly2
-rw-r--r--input/scripts.ly2
-rw-r--r--input/scsii-menuetto.ly2
-rw-r--r--input/sleur.ly2
-rw-r--r--input/slurs.ly2
-rw-r--r--input/spacing.ly2
-rw-r--r--input/standchen-16.ly2
-rw-r--r--input/standchen-20.ly2
-rw-r--r--input/standchen.ly44
-rw-r--r--input/standje.ly135
-rw-r--r--input/stem.ly2
-rw-r--r--input/toccata-fuga-E.ly2
-rw-r--r--input/twinkle-pop.ly2
-rw-r--r--input/twinkle.ly2
-rw-r--r--input/wtk1-fugue1.ly2
-rw-r--r--input/wtk1-fugue2.ly2
-rw-r--r--input/wtk1-prelude1.ly2
-rw-r--r--lib/include/out/dummy.dep0
-rw-r--r--lib/out/dummy.dep0
-rw-r--r--lily/VERSION2
-rw-r--r--lily/beam-grav.cc81
-rw-r--r--lily/include/beam-grav.hh1
-rw-r--r--lily/include/lily-proto.hh4
-rw-r--r--lily/include/lookup.hh1
-rw-r--r--lily/include/musical-request.hh16
-rw-r--r--lily/include/my-lily-parser.hh2
-rw-r--r--lily/include/out/dummy.dep0
-rw-r--r--lily/include/plet-swallow-engraver.hh28
-rw-r--r--lily/include/text-def.hh4
-rw-r--r--lily/include/text-spanner.hh2
-rw-r--r--lily/lexer.l10
-rw-r--r--lily/midi-def.cc2
-rw-r--r--lily/musical-request.cc14
-rw-r--r--lily/my-lily-lexer.cc1
-rw-r--r--lily/my-lily-parser.cc74
-rw-r--r--lily/out/dummy.dep0
-rw-r--r--lily/parser.y66
-rw-r--r--lily/plet-swallow-engraver.cc21
-rw-r--r--lily/text-spanner.cc1
-rw-r--r--make/Targets.make5
-rw-r--r--make/lelievijver.lsm8
-rw-r--r--make/lilypond.lsm8
-rw-r--r--make/lilypond.spec6
-rw-r--r--make/out/dummy.dep0
-rw-r--r--mf/Makefile4
-rw-r--r--mf/out/dummy.dep0
-rw-r--r--mi2mu/include/out/dummy.dep0
-rw-r--r--mi2mu/mudela-item.cc7
-rw-r--r--mi2mu/mudela-stream.cc2
-rw-r--r--mi2mu/out/dummy.dep0
-rw-r--r--out/dummy.dep0
-rw-r--r--tex/lily-ps-defs.tex20
-rw-r--r--tex/out/dummy.dep0
101 files changed, 853 insertions, 661 deletions
diff --git a/AUTHORS.text b/AUTHORS.text
index ed25a63d43..b2cc8a8a41 100644
--- a/AUTHORS.text
+++ b/AUTHORS.text
@@ -61,7 +61,7 @@ CCCCOOOONNNNTTTTRRRRIIIIBBBBUUUUTTTTOOOORRRRSS
-5/Jan/98 LilyPond 0.1.41 1
+5/Jan/98 LilyPond 0.1.42 1
@@ -127,6 +127,6 @@ AUTHORS(1) LilyPond documentation AUTHORS(1)
-5/Jan/98 LilyPond 0.1.41 2
+5/Jan/98 LilyPond 0.1.42 2
diff --git a/Documentation/Makefile b/Documentation/Makefile
index 4da45d58b0..132c161c0b 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -59,6 +59,8 @@ include $(depth)/make/Rules.make
localclean:
rm -f $(TEXTFILES) $(HTMLFILES) $(GROFFFILES)
+ rm -f $(outdir)/* # clean the make-website stuff
+ rm -f $(outdir)/docxx/* # clean the make-website stuff
MAN1FILES = lilypond convert-mudela mi2mu mudela-book
MAN1GROFF = $(addprefix $(outdir)/, $(addsuffix .1,$(MAN1FILES)))
diff --git a/Documentation/faq.pod b/Documentation/faq.pod
index efe7fd548c..76ad9e5ddb 100644
--- a/Documentation/faq.pod
+++ b/Documentation/faq.pod
@@ -55,18 +55,24 @@ content in Mudela)
We're not sure on leaving out this feature. If you think this is a
good idea, please let us know.
-Be warned we will I<not> allow you to leave out the C<#> if the note
-already has an accidental, or if the key has a C-sharp. We won't allow
- c# c % no way!
+Q: Why do I have to type the accidentals to the note if I specified them?
-in stead of:
+A: Take this example
cis cis
- #c #c
-Why, you might ask? Because independently of how it was written, you
-would say that you are playing and reading "two C-sharp" notes.
+Independently of how it was written and what the current key was, you
+would say that you are playing and reading "two C-sharp" notes. We
+have tried to make the language somewhat context-free. Of course
+sheet music is not context-free. Unfortunately, sheet music is also 2
+dimensional, and ASCII is not.
+
+Technically it would be feasible to have the Interpreting phase do
+tricky things to add (or leave out) the accidentals, but we think that
+it is impractical: it hampers the readability and portability of your
+source, since you need LilyPond to fill in the details and actually
+make sense of it.
Q: What is C<cis> anyway
@@ -225,7 +231,7 @@ Q: Can I join in on LilyPond development? How do I do this?
A: LilyPond development is open for anyone who wants to join. We try
to use a Bazaar style development model for LilyPond, see
-http://locke.ccil.org/~esr/writing/cathedral.html. This means:
+http://locke.ccil.org/~esr/writings/cathedral.html. This means:
frequent releases, everyone can send in a patch or do suggestions and
all development discussions are public.
@@ -257,20 +263,20 @@ or
diff -urN old-directory/ new-directory/ > patch
-Alternatively, you can use bin/make-patch.py
+Alternatively, you can use F<bin/make-patch.py>. Don't forget to put
+in your name and e-mail address.
Q: How do I learn the C++ code?
A: The entry point is in C<main()>. Good luck. :-)
-Seriously, read, reread and reread lilygut and CodingStyle, and
+Seriously, read, reread and reread internals and CodingStyle, and
just start anywhere.
Anywhere? Well, most of the comment doco are in the header files, so
your best bet would be C<less lily/include/*.hh>. Some of the most
important data-structures are to be found in:
- - p-col.hh
- *request.hh
- engraver.hh
- performer.hh
@@ -323,6 +329,7 @@ A: Your \score should include a \midi block, eg.
\output "myfile.mid";
\tempo 4=70;
}
+ }
The B<-M> option was added to LilyPond because processing the \paper
block is so slow.
diff --git a/Documentation/internals.pod b/Documentation/internals.pod
index 4d174f1e63..c3653bc51d 100644
--- a/Documentation/internals.pod
+++ b/Documentation/internals.pod
@@ -1,6 +1,6 @@
=head1 NAME
-LilyGuts - doco to the internals of GNU LilyPond
+LilyPond internals - doco to the internals of GNU LilyPond
=head1 DESCRIPTION
diff --git a/Documentation/language.pod b/Documentation/language.pod
index f56947f09b..0757778d80 100644
--- a/Documentation/language.pod
+++ b/Documentation/language.pod
@@ -15,12 +15,8 @@ take out an old version of lilypond]
=head1 Decisions (Sat 1997-3-15, dommelpijpje no21)
-
-
-
\extract{ \from 2:3*4 \to 5 oboe }
-
=head1 THOUGHTS
=head2 Typing
diff --git a/Documentation/lilypond.pod b/Documentation/lilypond.pod
index f735161a52..20a0e0b436 100644
--- a/Documentation/lilypond.pod
+++ b/Documentation/lilypond.pod
@@ -227,7 +227,7 @@ Lots of them. See F<TODO> and F<BUGS>
=over 4
-=item lilygut
+=item internals
On technical details of LilyPond
diff --git a/Documentation/links.pod b/Documentation/links.pod
index e6444f8ef5..80757ffed3 100644
--- a/Documentation/links.pod
+++ b/Documentation/links.pod
@@ -88,7 +88,9 @@ mailing list have been setup:
A moderated list for information on the GNU Music project, to
subscribe: send mail with subject "subscribe" to
-info-gnu-music-request@gnu.org
+info-gnu-music-request@gnu.org. As this list is moderated, normal
+people should ask to drl@gnu.org or hanwen@stack.nl to forward
+announces instead of sending it to info-gnu-music@gnu.org
=item help-gnu-music@gnu.org
diff --git a/Documentation/literature.pod b/Documentation/literature.pod
index 9e8f12f4b2..4e6be19736 100644
--- a/Documentation/literature.pod
+++ b/Documentation/literature.pod
@@ -29,10 +29,10 @@ Association of the United States Inc., 1993.
Ted Ross. ``Teach yourself the art of music engraving and processing''
(3rd edition). Hansen House, Miami Beach, FLorida.
-[This is about engraving, i.e. the real thing with metal plates. It
-contains directions on good typesetting, but the sections reproduction
-technicalities and history are interesting. Especially the section on
-Music Typewriters is amusing HWN]
+[This is about engraving, i.e. professional typesetting. It contains
+directions on good typesetting, but the sections on reproduction
+technicalities, how to use pens and history are interesting.
+Especially the section on Music Typewriters is amusing HWN]
Gardner Read. ``Modern Rhythmic Notation.'' Indiana University Press,
1978.
@@ -307,10 +307,6 @@ DARMS,
enigma,
-SCORE,
-
-
-
=head1 AUTHORS
References and comments contributed by Han-Wen Nienhuys (HWN), Miguel
diff --git a/Documentation/ly2dvi.pod b/Documentation/ly2dvi.pod
new file mode 100644
index 0000000000..6a4767381f
--- /dev/null
+++ b/Documentation/ly2dvi.pod
@@ -0,0 +1,44 @@
+=head1 NAME
+
+ly2dvi - convert mudela to DVI
+
+=head1 SYNOPSIS
+
+ ly2dvi file[.ly]
+
+=head1 DESCRIPTION
+
+ly2dvi is a script that will setup LaTeX and TeX for you to ...
+
+=head1 OPTIONS
+
+=over 5
+
+=item B<--help>
+
+give help
+
+=item .....
+
+=back
+
+=head1 SOMETHING
+
+=head1 ENVIRONMENT
+
+=head1 FILES
+
+F</etc/papersize> contains ...
+
+=head1 SEE ALSO
+
+lilypond(1),
+
+=head1 AUTHOR
+
+JAF
+
+=head1 BUGS
+
+Does not handle margins properly
+
diff --git a/Documentation/other-packages.pod b/Documentation/other-packages.pod
index d1aad66d5c..7a4b44ac52 100644
--- a/Documentation/other-packages.pod
+++ b/Documentation/other-packages.pod
@@ -130,7 +130,18 @@ name.)
=item Finale
-=item Score
+=item Score, http://www.ymusic.com/Score
+
+Werner Lemberg <sx0005@sx2.hrz.uni-dortmund.de>
+writes to me: I consider SCORE as the best program for
+typesetting classical music. [..] the price is quite high (about US$
+1000) [..] It has a graphical interface but to get all out of the
+program you have to learn a 400 page manual almost by heart because
+you'll change most features by inputting parameters (up to 20 for some
+items) on a command line. Expect three months to master SCORE :-)
+
+
+
=item Personal Composer
@@ -152,10 +163,10 @@ Shareware.
=item Amadeus, Jerker.Elsgard@abc.se
-Professional and expensive (DM 4000,--) engraving. Designed as a
-batch program (like LilyPond). It is aimed at publishers. Its history
-is more than fifteen years and Amadeus has been running under
-different Unix clones. It uses MIDI-keyboard input
+Jerker Elsgard writes: professional and expensive (DM 4000,--)
+engraving. Designed as a batch program (like LilyPond). It is aimed
+at publishers. Its history is more than fifteen years and Amadeus has
+been running under different Unix clones. It uses MIDI-keyboard input
=back
diff --git a/Documentation/out/dummy.dep b/Documentation/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/Documentation/out/dummy.dep
diff --git a/INSTALL.text b/INSTALL.text
index d0d7ea2626..53587f1d31 100644
--- a/INSTALL.text
+++ b/INSTALL.text
@@ -61,7 +61,7 @@ RRRREEEECCCCOOOOMMMMMMMMEEEENNNNDDDDEEEEDDDD
-11/Jan/98 LilyPond 0.1.41 1
+11/Jan/98 LilyPond 0.1.42 1
@@ -127,7 +127,7 @@ CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRIIIINNNNGGGG a
-11/Jan/98 LilyPond 0.1.41 2
+11/Jan/98 LilyPond 0.1.42 2
@@ -193,7 +193,7 @@ INSTALL(1) LilyPond documentation INSTALL(1)
-11/Jan/98 LilyPond 0.1.41 3
+11/Jan/98 LilyPond 0.1.42 3
@@ -259,7 +259,7 @@ EEEEXXXXAAAAMMMMPPPPLLLLEEEE
-11/Jan/98 LilyPond 0.1.41 4
+11/Jan/98 LilyPond 0.1.42 4
@@ -325,7 +325,7 @@ MMMMUUUUSSSSIIIIXXXXTTTTEEEEXXXX
-11/Jan/98 LilyPond 0.1.41 5
+11/Jan/98 LilyPond 0.1.42 5
@@ -391,6 +391,6 @@ AAAAUUUUTTTTHHHHOOOORRRRSSSS
-11/Jan/98 LilyPond 0.1.41 6
+11/Jan/98 LilyPond 0.1.42 6
diff --git a/NEWS b/NEWS
index b00a6f01e3..a9c9c7c770 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,27 @@
+pl 42
+ - ly2dvi 0.5 (JAF)
+ - italian.ly (thanks, Paolo)
+ - bf: first \mudelapaper output (BS)
+ - bf: cathedral + bazaar URL (thanks, Barrie)
+ - bf: libc-extension.hh (AO)
+
+pl 41.jcn4
+ - plet brackets (always) in ps (only)
+ - Plet_spanner derives from bow
+ - bf: mf/Makefile: let %.tex %.ly depend on %.mf,
+ iso non-distributed %.log
+ - mi2mu mudela 0.1.8
+ - bit better plet number placement
+ - handier plet syntax: [2/3 c8 c c ]1/1 and \[2/3 c2 c c \]
+ - Plet_swallow_engraver for lyrics
+ - bit better plet number placement (NOT)
+ - new plet syntax: combined beam and plet open
+ - more standje.ly
+ - new plet syntax: start: \plet2/3 stop: \telp1/1
+ - Plet_req, Plet_engraver; removed plet stuff from beam
+
+******
+jan 20
pl 41
- warn for score with multiple Music blocks
- bf: \plet (MB)
diff --git a/TODO b/TODO
index f62af6ca90..3219d2897d 100644
--- a/TODO
+++ b/TODO
@@ -7,6 +7,12 @@ Most of the items are marked in the code as well, with full explanation.
grep for TODO and ugh/ugr
0.2:
+ * use kpsepath to find all TeX dirs
+ - configure.in
+ - clean-fonts.sh
+
+ * check for abs()
+
* forced breakpoints
* --metafont
@@ -28,6 +34,9 @@ grep for TODO and ugh/ugr
* LILYSOURCEDIR
* documentation
+ - info?
+ - LaTeX?
+ - more manpages?
* naming Mozarella, Madeira, Muella?
@@ -37,6 +46,7 @@ grep for TODO and ugh/ugr
STUFF
+
* give Items/Spanners access to unbroken originals
* scoping for properties
@@ -169,6 +179,8 @@ languages:
- text
- slur start/end
+ * cautionary accidental
+
* Output an output format independent (ofi) typeset file; and
make ofi2 TeX, MusixTex, Display PostScript, PostScript,
Ascii... interpreters. (difficult)
diff --git a/VERSION b/VERSION
index 11280fe443..5617d6b5ef 100644
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
TOPLEVEL_MAJOR_VERSION = 0
TOPLEVEL_MINOR_VERSION = 1
-TOPLEVEL_PATCH_LEVEL = 41
+TOPLEVEL_PATCH_LEVEL = 42
TOPLEVEL_MY_PATCH_LEVEL =
# use the above to send patches, always empty for released version:
diff --git a/bin/clean-fonts.sh b/bin/clean-fonts.sh
index 3421ca41e8..fc72545334 100644
--- a/bin/clean-fonts.sh
+++ b/bin/clean-fonts.sh
@@ -7,10 +7,7 @@ case $# in
WHAT=$1;;
esac
-if [ X$LILYPOND_SOURCEDIR = X ];
-then
- LILYPOND_SOURCEDIR=..
-fi
+# should use kpsepath
if [ -d /var/lib/texmf ]; then
TEXDIR=/var/lib/texmf
diff --git a/bin/convert-mudela.pl b/bin/convert-mudela.pl
index 7c26746870..e10af3b077 100644
--- a/bin/convert-mudela.pl
+++ b/bin/convert-mudela.pl
@@ -153,6 +153,12 @@ sub convert_0_1_6_to_0_1_7
}
}
+sub convert_0_1_7_to_0_1_8
+{
+ s/\\plet *1 *\/ *1 *;/\\]/;
+ s/\\plet *([1-9][0-9]*) *\/ *([2-9][0-9]*) *;/\\[$1\/$2/;
+}
+
###############################################################
sub last_conversion
@@ -200,6 +206,7 @@ my %minor_conversions = ("0.0.50" => \&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
);
diff --git a/bin/ly2dvi.sh b/bin/ly2dvi.sh
index 9468401c62..9b69a21d80 100644
--- a/bin/ly2dvi.sh
+++ b/bin/ly2dvi.sh
@@ -8,12 +8,58 @@
# Original LaTeX file made by Mats Bengtsson, 17/8 1997
#
-VERSION="0.3.hwn1"
+VERSION="0.5"
IDENTIFICATION="lytodvi.sh $VERSION"
NOW=`date`
echo "$IDENTIFICATION" 1>&2
# NEWS
+# 0.5.hwn1
+# - do tee of output.
+# 0.5
+# - More useful ("two-level") debug.
+# - The Q&D hack to find file names and not handling \include
+# is replaced by grabbing output file names from Lilypond.
+# = Detects multiple output files - adds them when running
+# LaTeX.
+# - Works with multiple input files - no matter if they are
+# (a mix of) input to or output from Lilypond.
+#
+#TODO
+# - Still no margins handling.
+# - We have to discuss how to handle multiple output files
+# from Lilypond - 'ly2dvi standchen' gives a rather odd
+# result....
+
+# 0.4.1
+# - Always exit after printing help info
+# 0.4
+# - Changes to ensure for more strict grep'ing of parameters
+# Thanks to from G.B.Stott@bolton.ac.uk
+# - More efficient use of sed -e 's///' -e 's///'
+# Thanks to Johan Vromans <jvromans@squirrel.nl> and GBS
+# - Ask tex for location of titledefs.tex (Thanks to JV)
+# - Accept only exact match of "\def\mudelacomposer{"
+# (or whatever mudela* defined in titledefs.tex)
+# - Even more efficient use of sed (Thanks to JV)
+# - Default file name for single output file implemented.
+# - Moved help into function - finally included from 0.1.jcn1
+#
+#TODO
+# - Still doesn't handle \include
+# - The Q&D for finding output file name from the sequence of
+# \paper \output \midi \output really needs to be looked at.
+# I have improved it a lot, but it's only capable of finding
+# one (the last) file name.
+# Well, I have to rewrite this entirely to handle \include,
+# then I can fix it.
+# - Still no margins handling.
+#
+#WARNING
+# - Some lines of output from lilypond do NOT start
+# at first character position, therefore I have removed "^"
+# in sed'ing and grep'ing.
+
# 0.3.hwn1
# - add "Creator: " line to output
#
@@ -48,23 +94,39 @@ echo "$IDENTIFICATION" 1>&2
# - moved help into function
#
-# Exit value, when needed
+# print usage
#
-EXIT=0
+help() {
+ cat << EOF
+Generate dvi file from mudela or lilypond output
+Usage: $0 [options] file[s]
+
+Options:
+ -D, --debug set debug mode
+ -h, --help this help text
+ -k, --keep keep LaTeX file
+ -l, --language= give LaTeX language (babel)
+ -p, --papersize= give LaTeX papersize (eg. a4paper)
+ files may be (a mix of) input to or output from lilypond(1)
+EOF
+}
#
# Keywords defined in titledefs.tex
-# Isn't there a way to ask LaTeX for the location of titledefs.tex?
#
-TF=/usr/lib/texmf/tex/lilypond/titledefs.tex
+TF=`kpsewhich -n tex tex titledefs.tex`
+if [ -n $TF ]
+then
+ TF=/usr/lib/texmf/tex/lilypond/titledefs.tex
+fi
MU_DEF=""
if [ -f $TF ]
then
MU_DEF=`egrep "^.newcommand...mudela" $TF | \\
- sed -e s/^.newcommand...//g | sed -e "s/\\}.*$//"`
+ sed -e 's/^.newcommand...//' -e 's/\\}.*$//'`
fi
-if [ "$MU_DEF" = "" ]
+if [ -z "$MU_DEF" ]
then
MU_DEF="mudelatitle mudelasubtitle mudelacomposer \
mudelaarranger mudelainstrument"
@@ -73,7 +135,6 @@ fi
#
# debugging
#
-# debug_echo=echo
debug_echo=true
#
@@ -93,10 +154,15 @@ do
$debug_echo "arg: \`$OPTARG'"
case $O in
D )
- set -x
+ if [ $debug_echo = echo ]
+ then
+ set -x
+ fi
+ debug_echo=echo
;;
h )
- HELP=Y
+ help;
+ exit 0
;;
k )
KEEP=Y
@@ -108,14 +174,16 @@ do
PSZ=$OPTARG
;;
\? )
- HELP=Y
+ help;
+ exit -1
;;
# a long option!
-)
$debug_echo "long option: \`$OPTARG'"
case "$OPTARG" in
h*|-h*)
- HELP=Y
+ help;
+ exit 0
;;
k*|-k*)
KEEP=Y
@@ -127,12 +195,16 @@ do
PSZ=`echo $OPTARG | sed -e s/"^.*="//`
;;
D*|-D*)
- set -x;
+ if [ $debug_echo = echo ]
+ then
+ set -x
+ fi
+ debug_echo=echo
;;
*|-*)
echo $0": illegal option -- "$OPTARG;
- EXIT=-1;
- HELP=Y
+ help;
+ exit -1
;;
esac
esac
@@ -141,269 +213,165 @@ shift `expr $OPTIND - 1`
#
# Input file name
#
-if [ "$HELP" != "Y" ]
+if [ "$1" = "" ]
then
- if [ "$1" = "" ]
- then
- cat << EOF
-
-$0 - no input file name given
-EOF
- EXIT=1
- HELP=Y
- fi
+ help
+ $debug_echo $IDENTIFICATION": No input file name given"
+ exit 1
fi
-GF=$1
#
-# Check if input file exists...
-#
-if [ "$HELP" != "Y" ]
-then
+for GF in $*
+do
+ #
+ # Check if input file exists...
+ #
if [ ! -f $GF ]
then
- GF=$1.ly
+ GF=$GF.ly
if [ ! -f $GF ]
then
- cat << EOF
-
-$0 - input file $GF not found
-EOF
- EXIT=2
- HELP=Y
+ $debug_echo $IDENTIFICATION": Input file "$GF" not found"
+ exit 2
fi
fi
-fi
-
-#
-# print usage
-#
-#help() {
-if [ "$HELP" = "Y" ]
-then
- cat << EOF
-Generate dvi file from mudela or lilypond output
-Usage: $0 [options] file
-
-Options:
- -D, --debug set debug mode
- -h, --help this help text
- -k, --keep keep LaTeX file
- -l, --language= give LaTeX language (babel)
- -p, --papersize= give LaTeX papersize (eg. a4paper)
-
- file may be input to or output from lilypond(1)
-EOF
- exit $EXIT
-fi
-#}
-
-#
-# More files?
-#
-shift 1
-
-#
-# Check whether input file is the input to or output from lilypond
-#
-L1=`head -1 $GF`
-OP=`echo $L1 | grep "^% Creator: GNU LilyPond"`
-if [ "$OP" != "" ]
-then
#
- # OK - it's the output from lilypond.
- # Get lilypond source file name
+ # Check whether the file is input to or output from lilypond
#
- OF=$GF
- IFL=`grep mudelafilename $OF`
- if [ "$IFL" != "" ]
+ L1=`head -1 $GF`
+ OP=`echo $L1 | grep "^% Creator: GNU LilyPond"`
+ if [ -n "$OP" ]
then
- IF=`echo $IFL | sed -e s/^.*{// | sed -e s/"}*.$"//`
#
- # Check if source file exists
+ # OK - it's the output from lilypond.
+ #
+ # Get lilypond source file name
#
- if [ ! -f $IF ]
+ OF=$GF
+ IFL=`grep mudelafilename $OF`
+ if [ "$IFL" != "" ]
then
- cat << EOF
-
-$0 - mudela file not found.
-
-EOF
+ IF=`echo $IFL | sed -e 's/.*{//' -e 's/}*.$//'`
+ #
+ # Check if source file exists
+ #
+ if [ ! -f $IF ]
+ then
+ $debug_echo $IDENTIFICATION": Mudela file not found."
+ TW=15.5cm
+ fi
+ else
+ $debug_echo $IDENTIFICATION": Mudela file name not found."
TW=15.5cm
fi
else
- cat << EOF
-
-$0 - mudela file name not found.
+ #
+ # I have to assume this is the lilypond input file
+ # Find output file name, if defined
+ #
+ IF=$GF
+ #
+ # Run lilypond
+ # Grab output file names
+ #
+ $debug_echo "lilypond "$IF
-EOF
- TW=15.5cm
+ lilypond $IF 2>&1 | tee /tmp/lilylog.$$
+ OF=`cat /tmp/lilylog.$$| egrep '^TeX output to ' | \\
+ sed -e 's/TeX output to//' -e 's/\.\.\.//'`
+ $debug_echo "==> "$OF
fi
-else
- #
- # I have to assume this is the lilypond input file
- # Find output file name, if defined
- #
- IF=$GF
- OFS=`egrep "paper|midi|output" $IF`
- OF1=`echo $OFS | sed -e s/".midi.*$"// | sed -e s/"^.*paper"//`
- if [ "$OF1" = "" ]
- then
- OF1=`echo $OFS | sed -e s/"^.*paper"// | sed -e s/".midi.*$"//`
- fi
- if [ "$OF1" = "" ]
- then
- OF=lelie.tex
- else
- OF2=`echo $OF1 | grep output`
- if [ "$OF2" = "" ]
- then
- OF=lelie.tex
- else
- OF=`echo $OF2 | sed -e "s/\\";.*$//" | sed -e "s/^.*\\"//"`
- fi
- if [ "$OF2" = "" ]
- then
- OF=lelie.tex
- fi
- fi
- #
- # Remove the output file, to avoid being misled by an old one
- #
-# if [ -f $OF ]
-# then
-# rm $OF
-# fi
- #
- # Run lilypond - exit if unsuccessfull
- #
- lilypond $IF || exit 3
#
# Check if output file is generated
#
- if [ ! -f $OF ]
- then
- cat << EOF
-
-$0 - hmm, I could not find the output file $OF
-
-EOF
- exit 4
- fi
-fi
-#
-# Find textwidth
-#
-if [ "$IF" != "" ]
-then
- if [ -f $IF ]
- then
- TWL=`grep linewidth $IF`
- TWS=`echo $TWL | grep -v "^%"`
- if [ "$TWS" != "" ]
+ for File in $OF
+ do
+ $debug_echo "--- "$File
+ if [ ! -f $File ]
then
- TW=`echo $TWS | sed -e s/^.*=// | sed -e s/";.*$"// | \\
- sed -e s/.mm/mm/ | sed -e s/.cm/cm/ | sed -e s/.p/p/`
- case $TW in
- *mm)
- ;;
- *cm)
- ;;
- *pt)
- ;;
- *)
- TW=$TW"pt"
- ;;
- esac
- else
- TW=15.5cm
+ $debug_echo $IDENTIFICATION": hmm, I could not find the output file "$File
+ exit 4
fi
- fi
-fi
-#
-# LaTeX file name
-#
-if [ "$KEEP" != "Y" ]
-then
- if [ "$TMP" = "" ]
- then
- TMP=/tmp
- fi
- if [ ! -d $TMP ]
- then
- cat << EOF
-
-$0 - temporary directory $TMP not found, set to /tmp
-
-EOF
- TMP=/tmp
- fi
-#
- BN=`basename $OF .tex`
- FN=$BN.$$
- LF=$TMP/$FN.tex
-else
- BN=`basename $OF .tex`
- FN=$BN.$$
- LF=$FN.tex
-fi
-#
-# Find if a paper size is defined
-#
-if [ "$PSZ" = "" ]
-then
- PSZ=`egrep ".def.mudelapapersize" $OF | \\
- sed -e s/.def.mudelapapersize// | \\
- sed -e s/^{// | sed -e s/}.*$//`
-fi
-
-if [ "$PSZ" != "" ]
-then
- PAPER="["$PSZ"]"
-fi
-
-#
-# Find if a language is defined
-#
-if [ "$LNG" = "" ]
-then
- LNG=`egrep ".def.mudelalanguage" $OF | \\
- sed -e s/.def.mudelalanguage// | \\
- sed -e s/^{// | sed -e s/}.*$//`
-fi
-if [ "$LNG" != "" ]
-then
- LLNG="\usepackage["$LNG"]{babel}"
-else
- LLNG="%"
-fi
-
-#
-# Find if a textwidth is defined
-#
-TWN=`egrep ".def.mudelapaperlinewidth" $OF | \\
- sed -e s/.def.mudelapaperlinewidth// | \\
- sed -e s/^{// | sed -e s/}.*$//`
-if [ "$TWN" != "" ]
-then
- TW=$TWN
- case $TW in
- *mm)
- ;;
- *cm)
- ;;
- *pt)
- ;;
- *)
- TW=$TW"pt"
- ;;
- esac
- $debug_echo "Text width = "$TW
-fi
-
-#
-# Write LaTeX file
-#
-cat << EOF > $LF
+ if [ -z "$FFile" ]
+ then
+ FFile=$File
+ #
+ # LaTeX file name
+ #
+ if [ "$KEEP" != "Y" ]
+ then
+ if [ "$TMP" = "" ]
+ then
+ TMP=/tmp
+ fi
+ if [ ! -d $TMP ]
+ then
+ $debug_echo $IDENTIFICATION": temporary directory "$TMP" not found, set to /tmp"
+ TMP=/tmp
+ fi
+ #
+ BN=`basename $FFile .tex`
+ FN=$BN.$$
+ LF=$TMP/$FN.tex
+ else
+ BN=`basename $FFile .tex`
+ FN=$BN.$$
+ LF=$FN.tex
+ fi
+ #
+ # Find:
+ # paper size (PSZ, overridden by command line option -p)
+ # language (LNG, overridden by command line option -l)
+ # textwidth
+ #
+ eval `sed -n \\
+ -e 's/\\\\def\\\\mudelapapersize{\([^}]*\).*$/fPSZ=\1;/p' \\
+ -e 's/\\\\def\\\\mudelalanguage{\([^}]*\).*$/fLNG=\1;/p' \\
+ -e 's/\\\\def\\\\mudelapaperlinewidth{\([^}]*\).*$/TWN=\1;/p' \\
+ $OF`
+ if [ "$PSZ" = "" ]
+ then
+ PSZ=$fPSZ
+ fi
+ if [ "$PSZ" != "" ]
+ then
+ PAPER="["$PSZ"]"
+ fi
+ #
+ if [ "$LNG" = "" ]
+ then
+ LNG=$fLNG
+ fi
+ if [ "$LNG" != "" ]
+ then
+ LLNG="\usepackage["$LNG"]{babel}"
+ else
+ LLNG="%"
+ fi
+
+ #
+ # Find textwidth
+ #
+ if [ "$TWN" != "" ]
+ then
+ TW=$TWN
+ case $TW in
+ *mm)
+ ;;
+ *cm)
+ ;;
+ *pt)
+ ;;
+ *)
+ TW=$TW"pt"
+ ;;
+ esac
+ $debug_echo "Text width = "$TW
+ fi
+
+ #
+ # Write LaTeX file
+ #
+ cat << EOF > $LF
% Creator: $IDENTIFICATION
% Automatically generated from $IF, $NOW
@@ -418,28 +386,31 @@ $LLNG
\input titledefs
\begin{document}
EOF
-#
-# Include \def\mudela-definitions
-#
-for L in $MU_DEF
-do
- LL=`grep ".def."$L $OF`
- if [ "$LL" != "" ]
- then
- LLL=`echo $LL | sed -e s/^.def.$L// | \\
- sed -e s/^{// | sed -e s/}.*$//`
- if [ "$LLL" != "" ]
- then
- echo '\'$L'{'$LLL'}%' >> $LF
- fi
- fi
-done
-#
-cat << EOF >> $LF
+ #
+ # Include \def\mudela-definitions
+ #
+ for L in $MU_DEF
+ do
+ LL=`egrep '^\\\\def.'$L'{' $OF`
+ if [ "$LL" != "" ]
+ then
+ LLL=`echo $LL | sed -e 's/}.*$//' -e 's/.*{//'`
+ if [ "$LLL" != "" ]
+ then
+ echo '\'$L'{'$LLL'}%' >> $LF
+ fi
+ fi
+ done
+ #
+ cat << EOF >> $LF
\makelilytitle
-\input{$OF}
EOF
-for EX in $*; do echo "\input{"$EX"}%" >> $LF; done
+ fi
+ cat << EOF >> $LF
+\input{$File}
+EOF
+ done
+done
cat << EOF >> $LF
\vfill\hfill{(\LilyIdString)}
\end{document}
@@ -448,14 +419,6 @@ EOF
# Run LaTeX
#
latex $LF || exit 5
-#latex $LF
-cat << EOF
-
-
-Take care - LaTeX exit value check temporarily omitted!
-
-
-EOF
#
# Rename dvi file
#
@@ -475,7 +438,7 @@ fi
#
cat << EOF
-$0 - dvi file name is $BN.dvi
+$IDENTIFICATION: dvi file name is $BN.dvi
EOF
# OK - finished
diff --git a/bin/make-website.py b/bin/make-website.py
index e0f8480ac1..8effeebe40 100644
--- a/bin/make-website.py
+++ b/bin/make-website.py
@@ -80,21 +80,22 @@ def my_system(cmds):
base="lilypond/";
examples=["twinkle-pop",
- "wtk1-fugue2",
- "standchen-16",
- "standchen-20",
- "wtk1-prelude1",
- "toccata-fuga-E",
- "scsii-menuetto",
- "cadenza",
- "gallina",
- "twinkle",
- "collisions",
- "font16",
- "font20",
- #"scales",
- "rhythm",
- "multi"]
+ "wtk1-fugue2",
+ "standchen-16",
+ "standchen-20",
+ "standje",
+ "wtk1-prelude1",
+ "toccata-fuga-E",
+ "scsii-menuetto",
+ "cadenza",
+ "gallina",
+ "twinkle",
+ "collisions",
+ "font16",
+ "font20",
+ #"scales",
+ "rhythm",
+ "multi"]
def gen_html():
print 'generating HTML'
diff --git a/bin/out/dummy.dep b/bin/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/bin/out/dummy.dep
diff --git a/flower/TODO b/flower/TODO
index 5468633cf7..e572af7954 100644
--- a/flower/TODO
+++ b/flower/TODO
@@ -3,7 +3,6 @@
* Unicode support in strings
* write a decent Dictionary
- - write a String_hash template
- write a Pointer_hash template
* Array::slice() upper too
diff --git a/flower/include/dictionary.hh b/flower/include/dictionary.hh
index 11bb27329b..87af9f9f7a 100644
--- a/flower/include/dictionary.hh
+++ b/flower/include/dictionary.hh
@@ -13,6 +13,21 @@
#include "string.hh"
#include "assoc.hh"
+/**
+ UGH: write a String_hash template,
+
+ SEE:
+
+ #include <search.h>
+
+ ENTRY *hsearch(ENTRY item, ACTION action);
+
+ int hcreate (unsigned nel);
+
+ void hdestroy (void);
+
+ (should be frobnified to allow multiple hashes)
+ */
template<class T>
class Dictionary : public Assoc<String, T>
{
diff --git a/flower/include/libc-extension.hh b/flower/include/libc-extension.hh
index 3f94a03a0e..975950d4bb 100644
--- a/flower/include/libc-extension.hh
+++ b/flower/include/libc-extension.hh
@@ -16,7 +16,7 @@ char* strnlwr (char* start_l ,int n);
char* strnupr (char* start_l, int n);
#if !HAVE_MEMMEM // GNU extension.
-char *memmem (Byte const * haystack, int haystack_len,
+Byte *memmem (Byte const * haystack, int haystack_len,
Byte const *needle, int needle_len);
#endif HAVE_MEMMEM
diff --git a/flower/include/out/dummy.dep b/flower/include/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/flower/include/out/dummy.dep
diff --git a/flower/out/dummy.dep b/flower/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/flower/out/dummy.dep
diff --git a/flower/test/out/dummy.dep b/flower/test/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/flower/test/out/dummy.dep
diff --git a/init/english.ly b/init/english.ly
deleted file mode 100644
index d876d29c6f..0000000000
--- a/init/english.ly
+++ /dev/null
@@ -1,13 +0,0 @@
-
-%
-% f = flat, s = sharp.
-%
-english_names = notenames {
- "cff" 0 -2 "cf" 0 -1 "c" 0 0 "cs" 0 1 "css" 0 2
- "dff" 1 -2 "df" 1 -1 "d" 1 0 "ds" 1 1 "dss" 1 2
- "eff" 2 -2 "ef" 2 -1 "e" 2 0 "es" 2 1 "ess" 2 2
- "fff" 3 -2 "ff" 3 -1 "f" 3 0 "fs" 3 1 "fss" 3 2
- "gff" 4 -2 "gf" 4 -1 "g" 4 0 "gs" 4 1 "gss" 4 2
- "aff" 5 -2 "af" 5 -1 "a" 5 0 "as" 5 1 "ass" 5 2
- "bff" 6 -2 "bf" 6 -1 "b" 6 0 "bs" 6 1 "bss" 6 2
-}
diff --git a/init/engraver.ly b/init/engraver.ly
index e8869c0de9..7553bd0cde 100644
--- a/init/engraver.ly
+++ b/init/engraver.ly
@@ -29,6 +29,7 @@ Voice = \translator {
\consists "Script_engraver";
\consists "Rhythmic_column_engraver";
\consists "Slur_engraver";
+ \consists "Plet_engraver";
\accepts "Thread";
}
@@ -68,6 +69,7 @@ Lyric_voice =
\consists "Lyric_engraver";
\consists "Line_group_engraver";
\consists "Beam_req_swallow_translator";
+ \consists "Plet_swallow_engraver";
}
Lyrics = \translator {
diff --git a/init/feta20.ly b/init/feta20.ly
index dcf020e145..b11fd20be0 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.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
+ "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
"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.12\pt 1.12\pt
+ "dot" "\\dot" -0.00\pt 2.25\pt -1.13\pt 1.13\pt
"repeatcolon" "\\repeatcolon" -0.00\pt 2.25\pt -2.50\pt 2.50\pt
}
"balls" = \table {
diff --git a/init/italian.ly b/init/italian.ly
new file mode 100644
index 0000000000..dd807abf22
--- /dev/null
+++ b/init/italian.ly
@@ -0,0 +1,49 @@
+%{
+ Common italian names for notes. "b" means flat (bemolle), "d" means sharp (diesis)
+ Adapted from dutch.ly.
+
+ English: a b c d e f g
+ Italian: la si do re mi fa sol
+
+ For french naming just change 'do' in 'ut'.
+%}
+
+% contributed by Paolo Zuliani <zuliap@easynet.it>
+
+\notenames {
+ dobb = \melodic_request { -1 0 -2 }
+ dob = \melodic_request { -1 0 -1 }
+ do = \melodic_request { -1 0 0 }
+ dod = \melodic_request { -1 0 1 }
+ dodd = \melodic_request { -1 0 2 }
+ rebb = \melodic_request { -1 1 -2 }
+ reb = \melodic_request { -1 1 -1 }
+ re = \melodic_request { -1 1 0 }
+ red = \melodic_request { -1 1 1 }
+ redd = \melodic_request { -1 1 2 }
+ mibb = \melodic_request { -1 2 -2 }
+ mib = \melodic_request { -1 2 -1 }
+ mi = \melodic_request { -1 2 0 }
+ mid = \melodic_request { -1 2 1 }
+ midd = \melodic_request { -1 2 2 }
+ fabb = \melodic_request { -1 3 -2 }
+ fab = \melodic_request { -1 3 -1 }
+ fa = \melodic_request { -1 3 0 }
+ fad = \melodic_request { -1 3 1 }
+ fadd = \melodic_request { -1 3 2 }
+ solbb = \melodic_request { -1 4 -2 }
+ solb = \melodic_request { -1 4 -1 }
+ sol = \melodic_request { -1 4 0 }
+ sold = \melodic_request { -1 4 1 }
+ soldd = \melodic_request { -1 4 2 }
+ labb = \melodic_request { -1 5 -2 }
+ lab = \melodic_request { -1 5 -1 }
+ la = \melodic_request { -1 5 0 }
+ lad = \melodic_request { -1 5 1 }
+ ladd = \melodic_request { -1 5 2 }
+ sibb = \melodic_request { -1 6 -2 }
+ sib = \melodic_request { -1 6 -1 }
+ si = \melodic_request { -1 6 0 }
+ sid = \melodic_request { -1 6 1 }
+ sidd = \melodic_request { -1 6 2 }
+}
diff --git a/init/lily-init.ly b/init/lily-init.ly
index 8b19863c64..97c252cbd9 100644
--- a/init/lily-init.ly
+++ b/init/lily-init.ly
@@ -1,6 +1,6 @@
% Toplevel initialisation file.
-\version "0.1.7";
+\version "0.1.8";
breve = \duration { -1 0 }
longa = \duration { -2 0 }
diff --git a/init/out/dummy.dep b/init/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/init/out/dummy.dep
diff --git a/init/table20.ly b/init/table20.ly
index b641adb469..73f4326504 100644
--- a/init/table20.ly
+++ b/init/table20.ly
@@ -12,6 +12,7 @@ table_twenty =
% index TeXstring, xmin xmax ymin ymax
"style" = \table {
+ "bold" "\setbold{%}" 0.0\pt 7.50\pt 0.0\pt 8.0\pt
"roman" "\settext{%}" 0.0\pt 7.5\pt 0.0\pt 10.0\pt
"italic" "\setitalic{%}" 0.0\pt 0.0\pt 0.0\pt 10.0\pt
"dynamic" "\setdynamic{%}" 0.0\pt 0.0\pt 0.0\pt 10.0\pt
@@ -19,7 +20,6 @@ table_twenty =
}
"dynamics" = \table {
-
"mf" "\dynmf"
"fff" "\dynfff"
"ff" "\dynff"
@@ -31,7 +31,6 @@ table_twenty =
"fp" "\dynfp"
"sf" "\dynsf"
"sfz" "\dynsfz"
-
}
"align" = \table {
"-1" "\leftalign{%}"
diff --git a/input/beams.ly b/input/beams.ly
index 64db731f8e..e821fb164b 100644
--- a/input/beams.ly
+++ b/input/beams.ly
@@ -7,7 +7,7 @@ copyright = "PD";
TestedFeatures = "beams and beamflags";
}
-\version "0.1.7";
+\version "0.1.8";
\score{
\melodic { \multi 3 <
diff --git a/input/cadenza.ly b/input/cadenza.ly
index 1b46d34740..a4e49199f6 100644
--- a/input/cadenza.ly
+++ b/input/cadenza.ly
@@ -13,7 +13,7 @@ Tested Features: cadenza mode
Ugh.. Wish we had grace notes.... It adds another dimension to this
piece of music. %}
-\version "0.1.7";
+\version "0.1.8";
cad = \melodic {
diff --git a/input/collisions.ly b/input/collisions.ly
index cf6c5ad39d..ac8d5db146 100644
--- a/input/collisions.ly
+++ b/input/collisions.ly
@@ -5,7 +5,7 @@ enteredby = "HWN,JCN";
copyright = "public domain";
Tested = "test the Collision resolution ";
}
-\version "0.1.7";
+\version "0.1.8";
diff --git a/input/coriolan-alto.ly b/input/coriolan-alto.ly
index 9585e1fb7d..317c4e9953 100644
--- a/input/coriolan-alto.ly
+++ b/input/coriolan-alto.ly
@@ -16,7 +16,7 @@ TestedFeatures:
% (maybe even sooner :-)
%
-\version "0.1.7";
+\version "0.1.8";
alto1 = \melodic{
\meter 4/4;
diff --git a/input/font-body.ly b/input/font-body.ly
index cfb563d364..a7dd41d964 100644
--- a/input/font-body.ly
+++ b/input/font-body.ly
@@ -1,4 +1,4 @@
-\version "0.1.7";
+\version "0.1.8";
FontBody= \melodic{
\octave c';
\bar "|:";
diff --git a/input/font.ly b/input/font.ly
index 7ec3ada723..c683dc7362 100644
--- a/input/font.ly
+++ b/input/font.ly
@@ -7,9 +7,9 @@ description = "This file tests the Feta music font";
% "(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "0.1.7";
+\version "0.1.8";
-\include "font-body.ly";
+\include "font-body.ly"
\score{
\paper{
% don't change this.
diff --git a/input/font16.ly b/input/font16.ly
index 42b4cfe103..d836e27edb 100644
--- a/input/font16.ly
+++ b/input/font16.ly
@@ -7,7 +7,7 @@ description = "This file tests the Feta music font";
% "(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "0.1.7";
+\version "0.1.8";
\include "font-body.ly"
\score{
diff --git a/input/gallina.ly b/input/gallina.ly
index 4f47a5cf1c..a45ce1d52f 100644
--- a/input/gallina.ly
+++ b/input/gallina.ly
@@ -38,7 +38,7 @@ part of the basso continuo --HWN
%}
-\version "0.1.7";
+\version "0.1.8";
vi1=\melodic{
\meter 4/4;
diff --git a/input/gourlay.ly b/input/gourlay.ly
index 70569448a8..26542f3b70 100644
--- a/input/gourlay.ly
+++ b/input/gourlay.ly
@@ -1,50 +1,10 @@
\header{
-enteredby jcn
-copyright PD
-TestedFeatures This file tests some nasty Gourlay spacings
-}
-
-\version "0.1.6";
-
-\score{
-% huh?
-% \multi 2 \melodic < \octave c'';
- \melodic \multi 2 < \octave c'';
- { \stemup; d2 d | d d | d4 d2. | }
- \octave c';
- % huh, plet broken?
-% { \stemdown; g4 g g g | \plet 2/3; g2 g2 g2 \plet 1/1; | g4. g8 g2 | }
- { \stemdown; g4 g g g | g2*2/3 g2*2/3 g2*2/3 | g4. g8 g2 | }
- >
- \paper{
- linewidth = 20.\cm;
- }
-}
-
-\score{
-% huh?
-% \multi 2 \melodic < \octave c'';
- \melodic \multi 2 < \octave c'';
- { \stemup; d2 d | d d | d4 d2. | }
- \octave c';
- % huh, plet broken?
-% { \stemdown; g4 g g g | \plet 2/3; g2 g2 g2 \plet 1/1; | g4. g8 g2 | }
- { \stemdown; g4 g g g | g2*2/3 g2*2/3 g2*2/3 | g4. g8 g2 | }
- >
- \paper{
- linewidth = 4.\cm;
- \output "lelie1.tex";
- }
-
-}
-
-\header{
enteredby = "jcn";
copyright = "PD";
TestedFeatures = "This file tests some nasty Gourlay spacings";
}
-\version "0.1.7";
+\version "0.1.8";
%{
@@ -56,9 +16,7 @@ This is taken from [Gourlay]'s paper on breaking lines
\melodic \multi 2 < \octave c'';
{ \stemup; d2 d | d d | d4 d2. | }
\octave c';
- % huh, plet broken?
-% { \stemdown; g4 g g g | \plet 2/3; g2 g2 g2 \plet 1/1; | g4. g8 g2 | }
- { \stemdown; g4 g g g | g2*2/3 g2*2/3 g2*2/3 | g4. g8 g2 | }
+ { \stemdown; g4 g g g | \[2/3 g2 g2 g2 \] | g4. g8 g2 | }
>
\paper{
linewidth = 4.\cm;
diff --git a/input/keys.ly b/input/keys.ly
index 05ec062c27..67ee8f5a91 100644
--- a/input/keys.ly
+++ b/input/keys.ly
@@ -1,4 +1,4 @@
-\version "0.1.7";
+\version "0.1.8";
blah = \melodic{
diff --git a/input/kortjakje.ly b/input/kortjakje.ly
index b370743280..25ed787784 100644
--- a/input/kortjakje.ly
+++ b/input/kortjakje.ly
@@ -11,7 +11,7 @@ copyright = "public domain";
Tested Features: example file with comments
%}
-\version "0.1.7";
+\version "0.1.8";
% the % is a comment.
diff --git a/input/multi.ly b/input/multi.ly
index d63ddb0ab5..0d8a890cca 100644
--- a/input/multi.ly
+++ b/input/multi.ly
@@ -10,7 +10,7 @@ Tested Features: \multi
%}
-\version "0.1.7";
+\version "0.1.8";
\score{
\melodic
diff --git a/input/out/dummy.dep b/input/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/input/out/dummy.dep
diff --git a/input/pedal.ly b/input/pedal.ly
index 33c736c3e8..d2a9c01c2a 100644
--- a/input/pedal.ly
+++ b/input/pedal.ly
@@ -24,7 +24,7 @@
% \lbheel \lbheel \lfheel \lftoe
% \rbheel \rbtoe \rfheel \rftoe
-\version "0.1.7";
+\version "0.1.8";
\score{
\melodic {
diff --git a/input/rhythm.ly b/input/rhythm.ly
index 8b6ecb031a..11569bf0f1 100644
--- a/input/rhythm.ly
+++ b/input/rhythm.ly
@@ -7,7 +7,7 @@ TestedFeatures = "multiple meters, beaming, unsynced bars, userdefd engravers";
-\version "0.1.7";
+\version "0.1.8";
ritme = \melodic{ %\octave ;
\partial 8;
diff --git a/input/scales.ly b/input/scales.ly
index a6b2b48367..3e715106f9 100644
--- a/input/scales.ly
+++ b/input/scales.ly
@@ -12,7 +12,7 @@ copyright = "public domain";
% scales with accents.
%
-\version "0.1.7";
+\version "0.1.8";
blah = \melodic {
\meter 6/8;
\octave 'c ;
diff --git a/input/scripts.ly b/input/scripts.ly
index ad6503efb7..7198bc1b83 100644
--- a/input/scripts.ly
+++ b/input/scripts.ly
@@ -1,5 +1,5 @@
-\version "0.1.7";
+\version "0.1.8";
blah = \melodic {
diff --git a/input/scsii-menuetto.ly b/input/scsii-menuetto.ly
index 363390eb8c..91c488de41 100644
--- a/input/scsii-menuetto.ly
+++ b/input/scsii-menuetto.ly
@@ -15,7 +15,7 @@ copyright = "public domain";
Tested Features:breaking algorithm, chords, multivoice, accents
%}
-\version "0.1.7";
+\version "0.1.8";
%% Stuff from MPP version
% \lefttitle{Menuetto}
diff --git a/input/sleur.ly b/input/sleur.ly
index bcb6e45846..d6e30d3b2f 100644
--- a/input/sleur.ly
+++ b/input/sleur.ly
@@ -5,7 +5,7 @@ TestedFeatures = "This file tests Feta embedded slurs"
"(Feta definitively is not an abbreviation of Font-En-TjA)";
}
-\version "0.1.7";
+\version "0.1.8";
shortlong = \melodic{
c4()c( c c |
diff --git a/input/slurs.ly b/input/slurs.ly
index caf87a3f4c..ef66c1e9e8 100644
--- a/input/slurs.ly
+++ b/input/slurs.ly
@@ -1,5 +1,5 @@
-\version "0.1.7";
+\version "0.1.8";
\score{
\melodic{\octave c';
diff --git a/input/spacing.ly b/input/spacing.ly
index 10bb206640..f92428fbcf 100644
--- a/input/spacing.ly
+++ b/input/spacing.ly
@@ -6,7 +6,7 @@ copyright = "public domain";
TestedFeatures = "This file tests various spacings";
}
-\version "0.1.7";
+\version "0.1.8";
multipart = \melodic{
\multi 3 <
diff --git a/input/standchen-16.ly b/input/standchen-16.ly
index d8966dfbde..8c0bda8e20 100644
--- a/input/standchen-16.ly
+++ b/input/standchen-16.ly
@@ -9,6 +9,6 @@ description = "A schubert song in 16 pt";
copyright = "public domain";
}
-\version "0.1.7";
+\version "0.1.8";
\include "standchen.ly"
diff --git a/input/standchen-20.ly b/input/standchen-20.ly
index ba4a3a043a..0f9dbee368 100644
--- a/input/standchen-20.ly
+++ b/input/standchen-20.ly
@@ -8,7 +8,7 @@ enteredby = "JCN";
copyright = "public domain";
description = "A schubert song in 20 pt";
}
-\version "0.1.7";
+\version "0.1.8";
% fool make-website
% \include "standchen.ly";
diff --git a/input/standchen.ly b/input/standchen.ly
index 04cbe817cb..73792caa2d 100644
--- a/input/standchen.ly
+++ b/input/standchen.ly
@@ -14,7 +14,7 @@ multiple \paper{}s in one \score
%}
\include "paper20.ly"
-\version "0.1.7";
+\version "0.1.8";
commands = \melodic{
\skip 2.*4;
@@ -54,9 +54,8 @@ melodie = \melodic{
%%8
f2 r4 |
%%9
-
< { a'4.() g' [2/3 g'( f' )e' ]1/1 }
- { cis'4. e'_"dolce" \plet 2/3; e' \plet 1/1; } > |
+ { cis'4. e'_"dolce" \[2/3 e' \] } > |
%%10
< f'2. d'2. > |
%%11
@@ -68,10 +67,7 @@ melodie = \melodic{
%%14
a2 r
< { d'() c'4. g [2/3 bes a g ]1/1 }
- { f \p () e4._"dolce" bes
- \plet 2/3; g
- \plet 1/1;
- } > |
+ { f \p () e4._"dolce" bes \[2/3 g \] } > |
%%16
< a2. f2. > |
%%17
@@ -351,16 +347,16 @@ tekstI = \lyric{
_ _ _
_ _ _
% 5
- [2/3 Lei- se8 ]1/1 fleh-4. en8
- [2/3 mei- ne8 ]1/1 Lie- der8 _8
- Durch4. die8 [2/3 Nacht zu8 ]1/1
+ \[2/3 Lei- se8 \] fleh-4. en8
+ \[2/3 mei- ne8 \] Lie- der8 _8
+ Durch4. die8 \[2/3 Nacht zu8 \]
dir;2 _
_ _ _
_ _ _
% 11
- [2/3 In den8 ]1/1 stil-4. len8
- [2/3 Hain her-8 ]1/1 nie-4. der,8
- Lieb4. chen,8 [2/3 komm zu8 ]1/1
+ \[2/3 In den8 \] stil-4. len8
+ \[2/3 Hain her-8 \] nie-4. der,8
+ Lieb4. chen,8 \[2/3 komm zu8 \]
mir!2 _
_ _ _
_ _ _
@@ -368,7 +364,7 @@ tekstI = \lyric{
% 17
Fl\"us-8. ternd16 schlan-4. ke8
Wip-8. fel16 rau-4. schen8
- [2/3 In des8 ]1/1 Mon-4. des8
+ \[2/3 In des8 \] Mon-4. des8
Licht;2.
_ _ _
_ _ _
@@ -376,7 +372,7 @@ tekstI = \lyric{
% 23
Des8. Ver-16 r\"a-4. ters8
feind-8. lich16 Lau-4. schen8
- [2/3 F\"urch- te,8 ]1/1 Hol-4. de,8
+ \[2/3 F\"urch- te,8 \] Hol-4. de,8
nicht.2.
_ _ _
_ _ _
@@ -396,7 +392,7 @@ tekstI = \lyric{
mich!2 _
Be-8. bend16 harr' ich8 _8
dir8. ent-16 ge- gen!8 _8
- [2/3 Komm, be-8 ]1/1 gl\"u4. cke8
+ \[2/3 Komm, be-8 \] gl\"u4. cke8
mich!2.
_ _ _ _ _ _
% 47
@@ -418,17 +414,17 @@ tekstII = \lyric{
_ _ _
_ _ _
% 5
- [2/3 H\"orst die8 ]1/1 Nach-4. ti-8
- [2/3 gal- len8 ]1/1 schla- gen?8 _8
- Ach!4. sie8 [2/3 fleh- en8 ]1/1
+ \[2/3 H\"orst die8 \] Nach-4. ti-8
+ \[2/3 gal- len8 \] schla- gen?8 _8
+ Ach!4. sie8 \[2/3 fleh- en8 \]
dich,2 _
_ _ _
_ _ _
% 11
- [2/3 Mit der8 ]1/1 T\"o-4. ne8
- [2/3 s\"u\ss- en8 ]1/1 Kla-4. gen8
- Fleh-4. en8 [2/3 sie f\"ur8 ]1/1
+ \[2/3 Mit der8 \] T\"o-4. ne8
+ \[2/3 s\"u\ss- en8 \] Kla-4. gen8
+ Fleh-4. en8 \[2/3 sie f\"ur8 \]
mich.2 _
_ _ _
_ _ _
@@ -436,7 +432,7 @@ tekstII = \lyric{
% 17
Sie-8. ver-16 stehn4. des8
Bus-8. ens16 Seh-4. nen,8
- [2/3 Ken- nen8 ]1/1 Lieb-4. es-8
+ \[2/3 Ken- nen8 \] Lieb-4. es-8
schmerz,2.
_ _ _
_ _ _
@@ -444,7 +440,7 @@ tekstII = \lyric{
% 23
R\"uh-8. ren16 mit4. den8
Sil-8. ber-16 t\"o-4. nen8
- [2/3 Jed- es8 ]1/1 wei-4. che8
+ \[2/3 Jed- es8 \] wei-4. che8
Herz.2.
_ _ _
_ _ _
diff --git a/input/standje.ly b/input/standje.ly
index 5d3481ece6..e6d29fd994 100644
--- a/input/standje.ly
+++ b/input/standje.ly
@@ -1,5 +1,5 @@
\header{
-filename = "standchen.ly";
+filename = "standje.ly";
title = "St\"andchen (Serenade) \"Leise flehen meine Lieder\"";
opus = "D. 957 No. 4";
composer = "Franz Schubert (1797-1828)"
@@ -9,49 +9,45 @@ copyright = "public domain";
}
%{
- Tested Features: multivoice, accents, lyrics, chords, piano music,
+ Tested Features@ multivoice, accents, lyrics, chords, piano music,
multiple \paper{}s in one \score
%}
-\version "0.1.7";
+\version "0.1.8";
$vocal_verse1 = \melodic{
\octave c';
% ugh: treble/bass
% \clef treble;
\clef violin;
- % ugh: '3' of plet should hang over middle note
- % ugh: barcheck fails if i write 'g8' below:
-% [2/3 g8( )as]1/1 \plet 2/3; g8 \plet 1/1; c'4. g8 |
- % anyway, for typping this plet stuff sucks
- [2/3 g8( )as]1/1 \plet 2/3; g \plet 1/1; c'4. g8 |
- [2/3 f8( )g]1/1 \plet 2/3; f \plet 1/1; c'4 f8 r |
- g4.-> f8 [2/3 f( )es]1/1 \plet 2/3; d \plet 1/1; |
+ [2/3 g8( )as] g \] c'4. g8 |
+ [2/3 f8( )g] f \] c'4 f8 r |
+ g4.-> f8 [2/3 f( )es] d \] |
es2 r4 |
% ugh: a whole should be a measure
%r1 |
r2. |
r2. |
- [2/3 g8( )as]1/1 \plet 2/3; g \plet 1/1; es'4. g8 |
- [2/3 f8( )g]1/1 \plet 2/3; f \plet 1/1; d'4. c'8 |
- bes4. as8 [2/3 as( )g]1/1 \plet 2/3; f \plet 1/1; |
+ [2/3 g8( )as] g \] es'4. g8 |
+ [2/3 f8( )g] f \] d'4. c'8 |
+ bes4. as8 [2/3 as( )g] f \] |
g2 r4 |
r2. |
r2. |
g8. b16 es'4. d'8 |
c'8. g16 es4. c8 |
- % [as32\grace( bes32\grace] )
- [2/3 as8( )g]1/1 \plet 2/3; as \plet 1/1; c'4. as8 |
+ % [as3 2\grace( bes3 2\grace] )
+ [2/3 as8( )g] as \] c'4. as8 |
g2. |
- %[f32\grace( g] )
- [2/3 f8( )e]1/1 \plet 2/3; f \plet 1/1; as4. f8 |
+ %[f3 2\grace( g] )
+ [2/3 f8( )e] f \] as4. f8 |
es!2. |
g8. b16 es'4. d'8 |
c'8. g16 e4. c8 |
- % [a32\grace b] )
- [2/3 a!8( ) gis]1/1 \plet 2/3; a \plet 1/1; c'4. a8 |
+ % [a3 2\grace b] )
+ [2/3 a!8( ) gis] a \] c'4. a8 |
g!2. |
- [2/3 d'8\f cis']1/1 \plet 2/3; d \plet 1/1; f'4. b8 |
+ [2/3 d'8\f cis'] d \] f'4. b8 |
c'2. |
r2. |
r2. |
@@ -59,32 +55,32 @@ $vocal_verse1 = \melodic{
$lyric_verse1 = \lyric{
% 5
- [2/3 Lei-4 se8 ]1/1 fleh-4. en8 |
- [2/3 mei-4 ne8 ]1/1 Lie-4 der8 _8 |
- Durch4. die8 [2/3 Nacht4 zu8 ]1/1 |
+ \[2/3 Lei-4 se8 \] fleh-4. en8 |
+ \[2/3 mei-4 ne8 \] Lie-4 der8 _8 |
+ Durch4. die8 \[2/3 Nacht4 zu8 \] |
dir;2 _4 |
_4 _ _ |
_ _ _ |
% 11
- [2/3 In4 den8 ]1/1 stil-4. len8 |
- [2/3 Hainr4 her-8 ]1/1 nie-4. der,8 |
- Lieb4. chen,8 [2/3 komm4 zu8 ]1/1 |
+ \[2/3 In4 den8 \] stil-4. len8 |
+ \[2/3 Hainr4 her-8 \] nie-4. der,8 |
+ Lieb4. chen,8 \[2/3 komm4 zu8 \] |
mir!2 _4 |
- _4 _ _ |
+ _4 _ _ |
_ _ _ |
% 17
Fl\"us-8. ternd16 schlan-4. ke8 |
Wip-8. fel16 rau-4. schen8 |
- [2/3 In4 des8 ]1/1 Mon-4. des8 |
+ \[2/3 In4 des8 \] Mon-4. des8 |
Licht;2. |
- _4 _ _ |
_4 _ _ |
-% 23
+ _4 _ _ |
+% 23
Des8. Ver-16 r\"a-4. ters8 |
feind-8. lich16 Lau-4. schen8 |
- [2/3 F\"urch-4 te,8 ]1/1 Hol-4. de,8 |
+ \[2/3 F\"urch-4 te,8 \] Hol-4. de,8 |
nicht,2. |
- [2/3 f\"urch-4 te,8 ]1/1 Hol-4. de,8 |
+ \[2/3 f\"urch-4 te,8 \] Hol-4. de,8 |
nicht.2. |
_4 _ _
_ _ _
@@ -94,8 +90,8 @@ $treble_intro = \melodic{
\octave c';
\clef violin;
% ugh: i'd like to type this!
- %r8 [<'g-. c-.> <c-. es-.> <'g-. c-.> <c-. es-.> <'g-. c-.>] |
- r8 <['g-. c-.> <c-. es-.> <'g-. c-.> <c-. es-.> <'g-. c-.]> |
+ %r8 [<'g-. c-.> <c-. es-.> <'g-. c-.> <c-. es-.> <'g-. c-.>] |
+ r8 <['g-. c-.> <c-. es-.> <'g-. c-.> <c-. es-.> <'g-. c-.]> |
r8 <['as-. c-.> <c-. es-.> <'as-. c-.> <c-. es-.> <'as-. c-.]> |
r8 <['as-. c-.> <c-. d-.> <'as-. c-.> <c-. d-.> <'as-. c-.]> |
r8 <['g-. 'b-.> <'b-. d-.> <'g-. 'b-.> <'b-. d-.> <'g-. 'b-.]> |
@@ -107,28 +103,33 @@ $treble_verse1 = \melodic{
\clef violin;
r8 <['g c> <c es> <'g c> <c es> <'g c]> |
r8 <['f c> <c d> <'f c> <c d> <'f c]> |
- r8 <['f 'g b> <'g b d> <'f 'g b> <'g b d> <'f 'g b]> |
+ r8 <['f 'g 'b> <'g 'b d> <'f 'g 'b> <'g 'b d> <'f 'g 'b]> |
r8 <['es 'g c> <'g c es> <'es 'g c> <'g c es> <'es 'g c]> |
<g'4.( b> <)f'8 d'> <[2/3 f' d'> <es' c'> <d' b]1/1> |
+ <c'2. e'> |
r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
- r8 <['g c> <c es> <'g c> <c es> <'g c]> |
+ r8 <['f c> <c d> <'f c> <c d> <'f c]> |
+ r8 <['f 'as 'bes> <'as 'bes d> <'f 'g 'bes> <'g 'bes d> <'f 'g 'bes]> |
+ r8 <['es 'g 'bes> <'g 'bes es> <'es 'g 'bes> <'g 'bes es]>
+ <{ es'( | )bes4. as8}{ c'( | )d4.( )f8 } >
+ < [2/3 f as> <es g> <d f]1/1> |
+ <es2. g> |
+ r8 <['f 'g> <'g 'b> <'f 'g> <'g 'b> <'f 'g]> |
+ r8 <['es 'g> <'g c> <'es 'g> <'g c> <'es 'g]> |
+ r8\pp <['es 'as c> <'as c es> <'es 'as c> <'as c es> <'es 'as c]> |
+ r8 <['es 'g 'bes> <'g 'bes 'es> <'es 'g 'bes> <'g 'bes 'es> <'es 'g 'bes]> |
+ % [as3 2\grace( bes )
+ [2/3 as8(( g )as]1/1 c'4.-> ) as8 |
+ g2. |
+ r8 <['f 'g> <'g 'b> <'f 'g> <'g 'b> <'f 'g]> |
+ r8 <['e 'g> <'g c> <'e 'g> <'g c> <'e 'g]> |
+ r8 <['f 'a c> <'a c f> <'f 'a c> <'a c f> <'f 'a c]> |
+ r8 <['e 'g c> <'g c e> <'e 'g c> <'g c e> <'e 'g c]> |
+ <{[2/3 f'8\f( e f']1/1 a'4. )f'8 } {\[2/3 f e f \] a4. f8 } > |
+ <e2 e'> r4 |
+% <{as!2\mf( [c'8. )as16]} {f2 as8( )f}> |
+ as!2\mf( [c'8. )as16] |
+ <e4. g> <[e8-.( g-.> <e8-. g-.> <)e8-. g-.]> |
}
$bass_intro = \melodic{
@@ -144,10 +145,10 @@ $bass_verse1 = \melodic{
\octave c;
\clef bass;
<'c2 c> r4 |
+ <'as2 as> r4 |
+ <'g2 g> r4 |
<'c2 c> r4 |
- <'c2 c> r4 |
- <'c2 c> r4 |
- <'c2 c> r4 |
+ <'g8 g> <[g' d''> <d'' f''> <g' d''> <d'' f''> <g' d'']> |
<'c2 c> r4 |
<'c2 c> r4 |
<'c2 c> r4 |
@@ -170,23 +171,29 @@ $bass_verse1 = \melodic{
}
-global= \melodic {\meter 3/4; \key bes es as; }
+global= \melodic {\meter 3 /4; \key bes es as; }
\score{
\melodic<
- \type Lyrics { \skip 4 * 12; \$lyric_verse1 }
- \type Staff
- { \skip 4 * 12; \$vocal_verse1 }
+ \type Lyrics {
+ \meter 3 /4; \skip 4 * 12; \$lyric_verse1
+ }
+ \type Staff { <
+ \global
+ { \skip 4 * 12; \$vocal_verse1 }
+ > }
% i want a (grand) staff!!!
\type Grandstaff <
- < { \$treble_intro \$treble_verse1 }
- \global
+ <
+ \global
+ { \$treble_intro \$treble_verse1 }
>
- < \global
- { \$bass_intro \$bass_verse1 }
+ <
+ \global
+ { \$bass_intro \$bass_verse1 }
>
>
>
diff --git a/input/stem.ly b/input/stem.ly
index 5442943342..ee58946ea1 100644
--- a/input/stem.ly
+++ b/input/stem.ly
@@ -8,7 +8,7 @@ of beams";
}
-\version "0.1.7";
+\version "0.1.8";
beamintervals = \melodic{
\meter 7/4;
diff --git a/input/toccata-fuga-E.ly b/input/toccata-fuga-E.ly
index 1bb3e31ba6..124d0e3855 100644
--- a/input/toccata-fuga-E.ly
+++ b/input/toccata-fuga-E.ly
@@ -20,7 +20,7 @@ copyright = "public domain";
%}
-\version "0.1.7";
+\version "0.1.8";
toccata_commands = \melodic{
\meter 4/4;
diff --git a/input/twinkle-pop.ly b/input/twinkle-pop.ly
index fae537bf46..4d11d3a6e2 100644
--- a/input/twinkle-pop.ly
+++ b/input/twinkle-pop.ly
@@ -12,7 +12,7 @@ copyright = "public domain";
Tested Features lyrics and chords
%}
-\version "0.1.7";
+\version "0.1.8";
melodie = \melodic {
\clef"violin";
diff --git a/input/twinkle.ly b/input/twinkle.ly
index e6814ce348..050bfda518 100644
--- a/input/twinkle.ly
+++ b/input/twinkle.ly
@@ -15,7 +15,7 @@ copyright = "public domain";
Tested Features: lyrics, interleaving lyrics and staffs
%}
-\version "0.1.7";
+\version "0.1.8";
melody = \melodic{
\clef violin;
diff --git a/input/wtk1-fugue1.ly b/input/wtk1-fugue1.ly
index 646c75ff30..e48c55b189 100644
--- a/input/wtk1-fugue1.ly
+++ b/input/wtk1-fugue1.ly
@@ -11,7 +11,7 @@ copyright = "Public Domain";
%{
%}
-\version "0.1.7";
+\version "0.1.8";
global =
diff --git a/input/wtk1-fugue2.ly b/input/wtk1-fugue2.ly
index 50a2166a00..2d90c2ad90 100644
--- a/input/wtk1-fugue2.ly
+++ b/input/wtk1-fugue2.ly
@@ -12,7 +12,7 @@ copyright = "Public Domain";
Tested Features: stem direction, multivoice, forced accidentals.
%}
-\version "0.1.7";
+\version "0.1.8";
% should add \need{dutch.ini} for
% correct parsing of note names
diff --git a/input/wtk1-prelude1.ly b/input/wtk1-prelude1.ly
index 5ed120b09d..dea0195fa0 100644
--- a/input/wtk1-prelude1.ly
+++ b/input/wtk1-prelude1.ly
@@ -8,7 +8,7 @@ enteredby = "Shay Rojansky";
copyright = "Public Domain";
}
-\version "0.1.7";
+\version "0.1.8";
global =
\melodic {
diff --git a/lib/include/out/dummy.dep b/lib/include/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/include/out/dummy.dep
diff --git a/lib/out/dummy.dep b/lib/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lib/out/dummy.dep
diff --git a/lily/VERSION b/lily/VERSION
index 0c90d98cb4..e0d3c8cadf 100644
--- a/lily/VERSION
+++ b/lily/VERSION
@@ -1,4 +1,4 @@
MAJOR_VERSION = 0
MINOR_VERSION = 1
-PATCH_LEVEL = 41
+PATCH_LEVEL = 42
MY_PATCH_LEVEL =
diff --git a/lily/beam-grav.cc b/lily/beam-grav.cc
index 2d931e150f..6592166fa2 100644
--- a/lily/beam-grav.cc
+++ b/lily/beam-grav.cc
@@ -12,8 +12,6 @@
#include "beam.hh"
#include "musical-request.hh"
#include "grouping.hh"
-#include "text-spanner.hh"
-#include "text-def.hh"
#include "p-col.hh"
Beam_engraver::Beam_engraver()
@@ -21,7 +19,6 @@ Beam_engraver::Beam_engraver()
span_reqs_drul_[LEFT] = span_reqs_drul_[RIGHT] =0;
beam_p_ =0;
current_grouping_p_ =0;
- plet_spanner_p_ =0;
}
bool
@@ -50,61 +47,39 @@ Beam_engraver::do_try_request(Request*r)
void
Beam_engraver::do_process_requests()
{
- if ( !beam_p_ && span_reqs_drul_[LEFT])
- {
- current_grouping_p_ = new Rhythmic_grouping;
- beam_p_ = new Beam;
- if (span_reqs_drul_[LEFT]->nplet)
- {
- plet_spanner_p_ = new Text_spanner;
- Text_def *defp = new Text_def;
- plet_spanner_p_->set_support (beam_p_);
-
- defp->align_i_ = 0;
- defp->text_str_ = span_reqs_drul_[LEFT]->nplet;
- defp->style_str_="italic";
- plet_spanner_p_->spec_p_ = defp;
- announce_element (Score_elem_info(plet_spanner_p_,0));
- }
-
- Scalar prop = get_property ("beamslopedamping");
- if (prop.isnum_b ())
- {
- beam_p_->damping_i_ = prop;
- }
-
- prop = get_property ("beamquantisaton");
- if (prop.isnum_b ())
- {
- beam_p_->quantisation_ = (Beam::Quantise)(int)prop;
- }
-
- announce_element (Score_elem_info (beam_p_, span_reqs_drul_[LEFT]));
- }
+ if (beam_p_ || !span_reqs_drul_[LEFT])
+ return;
+
+ current_grouping_p_ = new Rhythmic_grouping;
+ beam_p_ = new Beam;
+
+ Scalar prop = get_property ("beamslopedamping");
+ if (prop.isnum_b ())
+ beam_p_->damping_i_ = prop;
+
+ prop = get_property ("beamquantisaton");
+ if (prop.isnum_b ())
+ beam_p_->quantisation_ = (Beam::Quantise)(int)prop;
+
+ announce_element (Score_elem_info (beam_p_, span_reqs_drul_[LEFT]));
}
void
Beam_engraver::do_pre_move_processing()
{
- if (beam_p_ && span_reqs_drul_[RIGHT])
- {
- Rhythmic_grouping const * rg_C = get_staff_info().rhythmic_C_;
- rg_C->extend (current_grouping_p_->interval());
- beam_p_->set_grouping (*rg_C, *current_grouping_p_);
- typeset_element (beam_p_);
- beam_p_ = 0;
-
- delete current_grouping_p_;
- current_grouping_p_ = 0;
-
- span_reqs_drul_[RIGHT] =
- span_reqs_drul_[LEFT] = 0;
- if (plet_spanner_p_)
- {
- typeset_element (plet_spanner_p_);
- plet_spanner_p_ =0;
- }
- }
+ if (!beam_p_ || !span_reqs_drul_[RIGHT])
+ return;
+
+ Rhythmic_grouping const * rg_C = get_staff_info().rhythmic_C_;
+ rg_C->extend (current_grouping_p_->interval());
+ beam_p_->set_grouping (*rg_C, *current_grouping_p_);
+ typeset_element (beam_p_);
+ beam_p_ = 0;
+
+ delete current_grouping_p_;
+ current_grouping_p_ = 0;
+
+ span_reqs_drul_[RIGHT] = span_reqs_drul_[LEFT] = 0;
}
void
diff --git a/lily/include/beam-grav.hh b/lily/include/beam-grav.hh
index 027fd92679..81b68adfc1 100644
--- a/lily/include/beam-grav.hh
+++ b/lily/include/beam-grav.hh
@@ -20,7 +20,6 @@ class Beam_engraver : public Engraver
{
Drul_array<Beam_req *> span_reqs_drul_;
Beam *beam_p_;
- Text_spanner *plet_spanner_p_;
Rhythmic_grouping *current_grouping_p_;
public:
diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh
index 42be8366c2..48d8e98723 100644
--- a/lily/include/lily-proto.hh
+++ b/lily/include/lily-proto.hh
@@ -41,6 +41,7 @@ struct Beam;
struct Beam_engraver;
struct Beam_req;
struct Blank_req;
+struct Bow;
struct Box;
struct Break_align_item;
struct Bracket_req;
@@ -152,6 +153,9 @@ struct Paper_score;
struct Paper_def;
struct Partial_measure_req;
struct Plet;
+struct Plet_engraver;
+struct Plet_req;
+struct Plet_spanner;
struct Pulk_voice;
struct Pulk_voices;
struct Rational;
diff --git a/lily/include/lookup.hh b/lily/include/lookup.hh
index 39dc5ae9b0..e5cf3f10e9 100644
--- a/lily/include/lookup.hh
+++ b/lily/include/lookup.hh
@@ -51,6 +51,7 @@ struct Lookup {
Atom dots () const;
Atom slur (Real &dy, Real &dx, Direction dir) const;
+ Atom plet (Real &dy, Real &dx, Direction dir) const;
Atom tex_slur (int dy, Real &dx, Direction dir) const;
Atom ps_slur (Real dy, Real dx, Real dir) const;
Atom half_slur (int dy, Real &dx, Direction dir, int xpart) const;
diff --git a/lily/include/musical-request.hh b/lily/include/musical-request.hh
index f53fc44de1..28fa8d04aa 100644
--- a/lily/include/musical-request.hh
+++ b/lily/include/musical-request.hh
@@ -37,6 +37,7 @@ public:
virtual Dynamic_req* dynamic() { return 0; }
virtual Absolute_dynamic_req * absdynamic() { return 0; }
virtual Tie_req * tie() { return 0; }
+ virtual Plet_req* plet() { return 0; }
virtual Span_dynamic_req * span_dynamic() { return 0; }
virtual Abbreviation_req* abbrev() { return 0; }
REQUESTMETHODS(Musical_req, musical);
@@ -174,12 +175,9 @@ public:
};
-/** Start / stop a beam at this note. if #nplet# is set, the staff
-will try to put an appropriate number over the beam */
+/** Start / stop a beam at this note */
class Beam_req : public Span_req {
public:
- int nplet;
-
/* *************** */
REQUESTMETHODS(Beam_req,beam);
@@ -213,6 +211,16 @@ public:
};
+/// a plet (bracket with) number
+class Plet_req : public Span_req {
+public:
+ int plet_i_;
+
+ REQUESTMETHODS(Plet_req,plet);
+
+ Plet_req ();
+};
+
class Musical_script_req : public Musical_req, public Script_req {
public:
REQUESTMETHODS(Musical_script_req, musicalscript);
diff --git a/lily/include/my-lily-parser.hh b/lily/include/my-lily-parser.hh
index b0666e160a..b5cbd87154 100644
--- a/lily/include/my-lily-parser.hh
+++ b/lily/include/my-lily-parser.hh
@@ -66,7 +66,7 @@ public:
void parser_error (String);
void clear_notenames();
- Request* get_parens_request (char c);
+ Array<Request*>* get_parens_request (int t);
void set_debug();
void set_yydebug (bool);
diff --git a/lily/include/out/dummy.dep b/lily/include/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lily/include/out/dummy.dep
diff --git a/lily/include/plet-swallow-engraver.hh b/lily/include/plet-swallow-engraver.hh
new file mode 100644
index 0000000000..be361205c0
--- /dev/null
+++ b/lily/include/plet-swallow-engraver.hh
@@ -0,0 +1,28 @@
+/*
+ plet-swallow-engraver.hh -- declare Swallow_engraver
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef PLET_SWALLOW_ENGRAVER_HH
+#define PLET_SWALLOW_ENGRAVER_HH
+
+#include "swallow-grav.hh"
+
+/**
+ This engraver swallows plets silently.
+ */
+class Plet_swallow_engraver : public Swallow_engraver
+{
+public:
+ TRANSLATOR_CLONE(Plet_swallow_engraver);
+ DECLARE_MY_RUNTIME_TYPEINFO;
+
+protected:
+ virtual bool do_try_request (Request*);
+};
+
+#endif // PLET_SWALLOW_ENGRAVER_HH
diff --git a/lily/include/text-def.hh b/lily/include/text-def.hh
index 78dd152e9a..48faa16f15 100644
--- a/lily/include/text-def.hh
+++ b/lily/include/text-def.hh
@@ -14,7 +14,8 @@
class Text_def : public General_script_def {
protected:
- virtual Atom get_atom (Paper_def* p, Direction dir_) const;
+// huh? move to public
+// virtual Atom get_atom (Paper_def* p, Direction dir_) const;
DECLARE_MY_RUNTIME_TYPEINFO;
VIRTUAL_COPY_CONS(Text_def,General_script_def);
public:
@@ -29,6 +30,7 @@ public:
String style_str_;
virtual void do_print() const;
+ virtual Atom get_atom (Paper_def* p, Direction dir_) const;
virtual ~Text_def() {};
virtual bool do_equal_b (const General_script_def*) const;
Text_def();
diff --git a/lily/include/text-spanner.hh b/lily/include/text-spanner.hh
index 9a6665625a..ab81d9099e 100644
--- a/lily/include/text-spanner.hh
+++ b/lily/include/text-spanner.hh
@@ -12,7 +12,7 @@
#include "text-def.hh"
/** a spanner which puts texts on top of other spanners. Use for
- triplets, eentweetjes, ottava, etc. */
+ triplets, volta, ottava, etc. */
class Text_spanner : public Spanner {
public:
Directional_spanner * support_span_l_;
diff --git a/lily/lexer.l b/lily/lexer.l
index f2d6c9214e..851e21c2e1 100644
--- a/lily/lexer.l
+++ b/lily/lexer.l
@@ -82,6 +82,8 @@ RESTNAME [rs]
NOTECOMMAND \\{A}+
LYRICS ({AA}|{TEX})[^0-9 \t\n\f]*
ESCAPED [nt\\'"]
+PLET \\\[
+TELP \\\]
%%
@@ -285,6 +287,14 @@ ESCAPED [nt\\'"]
return c;
}
+<lyrics,notes>{PLET} {
+ return yylval.i = PLET;
+}
+
+<lyrics,notes>{TELP} {
+ return yylval.i = TELP;
+}
+
<INITIAL,notes>. {
return yylval.c = YYText ()[0];
}
diff --git a/lily/midi-def.cc b/lily/midi-def.cc
index e7da659d19..0e85a4849f 100644
--- a/lily/midi-def.cc
+++ b/lily/midi-def.cc
@@ -53,7 +53,7 @@ void
Midi_def::set_tempo (Moment one_beat_mom, int beats_per_minute_i)
{
Moment beats_per_second = Moment (beats_per_minute_i) / Moment (60);
- whole_in_seconds_mom_ = 1/(beats_per_second * one_beat_mom);
+ whole_in_seconds_mom_ = Moment(1)/Moment(beats_per_second * one_beat_mom);
}
void
diff --git a/lily/musical-request.cc b/lily/musical-request.cc
index 0e3dd06ce8..bf2fe3590b 100644
--- a/lily/musical-request.cc
+++ b/lily/musical-request.cc
@@ -263,7 +263,6 @@ IMPLEMENT_IS_TYPE_B1(Beam_req,Span_req);
Beam_req::Beam_req()
{
- nplet = 0;
}
void
@@ -286,12 +285,23 @@ Abbreviation_beam_req::do_print () const
}
IMPLEMENT_IS_TYPE_B1(Slur_req,Span_req);
-
void
Slur_req::do_print() const
{
}
+IMPLEMENT_IS_TYPE_B1(Plet_req,Span_req);
+
+Plet_req::Plet_req ()
+{
+ plet_i_ = 0;
+}
+
+void
+Plet_req::do_print () const
+{
+}
+
/* *************** */
bool
diff --git a/lily/my-lily-lexer.cc b/lily/my-lily-lexer.cc
index 7bddf702d1..2a8760ee52 100644
--- a/lily/my-lily-lexer.cc
+++ b/lily/my-lily-lexer.cc
@@ -48,7 +48,6 @@ static Keyword_ent the_key_tab[]={
{"output", OUTPUT},
{"partial", PARTIAL},
{"paper", PAPER},
- {"plet", PLET},
{"property", PROPERTY},
{"pt", PT_T},
{"score", SCORE},
diff --git a/lily/my-lily-parser.cc b/lily/my-lily-parser.cc
index 1c1f31860b..aaaf7201b2 100644
--- a/lily/my-lily-parser.cc
+++ b/lily/my-lily-parser.cc
@@ -225,79 +225,101 @@ My_lily_parser::get_note_element (Note_req *rq, Duration * duration_p)
return v;
}
-Request*
-My_lily_parser::get_parens_request (char c)
+Array<Request*>*
+My_lily_parser::get_parens_request (int t)
{
- Request* req_p=0;
- switch (c)
+ Array<Request*>& reqs = *new Array<Request*>;
+ switch (t)
{
-
case '~':
- req_p = new Tie_req;
+ reqs.push (new Tie_req);
break;
+ case BEAMPLET:
+ case MAEBTELP:
+ {
+ Plet_req* p = new Plet_req;
+ p->plet_i_ = plet_.type_i_;
+ reqs.push (p);
+ }
+ /* fall through */
case '[':
case ']':
{
if (!abbrev_beam_type_i_)
{
- Beam_req*b = new Beam_req;
- int p_i=plet_.type_i_ ; // ugh . Should junk?
- if (p_i!= 1)
- b->nplet = p_i;
- req_p = b;
+ reqs.push (new Beam_req);
}
else
{
Abbreviation_beam_req* a = new Abbreviation_beam_req;
a->type_i_ = abbrev_beam_type_i_;
- if (c==']')
+ if (t==']')
abbrev_beam_type_i_ = 0;
- req_p = a;
+ reqs.push (a);
}
}
- break;
+ break;
case '>':
case '!':
case '<':
- req_p = new Span_dynamic_req;
+ reqs.push (new Span_dynamic_req);
break;
+ case PLET:
+ case TELP:
+ {
+ Plet_req* p = new Plet_req;
+ p->plet_i_ = plet_.type_i_;
+ reqs.push (p);
+ }
+ break;
case ')':
case '(':
- req_p = new Slur_req;
+ {
+ reqs.push (new Slur_req);
+ }
break;
default:
assert (false);
break;
}
- switch (c)
+ switch (t)
{
+ case BEAMPLET:
+ reqs.top ()->span()->spantype = Span_req::START;
+ /* fall through */
case '<':
case '>':
case '(':
case '[':
- req_p->span()->spantype = Span_req::START;
+ case PLET:
+ reqs[0]->span ()->spantype = Span_req::START;
break;
+ case MAEBTELP:
+ reqs.top ()->span()->spantype = Span_req::STOP;
+ /* fall through */
case '!':
case ')':
case ']':
- req_p->span()->spantype = Span_req::STOP;
+ reqs[0]->span ()->spantype = Span_req::STOP;
break;
default:
break;
}
- if (req_p->musical()->span_dynamic ())
- {
- Span_dynamic_req* s_l= (req_p->musical()->span_dynamic ()) ;
- s_l->dynamic_dir_ = (c == '<') ? UP:DOWN;
- }
+ for (int i = 0; i < reqs.size (); i++)
+ if (reqs[i]->musical ()->span_dynamic ())
+ {
+ Span_dynamic_req* s_l= (reqs[i]->musical ()->span_dynamic ()) ;
+ s_l->dynamic_dir_ = (t == '<') ? UP:DOWN;
+ }
- req_p->set_spot (here_input());
- return req_p;
+ // ugh? don't we do this in the parser too?
+ reqs[0]->set_spot (here_input());
+ return &reqs;
}
void
diff --git a/lily/out/dummy.dep b/lily/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/lily/out/dummy.dep
diff --git a/lily/parser.y b/lily/parser.y
index 051fb72c50..8dea7f982a 100644
--- a/lily/parser.y
+++ b/lily/parser.y
@@ -12,7 +12,7 @@
#include <iostream.h>
// mmm
-#define MUDELA_VERSION "0.1.7"
+#define MUDELA_VERSION "0.1.8"
#include "scalar.hh"
#include "translation-property.hh"
@@ -113,6 +113,8 @@ yylex (YYSTYPE *s, void * v_l)
%token ALIAS
%token BAR
+%token BEAMPLET
+%token MAEBTELP
%token CADENZA
%token CLEAR
%token CLEF
@@ -141,6 +143,7 @@ yylex (YYSTYPE *s, void * v_l)
%token PAPER
%token PARTIAL
%token PLET
+%token TELP
%token PT_T
%token SCORE
%token SCRIPT
@@ -189,9 +192,9 @@ yylex (YYSTYPE *s, void * v_l)
%type <outputdef> output_def
%type <header> mudela_header mudela_header_body
%type <box> box
-%type <c> open_request_parens close_request_parens
+%type <i> open_request_parens close_request_parens
%type <c> open_abbrev_parens
-%type <c> open_plet_parens close_plet_parens
+%type <i> open_plet_parens close_plet_parens
%type <music> simple_element music_elt full_element lyrics_elt command_elt
%type <i> abbrev_type
%type <i> int
@@ -217,7 +220,7 @@ yylex (YYSTYPE *s, void * v_l)
%type <real> dim real
%type <real> unit
%type <request> abbrev_command_req
-%type <request> post_request pre_request command_req verbose_command_req
+%type <request> post_request command_req verbose_command_req
%type <request> script_req dynamic_req
%type <score> score_block score_body
%type <script> script_definition script_body mudela_script gen_script_def
@@ -737,6 +740,13 @@ post_requests:
$2->set_spot (THIS->here_input ());
THIS->post_reqs.push ($2);
}
+ | post_requests close_request_parens {
+ Array<Request*>& r = *THIS->get_parens_request ($2);
+ for (int i = 0; i < r.size (); i++ )
+ r[i]->set_spot (THIS->here_input ());
+ THIS->post_reqs.concat (r);
+ delete &r;
+ }
;
@@ -744,9 +754,6 @@ post_request:
POST_REQUEST_IDENTIFIER {
$$ = (Request*)$1->request ();
}
- |close_request_parens {
- $$ = THIS->get_parens_request ($1);
- }
| script_req
| dynamic_req
| abbrev_type {
@@ -820,7 +827,17 @@ dynamic_req:
close_plet_parens:
']' INT '/' INT {
- $$ = ']';
+ $$ = MAEBTELP;
+ THIS->plet_.type_i_ = $4;
+ THIS->plet_.iso_i_ = $2;
+ }
+ | TELP {
+ $$ = TELP;
+ THIS->plet_.type_i_ = 1;
+ THIS->plet_.iso_i_ = 1;
+ }
+ | TELP INT '/' INT {
+ $$ = TELP;
THIS->plet_.type_i_ = $4;
THIS->plet_.iso_i_ = $2;
}
@@ -836,15 +853,14 @@ close_request_parens:
| ']' {
$$ = ']';
}
- | close_plet_parens {
- $$ = ']';
- }
| E_SMALLER {
$$ = '<';
}
| E_BIGGER {
$$ = '>';
}
+ | close_plet_parens {
+ }
;
open_abbrev_parens:
@@ -861,7 +877,12 @@ open_abbrev_parens:
open_plet_parens:
'[' INT '/' INT {
- $$ = '[';
+ $$ = BEAMPLET;
+ THIS->plet_.type_i_ = $4;
+ THIS->plet_.iso_i_ = $2;
+ }
+ | PLET INT '/' INT {
+ $$ = PLET;
THIS->plet_.type_i_ = $4;
THIS->plet_.iso_i_ = $2;
}
@@ -956,24 +977,19 @@ script_dir:
;
pre_requests:
- | pre_requests pre_request {
- THIS->pre_reqs.push ($2);
- $2->set_spot (THIS->here_input ());
+ {
}
- ;
-
-pre_request:
- open_request_parens {
- $$ = THIS->get_parens_request ($1);
+ | pre_requests open_request_parens {
+ Array<Request*>& r = *THIS->get_parens_request ($2);
+ for (int i = 0; i < r.size (); i++ )
+ r[i]->set_spot (THIS->here_input ());
+ THIS->pre_reqs.concat (r);
+ delete &r;
}
;
voice_command:
- PLET INT '/' INT {
- THIS->plet_.type_i_ = $4;
- THIS->plet_.iso_i_ = $2;
- }
- | DURATION STRING {
+ DURATION STRING {
THIS->set_duration_mode (*$2);
delete $2;
}
diff --git a/lily/plet-swallow-engraver.cc b/lily/plet-swallow-engraver.cc
new file mode 100644
index 0000000000..1f837ad9f0
--- /dev/null
+++ b/lily/plet-swallow-engraver.cc
@@ -0,0 +1,21 @@
+/*
+ plet-swallow-engraver.cc -- implement Plet_swallow_engraver
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+#include "musical-request.hh"
+#include "plet-swallow-engraver.hh"
+
+IMPLEMENT_IS_TYPE_B1(Plet_swallow_engraver,Swallow_engraver);
+ADD_THIS_TRANSLATOR(Plet_swallow_engraver);
+
+bool
+Plet_swallow_engraver::do_try_request (Request* req_l)
+{
+ if (req_l && req_l->musical () && req_l->musical ()->plet ())
+ return true;
+ return false;
+}
diff --git a/lily/text-spanner.cc b/lily/text-spanner.cc
index f100b72ae7..9a4406b24a 100644
--- a/lily/text-spanner.cc
+++ b/lily/text-spanner.cc
@@ -24,6 +24,7 @@ Text_spanner::set_support (Directional_spanner*d)
support_span_l_ =d;
add_dependency (d);
}
+
void
Text_spanner::do_add_processing ()
{
diff --git a/make/Targets.make b/make/Targets.make
index 4ea4098ba5..60dce8dcdd 100644
--- a/make/Targets.make
+++ b/make/Targets.make
@@ -153,7 +153,10 @@ doosdist:
localdist: $(DISTFILES)
- if [ -d out ]; then mkdir $(distdir)/$(localdir)/out; fi
+ if [ -d out ]; then \
+ mkdir $(distdir)/$(localdir)/out; \
+ touch $(distdir)/$(localdir)/out/dummy.dep; \
+ fi
$(LN) $(DISTFILES) $(distdir)/$(localdir)
ifdef SUBDIRS
set -e; for i in $(SUBDIRS); do mkdir $(distdir)/$(localdir)/$$i; \
diff --git a/make/lelievijver.lsm b/make/lelievijver.lsm
index 99db45d956..ca2db8749d 100644
--- a/make/lelievijver.lsm
+++ b/make/lelievijver.lsm
@@ -1,7 +1,7 @@
Begin3
Titel: LilyPond
-Versie: 0.1.41
-Inschrijf datum: 19JAN98
+Versie: 0.1.42
+Inschrijf datum: 27JAN98
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.41.tar.gz
+ 395k lilypond-0.1.42.tar.gz
Oorspronkelijke plek: pcnov095.win.tue.nl /pub/lilypond/
- 395k lilypond-0.1.41.tar.gz
+ 395k lilypond-0.1.42.tar.gz
Copi"eer politie: GPL
End
diff --git a/make/lilypond.lsm b/make/lilypond.lsm
index 38a1ff5d74..7847e952cf 100644
--- a/make/lilypond.lsm
+++ b/make/lilypond.lsm
@@ -1,7 +1,7 @@
Begin3
Title: LilyPond
-Version: 0.1.41
-Entered-date: 19JAN98
+Version: 0.1.42
+Entered-date: 27JAN98
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.41.tar.gz
+ 470k lilypond-0.1.42.tar.gz
Original-site: pcnov095.win.tue.nl /pub/lilypond/development/
- 470k lilypond-0.1.41.tar.gz
+ 470k lilypond-0.1.42.tar.gz
Copying-policy: GPL
End
diff --git a/make/lilypond.spec b/make/lilypond.spec
index 1ba3275d60..506988b49d 100644
--- a/make/lilypond.spec
+++ b/make/lilypond.spec
@@ -1,9 +1,9 @@
Name: lilypond
-Version: 0.1.41
+Version: 0.1.42
Release: 1
Copyright: GPL
Group: Applications/Publishing
-Source0: alpha.gnu.org:/gnu/lilypond/development/lilypond-0.1.41.tar.gz
+Source0: alpha.gnu.org:/gnu/lilypond/development/lilypond-0.1.42.tar.gz
Summary: A program for typesetting music.
URL: http://www.stack.nl/~hanwen/lilypond
Packager: Han-Wen Nienhuys <hanwen@stack.nl>
@@ -30,7 +30,7 @@ strip lily/out/lilypond mi2mu/out/mi2mu
make -C Documentation gifs
make prefix="$RPM_BUILD_ROOT/usr" install
%files
-%doc Documentation/out/AUTHORS.text Documentation/out/CodingStyle.text Documentation/out/INSTALL.text Documentation/out/MANIFESTO.text Documentation/out/convert-mudela.text Documentation/out/faq.text Documentation/out/gnu-music.text Documentation/out/index.text Documentation/out/internals.text Documentation/out/language.text Documentation/out/lilypond.text Documentation/out/links.text Documentation/out/literature.text Documentation/out/mi2mu.text Documentation/out/mudela-book.text Documentation/out/mutopia.text Documentation/out/other-packages.text BUGS TODO NEWS DEDICATION ANNOUNCE README
+%doc Documentation/out/AUTHORS.text Documentation/out/CodingStyle.text Documentation/out/INSTALL.text Documentation/out/MANIFESTO.text Documentation/out/convert-mudela.text Documentation/out/faq.text Documentation/out/gnu-music.text Documentation/out/index.text Documentation/out/internals.text Documentation/out/language.text Documentation/out/lilypond.text Documentation/out/links.text Documentation/out/literature.text Documentation/out/ly2dvi.text Documentation/out/mi2mu.text Documentation/out/mudela-book.text Documentation/out/mutopia.text Documentation/out/other-packages.text BUGS TODO NEWS DEDICATION ANNOUNCE README
%doc input/beams.ly input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/font-body.ly input/font.ly input/font11.ly input/font13.ly input/font16.ly input/font20.ly input/font26.ly input/gallina.ly input/gallina.tex 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/scsii-menuetto.ly input/scsii-menuetto.tex input/sleur.ly input/slurs.ly input/spacing.ly input/standchen-16.ly input/standchen-16.tex input/standchen-20.ly input/standchen-20.tex input/standchen.ly input/standje.ly input/stem.ly input/toccata-fuga-E.ly input/twinkle-pop.ly input/twinkle.ly input/wtk1-fugue1.ly input/wtk1-fugue2.ly input/wtk1-prelude1.ly Documentation/mudela-course.doc Documentation/mudela-man.doc
%doc Documentation/out/lelie_logo.gif
/usr/bin/convert-mudela
diff --git a/make/out/dummy.dep b/make/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/make/out/dummy.dep
diff --git a/mf/Makefile b/mf/Makefile
index 00b46f2f99..b4d3a3e711 100644
--- a/mf/Makefile
+++ b/mf/Makefile
@@ -41,8 +41,8 @@ $(outdir)/%.log: %.mf
mv $(@F) $@
rm $(basename $< ).*gf
-$(lyout)/%.ly $(texout)/%.tex: $(outdir)/%.log
- $(PYTHON) $(depth)/bin/mf-to-table.py --ly $(lyout)/$(<F:.log=.ly) --tex $(texout)/$(<F:.log=.tex) $<
+$(lyout)/%.ly $(texout)/%.tex: $(outdir)/%.mf
+ $(PYTHON) $(depth)/bin/mf-to-table.py --ly $(lyout)/$(<F:.mf=.ly) --tex $(texout)/$(<F:.mf=.tex) $<
localinstall:
$(INSTALL) -d $(MFDIR)/public/lilypond
diff --git a/mf/out/dummy.dep b/mf/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/mf/out/dummy.dep
diff --git a/mi2mu/include/out/dummy.dep b/mi2mu/include/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/mi2mu/include/out/dummy.dep
diff --git a/mi2mu/mudela-item.cc b/mi2mu/mudela-item.cc
index d70200e3c5..a7feee56dd 100644
--- a/mi2mu/mudela-item.cc
+++ b/mi2mu/mudela-item.cc
@@ -197,11 +197,10 @@ Mudela_note::str ()
//ugh
String str;
if (dur.plet_b ())
- str += String ("\\plet ")
+ str += String ("\\[")
+ String_convert::i2dec_str (dur.plet_.iso_i_, 0, 0)
+ "/"
- + String_convert::i2dec_str (dur.plet_.type_i_, 0, 0)
- + "; ";
+ + String_convert::i2dec_str (dur.plet_.type_i_, 0, 0);
str += name_str;
@@ -210,7 +209,7 @@ Mudela_note::str ()
str += Duration_convert::dur2_str (tmp);
if (dur.plet_b ())
- str += String (" \\plet 1/1;");
+ str += String (" \\]");
/*
note of zero duration is nonsense,
diff --git a/mi2mu/mudela-stream.cc b/mi2mu/mudela-stream.cc
index ed1350645b..02e4858a44 100644
--- a/mi2mu/mudela-stream.cc
+++ b/mi2mu/mudela-stream.cc
@@ -81,7 +81,7 @@ Mudela_stream::header()
*os_p_ << filename_str_g;
*os_p_ << "\n\n";
// ugh
- *os_p_ << "\\version \"0.1.7\";\n";
+ *os_p_ << "\\version \"0.1.8\";\n";
}
void
diff --git a/mi2mu/out/dummy.dep b/mi2mu/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/mi2mu/out/dummy.dep
diff --git a/out/dummy.dep b/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/out/dummy.dep
diff --git a/tex/lily-ps-defs.tex b/tex/lily-ps-defs.tex
index 92d9825afe..503d559f64 100644
--- a/tex/lily-ps-defs.tex
+++ b/tex/lily-ps-defs.tex
@@ -97,6 +97,26 @@ def
/lily_distance {
1 copy mul exch 1 copy mul add sqrt
} bind def
+ /draw_plet
+ {
+ staffrulethickness setlinewidth
+ /dir exch def
+ /plet_dy exch def
+ /plet_dx exch def
+ staffheight 2 div /plet_gap exch def
+ staffheight 4 div dir mul /plet_h exch def
+%
+ plet_dy plet_dx lily_distance /plet_w exch def
+ plet_dy plet_dx atan rotate
+ 0 0 moveto
+ 0 plet_h lineto
+ plet_w plet_gap sub 2 div plet_h lineto
+ plet_w plet_gap add 2 div plet_h moveto
+ plet_w plet_h lineto
+ plet_w 0 lineto
+ stroke
+ }
+ bind def
staffheight 2 div
/slurhtlimit exch def
/slurratio 0.3333 def
diff --git a/tex/out/dummy.dep b/tex/out/dummy.dep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tex/out/dummy.dep