diff options
author | Han-Wen Nienhuys <hanwen@xs4all.nl> | 1997-10-11 13:28:50 +0200 |
---|---|---|
committer | Han-Wen Nienhuys <hanwen@xs4all.nl> | 1997-10-11 13:28:50 +0200 |
commit | 934d7fd539e587975098a6de6ee39cb25151ac48 (patch) | |
tree | eac60a021a78784a7463759d1ff8a13ec6df6136 | |
parent | 8b1c07112000e93886c96a0dfc1e20da1e0774e4 (diff) |
release: 0.1.22
138 files changed, 988 insertions, 905 deletions
diff --git a/.dstreamrc b/.dstreamrc index 7669e1cdb3..178573bd1a 100644 --- a/.dstreamrc +++ b/.dstreamrc @@ -5,18 +5,18 @@ Dstream 1 # yydebug InitParser 1 -Parser 0 +Parser 1 InitDeclarations 1 Declarations 1 # FlexLexer debug InitLexer 1 -Lexer 1 +Lexer 0 # flower lib File_path 1 Matrix 0 -Vector 1 +Vector 0 # lily Atom 0 @@ -35,11 +35,11 @@ Engraver_group_engraver 0 Group_change_req 0 Head_column 0 Idealspacing 0 -Ineq_constrained_qp 1 +Ineq_constrained_qp 0 Input_translator 0 Item 0 Key_item 0 -Lookup 1 +Lookup 0 Line_spacer 0 Melodic_req 0 Midi_def 0 @@ -47,7 +47,7 @@ Midistrings 1 Mixed_qp 0 Music 0 Music_iterator 0 -My_lily_lexer 0 +My_lily_lexer 1 Note_head 0 Note_performer 0 Note_req 0 @@ -80,8 +80,8 @@ Staff_commands 0 Stem 0 Stem 0 Stem_req 0 -Symtable 1 -Symtables 1 +Symtable 0 +Symtables 0 Text_def 0 Text_req 0 diff --git a/AUTHORS.text b/AUTHORS.text index 59490e17be..45db5d4374 100644 --- a/AUTHORS.text +++ b/AUTHORS.text @@ -25,7 +25,8 @@ AAAAUUUUTTTTHHHHOOOORRRRSSSS Documentation/mudela.pod, lib/*source-file*, lib/duration.cc, lib/source*, flower/*{list,cursor}*, lily/rest-collision*, lily/*abbreviation*, conflily, - cygnus w32 stuff, lily/*perf*, some input files, mf/* + cygnus w32 stuff, lily/*perf*, some input files, + mf/*{bolletjes,wat-zie-ik,eindelijk} and corresponding header files. @@ -60,7 +61,6 @@ CCCCOOOONNNNTTTTRRRRIIIIBBBBUUUUTTTTOOOORRRRSS - -23/Sep/97 LilyPond 0.1.20 1 +10/Oct/97 LilyPond 0.1.22 1 diff --git a/Documentation/AUTHORS.pod b/Documentation/AUTHORS.pod index 16f62c203f..1839dec915 100644 --- a/Documentation/AUTHORS.pod +++ b/Documentation/AUTHORS.pod @@ -24,7 +24,7 @@ lily/midi-*, mi2mu/*, parts flower/string*.cc, make/*.make, */Makefile parts of Documentation/mudela.pod, lib/*source-file*, lib/duration.cc, lib/source*, flower/*{list,cursor}*, lily/rest-collision*, lily/*abbreviation*, conflily, cygnus w32 stuff, lily/*perf*, some -input files, mf/* +input files, mf/*{bolletjes,wat-zie-ik,eindelijk} and corresponding header files. diff --git a/Documentation/Rules.make b/Documentation/Rules.make index 7e87d4ff6b..d5c66f344b 100644 --- a/Documentation/Rules.make +++ b/Documentation/Rules.make @@ -57,7 +57,7 @@ $(outdir)/%.dvi: $(depth)/input/%.ly $(depth)/VERSION # generate the pixmap at twice the size, then rescale (for antialiasing) $(outdir)/%.gif: $(outdir)/%.ps - gs -q -sDEVICE=ppmraw -sOutputFile=- -r200 -dNOPAUSE $< -c quit |pnmscale 0.5| ppmtogif > $@ + gs -q -sDEVICE=ppmraw -sOutputFile=- -r200 -dNOPAUSE $< -c quit |pnmscale 0.5| ppmtogif > $@ $(outdir)/%.ly.txt: $(depth)/input/%.ly ln -f $< $@ diff --git a/Documentation/gnu-music.pod b/Documentation/gnu-music.pod index 21a6385130..3a34a5dfac 100644 --- a/Documentation/gnu-music.pod +++ b/Documentation/gnu-music.pod @@ -93,17 +93,12 @@ of use and power. =item A set of music fonts Preferably in Metafont, suited to both screen display and use on -paper; This is needed because - -1. the copyright heritage of {Opus,Musix}tex is unclear. - -2. We don't have any legal papers which make these fonts free (to use -and alter) +paper. =item A typesetting engine A system with rules on how to set properties of items to be printed -(up/down directions, breaking, dimensoins, etc) LilyPond provides one, +(up/down directions, breaking, dimensions, etc) LilyPond provides one, but it is not (yet) suited to interactive typesetting =item A display engine @@ -170,10 +165,6 @@ formats. =back -The typesetting system has a complexity comparable to TeX's, the GUI -would be comparable to LyX (?) with additional complexity in -recognizing input. - =head1 TASKS (SHORT TERM) =over 4 diff --git a/Documentation/literature.pod b/Documentation/literature.pod index 038c86f577..a085af6c6a 100644 --- a/Documentation/literature.pod +++ b/Documentation/literature.pod @@ -44,14 +44,20 @@ notation issues as one is likely to get. MB] Karl Hader. ``Aus der Werkstatt eines Notenstechers'' Waldheim--Eberle Verlag, Vienna 1948 -[Hader was the leader of the Waldheim-Eberle music publishers. This -book contains the most important rules on engraving] +[Hader was the chief-engraver of the Waldheim-Eberle music publishers. +This book contains the most important rules on engraving (according to +[Chlapik])] MPA. Standard music notation specifications for computer programming. December 1996 [Pamphlet explaining some fine points in music font design HWN] +D. Roush. ``Music Formatting Guidelines,'' Technical Report +OSU-CISRC-3/88-TR10, Department of Computer and Information Science, +The Ohio State University, 1988. + +[Rules on formatting music formulated for use in computers HWN] =head2 Notation with computers @@ -130,12 +136,6 @@ Computer and Information Science, The Ohio State University, 1987. [Placement of balls, stems, dots which occur at the same moment ("Simultaneity") HWN] -D. Roush. ``Music Formatting Guidelines,'' Technical Report -OSU-CISRC-3/88-TR10, Department of Computer and Information Science, -The Ohio State University, 1988. - -[Rules on formatting music formulated for use in computers HWN] - F. Sola. ``Computer Design of Musical Slurs, Ties and Phrase Marks,'' Technical Report OSU-CISRC-10/87-TR32, Department of Computer and Information Science, The Ohio State University, 1987. diff --git a/INSTALL.text b/INSTALL.text index 638c007348..202a89efff 100644 --- a/INSTALL.text +++ b/INSTALL.text @@ -61,7 +61,7 @@ RRRRUUUUNNNNNNNNIIIINNNNGGGG -8/Oct/97 LilyPond 0.1.21 1 +8/Oct/97 LilyPond 0.1.22 1 @@ -127,7 +127,7 @@ CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRIIIINNNNGGGG a -8/Oct/97 LilyPond 0.1.21 2 +8/Oct/97 LilyPond 0.1.22 2 @@ -193,7 +193,7 @@ INSTALL(1) LilyPond documentation INSTALL(1) -8/Oct/97 LilyPond 0.1.21 3 +8/Oct/97 LilyPond 0.1.22 3 @@ -259,7 +259,7 @@ IIIINNNNSSSSTTTTAAAALLLLLLLLIIIINNNNGGGG -8/Oct/97 LilyPond 0.1.21 4 +8/Oct/97 LilyPond 0.1.22 4 @@ -325,7 +325,7 @@ RRRREEEEDDDDHHHHAAAATTTT LLLLIIIINNNNUUUUXXXX -8/Oct/97 LilyPond 0.1.21 5 +8/Oct/97 LilyPond 0.1.22 5 @@ -391,6 +391,6 @@ AAAAUUUUTTTTHHHHOOOORRRRSSSS -8/Oct/97 LilyPond 0.1.21 6 +8/Oct/97 LilyPond 0.1.22 6 @@ -1,3 +1,16 @@ +pl 22 + - bf: lyric 's- Zondags + - bf: colliding accidentals: renamed translate(Real,Axis) to translate_axis() + - renaming of scripts + - strings with escaped characters. + - bf "string_with_\"_embedded" + - bf: mf/Makefile + - feta changes (trill, organ pedals) + - updated mf-to-table for new feta conventions + - changed header format to something sensible. + - moved staff to centerline == 0; + +******** pl 21 - shrinking uses more energy than stretching - check IO error on writing (disk full?) @@ -6,15 +6,15 @@ done, or is an idea that I want to think about Most of the items are marked in the code as well, with full explanation. grep for TODO and ugh/ugr - * accidental placement + * todo key-sig placement. + + * put errorlevel in Input * AFM for font input? * Make general "spanning"-elements and "placer"-elements - * Unicode support? - - - naming Mozarella, Madeira, Muella, Fontaigna, Feta? + - naming Mozarella, Madeira, Muella, Feta? - bf: abbrevs over whole note - scoping for properties @@ -53,20 +53,20 @@ grep for TODO and ugh/ugr * Fix profiling. gprof bugreport? - * read from mmap directly: bugreport to flex developers-> - yy_scan_buffer in C++.. - - * (where are the) gcc compile warnings on linux - PROJECTS + * Unicode support? + - 16 bit Strings + - -u switch + - detect of 16/8 bit files + - examples to go with it. + * Spring_spacer: - write a faster Spring_spacer ( without matrices if possible ) - relate energybound to linelen unitspace fontsize etc. - used fixed point fp * \header - - revise lexer mode - write perl script for handling it into databases - write TeX macros to generate titles @@ -102,16 +102,13 @@ languages: - derive lily_stream, Dstream, texstream from ostream? - indentable stream as baseclass for TeX stream, lily stream, Dstream. - use dstream feature in mi2mu + - integrate IO checking into stream class * input converters - NIFF? - ABC? - SMDL? - * robustification - - check write errors - - check read errors - * placement of bar-numbers ****************** @@ -1,6 +1,6 @@ TOPLEVEL_MAJOR_VERSION = 0 TOPLEVEL_MINOR_VERSION = 1 -TOPLEVEL_PATCH_LEVEL = 21 -TOPLEVEL_MY_PATCH_LEVEL = .jcn1 +TOPLEVEL_PATCH_LEVEL = 22 +TOPLEVEL_MY_PATCH_LEVEL = # use the above to send patches, always empty for released version: diff --git a/bin/Makefile b/bin/Makefile index 4b3c40476d..7850aabe65 100644 --- a/bin/Makefile +++ b/bin/Makefile @@ -4,24 +4,26 @@ depth = .. include $(depth)/make/Include.make # list of distribution files: -SCRIPTS = clearlily cpgento make-patch lily.efence \ - make-version release conflily clean-fonts -PERL_SCRIPTS_IN = $(wildcard *.in) -PERL_SCRIPTS = $(addprefix $(outdir)/, $(PERL_SCRIPTS_IN:.in=)) +PERL_SCRIPTS_IN = $(wildcard *.pl) +PERL_SCRIPTS = $(addprefix $(outdir)/, $(PERL_SCRIPTS_IN:.pl=)) +SH_SCRIPTS_IN = $(wildcard *.sh) +SH_SCRIPTS = $(addprefix $(outdir)/, $(SH_SCRIPTS_IN:.sh=)) PYTHON_SCRIPTS_IN = $(wildcard *.py) PYTHON_SCRIPTS = $(addprefix $(outdir)/, $(PYTHON_SCRIPTS_IN:.py=)) -EXTRA_DISTFILES = $(SCRIPTS) $(PERL_SCRIPTS_IN) $(PYTHON_SCRIPTS_IN) -# +EXTRA_DISTFILES = $(SH_SCRIPTS_IN) $(PERL_SCRIPTS_IN) $(PYTHON_SCRIPTS_IN) -all: $(PERL_SCRIPTS) $(PYTHON_SCRIPTS) -$(outdir)/%: %.in -# cd .. && CONFIG_FILES=bin/$(notdir $@) CONFIG_HEADERS= ./config.status -# mv $(< :.in=) $@ -# this nukes make/out/Configure_variables.make. +all: $(PERL_SCRIPTS) $(PYTHON_SCRIPTS) $(SH_SCRIPTS) + +$(outdir)/%: %.pl sed 's!@PERL@!$(PERL)!' < $< > $@ chmod 755 $@ +#FIXME. Check for bash? +$(outdir)/%: %.sh + sed 's!@SH@!$(SH)!' < $< > $@ + chmod 755 $@ + $(outdir)/%: %.py sed 's!@PYTHON@!$(PYTHON)!' < $< > $@ chmod 755 $@ diff --git a/bin/clearlily b/bin/clean-diaper.sh index 22a4ea6df3..284346da82 100755..100644 --- a/bin/clearlily +++ b/bin/clean-diaper.sh @@ -4,6 +4,10 @@ rm -vf *.aux *.log `grep -li "^% Creator: GNU LilyPond" *.out` *.orig *~ rm -vf `grep -li "Creator: mi2mu" *.midi.ly` rm -vf `grep -li "Creator: GNU LilyPond" *.midi` +rm -vf `find -name 'core'` +rm -vf `find -name *.orig` +rm -vf `find -name *.rej` + # docxx mess rm -vf *dvi rm -vf *.class HIER*.html dxxgifs.tex gifs.db icon?.gif logo.gif down.gif \ diff --git a/bin/clean-fonts b/bin/clean-fonts deleted file mode 100755 index cc1c070747..0000000000 --- a/bin/clean-fonts +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -# remove possibly stale .pk/.tfm files -echo> /tmp/cleaning-font -FILES=`find /var/lib/texmf/ -name 'font-en-tja*'` -# FILES=`find /var/lib/texmf/ -name 'font-en-tja*' -o -name 'vette-beam*' -o -name 'dyn10*'` -echo removing $FILES -rm $FILES /tmp/cleaning-font diff --git a/bin/clean-fonts.sh b/bin/clean-fonts.sh new file mode 100644 index 0000000000..8494ff68a5 --- /dev/null +++ b/bin/clean-fonts.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# remove possibly stale .pk/.tfm files +echo> /tmp/cleaning-font +FILES=`find /var/lib/texmf/ -name 'font-en-tja*'` # -or -name 'vette-beam*'` +echo removing $FILES +rm $FILES /tmp/cleaning-font diff --git a/bin/conflily b/bin/conflily.sh index de2ce672f9..de2ce672f9 100755..100644 --- a/bin/conflily +++ b/bin/conflily.sh diff --git a/bin/convert-mudela.in b/bin/convert-mudela.pl index 8b05c1561a..7c26746870 100644 --- a/bin/convert-mudela.in +++ b/bin/convert-mudela.pl @@ -119,6 +119,19 @@ sub convert_0_1_2_to_0_1_3 s/\\hshift ([^;]+) *;/\\property Voice.hshift = $1/g; } +my $header_b = 0; + +sub generic_conversion_scan +{ + if (/\\header *\{/) + { + $header_b = 1; + } + if ($header_b && /^ *\}/) + { + $header_b = 0; + } +} sub convert_0_1_4_to_0_1_5 { s/([<{]) *\\id "Piano" (.+);/\\type Grandstaff = $3 $1/; @@ -130,7 +143,16 @@ sub convert_0_1_5_to_0_1_6 { s/< *\\multi (.*);/\\multi $1 </; } - + +sub convert_0_1_6_to_0_1_7 +{ + if ($header_b) + { + s/^([a-zA-z]+)[ \t]+(.*)$/$1 =\t \"$2\";/; + s/^([ \t])+(.*)$/$1 \"$2\";/; + } +} + ############################################################### sub last_conversion @@ -177,14 +199,16 @@ my %minor_conversions = ("0.0.50" => \&no_conv, "0.1.4" => \&no_conv, "0.1.5" => \&convert_0_1_4_to_0_1_5, "0.1.6" => \&convert_0_1_5_to_0_1_6 + ,"0.1.7" => \&convert_0_1_6_to_0_1_7 ); + sub versions { return (sort { cmpver; } (keys %minor_conversions)); } - + sub show_rules { @@ -212,6 +236,7 @@ sub do_conversion print STDERR "Applying following rules: ", join(", ", @mudela_levels) , "\n"; while (<INLY>) { + generic_conversion_scan; foreach $subroutine (@applicable_conversion) { &$subroutine; diff --git a/bin/cpgento b/bin/cpgento.sh index 74f77787db..74f77787db 100755..100644 --- a/bin/cpgento +++ b/bin/cpgento.sh diff --git a/bin/find-typenames.pl b/bin/find-typenames.pl new file mode 100644 index 0000000000..e08fd00800 --- /dev/null +++ b/bin/find-typenames.pl @@ -0,0 +1,20 @@ +#!/usr/bin/perl + +open GREP, "egrep -h '^struct|^class' *.hh *.cc|"; +open OUT, "|sort | uniq"; +while (<GREP>) { + + s/^struct/class/; + if (! /; *$/) { + s/:[^{]+{.*$//; + s/ *{.*$/;/; + } + if (! /; *$/) { + chop; + $_ .= ";\n"; + + } + print OUT; +} +close OUT; +close GREP; diff --git a/bin/genheader.py b/bin/genheader.py index f8c1cc30f1..07bd450772 100644 --- a/bin/genheader.py +++ b/bin/genheader.py @@ -66,7 +66,7 @@ def head_str(filename): def c_include(filename): startdef= filename; - trans = string.maketrans( string.lowercase + '.', string.uppercase + '_') + trans = string.maketrans( string.lowercase + '-.', string.uppercase + '__') startdef = string.translate(filename, trans) diff --git a/bin/lily.efence b/bin/lily.efence deleted file mode 100755 index 5924253436..0000000000 --- a/bin/lily.efence +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -gdb --command=bin/efence.gdbinit - - diff --git a/bin/make-docxx.sh b/bin/make-docxx.sh new file mode 100644 index 0000000000..dc60f80f1c --- /dev/null +++ b/bin/make-docxx.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +p1=`find ./ -name '*.hh' |egrep -v out/` +p2=`find ./ -name '*.cc' |egrep -v out/` +doc++ -d out/ -S -k -p $p1 $p2 diff --git a/bin/make-patch b/bin/make-patch.sh index e11d7b8533..e11d7b8533 100755..100644 --- a/bin/make-patch +++ b/bin/make-patch.sh diff --git a/bin/make-version b/bin/make-version.sh index 3be14353cb..3be14353cb 100755..100644 --- a/bin/make-version +++ b/bin/make-version.sh diff --git a/bin/make-website.in b/bin/make-website.pl index 9830035556..1d690e23ad 100644 --- a/bin/make-website.in +++ b/bin/make-website.pl @@ -295,8 +295,7 @@ sub docxx_update $ban =~ s!index.html!../index.html!g; print BANNER $ban; close BANNER; - my_system "$MAKE -C $depth docxx-opts=\"-p -S -k -B /tmp/lilybanner.html\" doc++"; - # should add a cute header. + my_system "BANNEROPT=\"-B /tmp/lilybanner.html\" $depth/bin/out/make-docxx"; } sub do_tar diff --git a/bin/mf-to-table.py b/bin/mf-to-table.py index bf680f9377..1cd84f5ee6 100644 --- a/bin/mf-to-table.py +++ b/bin/mf-to-table.py @@ -18,8 +18,8 @@ import time begin_autometric_re = regex.compile('@{') end_autometric_re = regex.compile('@}') -autometric_re = regex.compile('@{\([^@]*\)@}') -version = '0.3' +autometric_re = regex.compile('@{\(.*\)@}') +version = '0.4' class File: """silly wrapper for Python file object.""" @@ -63,10 +63,12 @@ class Feta_file(File): def readline(self): """return what is enclosed in one @{ @} pair""" line = ''; - while autometric_re.match(line) == -1 and not self.eof(): + while autometric_re.search(line) == -1 and not self.eof(): line = self.read_autometricline() + if self.eof(): return ''; + return autometric_re.group(1); def __init__(self, nm): File.__init__(self, nm) @@ -105,16 +107,20 @@ class Indentable_file(File): class Ly_file(Indentable_file): """extra provisions for mozarella quirks""" def print_lit(self, str): - self.write('\"' + str + '\" ') + self.write('\"%s\"\t' % str) + + def print_f_dimen(self, f): + self.write( '%.2f\\pt\t' % f); def print_dimen(self, str): - self.write( '%.2f' % atof(str) + '\\pt '); + self.print_f_dimen(atof(str)) def neg_print_dimen(self, str): - self.write( '%.2f' % -atof(str) + '\\pt '); + self.print_f_dimen(-atof(str)); + def def_symbol(self, lily_id, tex_id, dims): self.print_lit(lily_id) - self.print_lit('\\' + tex_id) + self.print_lit('\\\\' + tex_id) self.neg_print_dimen(dims [0]) self.print_dimen(dims [1]) @@ -126,9 +132,10 @@ class Ly_file(Indentable_file): class Log_reader: """Read logs, destill info, and put into output files""" def output_label(self, line): + if not line: return; - tags = split(line, ':') + tags = split(line, '@:') label = tags[0] name = tags[1] ly = self.lyfile @@ -155,14 +162,14 @@ class Log_reader: ly.def_symbol(id, texstr, tags[3:7]) - self.texfile.write("\\fetdef\\" + texstr + '{' + code + '}\n') + self.texfile.write("\\fetdef\\%s{%s}\n" % (texstr, code)) else: raise 'unknown label: ' + label def do_file(self,filenm): self.lyfile.write('\n% input from ' + filenm + '\n') - self.texfile.write('\n% input from ' + filenm + '\n') + self.texfile.write('\n% input from ' + filenm + '\n') feta = Feta_file(filenm) while not feta.eof(): line = feta.readline() @@ -173,9 +180,9 @@ class Log_reader: self.lyfile = Ly_file(lyfile_nm, 'w') self.texfile = Indentable_file(texfile_nm, 'w') - headerstr = '% generated automatically by ' + program_id() - headerstr = headerstr + '\n% on ' + today_str() - headerstr = headerstr + '\n% Do not edit\n' + + headerstr = '%% generated automatically by %s\n%% on %s\n%% Do not edit' % \ + (program_id(), today_str()) self.lyfile.write(headerstr) self.texfile.write(headerstr) diff --git a/bin/mudela-book.in b/bin/mudela-book.pl index 9aec75cb60..9aec75cb60 100644 --- a/bin/mudela-book.in +++ b/bin/mudela-book.pl diff --git a/bin/release b/bin/release.sh index 7521b49f11..e6e3b679ef 100755..100644 --- a/bin/release +++ b/bin/release.sh @@ -50,7 +50,7 @@ patch=patch-$LILYVER.gz mv $tarball $releasedir/ cd ../test -$heredir/bin/make-patch $LASTVER $NEWVER lilypond +sh $heredir/bin/make-patch.sh $LASTVER $NEWVER lilypond gzip -f9 patch-$NEWVER mv $patch $patchdir// diff --git a/bin/show-latest.in b/bin/show-latest.pl index a75250b54f..a75250b54f 100644 --- a/bin/show-latest.in +++ b/bin/show-latest.pl diff --git a/flower/TODO b/flower/TODO index b71ad836c0..714f3ded6e 100644 --- a/flower/TODO +++ b/flower/TODO @@ -1,12 +1,18 @@ - * write a String_hash template + * write a decent Dictionary + - write a String_hash template + - write a Pointer_hash template * Array::slice() upper too - * write a Pointer_hash template + * fix ambiguous String constructor overloads, e.g.: + String( int ) and String( char ), use + + class String { + explicit String(int); + } - * fix/junk ambiguous String constructor overloads, e.g.: - String( int ) and String( char ) + * Automake, libtool * version numbering for shared lib. diff --git a/flower/include/string.hh b/flower/include/string.hh index 9e60bf9858..69226f075b 100644 --- a/flower/include/string.hh +++ b/flower/include/string.hh @@ -83,10 +83,7 @@ public: Byte const* byte_C() const; char* ch_l(); Byte* byte_l(); -#if 0 - /// deprecated; use ch_C() - operator char const*() const { return ch_C(); } -#endif + String &operator =(String const & source); /// concatenate s diff --git a/init/engraver.ly b/init/engraver.ly index 0852b4ca8c..528df1cc67 100644 --- a/init/engraver.ly +++ b/init/engraver.ly @@ -66,7 +66,7 @@ Lyric_voice = \consists "Lyric_engraver"; \consists "Line_group_engraver"; - %\consists "Swallow_engraver"; + \consists "Beam_req_swallow_translator"; } Lyrics = \translator { diff --git a/init/font-en-tja16.ly b/init/font-en-tja16.ly index dddd3152d2..4d27f2f750 100644 --- a/init/font-en-tja16.ly +++ b/init/font-en-tja16.ly @@ -1,57 +1,58 @@ -% generated automatically by mf-to-table.py version 0.3 -% on Thu Oct 9 20:24:25 1997 +% generated automatically by mf-to-table.py version 0.4 +% on Fri Oct 10 21:22:38 1997 % Do not edit - % input from out/font-en-tja16.log % name=\symboltables { - "rests" = \table { - "0" "\wholerest" -0.00\pt 6.00\pt 1.50\pt 4.00\pt - "1" "\halfrest" -0.00\pt 6.00\pt -0.00\pt 2.50\pt - "0o" "\outsidewholerest" -2.50\pt 8.50\pt 1.50\pt 4.00\pt - "1o" "\outsidehalfrest" -2.50\pt 8.50\pt -0.00\pt 2.50\pt - "2" "\quartrest" -0.00\pt 4.00\pt 3.00\pt 14.00\pt - "3" "\eighthrest" -0.00\pt 5.33\pt 4.00\pt 11.47\pt - "4" "\sixteenthrest" -0.00\pt 5.33\pt -0.00\pt 11.47\pt - "5" "\thirtysecondrest" -0.00\pt 5.33\pt -0.00\pt 15.47\pt - "6" "\sixtyfourthrest" -0.00\pt 5.33\pt -0.00\pt 19.47\pt - "7" "\hundredtwentyeighthrest" -0.00\pt 5.33\pt -0.00\pt 23.47\pt + "rests" = \table { + "0" "\\wholerest" -0.00\pt 6.00\pt 1.50\pt 4.00\pt + "1" "\\halfrest" -0.00\pt 6.00\pt -0.00\pt 2.50\pt + "0o" "\\outsidewholerest" -2.50\pt 8.50\pt 1.50\pt 4.00\pt + "1o" "\\outsidehalfrest" -2.50\pt 8.50\pt -0.00\pt 2.50\pt + "2" "\\quartrest" -0.00\pt 4.00\pt 3.00\pt 14.00\pt + "3" "\\eighthrest" -0.00\pt 5.33\pt 4.00\pt 11.47\pt + "4" "\\sixteenthrest" -0.00\pt 5.33\pt -0.00\pt 11.47\pt + "5" "\\thirtysecondrest" -0.00\pt 5.33\pt -0.00\pt 15.47\pt + "6" "\\sixtyfourthrest" -0.00\pt 5.33\pt -0.00\pt 19.47\pt + "7" "\\hundredtwentyeighthrest" -0.00\pt 5.33\pt -0.00\pt 23.47\pt } - "accidentals" = \table { - "1" "\sharp" -0.00\pt 4.40\pt -6.00\pt 6.00\pt - "0" "\natural" -0.00\pt 2.67\pt -6.00\pt 6.00\pt - "-1" "\flat" -0.00\pt 3.00\pt -2.00\pt 8.00\pt - "-2" "\flatflat" -0.00\pt 6.00\pt -2.00\pt 8.00\pt - "2" "\sharpsharp" -0.00\pt 4.00\pt -2.00\pt 2.00\pt + "accidentals" = \table { + "1" "\\sharp" -0.00\pt 4.40\pt -6.00\pt 6.00\pt + "0" "\\natural" -0.00\pt 2.67\pt -6.00\pt 6.00\pt + "-1" "\\flat" -0.00\pt 3.00\pt -2.00\pt 8.00\pt + "-2" "\\flatflat" -0.00\pt 6.00\pt -2.00\pt 8.00\pt + "2" "\\sharpsharp" -0.00\pt 4.00\pt -2.00\pt 2.00\pt } - "dots" = \table { - "dot" "\dot" -0.00\pt 1.80\pt -0.90\pt 0.90\pt + "dots" = \table { + "dot" "\\dot" -0.00\pt 1.80\pt -0.90\pt 0.90\pt } - "balls" = \table { - "-1" "\brevisball" -0.00\pt 8.00\pt -2.20\pt 2.20\pt - "-2" "\longaball" -0.00\pt 8.00\pt -2.20\pt 2.20\pt - "0" "\wholeball" -0.00\pt 7.92\pt -2.20\pt 2.20\pt - "1" "\halfball" -0.00\pt 5.51\pt -2.20\pt 2.20\pt - "2" "\quartball" -0.00\pt 5.28\pt -2.20\pt 2.20\pt + "balls" = \table { + "-1" "\\brevisball" -0.00\pt 8.00\pt -2.20\pt 2.20\pt + "-2" "\\longaball" -0.00\pt 8.00\pt -2.20\pt 2.20\pt + "0" "\\wholeball" -0.00\pt 7.92\pt -2.20\pt 2.20\pt + "1" "\\halfball" -0.00\pt 5.51\pt -2.20\pt 2.20\pt + "2" "\\quartball" -0.00\pt 5.28\pt -2.20\pt 2.20\pt } - "foobars" = \table { - "ufermata" "\ufermata" -6.30\pt 6.30\pt -0.30\pt 6.80\pt - "dfermata" "\dfermata" -6.30\pt 6.30\pt -6.80\pt 0.00\pt - "accent" "\sforzatoaccent" -3.60\pt 3.60\pt -2.00\pt 2.00\pt - "staccato" "\staccato" -0.50\pt 0.50\pt -0.50\pt 0.50\pt - "ustaccatissimo" "\ustaccatissimo" -0.80\pt 0.80\pt -0.20\pt 4.00\pt - "dstaccatissimo" "\dstaccatissimo" -0.80\pt 0.80\pt -4.00\pt 0.20\pt - "tenuto" "\tenuto" -3.60\pt 3.60\pt -0.24\pt 0.24\pt - "umarcato" "\umarcato" -2.00\pt 2.00\pt -0.00\pt 4.40\pt - "dmarcato" "\dmarcato" -2.00\pt 2.00\pt -4.40\pt 0.00\pt - "open" "\ouvert" -1.40\pt 1.40\pt -0.00\pt 3.50\pt - "stopped" "\plusstop" -2.20\pt 2.20\pt -2.20\pt 2.20\pt - "upbow" "\upbow" -2.60\pt 2.60\pt -0.00\pt 7.80\pt - "downbow" "\downbow" -3.50\pt 3.50\pt -0.00\pt 4.00\pt - "turn" "\turn" -4.38\pt 4.38\pt -2.12\pt 2.12\pt - "utrill" "\utrill" -0.00\pt 8.00\pt -0.00\pt 6.00\pt + "scripts" = \table { + "ufermata" "\\ufermata" -5.30\pt 5.30\pt -0.30\pt 5.80\pt + "dfermata" "\\dfermata" -5.30\pt 5.30\pt -5.80\pt 0.00\pt + "sforzato" "\\sforzatoaccent" -3.60\pt 3.60\pt -2.00\pt 2.00\pt + "staccato" "\\staccato" -0.60\pt 0.60\pt -0.60\pt 0.60\pt + "ustaccatissimo" "\\ustaccatissimo" -0.80\pt 0.80\pt -0.20\pt 4.00\pt + "dstaccatissimo" "\\dstaccatissimo" -0.80\pt 0.80\pt -4.00\pt 0.20\pt + "tenuto" "\\tenuto" -3.60\pt 3.60\pt -0.24\pt 0.24\pt + "umarcato" "\\umarcato" -2.00\pt 2.00\pt -0.00\pt 4.40\pt + "dmarcato" "\\dmarcato" -2.00\pt 2.00\pt -4.40\pt 0.00\pt + "open" "\\ouvert" -1.60\pt 1.60\pt -2.00\pt 2.00\pt + "stopped" "\\plusstop" -2.20\pt 2.20\pt -2.20\pt 2.20\pt + "upbow" "\\upbow" -2.60\pt 2.60\pt -0.00\pt 8.32\pt + "downbow" "\\downbow" -3.00\pt 3.00\pt -0.00\pt 5.33\pt + "turn" "\\turn" -4.38\pt 4.38\pt -2.12\pt 2.12\pt + "trill" "\\trill" -0.00\pt 8.00\pt -0.00\pt 9.00\pt + "pedalheel" "\\pedalheel" -2.00\pt 2.00\pt -2.00\pt 2.67\pt + "pedaltoe" "\\pedaltoe" -2.00\pt 2.00\pt -0.00\pt 6.00\pt } - "floogbars" = \table { - "3u" "\eighthflag" -0.20\pt 5.17\pt -12.77\pt 0.20\pt - "3d" "\deighthflag" -0.20\pt 5.17\pt -0.20\pt 12.77\pt + "floogbars" = \table { + "3u" "\\eighthflag" -0.20\pt 4.10\pt -12.77\pt 0.20\pt + "3d" "\\deighthflag" -0.20\pt 4.10\pt -0.20\pt 12.77\pt } % } % $name diff --git a/init/font-en-tja20.ly b/init/font-en-tja20.ly index eee1f222b7..63af39049e 100644 --- a/init/font-en-tja20.ly +++ b/init/font-en-tja20.ly @@ -1,57 +1,58 @@ -% generated automatically by mf-to-table.py version 0.3 -% on Thu Oct 9 20:24:27 1997 +% generated automatically by mf-to-table.py version 0.4 +% on Fri Oct 10 21:22:44 1997 % Do not edit - % input from out/font-en-tja20.log % name=\symboltables { - "rests" = \table { - "0" "\wholerest" -0.00\pt 7.50\pt 1.88\pt 5.00\pt - "1" "\halfrest" -0.00\pt 7.50\pt -0.00\pt 3.13\pt - "0o" "\outsidewholerest" -3.13\pt 10.62\pt 1.88\pt 5.00\pt - "1o" "\outsidehalfrest" -3.13\pt 10.62\pt -0.00\pt 3.13\pt - "2" "\quartrest" -0.00\pt 5.00\pt 3.75\pt 17.50\pt - "3" "\eighthrest" -0.00\pt 6.67\pt 5.00\pt 14.33\pt - "4" "\sixteenthrest" -0.00\pt 6.67\pt -0.00\pt 14.33\pt - "5" "\thirtysecondrest" -0.00\pt 6.67\pt -0.00\pt 19.33\pt - "6" "\sixtyfourthrest" -0.00\pt 6.67\pt -0.00\pt 24.33\pt - "7" "\hundredtwentyeighthrest" -0.00\pt 6.67\pt -0.00\pt 29.33\pt + "rests" = \table { + "0" "\\wholerest" -0.00\pt 7.50\pt 1.88\pt 5.00\pt + "1" "\\halfrest" -0.00\pt 7.50\pt -0.00\pt 3.13\pt + "0o" "\\outsidewholerest" -3.13\pt 10.62\pt 1.88\pt 5.00\pt + "1o" "\\outsidehalfrest" -3.13\pt 10.62\pt -0.00\pt 3.13\pt + "2" "\\quartrest" -0.00\pt 5.00\pt 3.75\pt 17.50\pt + "3" "\\eighthrest" -0.00\pt 6.67\pt 5.00\pt 14.33\pt + "4" "\\sixteenthrest" -0.00\pt 6.67\pt -0.00\pt 14.33\pt + "5" "\\thirtysecondrest" -0.00\pt 6.67\pt -0.00\pt 19.33\pt + "6" "\\sixtyfourthrest" -0.00\pt 6.67\pt -0.00\pt 24.33\pt + "7" "\\hundredtwentyeighthrest" -0.00\pt 6.67\pt -0.00\pt 29.33\pt } - "accidentals" = \table { - "1" "\sharp" -0.00\pt 5.50\pt -7.50\pt 7.50\pt - "0" "\natural" -0.00\pt 3.33\pt -7.50\pt 7.50\pt - "-1" "\flat" -0.00\pt 3.75\pt -2.50\pt 10.00\pt - "-2" "\flatflat" -0.00\pt 7.50\pt -2.50\pt 10.00\pt - "2" "\sharpsharp" -0.00\pt 5.00\pt -2.50\pt 2.50\pt + "accidentals" = \table { + "1" "\\sharp" -0.00\pt 5.50\pt -7.50\pt 7.50\pt + "0" "\\natural" -0.00\pt 3.33\pt -7.50\pt 7.50\pt + "-1" "\\flat" -0.00\pt 3.75\pt -2.50\pt 10.00\pt + "-2" "\\flatflat" -0.00\pt 7.50\pt -2.50\pt 10.00\pt + "2" "\\sharpsharp" -0.00\pt 5.00\pt -2.50\pt 2.50\pt } - "dots" = \table { - "dot" "\dot" -0.00\pt 2.25\pt -1.13\pt 1.13\pt + "dots" = \table { + "dot" "\\dot" -0.00\pt 2.25\pt -1.13\pt 1.13\pt } - "balls" = \table { - "-1" "\brevisball" -0.00\pt 10.00\pt -2.75\pt 2.75\pt - "-2" "\longaball" -0.00\pt 10.00\pt -2.75\pt 2.75\pt - "0" "\wholeball" -0.00\pt 9.90\pt -2.75\pt 2.75\pt - "1" "\halfball" -0.00\pt 6.89\pt -2.75\pt 2.75\pt - "2" "\quartball" -0.00\pt 6.61\pt -2.75\pt 2.75\pt + "balls" = \table { + "-1" "\\brevisball" -0.00\pt 10.00\pt -2.75\pt 2.75\pt + "-2" "\\longaball" -0.00\pt 10.00\pt -2.75\pt 2.75\pt + "0" "\\wholeball" -0.00\pt 9.90\pt -2.75\pt 2.75\pt + "1" "\\halfball" -0.00\pt 6.89\pt -2.75\pt 2.75\pt + "2" "\\quartball" -0.00\pt 6.61\pt -2.75\pt 2.75\pt } - "foobars" = \table { - "ufermata" "\ufermata" -7.88\pt 7.88\pt -0.38\pt 8.50\pt - "dfermata" "\dfermata" -7.88\pt 7.88\pt -8.50\pt 0.00\pt - "accent" "\sforzatoaccent" -4.50\pt 4.50\pt -2.50\pt 2.50\pt - "staccato" "\staccato" -0.63\pt 0.63\pt -0.63\pt 0.63\pt - "ustaccatissimo" "\ustaccatissimo" -1.00\pt 1.00\pt -0.20\pt 5.00\pt - "dstaccatissimo" "\dstaccatissimo" -1.00\pt 1.00\pt -5.00\pt 0.20\pt - "tenuto" "\tenuto" -4.50\pt 4.50\pt -0.30\pt 0.30\pt - "umarcato" "\umarcato" -2.50\pt 2.50\pt -0.00\pt 5.50\pt - "dmarcato" "\dmarcato" -2.50\pt 2.50\pt -5.50\pt 0.00\pt - "open" "\ouvert" -1.75\pt 1.75\pt -0.00\pt 4.38\pt - "stopped" "\plusstop" -2.75\pt 2.75\pt -2.75\pt 2.75\pt - "upbow" "\upbow" -3.25\pt 3.25\pt -0.00\pt 9.75\pt - "downbow" "\downbow" -4.38\pt 4.38\pt -0.00\pt 5.00\pt - "turn" "\turn" -5.47\pt 5.47\pt -2.65\pt 2.65\pt - "utrill" "\utrill" -0.00\pt 10.00\pt -0.00\pt 7.50\pt + "scripts" = \table { + "ufermata" "\\ufermata" -6.63\pt 6.63\pt -0.38\pt 7.25\pt + "dfermata" "\\dfermata" -6.63\pt 6.63\pt -7.25\pt 0.00\pt + "sforzato" "\\sforzatoaccent" -4.50\pt 4.50\pt -2.50\pt 2.50\pt + "staccato" "\\staccato" -0.75\pt 0.75\pt -0.75\pt 0.75\pt + "ustaccatissimo" "\\ustaccatissimo" -1.00\pt 1.00\pt -0.20\pt 5.00\pt + "dstaccatissimo" "\\dstaccatissimo" -1.00\pt 1.00\pt -5.00\pt 0.20\pt + "tenuto" "\\tenuto" -4.50\pt 4.50\pt -0.30\pt 0.30\pt + "umarcato" "\\umarcato" -2.50\pt 2.50\pt -0.00\pt 5.50\pt + "dmarcato" "\\dmarcato" -2.50\pt 2.50\pt -5.50\pt 0.00\pt + "open" "\\ouvert" -2.00\pt 2.00\pt -2.50\pt 2.50\pt + "stopped" "\\plusstop" -2.75\pt 2.75\pt -2.75\pt 2.75\pt + "upbow" "\\upbow" -3.25\pt 3.25\pt -0.00\pt 10.40\pt + "downbow" "\\downbow" -3.75\pt 3.75\pt -0.00\pt 6.67\pt + "turn" "\\turn" -5.47\pt 5.47\pt -2.65\pt 2.65\pt + "trill" "\\trill" -0.00\pt 10.00\pt -0.00\pt 11.25\pt + "pedalheel" "\\pedalheel" -2.50\pt 2.50\pt -2.50\pt 3.33\pt + "pedaltoe" "\\pedaltoe" -2.50\pt 2.50\pt -0.00\pt 7.50\pt } - "floogbars" = \table { - "3u" "\eighthflag" -0.25\pt 6.46\pt -15.91\pt 0.25\pt - "3d" "\deighthflag" -0.25\pt 6.46\pt -0.25\pt 15.91\pt + "floogbars" = \table { + "3u" "\\eighthflag" -0.25\pt 5.13\pt -15.91\pt 0.25\pt + "3d" "\\deighthflag" -0.25\pt 5.13\pt -0.25\pt 15.91\pt } % } % $name diff --git a/init/script.ly b/init/script.ly index 508e43223f..a96f2adf76 100644 --- a/init/script.ly +++ b/init/script.ly @@ -13,10 +13,16 @@ staccato = \script { "staccato" 1 -1 0 0 0 } tenuto = \script {"tenuto" 0 -1 0 0 0 } upbow = \script { "upbow" 0 0 1 0 0 } downbow = \script { "downbow" 0 0 1 0 0 } -lheel = \script { "heel" 0 0 -1 0 0 } -rheel = \script { "heel" 0 0 1 0 0 } -ltoe = \script { "toe" 0 0 -1 0 0 } -rtoe = \script { "toe" 0 0 1 0 0 } +lheel = \script { "pedalheel" 0 0 -1 0 0 } +rheel = \script { "pedalheel" 0 0 1 0 0 } +ltoe = \script { "pedaltoe" 0 0 -1 0 0 } +rtoe = \script { "pedaltoe" 0 0 1 0 0 } +turn = \script { "turn" 0 0 1 0 0 } +open = \script { "open" 0 0 1 0 0 } + + +% could we do without this bloat? +% lbheel = \script { "bheel" 0 0 -1 0 0 } rbheel = \script { "bheel" 0 0 1 0 0 } lbtoe = \script { "btoe" 0 0 -1 0 0 } @@ -25,8 +31,6 @@ lfheel = \script { "fheel" 0 0 -1 0 0 } rfheel = \script { "fheel" 0 0 1 0 0 } lftoe = \script { "ftoe" 0 0 -1 0 0 } rftoe = \script { "ftoe" 0 0 1 0 0 } -turn = \script { "turn" 0 0 1 0 0 } -open = \script { "open" 0 0 1 0 0 } % % left toe: right heel: @@ -45,3 +49,5 @@ open = \script { "open" 0 0 1 0 0 } % being translated into priority... back = \script { "back" 0 -1 -1 0 0 } front = \script { "front" 0 -1 1 0 0 } + +trill =\script { "trill" 0 0 1 0 0 } diff --git a/init/symbol.ly b/init/symbol.ly index 3efcaa9b0b..564fca56cf 100644 --- a/init/symbol.ly +++ b/init/symbol.ly @@ -2,7 +2,7 @@ % % FIXME other name -\version "0.1.6"; +\version "0.1.7"; breve = \duration { -1 0 } longa = \duration { -2 0 } diff --git a/init/table16.ly b/init/table16.ly index 0fe26c3108..4d80868a5b 100644 --- a/init/table16.ly +++ b/init/table16.ly @@ -10,35 +10,20 @@ table_sixteen= \texid "\input lilyponddefs \musixsixteendefs" % index TeXstring, xmin xmax ymin ymax - "scripts" = \table { - "stopped" "\plusstop" -2.20\pt 2.20\pt -2.20\pt 2.20\pt - "open" "\ouvert" -1.07\pt 1.07\pt -0.00\pt 2.67\pt - "fermata" "\ufermata" 0.0\pt 0.0\pt 0.0\pt 6.0\pt - "-fermata" "\dfermata" 0.0\pt 0.0\pt -6.0\pt 0.0\pt - "portato" "\portato" 0.0\pt 4.0\pt 0.0\pt 2.0\pt - "-portato" "\iportato" 0.0\pt 4.0\pt -2.0\pt 0.0\pt - "tenuto" "\utenuto" 0.0\pt 4.0\pt -1.0\pt 1.0\pt - "-tenuto" "\dtenuto" 0.0\pt 4.0\pt -1.0\pt 1.0\pt - "sforzato" "\sforzatoaccent" -0.8\pt 4.0\pt -1.92\pt 1.92\pt - "marcato" "\umarcato" 0.0\pt 4.0\pt 0.0\pt 4.0\pt - "-marcato" "\dmarcato" 0.0\pt 4.0\pt -4.0\pt 0.0\pt - "staccato" "\staccato" 0.0\pt 0.0\pt -1.1\pt 1.1\pt - "staccatissimo" "\ustaccatissimo" 0.0\pt 0.0\pt 0.0\pt 1.0\pt - "-staccatissimo" "\dstaccatissimo" 0.0\pt 0.0\pt 0.0\pt 1.0\pt - "upbow" "\upbow" -1.0\pt 6.0\pt 0.0\pt 5.0\pt - "downbow" "\downbow" 0.0\pt 5.0\pt 0.0\pt 7.5\pt + + %{ "back" "\backorfront" 0.0\pt 6.0\pt 0.0\pt 3.0\pt "-front" "\backorfront" 0.0\pt 6.0\pt 0.0\pt 3.0\pt "heel" "\heel" 0.0\pt 6.0\pt -1.0\pt 5.0\pt - "toe" "\toe" 0.0\pt 6.0\pt -1.0\pt 5.0\pt + "toe" "\\toe" 0.0\pt 6.0\pt -1.0\pt 5.0\pt "bheel" "\bheel" 0.0\pt 6.0\pt -1.0\pt 5.0\pt "btoe" "\btoe" 0.0\pt 6.0\pt -1.0\pt 5.0\pt "fheel" "\fheel" 0.0\pt 6.0\pt -1.0\pt 5.0\pt "ftoe" "\ftoe" 0.0\pt 6.0\pt -1.0\pt 5.0\pt "-back" "\backorfront" 0.0\pt 6.0\pt 0.0\pt 3.0\pt "front" "\backorfront" 0.0\pt 6.0\pt 0.0\pt 3.0\pt - "turn" "\turn" -2.0\pt 7.0\pt 0.0\pt 4.0\pt - } + "turn" "\\turn" -2.0\pt 7.0\pt 0.0\pt 4.0\pt + %} "style" = \table { "roman" "\settext{%}" 0.0\pt 7.50\pt 0.0\pt 8.0\pt @@ -83,8 +68,8 @@ table_sixteen= } "streepjes" = \table { - "toplines" "\topledgerlines{%}{%}" -1.0\pt 7.0\pt 0.0\pt 0.0\pt - "botlines" "\botledgerlines{%}{%}" -1.0\pt 7.0\pt 0.0\pt 0.0\pt + "toplines" "\\topledgerlines{%}{%}" -1.0\pt 7.0\pt 0.0\pt 0.0\pt + "botlines" "\\botledgerlines{%}{%}" -1.0\pt 7.0\pt 0.0\pt 0.0\pt } "bars" = \table { @@ -100,26 +85,6 @@ table_sixteen= } - "rests" = \table { - "-2o" "\longarest" 0.0\pt 6.0\pt 0.0\pt 4.0\pt - "-2" "\longarest" 0.0\pt 6.0\pt 0.0\pt 4.0\pt - "-1o" "\breverest" 0.0\pt 6.0\pt 0.0\pt 4.0\pt - "-1" "\breverest" 0.0\pt 6.0\pt 0.0\pt 4.0\pt - "0o" "\outsidewholerest" 0.0\pt 6.0\pt 0.0\pt 2.0\pt - "0" "\wholerest" 0.0\pt 6.0\pt 0.0\pt 2.0\pt - "1" "\halfrest" 0.0\pt 6.0\pt -2.0\pt 0.0\pt - "1o" "\outsidehalfrest" 0.0\pt 6.0\pt -2.0\pt 0.0\pt - "2o" "\quartrest" -5.0\pt 2.0\pt -5.0\pt 5.0\pt - "3o" "\eighthrest" 0.0\pt 5.0\pt 0.0\pt 8.0\pt - "4o" "\sixteenthrest" 0.0\pt 6.0\pt 0.0\pt 12.0\pt - "2" "\quartrest" -5.0\pt 2.0\pt -5.0\pt 5.0\pt - "3" "\eighthrest" 0.0\pt 5.0\pt 0.0\pt 8.0\pt - "4" "\sixteenthrest" 0.0\pt 6.0\pt 0.0\pt 12.0\pt - "5" "\thirtysecondrest" 0.0\pt 6.0\pt 0.0\pt 16.0\pt - "6" "\sixtyfourthrest" 0.0\pt 6.0\pt 0.0\pt 16.0\pt - "7" "\hundredtwentyeighthrest" 0.0\pt 6.0\pt 0.0\pt 16.0\pt - } - "meters" = \table { "C" "\fourfourmeter" 0.0\pt 10.0\pt -5.0\pt 5.0\pt "C2" "\allabreve" 0.0\pt 10.0\pt -5.0\pt 5.0\pt @@ -128,7 +93,7 @@ table_sixteen= % dims ignored for this table "param" = \table { "brace" "\pianobrace{%}" 0.0\pt 0.0\pt 0.0\pt 0.0\pt - "meter" "\generalmeter{%}{%}" 0.0\pt 10.0\pt -5.0\pt 5.0\pt + "meter" "\generalmeter{%}{%}" 0.0\pt 10.0\pt -8.0\pt 8.0\pt "linestaf" "\linestafsym{%}{%}" "stem" "\stem{%}{%}" "fill" "\hbox{}" @@ -137,16 +102,11 @@ table_sixteen= "decrescendosym" "\decrescendosym{%}" 0.0\pt 0.0\pt -3.0\pt 3.0\pt } - "dots" = \table { - "1" "\lsingledot" 0.0\pt 2.0\pt -1.0\pt 1.0\pt - "2" "\ldoubledot" 0.0\pt 5.0\pt -1.0\pt 1.0\pt - "3" "\ltripledot" 0.0\pt 8.0\pt -1.0\pt 1.0\pt - } "flags" = \table { "u3" "\eighthflag" 0.0\pt 4.0\pt 0.0\pt 0.0\pt "u4" "\sixteenthflag" 0.0\pt 4.0\pt 0.0\pt 0.0\pt - "u5" "\thirtysecondflag" 0.0\pt 4.0\pt 0.0\pt 0.0\pt + "u5" "\\thirtysecondflag" 0.0\pt 4.0\pt 0.0\pt 0.0\pt "u6" "\sixtyfourthflag" 0.0\pt 4.0\pt 0.0\pt 0.0\pt "u7" "\hundredtwentyeighthflag" 0.0\pt 4.0\pt 0.0\pt 0.0\pt "d3" "\deighthflag" 0.0\pt 4.0\pt 0.0\pt 0.0\pt diff --git a/init/table20.ly b/init/table20.ly index b98a254235..dd0daaa11a 100644 --- a/init/table20.ly +++ b/init/table20.ly @@ -11,36 +11,6 @@ table_twenty = % index TeXstring, xmin xmax ymin ymax - "scripts" = \table { - "open" "\ouvert" -1.33\pt 1.33\pt -0.00\pt 3.33\pt - "stopped" "\plusstop" -2.75\pt 2.75\pt -2.75\pt 2.75\pt - "fermata" "\ufermata" 0.0\pt 0.0\pt 0.0\pt 6.0\pt - "-fermata" "\dfermata" 0.0\pt 0.0\pt -6.0\pt 0.0\pt - "portato" "\portato" 0.0\pt 4.0\pt 0.0\pt 2.0\pt - "-portato" "\iportato" 0.0\pt 4.0\pt -2.0\pt 0.0\pt - "tenuto" "\utenuto" 0.0\pt 4.0\pt -1.0\pt 1.0\pt - "-tenuto" "\dtenuto" 0.0\pt 4.0\pt -1.0\pt 1.0\pt - "sforzato" "\sforzatoaccent" -0.8\pt 4.0\pt -1.92\pt 1.92\pt - "marcato" "\umarcato" 0.0\pt 4.0\pt 0.0\pt 4.0\pt - "-marcato" "\dmarcato" 0.0\pt 4.0\pt -4.0\pt 0.0\pt - "staccato" "\staccato" 0.0\pt 0.0\pt -1.1\pt 1.1\pt - "staccatissimo" "\ustaccatissimo" 0.0\pt 0.0\pt 0.0\pt 1.0\pt - "-staccatissimo" "\dstaccatissimo" 0.0\pt 0.0\pt 0.0\pt 1.0\pt - "upbow" "\upbow" -1.0\pt 6.0\pt 0.0\pt 5.0\pt - "downbow" "\downbow" 0.0\pt 5.0\pt 0.0\pt 7.5\pt - "back" "\backorfront" 0.0\pt 6.0\pt 0.0\pt 3.0\pt - "-front" "\backorfront" 0.0\pt 6.0\pt 0.0\pt 3.0\pt - "heel" "\heel" 0.0\pt 6.0\pt -1.0\pt 5.0\pt - "toe" "\toe" 0.0\pt 6.0\pt -1.0\pt 5.0\pt - "bheel" "\bheel" 0.0\pt 6.0\pt -1.0\pt 5.0\pt - "btoe" "\btoe" 0.0\pt 6.0\pt -1.0\pt 5.0\pt - "fheel" "\fheel" 0.0\pt 6.0\pt -1.0\pt 5.0\pt - "ftoe" "\ftoe" 0.0\pt 6.0\pt -1.0\pt 5.0\pt - "-back" "\backorfront" 0.0\pt 6.0\pt 0.0\pt 3.0\pt - "front" "\backorfront" 0.0\pt 6.0\pt 0.0\pt 3.0\pt - "turn" "\turn" -2.0\pt 7.0\pt 0.0\pt 4.0\pt - } - "style" = \table { "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 8.0\pt @@ -85,16 +55,9 @@ table_twenty = "half" "\hslurchar%{%}" 0.0\pt 0.0\pt 0.0\pt 0.0\pt } - "accidentals" = \table { - "-2" "\flatflat" 0.0\pt 10.2\pt -2.5\pt 7.5\pt - "-1" "\flat" 0.0\pt 6.0\pt -2.5\pt 7.5\pt - "0" "\natural" 0.0\pt 6.0\pt -7.5\pt 7.5\pt - "1" "\sharp" 0.0\pt 6.0\pt -7.5\pt 7.5\pt - "2" "\sharpsharp" 0.0\pt 6.0\pt -2.5\pt 7.5\pt - } "streepjes" = \table { - "toplines" "\topledgerlines{%}{%}" -3.0\pt 9.0\pt 0.0\pt 0.0\pt + "toplines" "\\topledgerlines{%}{%}" -3.0\pt 9.0\pt 0.0\pt 0.0\pt "botlines" "\botledgerlines{%}{%}" -3.0\pt 9.0\pt 0.0\pt 0.0\pt } @@ -110,24 +73,6 @@ table_twenty = ":|:" "\repeatbarstartrepeat" 0.0\pt 16.0\pt 0.0\pt 20.0\pt } - "rests" = \table { - "-1o" "\breverest" 0.0\pt 6.0\pt 0.0\pt 4.0\pt - "-1" "\breverest" 0.0\pt 6.0\pt 0.0\pt 4.0\pt - "0o" "\outsidewholerest" 0.0\pt 6.0\pt 0.0\pt 2.0\pt - "0" "\wholerest" 0.0\pt 6.0\pt 0.0\pt 2.0\pt - "1" "\halfrest" 0.0\pt 6.0\pt -2.0\pt 0.0\pt - "1o" "\outsidehalfrest" 0.0\pt 6.0\pt -2.0\pt 0.0\pt - "2o" "\quartrest" -5.0\pt 2.0\pt -5.0\pt 5.0\pt - "3o" "\eighthrest" 0.0\pt 5.0\pt 0.0\pt 8.0\pt - "4o" "\sixteenthrest" 0.0\pt 6.0\pt 0.0\pt 12.0\pt - "2" "\quartrest" -5.0\pt 2.0\pt -5.0\pt 5.0\pt - "3" "\eighthrest" 0.0\pt 5.0\pt 0.0\pt 8.0\pt - "4" "\sixteenthrest" 0.0\pt 6.0\pt 0.0\pt 12.0\pt - "5" "\thirtysecondrest" 0.0\pt 6.0\pt 0.0\pt 16.0\pt - "6" "\sixtyfourthrest" 0.0\pt 6.0\pt 0.0\pt 16.0\pt - "7" "\hundredtwentyeighthrest" 0.0\pt 6.0\pt 0.0\pt 16.0\pt - } - "meters" = \table { "C" "\fourfourmeter" 0.0\pt 10.0\pt -5.0\pt 5.0\pt "C2" "\allabreve" 0.0\pt 10.0\pt -5.0\pt 5.0\pt @@ -145,16 +90,10 @@ table_twenty = "decrescendosym" "\decrescendosym{%}" 0.0\pt 0.0\pt -3.0\pt 3.0\pt } - "dots" = \table { - "1" "\lsingledot" 0.0\pt 8.0\pt -1.0\pt 1.0\pt - "2" "\ldoubledot" 0.0\pt 12.0\pt -1.0\pt 1.0\pt - "3" "\ltripledot" 0.0\pt 16.0\pt -1.0\pt 1.0\pt - } - "flags" = \table { "u3" "\eighthflag" 0.0\pt 5.0\pt 0.0\pt 0.0\pt "u4" "\sixteenthflag" 0.0\pt 5.0\pt 0.0\pt 0.0\pt - "u5" "\thirtysecondflag" 0.0\pt 5.0\pt 0.0\pt 0.0\pt + "u5" "\\thirtysecondflag" 0.0\pt 5.0\pt 0.0\pt 0.0\pt "u6" "\sixtyfourthflag" 0.0\pt 5.0\pt 0.0\pt 0.0\pt "u7" "\hundredtwentyeighthflag" 0.0\pt 5.0\pt 0.0\pt 0.0\pt "d3" "\deighthflag" 0.0\pt 5.0\pt 0.0\pt 0.0\pt diff --git a/init/vette-beams16.ly b/init/vette-beams16.ly deleted file mode 100644 index 55fc84888e..0000000000 --- a/init/vette-beams16.ly +++ /dev/null @@ -1,3 +0,0 @@ -% generated at Fri Sep 26 15:26:29 1997 from out/vette-beams16.log -% changes will be lost - diff --git a/init/vette-beams20.ly b/init/vette-beams20.ly deleted file mode 100644 index 438f27e89a..0000000000 --- a/init/vette-beams20.ly +++ /dev/null @@ -1,3 +0,0 @@ -% generated at Fri Sep 26 15:26:46 1997 from out/vette-beams20.log -% changes will be lost - diff --git a/input/abbrev.ly b/input/abbrev.ly index e81a18a494..2b2de802f4 100644 --- a/input/abbrev.ly +++ b/input/abbrev.ly @@ -1,10 +1,10 @@ \header{ -enteredby jcn -copyright PD -TestedFeatures simple abbreviations +enteredby = "jcn"; +copyright = "PD"; +TestedFeatures = "simple abbreviations"; } -\version "0.1.6"; +\version "0.1.7"; \score{ \melodic{ diff --git a/input/beams.ly b/input/beams.ly index 8dffc79edb..3dae027c33 100644 --- a/input/beams.ly +++ b/input/beams.ly @@ -1,16 +1,15 @@ -%{MudelaHeader - filename: beams.ly - title: - description: - composer(s): heu - entered-by: jcn - copyright: PD +\header{ +filename = "beams.ly"; +title = ""; +description = ""; +composer = "heu"; +enteredby = "jcn"; +copyright = "PD"; - Tested Features: beams and beamflags -EndMudelaHeader -%} -\version "0.1.6" +TestedFeatures = "beams and beamflags"; +} +\version "0.1.7" \score{ \melodic \multi 3 < diff --git a/input/cadenza.ly b/input/cadenza.ly index 7127940dd4..e7538272f9 100644 --- a/input/cadenza.ly +++ b/input/cadenza.ly @@ -1,17 +1,17 @@ \header{ -filename cadenza.ly -title Cadenza ad libitum -description Cadenza to Mozart Horn concerto 3 -composer unknown -enteredby HWN -copyright public domain +filename = "cadenza.ly"; +title = "Cadenza ad libitum"; +description = "Cadenza to Mozart Horn concerto 3"; +composer = "unknown"; +enteredby = "HWN"; +copyright = "public domain"; } %{ Tested Features: cadenza mode %} -\version "0.1.6"; +\version "0.1.7"; cad = \melodic { @@ -26,8 +26,8 @@ cad = \melodic { c'4.\mf g8 - [e'^"accel" ~ d' c' b] - [b~ c'] g-\fermata + [e'^"accel" () d' c' b] + [b() c'] g-\fermata \bar "empty"; c [c_"rubato" e g c'] \octave c''; @@ -56,7 +56,7 @@ cad = \melodic { \bar "" ; [g8.(_"a tempo" e g8. )e] a4. g8 [f8 e8 d8 c8] - 'g2 d2^"\tr" + 'g2 d2-\trill c4 }} \score { diff --git a/input/collisions.ly b/input/collisions.ly index d2c945889d..861ec2d936 100644 --- a/input/collisions.ly +++ b/input/collisions.ly @@ -1,11 +1,11 @@ \header{ -filename collisions.ly -description random counterpoint to test collisions -enteredby HWN,JCN -copyright public domain -Tested test the Collision resolution +filename = "collisions.ly"; +description = "random counterpoint to test collisions"; +enteredby = "HWN,JCN"; +copyright = "public domain"; +Tested = "test the Collision resolution "; } -\version "0.1.6"; +\version "0.1.7"; diff --git a/input/coriolan-alto.ly b/input/coriolan-alto.ly index f580b6eb99..9585e1fb7d 100644 --- a/input/coriolan-alto.ly +++ b/input/coriolan-alto.ly @@ -1,23 +1,22 @@ % remark: still temporarily broken. -%{MudelaHeader - filename: coriolan-alto.ly - title:Ouverture zu Collins Trauerspiel "Coriolan" Opus 62 - description: a 5 bar fragment of the alto part - composer(s): Ludwig van Beethoven (1770-1792) - entered-by: JCN - copyright: public domain +\header{ +filename = "coriolan-alto.ly"; +title = "Ouverture zu Collins Trauerspiel "Coriolan" Opus 62"; +description = "a 5 bar fragment of the alto part"; +composer = "Ludwig van Beethoven (1770-1792)"; +enteredby = "JCN"; +copyright = "public domain"; - Tested Features: -EndMudelaHeader -%} +TestedFeatures: +} % % when lily can handle this, i-ll type the other 304 bars % (maybe even sooner :-) % -\version "0.1.6"; +\version "0.1.7"; alto1 = \melodic{ \meter 4/4; diff --git a/input/font.ly b/input/font.ly index 4a29d2c8d1..3822fcfa4c 100644 --- a/input/font.ly +++ b/input/font.ly @@ -1,25 +1,25 @@ \header{ -enteredby jcn -copyright PD -TestedFeatures This file tests the Feta music-font - (Feta definitively is not an abbreviation of Font-En-TjA) +enteredby = "jcn"; +copyright = "PD"; +TestedFeatures = "This file tests the Feta music-font" + "(Feta definitively is not an abbreviation of Font-En-TjA)"; } -\version "0.1.6"; +\version "0.1.7"; \score{ \melodic{ \octave c'; \meter 4/4; - \multi 2 < { \stemup g'\longa a'\breve | } + \multi 2 < { \stemup e'\longa a\breve | } { \stemdown c1 g c' a' - c2 g } > + c2 g c' a' + } > \stemboth - c' a' c4 g c' a' | a\ppp-\upbow a\pp-\downbow a\p^\turn a\mp^\fermata | - a\mf_\fermata a\f-\stopped a\ff-\open a\fff| + a\mf_\fermata a\f-\stopped a\ff-\open a\fff^\trill| a\fp a4.\sf a4.\sfz | % a\fz a\rf [c8 c] [a' a'] [c a'] [a' c] | @@ -30,8 +30,8 @@ TestedFeatures This file tests the Feta music-font \multi 2 < { \stemup c1 } {\stemdown r1}> \stemboth - c8_. c''8-> c4^^ c4_^ - c4 _| c4^| + c8_. c''8-> c16^^ c16_^ + c32 _| c32^| g''32-\ltoe g''32-\lheel } \paper{ gourlay_maxmeasures =5.; diff --git a/input/gallina.ly b/input/gallina.ly index 2d110e4a79..fed49445bb 100644 --- a/input/gallina.ly +++ b/input/gallina.ly @@ -1,11 +1,11 @@ \header{ -title La Gallina a 2 violini -date 1637 -source the manuscript of Canzoni overo Sonate Concertate - libro terzo, opera duodecima -composer Tarquinio Merula (1594/95-1665) -enteredby Mats Bengtsson -copyright Public Domain +title = "La Gallina a 2 violini"; +date = "1637"; +source = "the manuscript of Canzoni overo Sonate Concertate " + "libro terzo, opera duodecima "; +composer = "Tarquinio Merula (1594/95-1665)"; +enteredby = "Mats Bengtsson"; +copyright = "Public Domain "; } @@ -30,12 +30,15 @@ either. Tested Features: Note placement, multipart score, figured base, \breve -note: the sharp signs hoovering over the bass part are no mistake, but -part of the basso continuo - %} +%{ + +note: the sharp signs hoovering over the bass part are no mistake, but +part of the basso continuo --HWN + +%} -\version "0.1.6"; +\version "0.1.7"; vi1=\melodic{ \meter 4/4; diff --git a/input/gourlay.ly b/input/gourlay.ly index 0a07d6d533..fb8e268d01 100644 --- a/input/gourlay.ly +++ b/input/gourlay.ly @@ -1,14 +1,18 @@ \header{ -enteredby jcn -copyright PD -TestedFeatures This file tests some nasty Gourlay spacings +enteredby = "jcn"; +copyright = "PD"; +TestedFeatures = "This file tests some nasty Gourlay spacings"; } -\version "0.1.6"; +\version "0.1.7"; + +%{ + +This is taken from [Gourlay]'s paper on breaking lines + +%} \score{ -% huh? -% \multi 2 \melodic < \octave c''; \melodic \multi 2 < \octave c''; { \stemup; d2 d | d d | d4 d2. | } \octave c'; diff --git a/input/keys.ly b/input/keys.ly index da9286456c..05ec062c27 100644 --- a/input/keys.ly +++ b/input/keys.ly @@ -1,16 +1,4 @@ -%{MudelaHeader - - filename: keys.ly - title: - description: - composers: - entered-by: - copyright: - - Tested Features: local key, key, forced accidentals -EndMudelaHeader -%} -\version "0.1.6"; +\version "0.1.7"; blah = \melodic{ diff --git a/input/kortjakje.ly b/input/kortjakje.ly index fb1eec4e06..86713c4995 100644 --- a/input/kortjakje.ly +++ b/input/kortjakje.ly @@ -1,17 +1,17 @@ \header{ -filename kortjakje.ly -title Ah, vous dirais-je, maman (variations) -description bare bones version. (written down from memory :-) -composers Mozart, KV 265 -enteredby HWN -copyright public domain +filename = "kortjakje.ly"; +title = "Ah, vous dirais-je, maman (variations)"; +description = "bare bones version. (written down from memory :-)"; +composers = "Mozart, KV 265"; +enteredby = "HWN"; +copyright = "public domain"; } %{ Tested Features: example file with comments %} -\version "0.1.6"; +\version "0.1.7"; % the % is a comment. diff --git a/input/multi.ly b/input/multi.ly index 0ee5fb1405..d63ddb0ab5 100644 --- a/input/multi.ly +++ b/input/multi.ly @@ -1,8 +1,8 @@ \header{ -filename multi.ly -description stupid testfile for pl68 features. -enteredby HWN -copyright public domain +filename = "multi.ly"; +description = "stupid testfile for pl68 features."; +enteredby = "HWN"; +copyright = "public domain"; } %{ Tested Features: \multi @@ -10,7 +10,7 @@ Tested Features: \multi %} -\version "0.1.6"; +\version "0.1.7"; \score{ \melodic diff --git a/input/pedal.ly b/input/pedal.ly index cb22bd22d9..33c736c3e8 100644 --- a/input/pedal.ly +++ b/input/pedal.ly @@ -24,7 +24,7 @@ % \lbheel \lbheel \lfheel \lftoe % \rbheel \rbtoe \rfheel \rftoe -\version "0.1.6"; +\version "0.1.7"; \score{ \melodic { diff --git a/input/rhythm.ly b/input/rhythm.ly index cc1511bf16..897770ad63 100644 --- a/input/rhythm.ly +++ b/input/rhythm.ly @@ -1,13 +1,13 @@ \header{ -filename rhythm.ly -enteredby HWN -copyright public domain -TestedFeatures multiple meters, beaming, unsynced bars, userdefd engravers +filename = "rhythm.ly"; +enteredby = "HWN"; +copyright = "public domain"; +TestedFeatures = "multiple meters, beaming, unsynced bars, userdefd engravers"; } -\version "0.1.6"; +\version "0.1.7"; ritme = \melodic{ %\octave ; \partial 8; diff --git a/input/scales.ly b/input/scales.ly index e1736b9f77..a6b2b48367 100644 --- a/input/scales.ly +++ b/input/scales.ly @@ -1,18 +1,18 @@ \header{ -filename scales.ly -enteredby HWN -copyright public domain +filename = "scales.ly"; +enteredby = "HWN"; +copyright = "public domain"; } + %{ Tested Features: scripts, beams, transposition, -EndMudelaHeader %} % % scales with accents. % -\version "0.1.6"; +\version "0.1.7"; blah = \melodic { \meter 6/8; \octave 'c ; diff --git a/input/scripts.ly b/input/scripts.ly index 1209028127..ad6503efb7 100644 --- a/input/scripts.ly +++ b/input/scripts.ly @@ -1,16 +1,5 @@ -%{MudelaHeader - - filename: scripts.ly - title: - description: - composers: - entered-by:HWN, MB - copyright: - - Tested Features: scripts, text. -EndMudelaHeader -%} -\version "0.1.6"; + +\version "0.1.7"; blah = \melodic { diff --git a/input/scsii-menuetto.ly b/input/scsii-menuetto.ly index a2cb6fb0bd..c4c94498cc 100644 --- a/input/scsii-menuetto.ly +++ b/input/scsii-menuetto.ly @@ -1,19 +1,19 @@ \header{ -filename scsii-menuetto.ly -title Solo Cello Suites, Suite II part V, Menuetto I -description Cello suite transcribed for Viola -source ? -opus BWV 1008 no. 5 -composers Johann Sebastian Bach (1685-1750) -enteredby JCN -copyright public domain +filename = "scsii-menuetto.ly"; +title = "Solo Cello Suites, Suite II part V, Menuetto I"; +description = "Cello suite transcribed for Viola"; +source = "?"; +opus = "BWV 1008 no. 5"; +composers = "Johann Sebastian Bach (1685-1750)"; +enteredby = "JCN"; +copyright = "public domain"; } %{ Tested Features:breaking algorithm, chords, multivoice, accents %} -\version "0.1.6"; +\version "0.1.7"; %% Stuff from MPP version % \lefttitle{Menuetto} diff --git a/input/slurs.ly b/input/slurs.ly index e7ddad01ee..26ff241da3 100644 --- a/input/slurs.ly +++ b/input/slurs.ly @@ -1,17 +1,5 @@ -%{MudelaHeader - filename: slurs.ly - title: - description: - composer(s): HWN - entered-by: HWN - copyright: PD - - Tested Features: test slurs and ties -EndMudelaHeader -%} - -\version "0.1.6"; +\version "0.1.7"; \score{ \melodic{\octave c'; diff --git a/input/standchen-16.ly b/input/standchen-16.ly index 67c461f127..bb250a98fd 100644 --- a/input/standchen-16.ly +++ b/input/standchen-16.ly @@ -1,14 +1,13 @@ \header{ -filename standchen.ly -title St\"andchen (Serenade) "Leise flehen meine Lieder" -opus D. 957 No. 4 -composers Franz Schubert (1797-1828) - Text by Ludwig Rellstab (1799-1860) -enteredby JCN -copyright public domain - +filename = "standchen.ly"; +title = "St\"andchen (Serenade) \"Leise flehen meine Lieder\""; +opus = "D. 957 No. 4"; +composers = "Franz Schubert (1797-1828)" + "Text by Ludwig Rellstab (1799-1860)"; +enteredby = "JCN"; +copyright = "public domain"; } +\version "0.1.7"; -% just a silly file to satisfy the make-website script \include "standchen.ly" diff --git a/input/standchen-20.ly b/input/standchen-20.ly index 41246d19af..1a13f3fc11 100644 --- a/input/standchen-20.ly +++ b/input/standchen-20.ly @@ -1,12 +1,13 @@ \header{ -filename standchen.ly -title St\"andchen (Serenade) "Leise flehen meine Lieder" -opus D. 957 No. 4 -composers Franz Schubert (1797-1828) - Text by Ludwig Rellstab (1799-1860) -enteredby JCN -copyright public domain +filename = "standchen.ly"; +title = "St\"andchen (Serenade) Leise flehen meine Lieder\""; +opus = "D. 957 No. 4"; +composers = "Franz Schubert (1797-1828)" + "Text by Ludwig Rellstab (1799-1860)"; +enteredby = "JCN"; +copyright = "public domain"; } +\version "0.1.7"; -% just a silly file to satisfy the make-website script -% this should be run after standchen-16 +% fool make-website +% \include "standchen.ly"; diff --git a/input/standchen.ly b/input/standchen.ly index c8edb90140..8f70db6ba6 100644 --- a/input/standchen.ly +++ b/input/standchen.ly @@ -1,11 +1,11 @@ \header{ -filename standchen.ly -title St\"andchen (Serenade) "Leise flehen meine Lieder" -opus D. 957 No. 4 -composers Franz Schubert (1797-1828) - Text by Ludwig Rellstab (1799-1860) -enteredby JCN -copyright public domain +filename = "standchen.ly"; +title = "St\"andchen (Serenade) \"Leise flehen meine Lieder\""; +opus = "D. 957 No. 4"; +composers = "Franz Schubert (1797-1828)" + "Text by Ludwig Rellstab (1799-1860)"; +enteredby = "JCN"; +copyright = "public domain"; } %{ @@ -13,7 +13,7 @@ copyright public domain multiple \paper{}s in one \score %} -\version "0.1.6"; +\version "0.1.7"; commands = \melodic{ \skip 2.*4; diff --git a/input/toccata-fuga-E.ly b/input/toccata-fuga-E.ly index 091aa71c11..7a14e64255 100644 --- a/input/toccata-fuga-E.ly +++ b/input/toccata-fuga-E.ly @@ -1,13 +1,13 @@ \header{ -filename toccata-fuga-E.ly -title toccata and fuga in E-major -opus BWV 566 - toccata 3 bar excerpt - 2nd fuga transposed subject --- 4 bar excerpt +filename = "toccata-fuga-E.ly"; +title = "toccata and fuga in E-major "; +opus = "BWV 566" + "toccata 3 bar excerpt" + "2nd fuga transposed subject --- 4 bar excerpt"; -composers Johann Sebastian Bach (1685-1750) -enteredby JCN -copyright public domain +composers = "Johann Sebastian Bach (1685-1750)"; +enteredby = "JCN"; +copyright = "public domain"; } @@ -20,7 +20,7 @@ copyright public domain %} -\version "0.1.6"; +\version "0.1.7"; toccata_commands = \melodic{ \meter 4/4; diff --git a/input/twinkle-pop.ly b/input/twinkle-pop.ly index d6aa38a153..2132cf3cb8 100644 --- a/input/twinkle-pop.ly +++ b/input/twinkle-pop.ly @@ -1,18 +1,18 @@ \header{ -filename twinkle.ly -title Ah, vous dirais-je, maman -description twinkle twinkle in pop-song-settings -composers traditional +filename = "twinkle.ly"; +title = "Ah, vous dirais-je, maman "; +description = "twinkle twinkle in pop-song-settings"; +composers = "traditional"; -enteredby HWN, chords by Johan Vromans -copyright public domain +enteredby = "HWN, chords by Johan Vromans"; +copyright = "public domain"; } %{ Tested Features lyrics and chords %} -\version "0.1.6"; +\version "0.1.7"; melodie = \melodic { \clef"violin"; diff --git a/input/twinkle.ly b/input/twinkle.ly index 2ec9b40ee0..6d5c243fd1 100644 --- a/input/twinkle.ly +++ b/input/twinkle.ly @@ -1,20 +1,20 @@ \header{ -filename twinkle.ly -title twinkle twinkle little star -description traditional song in various languages. - "Ah, vous dirais-je, maman" - "Altijd is Kortjakje ziek" - "Twinkle twinkle little star" - -composers Traditional -enteredby HWN & JCN -copyright public domain +filename = "twinkle.ly"; +title = "twinkle twinkle little star"; +description = "traditional song in various languages." + "Ah, vous dirais-je, maman" + "Altijd is Kortjakje ziek" + "Twinkle twinkle little star"; + +composers = "Traditional"; +enteredby = "HWN & JCN"; +copyright = "public domain"; } %{ Tested Features: lyrics %} -\version "0.1.6"; +\version "0.1.7"; melody = \melodic{ \clef violin; @@ -54,11 +54,11 @@ global = \melodic { tekst = \lyric{ Al-4 tijd is Kort- jak- je ziek,2 - midden4 in_de week maar s'_zon- dags niet.2 - s'_Zon-4 dags gaat ze naar de kerk,2 + midden4 in_de week maar 's_zon- dags niet.2 + 's_Zon-4 dags gaat ze naar de kerk,2 met4 een boek vol zil- ver werk.2 Al-4 tijd is Kort- jak- je ziek,2 - midden4 in_de week maar s'_zon- dags niet.2 + midden4 in_de week maar 's_zon- dags niet.2 } %{ @@ -70,7 +70,7 @@ tekst. Mogen wij ook af en toe ergens op afgeven? hegedraagjetekst = \lyric{ Al-4 tijd zuigt Bill Gates mijn piek,2 "\TeX"4 is slecht- ser dan mu- ziek.2 - s'_Zon-4 dags gaat het door een raam,2 + 's_Zon-4 dags gaat het door een raam,2 Weet4 dat ik me er- voor schaam.2 Al-4 tijd zuigt Bill Gates mijn piek,2 "\TeX"4 is slecht- ser dan mu- ziek.2 diff --git a/input/wtk1-fugue1.ly b/input/wtk1-fugue1.ly index 62a25c5338..646c75ff30 100644 --- a/input/wtk1-fugue1.ly +++ b/input/wtk1-fugue1.ly @@ -1,17 +1,17 @@ \header{ -filename fugue1.ly -title Fuga a 4 -description Das Wohltemperierte Clavier I, Fuga I (c-major) -opus BWV 846 -composer Johann Sebastian Bach (1685-1750) -enteredby Shay Rojansky -copyright Public Domain +filename = "fugue1.ly"; +title = "Fuga a 4"; +description = "Das Wohltemperierte Clavier I, Fuga I (c-major)"; +opus = "BWV 846"; +composer = "Johann Sebastian Bach (1685-1750)"; +enteredby = "Shay Rojansky"; +copyright = "Public Domain"; } %{ %} -\version "0.1.6"; +\version "0.1.7"; global = diff --git a/input/wtk1-fugue2.ly b/input/wtk1-fugue2.ly index 608ec4b873..ea304e7a8e 100644 --- a/input/wtk1-fugue2.ly +++ b/input/wtk1-fugue2.ly @@ -1,18 +1,18 @@ \header{ -filename wohltemperirt.ly -title Fuga a 3 -description Das Wohltemperierte Clavier I, Fuga II (c-minor) -opus BWV 847-Fuga -source Henle's Urtext -composer Johann Sebastian Bach (1685-1750) -enteredby HWN and Werner Lemberg -copyright Public Domain +filename = "wohltemperirt.ly"; +title = "Fuga a 3"; +description = "Das Wohltemperierte Clavier I, Fuga II (c-minor)"; +opus = "BWV 847-Fuga"; +source = "Henle's Urtext"; +composer = "Johann Sebastian Bach (1685-1750)"; +enteredby = "HWN and Werner Lemberg"; +copyright = "Public Domain"; } %{ Tested Features: stem direction, multivoice, forced accidentals. %} -\version "0.1.6"; +\version "0.1.7"; % should add \need{dutch.ini} for % correct parsing of note names diff --git a/input/wtk1-prelude1.ly b/input/wtk1-prelude1.ly index 060b5866a5..5ed120b09d 100644 --- a/input/wtk1-prelude1.ly +++ b/input/wtk1-prelude1.ly @@ -1,14 +1,14 @@ \header{ -filename prelude1.ly -title Preludium -description Das Wohltemperierte Clavier I, Prelude I (c-major) -opus BWV 846 -composer Johann Sebastian Bach (1685-1750) -enteredby Shay Rojansky -copyright Public Domain +filename = "prelude1.ly"; +title = "Preludium"; +description = "Das Wohltemperierte Clavier I, Prelude I (c-major)"; +opus = "BWV 846"; +composer = "Johann Sebastian Bach (1685-1750)"; +enteredby = "Shay Rojansky"; +copyright = "Public Domain"; } -\version "0.1.6"; +\version "0.1.7"; global = \melodic { diff --git a/lily/Stable.make b/lily/Stable.make index 9214c7fb0b..6aebc2b0a5 100644 --- a/lily/Stable.make +++ b/lily/Stable.make @@ -1,7 +1,7 @@ # a hack to keep exec size under control. -stablecc= offset.cc meter.cc boxes.cc \ +stablecc=meter.cc boxes.cc \ keyword.cc leastsquares.cc \ lookup.cc meter.cc\ parser.cc notename-table.cc lexer.cc\ diff --git a/lily/VERSION b/lily/VERSION index 9b9967a6f2..c767ffade7 100644 --- a/lily/VERSION +++ b/lily/VERSION @@ -1,6 +1,6 @@ MAJOR_VERSION = 0 MINOR_VERSION = 1 -PATCH_LEVEL = 21 +PATCH_LEVEL = 22 # use to send patches, always empty for released version: # include separator: ".postfix", "-pl" makes rpm barf diff --git a/lily/abbreviation-beam.cc b/lily/abbreviation-beam.cc index 309337dffb..ac36ae99d0 100644 --- a/lily/abbreviation-beam.cc +++ b/lily/abbreviation-beam.cc @@ -54,7 +54,7 @@ Abbreviation_beam::brew_molecule_p () const sb.translate (Offset (x, (x * slope + left_pos)* inter_f)); mol_p->add (sb); } - mol_p->translate (x0 - spanned_drul_[LEFT]->absolute_coordinate (X_AXIS), X_AXIS); + mol_p->translate_axis (x0 - spanned_drul_[LEFT]->absolute_coordinate (X_AXIS), X_AXIS); return mol_p; #endif } diff --git a/lily/atom.cc b/lily/atom.cc index 423181603d..870c6bece9 100644 --- a/lily/atom.cc +++ b/lily/atom.cc @@ -18,6 +18,12 @@ Atom::print() const { #ifndef NPRINT DOUT << "texstring: " <<tex_<<"\n"; + + DOUT << "dim:"; + for (Axis i=X_AXIS; i < NO_AXES; incr(i)) + DOUT << axis_name_str(i) << " = " << dim_[i].str(); + + DOUT << "\noffset: " << off_.str (); #endif } @@ -77,7 +83,7 @@ Atom::TeX_string() const } void -Atom::translate (Real r, Axis a) +Atom::translate_axis (Real r, Axis a) { off_[a] += r; } diff --git a/lily/axis.cc b/lily/axis.cc index d98d745b4c..8689e1c1fe 100644 --- a/lily/axis.cc +++ b/lily/axis.cc @@ -6,6 +6,8 @@ (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl> */ +#include <assert.h> + #include "axes.hh" #include "string.hh" @@ -14,3 +16,24 @@ axis_name_str (Axis a) { return String (a + 'x'); } + +/* + TODO inline these. + */ +Axis +post_incr(Axis &a) +{ + assert(a < NO_AXES); + Axis b= a; + a = Axis(int(a) + 1); + return b; +} + +Axis +incr(Axis &a) +{ + assert(a < NO_AXES); + a = Axis(int(a) + 1); + return a; +} + diff --git a/lily/bar.cc b/lily/bar.cc index 05a8557148..8fb5728314 100644 --- a/lily/bar.cc +++ b/lily/bar.cc @@ -35,7 +35,9 @@ Bar::brew_molecule_p() const { Paper_def *p = paper(); Atom s = p->lookup_l()->bar (type_str_, - p->get_var ("bar_size")); + p->get_var ("bar_size")); + s.translate_axis (-s.extent()[Y_AXIS].center (), Y_AXIS); + Molecule*output = new Molecule (Atom (s)); return output; } diff --git a/lily/beam-swallow-trans.cc b/lily/beam-swallow-trans.cc new file mode 100644 index 0000000000..cf23d55088 --- /dev/null +++ b/lily/beam-swallow-trans.cc @@ -0,0 +1,15 @@ +/* + beam-swallow-trans.cc -- instantiate Beam_swallow_translator + + source file of the GNU LilyPond music typesetter + + (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl> + + */ + +#include "type-swallow-trans.hh" +#include "musical-request.hh" + + + +DECLARE_REQUEST_SWALLOWER(Beam_req); diff --git a/lily/beam.cc b/lily/beam.cc index d2b5e1e3c6..b1dae43061 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -71,7 +71,7 @@ Beam::brew_molecule_p() const sb.translate (Offset (x, (x * slope + left_pos)* inter_f)); mol_p->add (sb); } - mol_p->translate (x0 - spanned_drul_[LEFT]->absolute_coordinate(X_AXIS), X_AXIS); + mol_p->translate_axis (x0 - spanned_drul_[LEFT]->absolute_coordinate(X_AXIS), X_AXIS); return mol_p; } @@ -311,7 +311,7 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const for (int j = 0; j < lhalfs; j++) { Atom b (a); - b.translate (-dir_ * dy * (lwholebeams+j), Y_AXIS); + b.translate_axis (-dir_ * dy * (lwholebeams+j), Y_AXIS); leftbeams.add (b); } } @@ -332,7 +332,7 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const for (; j < nogap; j++) { Atom b (a); - b.translate (-dir_ * dy * j, Y_AXIS); + b.translate_axis (-dir_ * dy * j, Y_AXIS); rightbeams.add (b); } // TODO: notehead widths differ for different types @@ -355,7 +355,7 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const for (; j < rwholebeams + rhalfs; j++) { Atom b (a); - b.translate (-dir_ * dy * j, Y_AXIS); + b.translate_axis (-dir_ * dy * j, Y_AXIS); rightbeams.add (b); } diff --git a/lily/boxes.cc b/lily/boxes.cc index 28fdeade83..1529c70749 100644 --- a/lily/boxes.cc +++ b/lily/boxes.cc @@ -12,20 +12,22 @@ void Box::translate (Offset o) { - x().translate (o.x ()); - y().translate (o.y ()); + for (Axis i=X_AXIS; i < NO_AXES; incr(i)) + interval_a_[i] += o[i]; } void Box::unite (Box b) { - x().unite (b.x ()); - y().unite (b.y ()); + for (Axis i=X_AXIS; i < NO_AXES; incr(i)) + interval_a_[i].unite (b[i]); } +/** + Initialize to empty. + */ Box::Box() { - } Box::Box (Interval ix, Interval iy) diff --git a/lily/clef-grav.cc b/lily/clef-grav.cc index fc70af6a0e..a8837f2cc1 100644 --- a/lily/clef-grav.cc +++ b/lily/clef-grav.cc @@ -28,19 +28,19 @@ Clef_engraver::set_type (String s) clef_type_str_ = s; if (clef_type_str_ == "violin") { - c0_position_i_= -2; + c0_position_i_= -6; } else if (clef_type_str_ == "alto") { - c0_position_i_= 4; + c0_position_i_= 0; } else if (clef_type_str_ == "tenor") { - c0_position_i_= 6; + c0_position_i_= 2; } else if (clef_type_str_ == "bass") { - c0_position_i_= 10; + c0_position_i_= 6; } else return false; diff --git a/lily/clef-item.cc b/lily/clef-item.cc index a0ca99bcc5..d6c02e542c 100644 --- a/lily/clef-item.cc +++ b/lily/clef-item.cc @@ -39,13 +39,13 @@ Clef_item::read (String t) { type_= t; if (type_ == "violin") - y_off = 2; + y_position_i_ = -2; if (type_ == "alto") - y_off = 4; + y_position_i_ = 0; if (type_ == "tenor") - y_off = 6; + y_position_i_ = 2; if (type_ == "bass") - y_off = 6; + y_position_i_ = 2; } void Clef_item::read (Clef_engraver const &k) @@ -61,7 +61,7 @@ Clef_item::brew_molecule_p() const t += "_change"; Atom s = paper()->lookup_l ()->clef (t); Molecule*output = new Molecule (Atom (s)); - output->translate (paper()->internote_f () * y_off, Y_AXIS); + output->translate_axis (paper()->internote_f () * y_position_i_, Y_AXIS); return output; } diff --git a/lily/col-info.cc b/lily/col-info.cc index 086b7c7e3e..83c7f61fbc 100644 --- a/lily/col-info.cc +++ b/lily/col-info.cc @@ -18,7 +18,7 @@ Colinfo::print() const if (fixed()) DOUT << "fixed at " << fixed_position()<<", "; assert (pcol_l_); - DOUT << "[" << minleft() << ", " << minright () << "]"; + DOUT << width_.str(); DOUT <<"}\n"; #endif } @@ -29,9 +29,9 @@ Colinfo::Colinfo (Paper_column *col_l, Real const *fixed_C) fixpos_p_.set_l (fixed_C); ugh_b_ = false; pcol_l_ = col_l; - width = pcol_l_->width(); - if (width.empty_b()) - width = Interval(0,0); + width_ = pcol_l_->width(); + if (width_.empty_b()) + width_ = Interval(0,0); } diff --git a/lily/dot-column.cc b/lily/dot-column.cc index 6da5e0bbce..58a16c1ce5 100644 --- a/lily/dot-column.cc +++ b/lily/dot-column.cc @@ -49,7 +49,7 @@ Dot_column::do_pre_processing () w.unite (head_l_arr_[i]->width ()); if (!w.empty_b ()) - translate (w[RIGHT] - width() [LEFT],X_AXIS); + translate_axis (w[RIGHT] - width() [LEFT],X_AXIS); } IMPLEMENT_IS_TYPE_B1(Dot_column, Horizontal_group_item); diff --git a/lily/dots.cc b/lily/dots.cc index 44e06c0b23..8bba43afcb 100644 --- a/lily/dots.cc +++ b/lily/dots.cc @@ -36,17 +36,17 @@ Dots::brew_molecule_p () const Atom fill = paper()->lookup_l ()->fill (Box(Interval(0,0),Interval(0,0))); out->add(fill); - Atom d = paper ()->lookup_l ()->dots (0); + Atom d = paper ()->lookup_l ()->dots (); Real dw = d.dim_[X_AXIS].length(); - d.translate(-dw,X_AXIS); + d.translate_axis(-dw,X_AXIS); for (int i=no_dots_i_; i--; ) { - d.translate(2*dw,X_AXIS); + d.translate_axis(2*dw,X_AXIS); out->add (d); } Real inter_f = paper ()->internote_f (); - out->translate (inter_f * position_i_, Y_AXIS); + out->translate_axis (inter_f * position_i_, Y_AXIS); return out; } diff --git a/lily/graphical-element.cc b/lily/graphical-element.cc index 98f29f77f4..b5c1046846 100644 --- a/lily/graphical-element.cc +++ b/lily/graphical-element.cc @@ -67,7 +67,7 @@ Graphical_element::absolute_offset() const } void -Graphical_element::translate (Real y, Axis a) +Graphical_element::translate_axis (Real y, Axis a) { if (axis_group_l_a_[a]) axis_group_l_a_[a]->invalidate_cache (a); @@ -109,8 +109,8 @@ Graphical_element::common_group (Graphical_element const* s, Axis a) const void Graphical_element::translate (Offset offset) { - translate (offset[Y_AXIS], Y_AXIS); - translate (offset[X_AXIS], X_AXIS); + translate_axis (offset[Y_AXIS], Y_AXIS); + translate_axis (offset[X_AXIS], X_AXIS); } Interval diff --git a/lily/horizontal-align-item.cc b/lily/horizontal-align-item.cc index 6e63be3daa..e5fe2e8d56 100644 --- a/lily/horizontal-align-item.cc +++ b/lily/horizontal-align-item.cc @@ -94,14 +94,14 @@ Horizontal_align_item::do_pre_processing() for (int i=0 ; i < item_l_arr_.size(); i++) { Real dx = where_f -dims[i][-1]; - item_l_arr_[i]->translate (dx , X_AXIS); + item_l_arr_[i]->translate_axis (dx , X_AXIS); if (item_l_arr_[i] == center_l_) center_dx_f = where_f; where_f += dims[i].length(); } if (center_dx_f && !align_i_) for (int i=0 ; i < item_l_arr_.size(); i++) - item_l_arr_[i]->translate (- center_dx_f , X_AXIS); + item_l_arr_[i]->translate_axis (- center_dx_f , X_AXIS); } diff --git a/lily/include/atom.hh b/lily/include/atom.hh index 66c4a6cbba..22b4cec972 100644 --- a/lily/include/atom.hh +++ b/lily/include/atom.hh @@ -24,7 +24,7 @@ struct Atom { Atom (String, Box); Atom (); void translate (Offset o); - void translate (Real r,Axis a); + void translate_axis (Real r,Axis a); /// how big is #this#? Box extent() const; void print() const; diff --git a/lily/include/axes.hh b/lily/include/axes.hh index 812d983faa..3e0284b68d 100644 --- a/lily/include/axes.hh +++ b/lily/include/axes.hh @@ -20,4 +20,12 @@ class String; String axis_name_str (Axis); +/** + the operator ++ for Axis. + */ +Axis post_incr(Axis &); +Axis incr(Axis &); +//Axis operator++(Axis); + + #endif // AXES_HH diff --git a/lily/include/beam-swallow-trans.hh b/lily/include/beam-swallow-trans.hh new file mode 100644 index 0000000000..7291fd0157 --- /dev/null +++ b/lily/include/beam-swallow-trans.hh @@ -0,0 +1,15 @@ +/* + beam-swallow-trans.hh -- declare + + source file of the GNU LilyPond music typesetter + + (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl> + + */ + +#ifndef BEAM_SWALLOW_TRANS_HH +#define BEAM_SWALLOW_TRANS_HH + + +#endif /* BEAM_SWALLOW_TRANS_HH */ + diff --git a/lily/include/clef-item.hh b/lily/include/clef-item.hh index 33190aceeb..311ea4f1ce 100644 --- a/lily/include/clef-item.hh +++ b/lily/include/clef-item.hh @@ -18,7 +18,7 @@ protected: public: String type_; - int y_off; + int y_position_i_; /// is this a change clef (smaller size)? bool change_b_; diff --git a/lily/include/col-info.hh b/lily/include/col-info.hh index 505c11f991..46f6cf20c3 100644 --- a/lily/include/col-info.hh +++ b/lily/include/col-info.hh @@ -18,7 +18,7 @@ struct Colinfo { Paper_column *pcol_l_; P<Real> fixpos_p_; - Interval width; + Interval width_; int rank_i_; /// did some tricks to make this column come out. bool ugh_b_; @@ -29,8 +29,6 @@ struct Colinfo { void print() const; bool fixed() const { return fixpos_p_.get_C();} Real fixed_position() const { return *fixpos_p_; } - Real minright() const { return width.right; } - Real minleft() const { return -width.left; } }; #endif // COL_INFO_HH diff --git a/lily/include/graphical-element.hh b/lily/include/graphical-element.hh index fae403280c..f5057a0c63 100644 --- a/lily/include/graphical-element.hh +++ b/lily/include/graphical-element.hh @@ -57,7 +57,7 @@ public: translate in one direction */ - void translate (Real, Axis); + void translate_axis (Real, Axis); Real relative_coordinate (Axis_group_element*group, Axis) const; Offset absolute_offset() const; diff --git a/lily/include/lookup.hh b/lily/include/lookup.hh index 96cd46e6b7..d4f8663c35 100644 --- a/lily/include/lookup.hh +++ b/lily/include/lookup.hh @@ -24,7 +24,7 @@ struct Lookup { void add (String, Symtable*); void print() const; - Atom linestaff (int n, Real w) const; + Atom linestaff (int n, Real ss, Real w) const; Atom fill (Box b) const; Atom beam_element (int,int,Real=0) const; @@ -49,7 +49,7 @@ struct Lookup { Atom clef (String) const; Atom bar (String, Real height) const; - Atom dots (int) const; + Atom dots () const; Atom slur (int dy, Real &dx, Direction dir) const; Atom half_slur (int dy, Real &dx, Direction dir, int xpart) const; Atom half_slur_middlepart (Real &dx, Direction dir) const; diff --git a/lily/include/molecule.hh b/lily/include/molecule.hh index f83eda517b..ddea093d0e 100644 --- a/lily/include/molecule.hh +++ b/lily/include/molecule.hh @@ -28,7 +28,7 @@ struct Molecule { void add (Molecule const &m); void translate (Offset); - void translate (Real,Axis); + void translate_axis (Real,Axis); void add (Atom const & a) ; /// how big is #this#? Box extent() const; diff --git a/lily/include/my-lily-lexer.hh b/lily/include/my-lily-lexer.hh index e3272eb9cd..6b659ad7d9 100644 --- a/lily/include/my-lily-lexer.hh +++ b/lily/include/my-lily-lexer.hh @@ -26,37 +26,37 @@ void set_lexer(); /// lexer for Mudela class My_lily_lexer : public Includable_lexer { - int lookup_keyword (String); - int scan_bare_word (String); - int scan_escaped_word (String); + int lookup_keyword (String); + int scan_bare_word (String); + int scan_escaped_word (String); - bool post_quotes_b_; + bool post_quotes_b_; + char escaped_char(char) const; public: - void * lexval_l; + void * lexval_l; - Notename_table *note_tab_p_; - Dictionary<Identifier*> *identifier_p_dict_p_; - Keyword_table * keytable_p_; - int errorlevel_i_; - - /* *************** */ - - void clear_notenames(); - Identifier*lookup_identifier (String s); - Melodic_req* lookup_melodic_req_l (String s); - void push_header_state(); - void push_note_state(); - void push_lyric_state(); - void pop_state(); - void LexerError (char const *); - My_lily_lexer(); - void set_identifier (String,Identifier*i); - ~My_lily_lexer(); - int yylex(); - void print_declarations (bool init_b) const; - void add_notename (String, Melodic_req*); - bool note_state_b() const; - bool lyric_state_b() const; + Notename_table *note_tab_p_; + Dictionary<Identifier*> *identifier_p_dict_p_; + Keyword_table * keytable_p_; + int errorlevel_i_; + + /* *************** */ + + void clear_notenames(); + Identifier*lookup_identifier (String s); + Melodic_req* lookup_melodic_req_l (String s); + void push_note_state(); + void push_lyric_state(); + void pop_state(); + void LexerError (char const *); + My_lily_lexer(); + void set_identifier (String,Identifier*i); + ~My_lily_lexer(); + int yylex(); + void print_declarations (bool init_b) const; + void add_notename (String, Melodic_req*); + bool note_state_b() const; + bool lyric_state_b() const; }; #endif diff --git a/lily/key-item.cc b/lily/key-item.cc index 4dd094b667..bf44f42cb5 100644 --- a/lily/key-item.cc +++ b/lily/key-item.cc @@ -44,8 +44,10 @@ Key_item::read (Key_engraver const & key_grav_r) void Key_item::set_c_position (int c0) { - int octaves =(abs (c0) / 7) +1 ; - c_position=(c0 + 7*octaves)%7; + int from_bottom_pos = c0 + 4; // ugh + int octaves =(abs (from_bottom_pos) / 7) +1 ; + from_bottom_pos =(from_bottom_pos + 7*octaves)%7; + c_position = from_bottom_pos - 4; } @@ -71,7 +73,7 @@ Key_item::brew_molecule_p() const for (int i =0; i < pitch.size(); i++) { Atom a =paper()->lookup_l ()->accidental (acc[i]); - a.translate ((c_position + pitch[i]) * inter, Y_AXIS); + a.translate_axis ((c_position + pitch[i]) * inter, Y_AXIS); Molecule m (a); output->add_at_edge (X_AXIS, RIGHT, m); } diff --git a/lily/lexer.l b/lily/lexer.l index 453ababc7f..96ee56b49d 100644 --- a/lily/lexer.l +++ b/lily/lexer.l @@ -56,7 +56,6 @@ void strip_leading_white (String&); %option warn %x incl -%x header %x lyrics %x notes %x quote @@ -67,11 +66,10 @@ A [a-zA-Z] AA {A}|_ N [0-9] AN {AA}|{N} -PUNCT [?!,.:;'] +PUNCT [?!,.:'] ACCENT \\[`'"^] -NATIONAL [\241-\377] +NATIONAL [\001-\006\021-\027\031\036\200-\377] TEX {AA}|-|{PUNCT}|{ACCENT}|{NATIONAL} - WORD {A}{AN}* ALPHAWORD {A}+ INT -?{N}+ @@ -82,7 +80,8 @@ HORIZONTALWHITE [ \t] BLACK [^ \n\t\f] RESTNAME [rs] NOTECOMMAND \\{A}+ -LYRICS ({AA}|{NATIONAL})[^0-9 \t\n\f]* +LYRICS ({AA}|{TEX})[^0-9 \t\n\f]* +ESCAPED [nt\\'"] %% @@ -123,29 +122,7 @@ LYRICS ({AA}|{NATIONAL})[^0-9 \t\n\f]* yyterminate (); // can't move this, since it actually rets a YY_NULL } } -<header>{ - [\{\}] { - return YYText ()[0]; - } - ^{WORD} { - String s=YYText (); - yylval.string = new String (s); - return FIELDNAME; - } - {HORIZONTALWHITE}+{BLACK}.*\n { - String s=YYText (); - strip_leading_white (s); - strip_trailing_white (s); - yylval.string = new String (s); - return RECORDLINE; - } - {WHITE}* { - } - . { - return YYText ()[0]; - } -} <notes,INITIAL,lyrics>\\include { @@ -222,13 +199,10 @@ LYRICS ({AA}|{NATIONAL})[^0-9 \t\n\f]* start_quote (); } <quote>{ - \\\\ { - *yylval.string += '\\'; - } - \\\" { - *yylval.string +='\"'; + \\{ESCAPED} { + *yylval.string += escaped_char(YYText()[1]); } - [^"]+ { + [^\\"]+ { *yylval.string += YYText (); } \" { @@ -236,6 +210,9 @@ LYRICS ({AA}|{NATIONAL})[^0-9 \t\n\f]* yy_pop_state (); return STRING; } + . { + *yylval.string += YYText (); + } } <lyrics>{ @@ -412,13 +389,8 @@ My_lily_lexer::lyric_state_b () const return YY_START == lyrics; } -void -My_lily_lexer::push_header_state () -{ - yy_push_state (header); -} - -void strip_trailing_white (String&s) +void +strip_trailing_white (String&s) { int i=0; for (; i < s.length_i (); i++) @@ -427,7 +399,9 @@ void strip_trailing_white (String&s) s = s.nomid_str (0, i); } -void strip_leading_white (String&s) + +void +strip_leading_white (String&s) { int i=s.length_i (); while (i--) @@ -435,5 +409,4 @@ void strip_leading_white (String&s) break; s = s.left_str (i+1); - } diff --git a/lily/local-key-item.cc b/lily/local-key-item.cc index 2d24d07959..a2ddd1b43e 100644 --- a/lily/local-key-item.cc +++ b/lily/local-key-item.cc @@ -25,6 +25,8 @@ Local_key_item::Local_key_item (int i) void Local_key_item::add_support (Item*head_l) { + if (support_items_.find_l(head_l)) + return ; support_items_.push (head_l); add_dependency (head_l); } @@ -70,18 +72,17 @@ Local_key_item::brew_molecule_p() const if (octave_mol_p) { Real dy =lastoct*7*paper()->internote_f (); - octave_mol_p->translate (dy, Y_AXIS); + octave_mol_p->translate_axis (dy, Y_AXIS); output->add (*octave_mol_p); delete octave_mol_p; } octave_mol_p= new Molecule; } lastoct = accs[i].octave_i_; - Real dy = (accs[i].name_i_ + c0_position) * paper()->internote_f (); Atom a (paper()->lookup_l ()->accidental (accs[i].accidental_i_)); - a.dim_[X_AXIS] += 1 PT; // todo - a.translate (dy, Y_AXIS); + + a.translate_axis (dy, Y_AXIS); Molecule m(a); octave_mol_p->add_at_edge (X_AXIS, RIGHT, m); } @@ -89,7 +90,7 @@ Local_key_item::brew_molecule_p() const if (octave_mol_p) { Real dy =lastoct*7*paper()->internote_f (); - octave_mol_p->translate (dy, Y_AXIS); + octave_mol_p->translate_axis (dy, Y_AXIS); output->add (*octave_mol_p); delete octave_mol_p; } @@ -100,8 +101,22 @@ Local_key_item::brew_molecule_p() const Molecule m (paper()->lookup_l ()->fill (b)); output->add_at_edge (X_AXIS, RIGHT, m); } - Interval head_width=itemlist_width (support_items_); - output->translate (-output->extent().x ().right + head_width.left , X_AXIS); + + Interval x_int; + for (int i=0; i < support_items_.size(); i++) + { + Axis_group_element *common = + common_group (support_items_[i], X_AXIS); + + Real x = support_items_[i]->relative_coordinate (common, X_AXIS) + -relative_coordinate (common, X_AXIS); + + x_int.unite (x + support_items_[i]->width()); + } + if (x_int.empty_b ()) + x_int = Interval(0,0); + + output->translate_axis (-output->extent()[X_AXIS][RIGHT] + x_int[LEFT], X_AXIS); return output; } diff --git a/lily/lookup.cc b/lily/lookup.cc index 64153dc8e7..38e31d9000 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -132,7 +132,7 @@ Lookup::clef (String s) const } Atom -Lookup::dots (int j) const +Lookup::dots () const { return (*symtables_)("dots")->lookup ("dot"); } @@ -193,11 +193,10 @@ Lookup::hairpin (Real &wid, bool decresc) const } Atom -Lookup::linestaff (int lines, Real wid) const +Lookup::linestaff (int lines, Real interline_f, Real wid) const { - Real internote_f = paper_l_ ->internote_f(); Atom s; - Real dy = (lines >0) ? (lines-1)*internote_f : 0; + Real dy = (lines >0) ? (lines-1)*interline_f : 0; s.dim_ = Box (Interval (0,wid), Interval (0,dy)); Array<String> a; @@ -207,6 +206,9 @@ Lookup::linestaff (int lines, Real wid) const s.tex_ = (*symtables_)("param")->lookup ("linestaf").tex_; s.tex_ = substitute_args (s.tex_, a); + + s.translate_axis (-s.extent ()[Y_AXIS].center (), Y_AXIS); + return s; } diff --git a/lily/lyric-grav.cc b/lily/lyric-grav.cc index 346ade0301..182658cd5f 100644 --- a/lily/lyric-grav.cc +++ b/lily/lyric-grav.cc @@ -37,7 +37,7 @@ Lyric_engraver::do_process_requests() { lyric_item_p_ = new Text_item (lreq_l_->tdef_p_); - lyric_item_p_->translate (paper()->note_width ()/2 , X_AXIS); + lyric_item_p_->translate_axis (paper()->note_width ()/2 , X_AXIS); lyric_item_p_->dir_ = DOWN; lyric_item_p_->fat_b_ = true; announce_element (Score_elem_info (lyric_item_p_, lreq_l_)); diff --git a/lily/meter.cc b/lily/meter.cc index 0c4d4e0ad1..97df812358 100644 --- a/lily/meter.cc +++ b/lily/meter.cc @@ -14,6 +14,7 @@ Molecule* Meter::brew_molecule_p() const { Atom s = paper()->lookup_l ()->meter (args); + s.translate_axis (-s.extent()[Y_AXIS].center (), Y_AXIS); return new Molecule (Atom (s)); } diff --git a/lily/molecule.cc b/lily/molecule.cc index 4dfe7d6c13..f054a28021 100644 --- a/lily/molecule.cc +++ b/lily/molecule.cc @@ -40,10 +40,10 @@ Molecule::translate (Offset o) } void -Molecule::translate (Real x,Axis a) +Molecule::translate_axis (Real x,Axis a) { for (iter_top (ats,c); c.ok(); c++) - c->translate (x,a); + c->translate_axis (x,a); } void @@ -66,7 +66,7 @@ Molecule::add_at_edge (Axis a, Direction d, Molecule const &m) } Real offset = extent ()[a][d] - m.extent ()[a][-d]; Molecule toadd (m); - toadd.translate (offset, a); + toadd.translate_axis (offset, a); add (toadd); } diff --git a/lily/my-lily-lexer.cc b/lily/my-lily-lexer.cc index 4c7f72e598..8abc8beb46 100644 --- a/lily/my-lily-lexer.cc +++ b/lily/my-lily-lexer.cc @@ -164,3 +164,21 @@ My_lily_lexer::clear_notenames() delete note_tab_p_; note_tab_p_ = new Notename_table; } + +char +My_lily_lexer::escaped_char(char c) const +{ + switch(c) + { + case 'n': + return '\n'; + case 't': + return '\t'; + + case '\'': + case '\"': + case '\\': + return c; + } + return 0; +} diff --git a/lily/my-lily-parser.cc b/lily/my-lily-parser.cc index bfa78512da..e2dd943b3a 100644 --- a/lily/my-lily-parser.cc +++ b/lily/my-lily-parser.cc @@ -129,6 +129,7 @@ My_lily_parser::parser_error (String s) if (fatal_error_i_) exit (fatal_error_i_); error_level_i_ = 1; + exit_status_i_ = 1; } void diff --git a/lily/notehead.cc b/lily/note-head.cc index 97d69ec1ed..529e28d895 100644 --- a/lily/notehead.cc +++ b/lily/note-head.cc @@ -61,27 +61,27 @@ Note_head::brew_molecule_p() const Real inter_f = p->internote_f (); // ugh - bool streepjes_b = (position_i_<-1) || (position_i_ > staff_size_i_+1); + int streepjes_i = abs(position_i_) < staff_size_i_/2 + ? 0 + : (abs(position_i_) - staff_size_i_/2) /2; Atom s = p->lookup_l()->ball (balltype_i_); out = new Molecule (Atom (s)); - out->translate (x_dir_ * s.dim_[X_AXIS].length (), X_AXIS); + out->translate_axis (x_dir_ * s.dim_[X_AXIS].length (), X_AXIS); - if (streepjes_b) + if (streepjes_i) { int dir = sign (position_i_); - int s =(position_i_<-1) - ? -((-position_i_)/2) - : (position_i_-staff_size_i_)/2; - Atom str = p->lookup_l()->streepjes (balltype_i_, s); + Atom streepje = p->lookup_l()->streepjes (balltype_i_, dir* streepjes_i); + Molecule sm; - sm.add (Atom (str)); + sm.add (streepje); if (position_i_ % 2) - sm.translate (-inter_f* dir, Y_AXIS); - out->add (sm); + sm.translate_axis (-inter_f* dir, Y_AXIS); + out->add (sm); } - out->translate (inter_f*position_i_, Y_AXIS); + out->translate_axis (inter_f*position_i_, Y_AXIS); return out; } diff --git a/lily/parser.y b/lily/parser.y index c9b1dd4949..9f02016a41 100644 --- a/lily/parser.y +++ b/lily/parser.y @@ -12,7 +12,7 @@ #include <iostream.h> // mmm -#define MUDELA_VERSION "0.1.6" +#define MUDELA_VERSION "0.1.7" #include "scalar.hh" #include "translation-property.hh" @@ -183,7 +183,6 @@ yylex (YYSTYPE *s, void * v_l) %token <real> REAL %token <string> DURATION RESTNAME %token <string> STRING -%token <string> FIELDNAME RECORDLINE %token <i> POST_QUOTES %token <i> PRE_QUOTES @@ -228,9 +227,9 @@ yylex (YYSTYPE *s, void * v_l) %type <symtable> symtable symtable_body %type <trans> translator_spec translator_spec_body %type <tempo> tempo_request -%type <string> header_record +%type <string> concat_strings -%expect 2 +%expect 1 %% @@ -281,34 +280,28 @@ mudela_header_body: { $$ = new Header; } - | mudela_header_body FIELDNAME header_record { - (*$$)[*$2] = *$3; + | mudela_header_body STRING '=' concat_strings ';' { + (*$$)[*$2] = *$4; delete $2; - delete $3; + delete $4; } ; mudela_header: - HEADER { - THIS->lexer_p_->push_header_state (); - } - - '{' mudela_header_body '}' { - $$ = $4; - THIS->lexer_p_->pop_state (); + HEADER '{' mudela_header_body '}' { + $$ = $3; } ; -header_record: +concat_strings: { $$ = new String; } - | header_record RECORDLINE { + | concat_strings STRING { *$$ += *$2; - delete $2; } - ; + /* DECLARATIONS diff --git a/lily/rest.cc b/lily/rest.cc index 6dc7dab858..d186608b26 100644 --- a/lily/rest.cc +++ b/lily/rest.cc @@ -1,5 +1,5 @@ /* - rest.cc -- implement + rest.cc -- implement Rest source file of the GNU LilyPond music typesetter @@ -17,10 +17,9 @@ void Rest::do_add_processing () { - if (balltype_i_ == 0) - position_i_ += 4; - else if (balltype_i_ == 1) - position_i_ += 4; + if (balltype_i_ != 0 && balltype_i_ != 1) + position_i_ -= 4; + Rhythmic_head::do_add_processing (); if (dots_l_) dots_l_->position_i_ = position_i_; @@ -34,14 +33,12 @@ Rest::Rest () Molecule * Rest::brew_molecule_p () const { - int staff_size_i_ =8; - bool streepjes_b = (position_i_<-1) || (position_i_ > staff_size_i_+1); - if (balltype_i_ < 0 || balltype_i_ > 1) - streepjes_b = false; + int staff_size_i_ = 8; + bool streepjes_b = abs(position_i_) > staff_size_i_ /2 && (balltype_i_ == 0 || balltype_i_ == 1); Atom s(paper ()->lookup_l()->rest (balltype_i_, streepjes_b)); Molecule * m = new Molecule ( Atom (s)); - m->translate (position_i_ * paper ()->internote_f (), Y_AXIS); + m->translate_axis (position_i_ * paper ()->internote_f (), Y_AXIS); return m; } diff --git a/lily/scoreline.cc b/lily/scoreline.cc index 9a6438a5ed..4a2df191c4 100644 --- a/lily/scoreline.cc +++ b/lily/scoreline.cc @@ -73,7 +73,7 @@ Line_of_score::set_breaking (Array<Col_hpositions> const &breaking) for (int i=0; i < curline.size(); i++) { - curline[i]->translate(config[i],X_AXIS); + curline[i]->translate_axis (config[i],X_AXIS); curline[i]->line_l_ = (Line_of_score*)line_l; } } diff --git a/lily/script-def.cc b/lily/script-def.cc index fa067cd3cc..e16eed4c09 100644 --- a/lily/script-def.cc +++ b/lily/script-def.cc @@ -75,8 +75,8 @@ Atom Script_def::get_atom (Paper_def *p , Direction d) const { String preidx_str =""; - if (invertsym_b_&& d < 0) - preidx_str = "-"; + if (invertsym_b_) + preidx_str = (d < 0)? "d" : "u"; return p->lookup_l()->script (preidx_str + symidx_str_); } diff --git a/lily/script.cc b/lily/script.cc index df80dabd37..2ac9930199 100644 --- a/lily/script.cc +++ b/lily/script.cc @@ -102,8 +102,8 @@ Script::brew_molecule_p() const Real dx = paper()->note_width()/2; Molecule*out = new Molecule (specs_l_->get_atom (paper(), dir_)); - out->translate (dy * pos_i_, Y_AXIS); - out->translate (dx, X_AXIS); // FIXME! ugh + out->translate_axis (dy * pos_i_, Y_AXIS); + out->translate_axis (dx, X_AXIS); // FIXME! ugh return out; } diff --git a/lily/span-bar.cc b/lily/span-bar.cc index 6076dd7d86..a73c27df42 100644 --- a/lily/span-bar.cc +++ b/lily/span-bar.cc @@ -110,7 +110,7 @@ Span_bar::brew_molecule_p() const Atom s = get_bar_sym (y_int.length()); Molecule*output = new Molecule (Atom (s)); - output->translate (y_int[-1], Y_AXIS); + output->translate_axis (y_int[-1], Y_AXIS); return output; } diff --git a/lily/spring-spacer.cc b/lily/spring-spacer.cc index d1fb487b00..fc730f3965 100644 --- a/lily/spring-spacer.cc +++ b/lily/spring-spacer.cc @@ -160,8 +160,8 @@ Spring_spacer::check_constraints (Vector v) const if (!i) continue; - Real mindist=cols[i-1].minright() - +cols[i].minleft(); + Real mindist=cols[i-1].width_[RIGHT] + -cols[i].width_[LEFT]; // ugh... compares Real dif =v (i) - v (i-1)- mindist; @@ -196,7 +196,7 @@ Spring_spacer::try_initial_solution() const if (i > 0) { - Real r =initsol (i-1) + cols[i-1].minright(); + Real r =initsol (i-1) + cols[i-1].width_[RIGHT]; if (initsol (i) < r) { warning ("overriding fixed position"); @@ -207,8 +207,8 @@ Spring_spacer::try_initial_solution() const } else { - Real mindist=cols[i-1].minright() - +cols[i].minleft(); + Real mindist=cols[i-1].width_[RIGHT] + - cols[i].width_[LEFT]; if (mindist < 0.0) warning ("Excentric column"); initsol (i)=initsol (i-1)+mindist; @@ -277,8 +277,8 @@ Spring_spacer::make_constraints (Mixed_qp& lp) const c1(j)=1.0 ; c1(j-1)=-1.0 ; - lp.add_inequality_cons (c1, cols[j-1].minright() + - cols[j].minleft()); + lp.add_inequality_cons (c1, + cols[j-1].width_[RIGHT] - cols[j].width_[LEFT]); } } } @@ -529,7 +529,7 @@ Spring_spacer::calc_idealspacing() { if (!scol_l (i)->musical_b()) { - Real symbol_distance =cols[i].minright() + 2 PT; + Real symbol_distance =cols[i].width_[RIGHT] + 2 PT; Real durational_distance = 0; if (i+1 < cols.size()) @@ -542,7 +542,7 @@ Spring_spacer::calc_idealspacing() */ if (delta_t) durational_distance = paper_l()->duration_to_dist (delta_t,k); - symbol_distance += cols[i+1].minleft(); + symbol_distance += -cols[i+1].width_[LEFT]; } ideal_arr_[i] = symbol_distance >? durational_distance; @@ -576,7 +576,7 @@ Spring_spacer::calc_idealspacing() extra space if this is not needed */ if (!scol_l (i+1)->musical_b()) { - Real minimum_dist = cols[i+1].minleft() + 2 PT + cols[i].minright () ; + Real minimum_dist = - cols[i+1].width_[LEFT] + 2 PT + cols[i].width_[RIGHT]; if (ideal_arr_[i+1] + minimum_dist < dist) { ideal_arr_[i] = dist - ideal_arr_[i+1]; diff --git a/lily/staff-side.cc b/lily/staff-side.cc index a58d2f2828..eba7d09a13 100644 --- a/lily/staff-side.cc +++ b/lily/staff-side.cc @@ -75,8 +75,9 @@ Staff_side::get_position_i() const Real inter_f = paper()-> internote_f (); if (!inside_staff_b_) { - y = (dir_ > 0 && staff_sym_l_) ? staff_sym_l_->steps_i() + 2: -2; + y = (staff_sym_l_) ? dir_ * (staff_sym_l_->steps_i() + 2) : -2; y *=inter_f; + Interval v= support_height(); if (dir_ > 0) diff --git a/lily/staff-sym.cc b/lily/staff-sym.cc index 6b9b288aba..eda2e2b608 100644 --- a/lily/staff-sym.cc +++ b/lily/staff-sym.cc @@ -33,7 +33,7 @@ Staff_symbol::do_print() const Molecule* Staff_symbol::brew_molecule_p() const { - Atom a = paper()->lookup_l ()->linestaff (no_lines_i_, width ().length ()); + Atom a = paper()->lookup_l ()->linestaff (no_lines_i_, paper ()->interline_f(), width ().length ()); return new Molecule (a); } diff --git a/lily/stem.cc b/lily/stem.cc index 462567a47e..324624b15a 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -139,7 +139,7 @@ Stem::get_center_distance_from_top () if (dir_) return (dir_ > 0) ? 0 : 1; - int staff_center = staff_size_i_ / 2; + int staff_center = 0; int max = max_head_i () - staff_center; return max >? 0; } @@ -151,7 +151,7 @@ Stem::get_center_distance_from_bottom () if (dir_) return (dir_ > 0) ? 1 : 0; - int staff_center = staff_size_i_ / 2; + int staff_center = 0; int min = staff_center - min_head_i (); return min >? 0; } @@ -179,24 +179,22 @@ Stem::set_default_stemlen () if (!dir_) set_default_dir (); - // ugh... how about non 5-line staffs? - bool on_ledger_line_b = ((max_head_i () < -2 && dir_ == 1) - // || (min_head_i () > staff_size_i_ && dir_ == -1)); - || (min_head_i () > staff_size_i_ + 3 && dir_ == -1)); - if (on_ledger_line_b) - { - set_stemend (staff_size_i_ / 2 - 1); - } - else + + Real dy = paper ()->interbeam_f (); + Real len = STEMLEN; + // ugh, should get nice *rule* for this + if (abbrev_flag_i_ > 1) + len += (abbrev_flag_i_ - 1)* dy / 2; + set_stemend ((dir_ > 0) ? max_head_i () + len : + min_head_i () - len); + + + if (dir_ * stem_end_f () < 0) { - Real dy = paper ()->interbeam_f (); - Real len = STEMLEN; - // ugh, should get nice *rule* for this - if (abbrev_flag_i_ > 1) - len += (abbrev_flag_i_ - 1)* dy / 2; - set_stemend ((dir_ > 0) ? max_head_i () + len : - min_head_i () - len); + set_stemend (0); } + + } void @@ -305,14 +303,14 @@ Stem::abbrev_mol () const a.translate (Offset(- w / 2, stem_end_f () - (w / 2 * slope))); // ugh if (!beams_i) - a.translate (dy + beamdy - dir_ * dy, Y_AXIS); + a.translate_axis (dy + beamdy - dir_ * dy, Y_AXIS); else - a.translate (2 * beamdy - dir_ * (beamdy - dy), Y_AXIS); + a.translate_axis (2 * beamdy - dir_ * (beamdy - dy), Y_AXIS); for (int i = 0; i < abbrev_flag_i_; i++) { Atom b (a); - b.translate (-dir_ * dy * (beams_i + i), Y_AXIS); + b.translate_axis (-dir_ * dy * (beams_i + i), Y_AXIS); beams.add (b); } @@ -350,7 +348,7 @@ Stem::brew_molecule_p () const if (head_l_arr_.size()) { - mol_p->translate (note_delta_f (), X_AXIS); + mol_p->translate_axis (note_delta_f (), X_AXIS); } return mol_p; } diff --git a/lily/tex-slur.cc b/lily/tex-slur.cc index 58783600f5..8ea4ba4a5d 100644 --- a/lily/tex-slur.cc +++ b/lily/tex-slur.cc @@ -69,7 +69,7 @@ Lookup::half_slur_middlepart (Real &dx, Direction dir) const f +=String ("{") + String (idx) + "}"; s.tex_ = f; - s.translate (dx/2, X_AXIS); + s.translate_axis (dx/2, X_AXIS); return s; } @@ -206,7 +206,7 @@ Lookup::slur (int dy , Real &dx, Direction dir) const s.tex_ = f; - s.translate (dx/2, X_AXIS); + s.translate_axis (dx/2, X_AXIS); return s; } @@ -239,7 +239,7 @@ Lookup::big_slur (int dy , Real &dx, Direction dir) const mol.add_at_edge (X_AXIS, RIGHT, a); mol.add_at_edge (X_AXIS, RIGHT, r); - mol.translate (l_dy * internote_f, Y_AXIS); + mol.translate_axis (l_dy * internote_f, Y_AXIS); Atom s; s.tex_ = mol.TeX_string(); s.dim_ = mol.extent(); diff --git a/lily/text-item.cc b/lily/text-item.cc index 4701f2b109..8d62ea7289 100644 --- a/lily/text-item.cc +++ b/lily/text-item.cc @@ -51,8 +51,8 @@ Text_item::brew_molecule_p() const Molecule* mol_p = new Molecule (a); if (dir_<0) // should do something better anyway. - mol_p->translate (-mol_p->extent().y ().left , Y_AXIS); - mol_p->translate (pos_i_ * paper()->internote_f (), Y_AXIS); + mol_p->translate_axis (-mol_p->extent().y ().left , Y_AXIS); + mol_p->translate_axis (pos_i_ * paper()->internote_f (), Y_AXIS); return mol_p; } diff --git a/lily/vertical-align-elem.cc b/lily/vertical-align-elem.cc index 4f83ba1b7b..8cc0ecfd49 100644 --- a/lily/vertical-align-elem.cc +++ b/lily/vertical-align-elem.cc @@ -22,10 +22,10 @@ Vertical_align_element::do_substitute_dependency (Score_elem*o,Score_elem*n) { int i; while ((i = elem_l_arr_.find_i (o))>=0) - if (n) - elem_l_arr_[i] = n; - else - elem_l_arr_.del (i); + if (n) + elem_l_arr_[i] = n; + else + elem_l_arr_.del (i); } /** @@ -40,18 +40,18 @@ Vertical_align_element::do_post_processing() Array<Interval> dims; for (int i=0; i < elem_l_arr_.size(); i++) { - Interval y = elem_l_arr_[i]->height() ; - if (y.empty_b()) - y = Interval (0,0); + Interval y = elem_l_arr_[i]->height() ; + if (y.empty_b()) + y = Interval (0,0); - dims.push (y); + dims.push (y); } Real where_f=0; for (int i=0 ; i < elem_l_arr_.size(); i++) { - elem_l_arr_[i]->translate (- dims[i][1] - where_f, Y_AXIS); - where_f += dims[i].length(); + elem_l_arr_[i]->translate_axis (- dims[i][1] - where_f, Y_AXIS); + where_f += dims[i].length(); } } diff --git a/make/Targets.make b/make/Targets.make index d84b62e304..cf8390be0a 100644 --- a/make/Targets.make +++ b/make/Targets.make @@ -121,9 +121,6 @@ help: doc: $(MAKE) -C $(depth)/Documentation do-doc -# doc++ documentation of classes -doc++: $(progdocs) - $(docxx) $(docxx-opts) -d $(DOCDIR) $^ # ugh. should generate in out/ dist: @@ -190,7 +187,7 @@ endif # $(outdir)/version.hh: VERSION - ./$(lily_bindir)/make-version > $@ + sh ./$(lily_bindir)/make-version.sh > $@ # should this be in Rules? diff --git a/make/Variables.make b/make/Variables.make index c1a022fa19..abcc2dde58 100644 --- a/make/Variables.make +++ b/make/Variables.make @@ -200,12 +200,6 @@ STRIPDEBUG=true DISTFILES=$(EXTRA_DISTFILES) Makefile $(ALL_SOURCES) DOCDIR=$(depth)/$(outdir) -# .hh should be first. Don't know why -# take some trouble to auto ignore sources and obsolete stuff. -progdocs=$(shell $(FIND) ./ -name '*.hh' |egrep -v '$(OUTDIR_NAME)') \ - $(shell $(FIND) ./ -name '*.cc' |egrep -v '$(OUTDIR_NAME)') \ - - pod2html=pod2html pod2groff=pod2man --center="LilyPond documentation" --section="0"\ --release="LilyPond $(TOPLEVEL_MAJOR_VERSION).$(TOPLEVEL_MINOR_VERSION).$(TOPLEVEL_PATCH_LEVEL)" $< > $@ @@ -220,6 +214,3 @@ endif DO_STRIP=true -docxx-opts=-S -k -p -docxx=doc++ - diff --git a/make/lelievijver.lsm b/make/lelievijver.lsm index 5c5950a0f0..99f1bb8260 100644 --- a/make/lelievijver.lsm +++ b/make/lelievijver.lsm @@ -1,6 +1,6 @@ Begin3 Titel: LilyPond -Versie: 0.1.21.jcn1 +Versie: 0.1.22 Inschrijf datum: 10OCT97 Beschrijving: LilyPond is de muziek typesetter van het GNU Project. Het programma genereert muziek in zichtbare of @@ -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.21.jcn1.tar.gz + 395k lilypond-0.1.22.tar.gz Oorspronkelijke plek: pcnov095.win.tue.nl /pub/lilypond/ - 395k lilypond-0.1.21.jcn1.tar.gz + 395k lilypond-0.1.22.tar.gz Copi"eer politie: GPL End diff --git a/make/lilypond.lsm b/make/lilypond.lsm index 3470c648c6..9077acff9c 100644 --- a/make/lilypond.lsm +++ b/make/lilypond.lsm @@ -1,7 +1,7 @@ Begin3 Title: LilyPond -Version: 0.1.21 -Entered-date: 08OCT97 +Version: 0.1.22 +Entered-date: 10OCT97 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 @@ -14,8 +14,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 - 395k lilypond-0.1.21.tar.gz + 395k lilypond-0.1.22.tar.gz Original-site: pcnov095.win.tue.nl /pub/lilypond/ - 395k lilypond-0.1.21.tar.gz + 395k lilypond-0.1.22.tar.gz Copying-policy: GPL End diff --git a/make/lilypond.spec b/make/lilypond.spec index 18049956f0..296e2fd7a5 100644 --- a/make/lilypond.spec +++ b/make/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 0.1.21 +Version: 0.1.22 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.1.21.tar.gz +Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.1.22.tar.gz Summary: A preprocessor to make TeX typeset music. URL: http://www.stack.nl/~hanwen/lilypond Packager: Han-Wen Nienhuys <hanwen@stack.nl> @@ -29,7 +29,7 @@ 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 input/abbrev.ly input/beams.ly input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/font.ly input/gallina.ly input/gallina.tex input/header.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/slurs.ly input/standchen-16.ly input/standchen-16.tex input/standchen-20.ly input/standchen-20.tex input/standchen.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 input/abbrev.ly input/beams.ly input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/font.ly input/gallina.ly input/gallina.tex input/gourlay.ly input/header.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/slurs.ly input/standchen-16.ly input/standchen-16.tex input/standchen-20.ly input/standchen-20.tex input/standchen.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 /usr/bin/mudela-book @@ -41,6 +41,7 @@ make prefix="$RPM_BUILD_ROOT/usr" install /usr/man/man1/mudela-book.1 /usr/man/man1/convert-mudela.1 /usr/lib/texmf/texmf/tex/lilypond/ +/usr/lib/texmf/texmf/fonts/source/lilypond /usr/share/lilypond/ %post diff --git a/make/lilypond.spec.in b/make/lilypond.spec.in index 7a871bacb4..a984487a74 100644 --- a/make/lilypond.spec.in +++ b/make/lilypond.spec.in @@ -41,6 +41,7 @@ make prefix="$RPM_BUILD_ROOT/usr" install /usr/man/man1/mudela-book.1 /usr/man/man1/convert-mudela.1 /usr/lib/texmf/texmf/tex/lilypond/ +/usr/lib/texmf/texmf/fonts/source/lilypond /usr/share/lilypond/ %post diff --git a/mf/Makefile b/mf/Makefile index 30a6654f79..64f8dc7264 100644 --- a/mf/Makefile +++ b/mf/Makefile @@ -41,7 +41,7 @@ $(outdir)/%.log: %.mf rm $(basename $< ).*gf $(lyout)/%.ly $(texout)/%.tex: $(outdir)/%.log - mf-to-table --ly $(lyout)/$(<F:.log=.ly) --tex $(texout)/$(<F:.log=.tex) $< + $(depth)/bin/$(outdir)/mf-to-table --ly $(lyout)/$(<F:.log=.ly) --tex $(texout)/$(<F:.log=.tex) $< localinstall: $(INSTALL) -d $(MFDIR)/lilypond @@ -5,7 +5,6 @@ * flags * clefs * some scripts: - - toe/heel - piano pedals, * braces. * trills @@ -18,6 +17,6 @@ - check out Adobe Sonata/Petrucci font layout. They are the standard for Music fonts - - hack up GS to do round pixels iso. square pixels. (Printers -don't do square pixels.) + - hack up GS or the mf-gray font to do round pixels +iso. square pixels. (Printers don't do square pixels.) diff --git a/mf/autometric.mf b/mf/autometric.mf index cd924a3aab..8cddab9100 100644 --- a/mf/autometric.mf +++ b/mf/autometric.mf @@ -15,30 +15,30 @@ def fet_beginfont(expr name,size) = font_identifier:=name&decimal size; font_size size; - message "@{font:"&name&":"&decimal size&"@}"; + message "@{font@:"&name&"@:"&decimal size&"@}"; message ""; enddef; def fet_endfont(expr name) = - message "@{tnof:"&name&"@}"; + message "@{tnof@:"&name&"@}"; message ""; enddef; % group or table? def fet_begingroup(expr name) = - message "@{group:"&name&"@}"; + message "@{group@:"&name&"@}"; message ""; begingroup enddef; def fet_endgroup(expr name) = endgroup; - message "@{puorg:"&name&"@}"; + message "@{puorg@:"&name&"@}"; message ""; enddef; def autometric_output_char= - message "@{char:"&charnamestr&":"&decimal charcode&":"&decimal charbp&":"&decimal charwd&":"&decimal chardp&":"&decimal charht&":"&idstr&":"&texstr&"@}"; + message "@{char@:"&charnamestr&"@:"&decimal charcode&"@:"&decimal charbp&"@:"&decimal charwd&"@:"&decimal chardp&"@:"&decimal charht&"@:"&idstr&"@:"&texstr&"@}"; enddef; @@ -108,7 +108,7 @@ enddef; def breapth_endchar = scantokens extra_endchar; if proofing > 0: makebox_with_breapth(proofrule); fi - chardx := w + b; + chardx := 10*(w + b); shipit; endgroup enddef; diff --git a/mf/dimen.tex b/mf/dimen.tex index 9d809332d7..44c59a4ef4 100644 --- a/mf/dimen.tex +++ b/mf/dimen.tex @@ -2,6 +2,7 @@ % A tex file to help determine dims. % +\font\black=black \font\taupin=musix16 \font\fet=font-en-tja16 \font\vet=vette-beams16 diff --git a/mf/feta-banier.mf b/mf/feta-banier.mf index f845fac0cc..5dad6a8216 100644 --- a/mf/feta-banier.mf +++ b/mf/feta-banier.mf @@ -10,12 +10,12 @@ save foot_thickness, foot_depth, foot_width; flag_angle = 32; -hip_thickness# = stafflinethickness#; +hip_thickness# = 1.2 stafflinethickness#; foot_thickness# = blot_diameter#; flare# = 1.0 interline#; hip_depth# = 15/7 interline#; -hip_width# = 8/7 interline# + hip_thickness# /2 + stemthickness#/2; +hip_width# = 7/8 interline# + hip_thickness# /2 + stemthickness#/2; foot_depth# = flare# + 15/7 interline#; foot_width# = .885 hip_width#; @@ -35,8 +35,6 @@ define_pixels(flare, % page 119 % def draw_eight_flag = - - penpos0(stemthickness, 0); penpos1(flare, 90); penpos2(hip_thickness, 0); diff --git a/mf/feta-bolletjes.mf b/mf/feta-bolletjes.mf index cef0590903..f99fed2e69 100644 --- a/mf/feta-bolletjes.mf +++ b/mf/feta-bolletjes.mf @@ -21,7 +21,7 @@ def draw_brevis = head_width# = 2 interline#; holeheight = 3 stafflinethickness; - stem_width = 1.2 stafflinethickness; + stem_width = 1.4 stafflinethickness; define_pixels(head_width); @@ -66,8 +66,8 @@ fet_beginchar("Longa notehead", "-2", "longaball"); z7 = z5; z6 - z7 = (-stem_width/2, -interline); theta = angle(z6-z7)+ 90; - penpos7(stafflinethickness, theta); - penpos6(stem_width, theta); + penpos7(stem_width, theta); + penpos6(1.2 stem_width, theta); fill z7r .. z6r{z6-z7} .. {z7-z6} z6l -- z7l -- cycle; penlabels(6,7); diff --git a/mf/feta-generic.mf b/mf/feta-generic.mf index 7fa8ffd6b7..47c8223f98 100644 --- a/mf/feta-generic.mf +++ b/mf/feta-generic.mf @@ -1,4 +1,14 @@ + +test:=0; + +if test = -1: + mode := smoke; +fi + +mode_setup; + + input feta-macros; make_pen_stack; @@ -6,7 +16,7 @@ make_picture_stack; input feta-params; -test:= 0; + if test = 0: input feta-eindelijk; @@ -16,5 +26,6 @@ if test = 0: input feta-schrift; input feta-banier; else: - input foo; + + input feta-schrift; fi diff --git a/mf/feta-macros.mf b/mf/feta-macros.mf index 7666427515..e50ef98781 100644 --- a/mf/feta-macros.mf +++ b/mf/feta-macros.mf @@ -25,6 +25,20 @@ def scaledabout(expr point, scale) = shifted -point scaled scale shifted point enddef; + +% +% make a local (restored after endgroup) copy of t_var +% +def local_copy(text type, t_var)= + save copy_temp; + type copy_temp; + copy_temp := t_var; + save t_var; + type t_var; + t_var := copy_temp; +enddef; + + % % Urgh! Want to do parametric types % diff --git a/mf/feta-schrift.mf b/mf/feta-schrift.mf index de1786b860..05202ee229 100644 --- a/mf/feta-schrift.mf +++ b/mf/feta-schrift.mf @@ -3,7 +3,7 @@ % -fet_begingroup("foobars") +fet_begingroup("scripts") def draw_fermata = @@ -13,7 +13,7 @@ def draw_fermata = % suggest ca 80 degrees iso half-circle alpha := 10; - radius# = 1.5 interline#; + radius# = 1.25 interline#; crook_thinness# = 1.5stafflinethickness#; crook_fatness# = 4 stafflinethickness#; @@ -59,7 +59,7 @@ fet_endchar; % FIXME: rounded endings % % `\accent' is TeX reserved. -fet_beginchar("> accent", "accent", "sforzatoaccent") +fet_beginchar("> accent", "sforzato", "sforzatoaccent") set_char_box(.9 interline#, .9 interline#, .5 interline#, .5 interline#); save thickness, diminish; @@ -89,7 +89,7 @@ fet_endchar; fet_beginchar("staccato dot", "staccato", "staccato") save radius; - radius# = 1.25 stafflinethickness#; + radius# = 1.5 stafflinethickness#; define_pixels(radius); pickup pencircle scaled 2 radius; draw (0,0); @@ -176,19 +176,19 @@ fet_endchar; fet_beginchar("open (unstopped)", "open", "ouvert") save thin, height, width, thick; height# = 5/4 width#; - height# = 7/8 interline#; + height# = interline#; thin = 1.2 stafflinethickness; thick = 1.4 thin; - set_char_box(width#/2, width#/2, 0, height#); + set_char_box(width#/2, width#/2, height#/2, height#/2); penpos1(thick, 0); penpos2(thin, 90); - z1r = (w,h/2); + z1r = (w, 0); z2r = (0, h); penlabels(1,2); penstroke z1e{up} .. {left}z2e; addto currentpicture also currentpicture xscaled -1; - addto currentpicture also currentpicture reflectedabout((w,h/2), (0,h/2)); + addto currentpicture also currentpicture yscaled -1; fet_endchar; @@ -237,10 +237,10 @@ fet_beginchar("Downbow", "downbow", "downbow") save wd; define_pixels(wd) - wd# = 3/2 interline#; + wd# = 1.5 interline#; stemthick = 1.2 stafflinethickness; - set_char_box(wd#/2, wd#/2, 0, 4/3interline#); + set_char_box(wd#/2, wd#/2, 0, 4/3 interline#); beamheight = 4/10 h; @@ -271,7 +271,6 @@ fet_endchar; % % Inspired by a computer-set version of auf dem Strom by Baerenreiter. % - fet_beginchar("Turn","turn","turn") save thin, thick, ball_diam, darkness; save wd, ht, thick_nibangle, ball_nib_thick; @@ -280,7 +279,7 @@ fet_beginchar("Turn","turn","turn") wd# = 35/16 interline#; ht# = 18/17 interline#; - darkness = 1.25 stafflinethickness; + darkness = 1.20 stafflinethickness; set_char_box(wd#/2, wd#/2, ht#/2, ht#/2); @@ -346,23 +345,41 @@ def draw_bulb(expr zl, zr, center_factor, radius_factor)= endgroup enddef; -fet_beginchar("Trill (`tr')","utrill","utrill") +% +% Inspired by a (by now) PD edition of Durand & C'ie edition of +% Saint-Saens' Celloconcerto no. 1 +% +% FIXME take out hardcoded vars. +% FIXME the two loops on the `t' should be smoother (and the left one bigger). +% FIXME generic macros for serifs: top of the t and bottom of r +% +% + +fet_beginchar("Trill (`tr')","trill","trill") save start_angle, ascender_extra, ex, hair_thick, fatness, - slant_angle, slant, t_fatness, r_fatness, kerning; + slant_angle, slant, t_fatness, r_fatness, kerning, t_overshoot, + uitschieter, bulb_size; + ; pair slant_vec; - define_pixels(ex, ascender_extra, ascender); ascender_extra# = 1/2 ex#; ascender# = ascender_extra# + ex#; - ex# = interline#; + ex# = 1.5 interline#; + kerning# = .75 ex#; + define_pixels(ex, ascender_extra, ascender, kerning); + t_overshoot = 0.03 ex; fatness = 12/40 ex; t_fatness = 8/10 fatness; - r_fatness = 8/10 fatness; - - hair_thick = 2/3 blot_diameter; + r_fatness = .75 fatness; + uitschieter = 21/40 ex; + hair_thick = blot_diameter; + bulb_size = 0.47; + slant = .15; + local_copy(transform)(currenttransform); + currenttransform := currenttransform slanted slant; y1 = ascender; x1l = 0; @@ -372,21 +389,22 @@ fet_beginchar("Trill (`tr')","utrill","utrill") z2 = (x1, 7/18 ex); penpos2(start_nib_wid, 25); - z3l = (11/10 t_fatness, 0); + z3l = (11/10 t_fatness, - t_overshoot); - z4l = (13/6 t_fatness, 3/8 ex); + z4l = (13/6 t_fatness, 5/16 ex); penpos4(hair_thick, 180); 1.9 [z3l, z3r] = z4r; z3 = .5 [z3l, z3r]; - - save t_p, krul_p; path t_p, krul_p, r_p; - t_p := z1l -- z2l{down} .. z3l{right} .. z4l{up} -- z4r{down} + t_p := z1l -- z2l{down} .. tension (1 + .5 slant) + .. z3l{right} + + .. z4l{up} -- z4r{down} .. z3r{left} .. z2r{up} .. z1r -- cycle; fill t_p ; @@ -396,28 +414,33 @@ fet_beginchar("Trill (`tr')","utrill","utrill") z5 = (t_fatness/2, 2/3 ex); - lft x6 = -18/40 ex; + lft x6 = - uitschieter; y6 = y5 - 1/20 ex; - z7 = (2 t_fatness, ex); - - krul_p := z4{up} .. tension 1.1 .. z5 .. {down}z6 - .. tension 1.1 .. z5 --- z7; - draw krul_p; - - penpos7(hair_thick, angle (z7-z5) + 90); + z7 = z5 + whatever*dir krul_ang; + up_angle = krul_ang; + % angle (z7-z5) + x7 = 5/10 kerning + x5; + + penpos7(hair_thick, up_angle + 90); - z8l = (2 t_fatness + 2 hair_thick, ex); - penpos8(2 hair_thick, 35); + + x8l = .7 [x9r, x7r]; + y8l = y7l; + penpos8(2 hair_thick, (up_angle +90)/2); y9 = 3/4 ex; - x9l = 2.8 t_fatness; + x9 = x1 + kerning; penpos9(r_fatness, 0); x10 = x9; y10 = 0; penpos10(r_fatness, 0); + krul_p := z4{up} .. tension 1.1 .. z5 + .. tension 1 and .75 .. {down}z6 + .. tension .85 and 1.1 .. z5 --- z7; + draw krul_p; r_p := z7l{z7-z5} .. z8l{right} .. z9l{down} --- z10l -- z10r --- z9r{up} .. z8r{left} .. z7r{z5-z7} -- cycle; @@ -428,12 +451,62 @@ fet_beginchar("Trill (`tr')","utrill","utrill") penpos11(1/4 r_fatness, -20); z11r = z9r; - z13 = (x9 + 2 r_fatness, y11 + 1/16 ex); + z13 = (x9 + 2 r_fatness, y11 ); penpos13(r_fatness, 180); fill z11r{dir 70} .. z13r{down} -- z13l{up} .. z11l{dir 250} -- cycle; penlabels(range 1 thru 15); - draw_bulb(z13r, z13l, 0.5, 1.5); + draw_bulb(z13r, z13l, bulb_size, 1.5); fet_endchar; -fet_endgroup("foobars"); +fet_beginchar("organ-heel", "pedalheel", "pedalheel") + save radius, thickness, wall; + + radius# := .5 interline#; + + define_pixels(radius); + set_char_box(radius#, radius#, radius#, 2/3 interline#); + + thickness := 1.5 stafflinethickness; + pickup pencircle scaled thickness; + rt x1 = b; + top y1 = h; + + x2 =x1; + y2 = 0; + + x3 = 0; + bot y3 = -d; + + draw z1{down} .. z2{down} .. z3{left}; + addto currentpicture also currentpicture xscaled -1; + labels(1,2,3); +fet_endchar; + +fet_beginchar("organ-toe", "pedaltoe", "pedaltoe") + save ht,wd; + + thickness := 1.5 stafflinethickness; + ht# := 1.5 interline#; + wd# := 1/3 ht#; + define_pixels(ht,wd); + + + set_char_box(wd#, wd#, 0, ht#); + + pickup pencircle scaled thickness; + lft x1 = -b; + bot y1 = 0; + x2 =0; + top y2 = h; + z3 = z1 xscaled -1; + + + draw z1 -- z2 -- z3; + labels(1,2,3); +fet_endchar; + + + + +fet_endgroup("scripts"); diff --git a/mf/feta-toevallig.mf b/mf/feta-toevallig.mf index a0865df28d..69ef0a7315 100644 --- a/mf/feta-toevallig.mf +++ b/mf/feta-toevallig.mf @@ -171,8 +171,8 @@ fet_beginchar("Double sharp", "2", "sharpsharp") set_char_box(0, interline#, .5 interline#, .5 interline#); save klaverblad, klaversteel; - klaversteel = 1/12 interline; - klaverblad = 1/3 interline; + klaversteel = 1/15 interline; + klaverblad = .35 interline; z1 = (klaversteel, 0); z2 = (w/2 - klaverblad / 10, h - klaverblad); @@ -180,7 +180,7 @@ fet_beginchar("Double sharp", "2", "sharpsharp") z4 = z2 reflectedabout((0,0), (1,1)); z5 = z1 reflectedabout((0,0), (1,1)); -% labels(1,2,3,4,5); + labels(1,2,3,4,5); draw_rounded_path( z1{dir 45} .. {right}z2 -- z3 -- z4{down} .. {dir 225}z5 .. cycle, 1/20 interline); diff --git a/mf/font-en-tja16.mf b/mf/font-en-tja16.mf index 2749d8d557..8cd1246313 100644 --- a/mf/font-en-tja16.mf +++ b/mf/font-en-tja16.mf @@ -6,9 +6,6 @@ input autometric; fet_beginfont("font-en-tja", 16); - -mode_setup; - staffsize#:=16pt#; input feta-generic; diff --git a/mf/font-en-tja20.mf b/mf/font-en-tja20.mf index 7255d9f872..d1f600ff46 100644 --- a/mf/font-en-tja20.mf +++ b/mf/font-en-tja20.mf @@ -1,12 +1,11 @@ % font-en-tja20.mf % part of LilyPond's pretty-but-neat music font -mode_setup; +staffsize#:=20pt#; input autometric; fet_beginfont("font-en-tja", 20); -staffsize#:=20pt#; input feta-generic; diff --git a/mf/foo.mf b/mf/foo.mf deleted file mode 100644 index e69de29bb2..0000000000 --- a/mf/foo.mf +++ /dev/null diff --git a/mf/mfbug.mf b/mf/mfbug.mf deleted file mode 100644 index 5837988e0c..0000000000 --- a/mf/mfbug.mf +++ /dev/null @@ -1,21 +0,0 @@ -% is this OK? Or is it a bug; -% changing the order of z1l and z1r in reflectedabout -% stops mf from complaining -fet_beginchar("open (unstopped)", "open", "ouvert") - save thin, height, width, thick; - height# = 5/4 width#; - height# = 2/3 interline#; - thin = .9 stafflinethickness; - thick = 1.4 thin; - set_char_box(width#/2, width#/2, 0, height#); - - penpos1(thick, 0); - penpos2(thin, 90); - z1r = (w,h/2); - z2r = (0, h); - penlabels(1,2); - penstroke z1e{up} .. {left}z2e; - addto currentpicture also currentpicture xscaled -1; - addto currentpicture also currentpicture reflectedabout(z1l, z1r); -fet_endchar; -fet_endgroup("foobars"); diff --git a/tex/font-en-tja16.tex b/tex/font-en-tja16.tex index 4163d8c260..e6809e2253 100644 --- a/tex/font-en-tja16.tex +++ b/tex/font-en-tja16.tex @@ -1,7 +1,6 @@ -% generated automatically by mf-to-table.py version 0.3 -% on Thu Oct 9 20:24:25 1997 +% generated automatically by mf-to-table.py version 0.4 +% on Fri Oct 10 21:22:38 1997 % Do not edit - % input from out/font-en-tja16.log % name % rests @@ -33,7 +32,7 @@ \fetdef\halfball{19} \fetdef\quartball{20} -% foobars +% scripts \fetdef\ufermata{21} \fetdef\dfermata{22} \fetdef\sforzatoaccent{23} @@ -48,9 +47,11 @@ \fetdef\upbow{32} \fetdef\downbow{33} \fetdef\turn{34} -\fetdef\utrill{35} +\fetdef\trill{35} +\fetdef\pedalheel{36} +\fetdef\pedaltoe{37} % floogbars -\fetdef\eighthflag{36} -\fetdef\deighthflag{37} +\fetdef\eighthflag{38} +\fetdef\deighthflag{39} diff --git a/tex/font-en-tja20.tex b/tex/font-en-tja20.tex index 28a218fc45..1791d0ebad 100644 --- a/tex/font-en-tja20.tex +++ b/tex/font-en-tja20.tex @@ -1,7 +1,6 @@ -% generated automatically by mf-to-table.py version 0.3 -% on Thu Oct 9 20:24:27 1997 +% generated automatically by mf-to-table.py version 0.4 +% on Fri Oct 10 21:22:44 1997 % Do not edit - % input from out/font-en-tja20.log % name % rests @@ -33,7 +32,7 @@ \fetdef\halfball{19} \fetdef\quartball{20} -% foobars +% scripts \fetdef\ufermata{21} \fetdef\dfermata{22} \fetdef\sforzatoaccent{23} @@ -48,9 +47,11 @@ \fetdef\upbow{32} \fetdef\downbow{33} \fetdef\turn{34} -\fetdef\utrill{35} +\fetdef\trill{35} +\fetdef\pedalheel{36} +\fetdef\pedaltoe{37} % floogbars -\fetdef\eighthflag{36} -\fetdef\deighthflag{37} +\fetdef\eighthflag{38} +\fetdef\deighthflag{39} diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex index 2854a35417..add2284b62 100644 --- a/tex/lilyponddefs.tex +++ b/tex/lilyponddefs.tex @@ -153,6 +153,28 @@ \def\startrepeat{\repeatstartbar} \def\repeatbarstartrepeat{\repeatstopstart} +\def\vruler#1{{% + \def\wid{\dimen0}% + \def\inc{\dimen1}% + \wid=#1pt + \inc=\wid + \divide\inc by #1 + \divide\wid by 2 + \here=-\wid + \loop\ifdim\here<\wid\advance\here by\inc + \hbox to0pt{\vbox to0pt{\vss\hrule width2pt height 0.05pt\kern\here}\hss}% + \repeat% +}} +\def\hruler#1#2{\hbox{% + \def\wid{\dimen0}% + \def\here{\dimen3}% + \wid=#1pt + \divide\wid by 2 + \here=-\wid + \loop\ifdim\here<\wid\advance\here by #2 + \hbox to0pt{\kern\here\vrule width0.05pt height 1pt depth 1pt\hss}% + \repeat% +}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -262,4 +284,6 @@ }\else{foo\hfil\the\pageno\hfil}\fi}} \fi - + +% debugging stuff: +% \vbox to 0pt{\vskip .5cm \hruler{48}{3pt}\vss} diff --git a/tex/vette-beams16.tex b/tex/vette-beams16.tex deleted file mode 100644 index 55fc84888e..0000000000 --- a/tex/vette-beams16.tex +++ /dev/null @@ -1,3 +0,0 @@ -% generated at Fri Sep 26 15:26:29 1997 from out/vette-beams16.log -% changes will be lost - diff --git a/tex/vette-beams20.tex b/tex/vette-beams20.tex deleted file mode 100644 index 438f27e89a..0000000000 --- a/tex/vette-beams20.tex +++ /dev/null @@ -1,3 +0,0 @@ -% generated at Fri Sep 26 15:26:46 1997 from out/vette-beams20.log -% changes will be lost - |