diff options
author | Han-Wen Nienhuys <hanwen@xs4all.nl> | 1998-01-27 19:26:37 +0100 |
---|---|---|
committer | Han-Wen Nienhuys <hanwen@xs4all.nl> | 1998-01-27 19:26:37 +0100 |
commit | 745b9d0980d8811783e4fe62380363d05fd6140c (patch) | |
tree | af42072831e35ef7d7b2cb188d0f25cfc158dd7f | |
parent | b3735dc71a2d69d87a52fdc363cdef3039c4e325 (diff) |
release: 0.1.42
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 @@ -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) @@ -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) @@ -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 |