]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 0.0.77.jcn1 release/0.0.77.jcn1
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 29 Jul 1997 17:43:44 +0000 (19:43 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 29 Jul 1997 17:43:44 +0000 (19:43 +0200)
186 files changed:
.dstreamrc
.version
ANNOUNCE
AUTHORS.text
BUGS
Documentation/INSTALL.pod
Documentation/Makefile
Documentation/Rules.make [new file with mode: 0644]
Documentation/index.pod
Documentation/lilygut.pod
Documentation/lilypond.pod
Documentation/links.pod [new file with mode: 0644]
Documentation/mi2mu.pod
Documentation/mudela-man.doc
Documentation/other-packages.pod
INSTALL.text
NEWS
TODO
bin/make-website
flower/.version
flower/NEWS
flower/TODO
flower/choleski.cc
flower/full-storage.cc
flower/include/virtual-methods.hh
flower/string-convert.cc
init/Makefile
init/bare.ini [deleted file]
init/bare.ly [new file with mode: 0644]
init/dutch.ini [deleted file]
init/dutch.ly [new file with mode: 0644]
init/dynamic.ini [deleted file]
init/dynamic.ly [new file with mode: 0644]
init/english.ini [deleted file]
init/english.ly [new file with mode: 0644]
init/engraver.ini [deleted file]
init/engraver.ly [new file with mode: 0644]
init/midi.ini [deleted file]
init/midi.ly [new file with mode: 0644]
init/paper16.ini [deleted file]
init/paper16.ly [new file with mode: 0644]
init/performer.ini [deleted file]
init/performer.ly [new file with mode: 0644]
init/script.ini [deleted file]
init/script.ly [new file with mode: 0644]
init/swedish.ini [deleted file]
init/swedish.ly [new file with mode: 0644]
init/symbol.ini [deleted file]
init/symbol.ly [new file with mode: 0644]
init/table16.ini [deleted file]
init/table16.ly [new file with mode: 0644]
init/table_twenty.ini [deleted file]
init/table_twenty.ly [new file with mode: 0644]
input/scsii-menuetto.ly
input/standchen.ly
input/twinkle.ly
input/wohltemperirt.ly
lib/includable-lexer.cc
lily/.version
lily/Stable.make
lily/bar-grav.cc
lily/bar.cc
lily/beam.cc
lily/bow.cc
lily/break-align-item.cc
lily/clef-grav.cc
lily/clef-item.cc
lily/collision-grav.cc
lily/collision.cc
lily/command-request.cc
lily/crescendo.cc
lily/debug.cc
lily/dynamic-grav.cc
lily/elem-group-item.cc
lily/elem-group.cc
lily/engraver-group.cc
lily/engraver.cc
lily/general-script-def.cc
lily/global-translator.cc
lily/head-column.cc
lily/head-grav.cc
lily/horizontal-align-item.cc
lily/identifier.cc
lily/include/key-performer.hh
lily/include/lily-proto.hh
lily/include/line-group-grav.hh [new file with mode: 0644]
lily/include/lyric-performer.hh
lily/include/meter-performer.hh
lily/include/midi-item.hh
lily/include/music-iterator.hh
lily/include/music-list.hh
lily/include/musical-request.hh
lily/include/note-performer.hh
lily/include/performer-group-performer.hh
lily/include/performer.hh
lily/include/request.hh
lily/include/score-elem-info.hh
lily/include/score-performer.hh
lily/include/spring-spacer.hh
lily/include/staff-gravs.hh [deleted file]
lily/include/staff-performer.hh
lily/include/swallow-perf.hh
lily/input-translator.cc
lily/item.cc
lily/key-grav.cc
lily/key-item.cc
lily/key-performer.cc
lily/line-group-grav.cc [new file with mode: 0644]
lily/local-key-grav.cc
lily/local-key-item.cc
lily/lyric-grav.cc
lily/lyric-performer.cc
lily/main.cc
lily/meter-grav.cc
lily/meter-performer.cc
lily/meter.cc
lily/midi-def.cc
lily/midi-item.cc
lily/music-iterator.cc
lily/music-list.cc
lily/music.cc
lily/musical-request.cc
lily/my-lily-parser.cc
lily/note-column-grav.cc
lily/note-column.cc
lily/note-performer.cc
lily/notehead.cc
lily/paper-def.cc
lily/parser.y
lily/performer-group-performer.cc
lily/performer.cc
lily/request.cc
lily/rest-collision-grav.cc
lily/rest-collision.cc
lily/rest-column.cc
lily/score-align-grav.cc
lily/score-align-gravs.cc
lily/score-elem-info.cc
lily/score-elem.cc
lily/score-grav.cc
lily/score-halign-grav.cc
lily/score-performer.cc
lily/score.cc
lily/scoreline.cc
lily/script-column.cc
lily/script-def.cc
lily/script-grav.cc
lily/script.cc
lily/slur-grav.cc
lily/slur.cc
lily/span-bar-grav.cc
lily/span-bar.cc
lily/span-score-bar-grav.cc
lily/span-score-bar.cc
lily/spanner-elem-group.cc
lily/spanner.cc
lily/staff-gravs.cc [deleted file]
lily/staff-performer.cc
lily/staff-side.cc
lily/staff-sym-grav.cc
lily/staff-sym.cc
lily/staffline.cc
lily/stem-beam-grav.cc
lily/stem.cc
lily/super-elem.cc
lily/swallow-grav.cc
lily/swallow-perf.cc
lily/template4.cc
lily/text-def.cc
lily/text-grav.cc
lily/text-item.cc
lily/text-spanner.cc
lily/tie-grav.cc
lily/tie.cc
lily/translator.cc
lily/vertical-align-elem.cc
lily/vertical-align-grav.cc
lily/vertical-align-spanner.cc
lily/voice-group-gravs.cc
lily/voice-group-performer.cc
make/Rules.make
make/Targets.make
make/lilypond.lsm
make/lilypond.lsm.in
make/lilypond.spec
make/lilypond.spec.in

index fbad82a93c56ec8d6ac7780ad08c07da623c8880..0bf620df03cf9a9fbd476c2c727d9483192ed1ed 100644 (file)
@@ -1,21 +1,6 @@
 # class name           silence?
 Dstream                        1
 
-File_path              1
-My_lily_lexer          1
-PCol                   0
-Score_column           0
-Script_column          0
-# E l b e ment? search/replace typo.
-# Yeah. kind of. Looks cute though
-Elbement_group         1
-Ineq_constrained_qp    1
-Spacing_problem        1
-Colinfo                        1
-Mixed_qp               1
-PScore                 1
-Idealspacing           0
-
 # yydebug
 InitParser             1
 Parser                 1
@@ -26,64 +11,81 @@ InitLexer           1
 Lexer                  1
 Matrix                 1
 
-parse_duration         1
-parse_pitchmod         1
-Col_configuration      1
-Request                        1
-Note_req               1
-Rhythmic_req           1
-Rest_req               1
-delete_identifiers     1
-Command                        1
-Staff_commands         1
-Stem                   1
-Staff                  1
-Score                  1
-Voice                  1
-Voice_element          1
-Spanner                        1
+
+
 Atom                   1
+Bar                    1
+Beam                   1
 Change_iterator                1
+Chord                  0
 Chord_iterator         1
-Music_iterator         1
-Request_iterator       1
-Score_performer                0
-Voice_element_iterator  1
-Voice_iterator         1
-Chord                  1
-Collision              1
-Rest_collision         1
-Stem                   1
-Key_item               1
 Clef_item              1
-Bar                    1
-Slur                   1
-Music                  1
-Paper_def              1
-Lookup                 1
-Input_translator       0
-Score_elem             1
-Item                   1
-Note_head              1
+Col_configuration      1
+Colinfo                        1
+Colinfo                        1
+Collision              1
+Command                        1
+
+# E l b e ment? search/replace typo.
+# Yeah. kind of. Looks cute though
+Elbement_group         1
 Engraver               1
-Rest_collision_engraver 1
-Score_engraver         0
 Engraver_group_engraver 1
-Time_description       1
-Melodic_req            1
+File_path              1
+Group_change_req       1
+Head_column            1
+Idealspacing           0
+Ineq_constrained_qp    1
+Input_translator       0
+Item                   1
+Key_item               1
+Lookup                 1
+Melodic_req            0
 Midi_def               1
+Mixed_qp               1
+Music                  0
+Music_iterator         1
+My_lily_lexer          1
+Note_head              1
 Note_performer         0
+Note_req               0
+PCol                   0
+PScore                 1
+Paper_def              1
+Paperdef               1
 Performer              0
-Stem_req               1
-Group_change_req       1
-Script_req             1
-Colinfo                        1
-Word_wrap              1
-Text_req               1
+Request                        0
+Request_iterator       1
+Rest_collision         1
+Rest_collision_engraver 1
+Rest_req               1
+Rhythmic_req           0
+Score                  1
+Score_column           0
+Score_elem             1
+Score_engraver         0
+Score_performer                0
+Script_column          0
 Script_def             0
-Text_def               0
-Paperdef               1
+Script_req             0
+Slur                   1
+Spacing_problem        1
+Spanner                        1
+Staff                  1
+Staff_commands         1
+Stem                   1
+Stem                   1
+Stem_req               1
 Symtable               1
 Symtables              1
-Beam                   1
-Head_column            1
+Text_def               0
+Text_req               0
+Time_description       1
+Voice                  0
+Voice_element          0
+Voice_element_iterator  1
+Voice_iterator         1
+Word_wrap              1
+delete_identifiers     1
+parse_duration         1
+parse_pitchmod         1
index 8deba99f456fd448ac676cc57d26e8e158227058..623bd9d848531820047454711cc7379ac5722e8b 100644 (file)
--- a/.version
+++ b/.version
@@ -1,7 +1,7 @@
 TOPLEVEL_MAJOR_VERSION = 0
 TOPLEVEL_MINOR_VERSION = 0
-TOPLEVEL_PATCH_LEVEL = 76
+TOPLEVEL_PATCH_LEVEL = 77
 # use to send patches, always empty for released version:
 # include separator: ".postfix", "-pl" makes rpm barf
 
-TOPLEVEL_MY_PATCH_LEVEL = 
+TOPLEVEL_MY_PATCH_LEVEL = .jcn1
index 6d851a385bf5ca7452351944d076d6e39fadfa91..aadfe22abd5f46c222bd9ca5a57bad358978e0d1 100644 (file)
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -11,8 +11,9 @@ Lily is a healthy, bouncing baby weighing 335 kilobytes
 
 Visiting hours: 24hrs a day at
 
-       ftp://pcnov095.win.tue.nl/pub/lilypond/lilypond-0.1.tar.gz
-       ftp://prep.gnu.ai.mit.edu/pub/gnu/lilypond-0.1.tar.gz
+
+       ftp://pcnov095.win.tue.nl/pub/lilypond/lilypond-0.1.0.tar.gz (Europe)
+       ftp://alpha.gnu.ai.mit.edu/pub/lilypond/lilypond-0.1.0.tar.gz (US)
 
 you can see some babyfood, diapers and pictures at
 
@@ -56,9 +57,9 @@ It isn't flashy, but then I wasn't born to be a webartist.
 
 WHAT IS GNU LilyPond?
 
-GNU LilyPond which converts music definition files into visual or
-audio output: it can typeset formatted sheet music to a TeX file and
-and (mechanical) performances to MIDI files.
+GNU LilyPond is a program which converts music definition files into
+visual or auditive output: it can typeset formatted sheet music to a
+TeX file and and (mechanical) performances to MIDI files.
 
 WHY?
 
@@ -66,13 +67,15 @@ We want to create tools which can produce production quality scores
 and parts of public music. We haven't quite reached that goal:
 
 * The quality of the output isn't good enough yet due to
-some (still) insophisticated algorithms
+some (still) unsophisticated algorithms
 
 * A number of features haven't been implemented (although they can be
 quite simple)
 
-We Want You!  You can become a user, but we'd really appreciate to
-have some Hackers to help advance our project more quickly.
+WE WANT YOU!  
+
+You can become a user, but we'd really appreciate it you would start 
+hacking at Lily, and help us advance our project more quickly.
 
 WHAT IS NEEDED?
 
@@ -90,7 +93,7 @@ for running you need
        MusiXTeX fonts 
 
 The MusiXTeX fonts are part of the MusiXTeX package version T.73,
-available at http://www.gmd.de/Misc/Music/ 
+available at any CTAN mirror, or http://www.gmd.de/Misc/Music/ 
 
 WHAT CAN LILYPOND DO?
 
index ffea060633a40d6e0c03fc798eef10d2357848cc..a8c72e7a1200310c431986c884929ea302aeafde 100644 (file)
@@ -61,6 +61,6 @@ C\bC\bC\bCO\bO\bO\bON\bN\bN\bNT\bT\bT\bTR\bR\bR\bRI\bI\bI\bIB\bB\bB\bBU\bU\bU\bUT\bT\bT\bTO\bO\bO\bOR\bR\bR\bRS\bS
 
 
 
-26/Jul/97                LilyPond 0.0.76                        1
+26/Jul/97                LilyPond 0.0.77                        1
 
 
diff --git a/BUGS b/BUGS
index e4af66d3cb934d73e83cf72228092441990599c0..2f3755f292423350aca7fead8461ad68c09ac14a 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -1,2 +1,20 @@
 
 [document reintroduced deficiencies.]
+
+midi instrument?
+*******************
+ '.' -> lilypond: lexer.l:258: int My_lily_lexer::yylex(): Assertion `cnv == 1' failed.
+
+***********************
+
+2nd staff takes too long.
+
+\score { < 
+       \melodic { \id "Staff" ""; c'4 g'4 }
+       \lyric { \id "Lyric" ""; hello4 bye4 < a chord > }
+       \lyric { \id "Lyric" ""; bye4 hello4 }
+       \melodic { \id "Staff" ""; c'4 g'4 }
+       > 
+} 
+
+*******************
index 9d86ae3641a2aae36ec41dcf00141fc6b57ef7f5..7d7ee4127d6a33040680f735d9cd3af133b771ba 100644 (file)
@@ -55,13 +55,21 @@ TeX
 The MusixTeX fonts (I included those found in MusixTeX T.73). Beware,
 the clef symbol seems to have changed its position in some versions,
 (notably Egler's, a.k.a. OpusTeX). The MusixTeX fonts are included in
-MusixTeX T.73, which can be had from any CTAN site, eg at
+MusixTeX (T73 or better), which can be had from any CTAN site, e.g. at
 
-       ftp://ftp.shsu.edu/tex-archive/macros/musixtex/taupin
-       ftp://ftp.tex.ac.uk/tex-archive/macros/musixtex/taupin
-       ftp://ftp.dante.de/tex-archive/macros/musixtex/taupin
+=over 4
+
+=item ftp://ftp.shsu.edu/tex-archive/macros/musixtex/taupin
+
+=item  ftp://ftp.tex.ac.uk/tex-archive/macros/musixtex/taupin
+
+=item ftp://ftp.dante.de/tex-archive/macros/musixtex/taupin
+
+=back
 
-You only need the contents of the F<mf/> subdirectory of the package.
+You only need the contents of the F<mf/> subdirectory of the
+package. The primary site of the Taupin version is
+ftp://hprib.lps.u-psud.fr/pub/music_zips/musixtex.zip
 
 =head1 RECOMMENDED
 
@@ -78,7 +86,6 @@ with the perl's Plain Old Documentation.
 
 (GNU) find
 
-
 =item *
 
 A fast computer (a full page of music typically takes 1 minute
@@ -199,8 +206,6 @@ have a symlink pointing to that in
 F</usr/lib/texmf/texmf/fonts/source/public/>. After I copied the
 files, I ran "texhash"
 
-ftp://hprib.lps.u-psud.fr/pub/music_zips/musixtex.zip
-
 =head1 CAVEATS
 
 
index 79934bc758438b62bd28ba8dca8f79a455d02a79..a44206b6521230b8fcec28f55b49285cb13161b9 100644 (file)
@@ -16,8 +16,10 @@ NAME = Documentation
 include ./$(depth)/make/Variables.make 
 include ./$(depth)/make/Version.make
 include ./$(depth)/make/Files.make 
+include ./Rules.make
 #
 
+
 #
 DOCFILES = $(wildcard *.doc)
 OUTPODFILES = $(addprefix $(outdir)/,$(PODFILES))
@@ -32,7 +34,8 @@ DVIFILES = $(addprefix $(outdir)/, $(DOCFILES:.doc=.dvi))
 EXTRA_DISTFILES = lelie_icon.gif lelie_logo.gif  $(DOCFILES)
 default: do-doc
 
-do-doc: $(TEXTFILES) $(DVIFILES)
+# don't do DVI files. They can only be made if lily is installed
+do-doc: $(TEXTFILES)
 
 html: $(HTMLFILES)
 
diff --git a/Documentation/Rules.make b/Documentation/Rules.make
new file mode 100644 (file)
index 0000000..9f1be18
--- /dev/null
@@ -0,0 +1,55 @@
+# special rules for the documentation section.
+# There are too many to add to the general rules
+
+.SUFFIXES: .pod .text .1  .html
+
+
+$(outdir)/%.xpm: %.gif
+       giftopnm $< | ppmtoxpm > $@
+
+$(outdir)/%.ps: $(outdir)/%.dvi
+       dvips -o $@ $<
+
+$(outdir)/%.dvi: $(outdir)/%.mudtex
+       latex '\nonstopmode \input $<'
+       mv $(notdir $@) $(outdir)
+
+$(outdir)/%.mudtex: %.doc
+       $(depth)/bin/mudela-book --outdir=$(outdir)/ --outname=$(notdir $@) $<
+
+
+$(outdir)/%.text: $(outdir)/%.1
+       groff -man -Tascii $< > $@
+
+$(depth)/%.text: $(outdir)/%.text
+       cp $< $@
+
+$(outdir)/%.html: %.pod
+       $(pod2html)  $<
+       mv $(notdir $@) $(outdir)/
+
+$(outdir)/%.5: %.pod
+       $(pod2groff)
+
+$(outdir)/%.1: %.pod
+       $(pod2groff)
+
+$(outdir)/%.gz: $(outdir)/%
+       gzip -c9 $< > $@
+
+$(outdir)/%.dvi: $(depth)/input/%.ly
+       (cd $(outdir); lilypond ../$< ;\
+       if [ -f ../$(basename $< ).tex ]; \
+       then \
+               latex ../$(basename $< ) ;\
+       else \
+               tex '\nonstopmode \input lelie' ;\
+               mv lelie.dvi ../$@ ; \
+       fi)
+
+# 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 > $@
+
+$(outdir)/%.ly.txt: $(depth)/input/%.ly
+       ln -f $< $@
index 54b509ee332f5be3299d3fdcf4a6ad118952ed88..10fdd592d0172b914aa73b9caca6cf7f98daa10e 100644 (file)
@@ -6,13 +6,13 @@ Excuse me for this poor page. I don't really have time for doing this..
 
 =head1 DESCRIPTION
 
-GNU LilyPond is a program to typeset music: it generates TeX (or
-LaTeX) output from file input.
 
-As a bonus, you can also output a MIDI file of what you typed.
 
-=head2 Examples
+GNU LilyPond is a program which converts music definition files into
+visual or auditive output: it can typeset formatted sheet music to a
+TeX file and and (mechanical) performances to MIDI files.
 
+=head2 Examples
 
 <a href=example_output.html
 >
@@ -117,6 +117,20 @@ The GNU Music project
 </a
 >
 
+=item * 
+<a href=ANNOUNCE.txt
+>
+The announce of 0.1
+</a
+>
+
+=item *
+<a href=DEDICATION.txt
+>
+DEDICATION
+</a
+>
+
 =back
 
 
@@ -126,6 +140,8 @@ The GNU Music project
 =over 5
 
 
+
+
 =item *
 <a href=TODO.txt
 >
@@ -192,6 +208,14 @@ Other packages for printing music.
 Get LilyPond at ftp://pcnov095.win.tue.nl/pub/lilypond !
 
 
+=item *
+<a href=links.html
+>
+B<download LilyPond> and other interesting links
+</a
+>
+
+
 =item *
 <a href=sconstat/stats.html
 >
@@ -199,7 +223,6 @@ Stats on this page.
 </a
 >
 
-
 =back
 
 
index f84120b47bd2dbd89f88e54a1ad35cd3afb6e4c4..71d0f8f566d4527d8e0904a2da2f43dbdee4e3f2 100644 (file)
@@ -206,7 +206,7 @@ C<Stem_beam_engraver> about the C<Notehead>, which will add the
 C<Notehead> to the C<Stem> it just created.
 
 To decide on merging, C<Complex_staff> has grouped several
-engravers. Please check init/engraver.ini.
+engravers. Please check F<init/engraver.ly>.
 
 
 =head1 ITEMS and SPANNERS
index c0181bc645013e3c33646fd3a8c5c520b89c5d11..e479ff5c19b112a7c60c6673b710e3b9eeeb9f6d 100644 (file)
@@ -8,9 +8,9 @@ lilypond - the GNU music typesetter
 
 =head1 DESCRIPTION
 
-GNU LilyPond which converts music definition files into visual or
-audio output: it can produce formatted sheet music in TeX and 
-and mechanical perfomances to MIDI files.
+GNU LilyPond is a program which converts music definition files into
+visual or auditive output: it can typeset formatted sheet music to a
+TeX file and and (mechanical) performances to MIDI files.
 
 =head1 OPTIONS
 
@@ -20,7 +20,6 @@ and mechanical perfomances to MIDI files.
 
 add F<FILE> to the search path for input files.
 
-
 =item B<-M,--midi>
 
 do midi output only
@@ -46,12 +45,16 @@ Show a summary of usage
 
 =item B<-i,--init=>F<FILE>
 
-set init file to F<FILE> (default: F<symbol.ini>)
+set init file to F<FILE> (default: F<symbol.ly>)
 
 =item B<--include, -I>=F<DIRECTORY>
 
 add F<DIRECTORY> to the search path for input files.
 
+=item B<--ignore-version, -V>
+
+make incompatible mudela version non-fatal 
+
 =back
 
 =head1 FEATURES
@@ -175,7 +178,7 @@ Than it would help if you send a dump of the Interval and the Item
 
 =over 5
 
-=item F<symbol.ini>
+=item F<symbol.ly>
 
 The initialisation file with symbol tables etc. It
 includes files from the directory F<init/>.
@@ -196,9 +199,9 @@ B<LILYINCLUDE> an (one) additional directory for finding lilypond data.
 
 On technical details of LilyPond
 
-=item mudela(5)
+=item mudela-man
 
-On the input format
+On the input format. This is a LilyPond-enhanced LaTeX document.
 
 =item MANIFESTO
 
@@ -208,18 +211,12 @@ Goals of the GNU LilyPond project.
 
 The GNU LilyPond FAQ list
 
-=item http://
-
-The GNU Music project. GNU LilyPond is part of the GNU Music
-project. For more information on the GNU Music project, 
-
 =item http://www.stack.nl/~hanwen/lilypond/index.html
 
 GNU LilyPond has her own webpage.  This webpage contains the MIDI, GIF
 and PS files for some standard music files. It also has the complete
 LilyPond documentation
 
-
 =back
 
 GNU LilyPond is
diff --git a/Documentation/links.pod b/Documentation/links.pod
new file mode 100644 (file)
index 0000000..e9ffba6
--- /dev/null
@@ -0,0 +1,113 @@
+=head1 NAME
+
+links - Links to other related websites
+
+=head1 DESCRIPTION
+
+This page contains links to organisations and ftp-sites, which may be
+of interest to LilyPond users.
+
+=head2 WWW
+
+=over 4
+
+=item http://www.gnu.ai.mit.edu/
+
+LilyPond is part of the GNU Project started by the Free Software
+Foundation to create a system of free software for the world-community
+
+=item http://www.ssc.com/linux/
+
+The Number One Free OS-Kernel: Linux 
+
+=item http:// /linux_soundapps.html
+
+Dave Philips' Linux sound applications page
+
+
+=back
+
+=head2 Ftp 
+
+We will upload major releases to the following sites:
+
+=over 4
+
+=item ftp://sunsite.unc.edu/pub/Linux/apps
+
+The GNU/Linux FTP site
+
+=item ftp://ftp.dante.de/tex-archive/support/lilypond
+
+An ftp site which is in CTAN.
+
+=item ftp://ftp.redhat.com/pub/contrib/
+
+RedHat Software develops and markets a GNU/Linux distribution (of
+which we are avid users)
+
+=back
+
+Beta releases will also be at
+
+=over 4
+
+=item ftp://pcnov095.win.tue.nl/pub/lilypond
+
+=item ftp://alpha.gnu.ai.mit.edu/
+
+=back
+
+=head2 News
+
+
+=over 4
+
+=item news:comp.music.research
+
+=item news:rec.music.compose
+
+=item news:gnu.announce
+
+=item news:comp.os.linux.announce
+
+=back
+
+=head2 Mailing lists
+
+For programs which are part of the GNU music project, the following
+mailing list have been setup:
+
+=over 4
+
+=item info-gnu-music@vuse.vanderbilt.edu
+
+For information on the GNU Music project, to subscribe: send mail with
+subject "subscribe" to info-gnu-music-request@vuse.vanderbilt.edu
+
+=item help-gnu-music@vuse.vanderbilt.edu
+
+For help with programs from the GNU music project. To subscribe: send
+mail with subject "subscribe" to
+help-gnu-music-request@vuse.vanderbilt.edu
+
+=item bug-gnu-music@vuse.vanderbilt.edu
+
+If you have bugreports, you should send them to this list. If you want
+to read all bugreports, you should subscribe to this list.  To
+subscribe: send mail with subject "subscribe" to
+bug-gnu-music-request@vuse.vanderbilt.edu
+       
+=item gnu-music-discuss@vuse.vanderbilt.edu,
+
+For discussions concerning the GNU Music project, to subscribe: send
+mail with subject "subscribe" to
+gnu-music-discuss-request@vuse.vanderbilt.edu,
+
+
+=back
+
+Announces of new versions will be sent to info-gnu-music and
+gnu-music-discuss.
+
+
index a4aa186f3bb254373fc0771ec1888a333ad74faf..faf125bbfe015aa78998f6a93203729bfcc4a7c9 100644 (file)
@@ -111,7 +111,9 @@ The GNU LilyPond music typesetter.
 
 On the LilyPond input format.
 
-=item The GNU LilyPond FAQ list.
+=item mudela-man
+
+On the input format. This is a LilyPond-enhanced LaTeX document.
 
 =back
 
index f9405a5eeebd4f9eec3866822fbdf423506eefe2..c4e9c85398b6e4c0b491507272330af2d4372b9f 100644 (file)
 \section{Introduction}
 
 This document describes the the GNU LilyPond input format, which is an
-effective language for defining music.  We call this language
-(rather arrogantly) The Musical Definition Language (Mudela 0.1).
-
-[If anybody comes up with a better name, we'd gladly take
-this. Gourlay already uses Musical Description Language, GSharp Score
-Definition Language. We're not being original here]
+effective language for defining music.  We call this language (rather
+arrogantly) The Musical Definition Language or Mudela, for
+short.\footnote{If anybody comes up with a better name, we'd gladly
+  take this. Gourlay already uses Musical Description Language,
+  G-Sharp Score Definition Language. We're not being original here}
 
 The first aim of Mudela is to define a piece of music, 
 being complete from both from a musical typesetting, 
 as from a musical performing point of view.
 
-
-The Musical Definition Language (Mudela) version 2, has a logical
-structure, making use of typing and naming (using identifiers), that
-allows for flexible input, and definition reuse. See MANIFESTO for
-reasons and design considerations.
+The Musical Definition Language (Mudela), has a logical structure,
+making use of identifiers, that allows for flexible input, and
+definition reuse. See MANIFESTO for reasons and design considerations.
 
 The below included for explanatory purposes only (i.e., for a complete
 and up-to-date definition, see \file{lily/parser.y} and
@@ -40,6 +37,8 @@ files, as this document does not cover every aspect of mudela yet, and
 may be out of date.
 
 
+\section{Basic elements}
+
 \subsection{Files}
 
 The de-facto extension of Mudela is \file{.ly}. Files may be included by
@@ -52,8 +51,14 @@ entering \verb+include+ at the start of a line:
 
 \subsection{Comments}
 
-Line comments are introduced by a \verb+%+. Block comments are delimited
-by \verb+%{+ and \verb+%}+. They do not nest.
+Line comments are introduced by a
+\verb+%+. 
+Block comments are delimited
+by 
+\verb+%{+ 
+and
+\verb+%}+. 
+They do not nest.
 
 \subsection{Versions}
 
@@ -75,7 +80,8 @@ alphabetic characters only.
 
 Identifiers in their normal form consist start with a backslash, a
 alpha character, followed by alpha-numerics. Identifiers can contain
-any characters (except whitespace, \verb+$+ and \verb+%+), if you use this
+any characters (except whitespace, 
+\verb+$+ and \verb+%+), if you use this
 construct:
 
 \begin{verbatim}
@@ -283,7 +289,7 @@ error for this reason.
   
 \subsection{Slurs and Ties}
 
-Ties connect the noteheads of adjecent notes. They are entered as follows:
+Ties connect the noteheads of adjacent notes. They are entered as follows:
 
 \begin[fragment]{mudela}
 a4 ~ a4
@@ -348,7 +354,6 @@ octave, you can prevent having to type \verb+'+ all the time by using the
 \verb+\octave+ command: These two lines have the same pitch.
 \begin{verbatim}
 c'' d'' e'' c d e c d e
-
 \octave c''; c d e ''c ''d ''e \octave c; c d e
 \end{verbatim}
 
@@ -370,56 +375,73 @@ duration entry are bound together using an underscore
 He_could4 not4
 \end{verbatim}
 
-\subsection{ Music direction}
+\section{Composition: forming bigger structures}
 
-Mudela reads left to right, but you can still stack voices and
-Voice\_elements which are produced in two directions: horizontal
-(voice like) and vertical (chord like)
+The previous examples tacitly assumed that a sequence of notes is
+printed in a left to right manner. This is not entirely correct, you
+will get the bigger picture in this section. 
 
-A note is a prime example of a Music-element is the note:
-\begin{verbatim}
-c4 
-\end{verbatim}
+In mathematics you can form expressions by combining expressions,
+which are ultimately some kind of atom or terminal symbol.  The same
+goes for mudela: there are some basic building blocks, and by
+combining those you create complex music.
 
-If you enclose a sequence of Music-elements in braces ( { } ), then you form
-another kind of Music-element (Voice) with those pieces
+You can combine music in three ways:
+\begin{itemize}
+\item If you enclose a sequence of music-elements in braces ( \verb+{+
+    and \verb+}+ ), then you form another kind of music called (Voice) with those pieces.
+  The duration of the Voice is the sum of the durations of its elements
 \begin{verbatim}
-        { c c g g a a g2 }      % twinkle twinkle
-        { { c c g g} { a a g2 } }
-
-        horOne = \melodic { c c g g }
-        horTwo = \melodic { a a g2 }
-        twinkle = \melodic { \horOne \horTwo }
+{ c c g g a a g2 }      % twinkle twinkle
+{ { c c g g} { a a g2 } }
 \end{verbatim}
-        
-You can stack Music-elements by enclosing a sequence Music-elements of
-notes with < and >. Example:
+\item You can stack music by enclosing a sequence of music elements
+  with \verb+<+ and \verb+>+. This is called a Chord.  The duration of a Chord is
+  the union of the durations of its elements Example:
 \begin{verbatim}
-<a cis e'>      % a-major chord
+<a4 {cis8 cis8} e'4>      % a-major chord
 \end{verbatim}
-You can also put vertical music inside horizontal music:
+\item 
+  You can form music by transposing music:
 \begin{verbatim}
-{ c <c e> <c e g> <c e g c'> }  % 4 increasing chords
+\transpose  
+                d       % from c to the d that's one octave down
+                { e4 f4 }       % the horizontal music
 \end{verbatim}
-And vice versa
+\end{itemize}
+
+Of course you can also combine these three mechanisms.
 \begin{verbatim}
-< \multi 2;
-          {c c g g a a g2}              
-  {r2  r2  c c g g a a g2} >    % a canon
+{ c <c e> <c e g> <c e g \transpose d' dis > }  % 4 increasing chords
 \end{verbatim}
 
-The duration of a chord equals the union of the durations of each of
-its elements.  The \verb+\multi 2+ is a construct which is explained
-below.
+The basic building block in Mudela is called Request. Examples of
+Requests are: Timing (such as Meter), Rhythmic, Melodic, Note (which is a combination of
+Rhythmic and Melodic), Musicscript (put an accent over a note or
+rest), etc.  For the actual up to date listing, you should consult the
+LilyPond source code: the Request types form a big class hierarchy.
 
-You can also create a Music-element by transposing a Music-element:
+Normally you don't enter Requests directly, since that would be
+tedious.  Mudela has standard abbreviations for the most common
+combination of Requests. If you enter \verb+c4+, this is an
+abbreviation for:
 \begin{verbatim}
-\transpose  
-                d       % from c to the d that's one octave down
-                { e4 f4 }       % the horizontal music
-        
+Request_chord{
+  Note_req{
+    notename: 0 acc: 0 oct: -1
+    duration { 4}
+  }
+  Stem_req{
+    duration { 4}
+  }  
+}
 \end{verbatim}
 
+The \verb+Request_chord+ is a special kind of chord which only allows
+Requests as its elements.  The examples of the previous section were
+processed with \verb+{+ and \verb+}+ enclosing the input.
+
+
 \subsection{Voicegroups}
 
 If more than one "voice" is in a staff, then you have the option of
@@ -438,6 +460,8 @@ makes LilyPond try to form chords of all those lines. Putting
 different musical lines in to different voicegroups effectively makes
 LilyPond try to set those lines as independently as possible. 
 
+[adsolete. Has to be fixed in lily]
+
 You can set the voicegroup of a voice with the command \verb+\group+, e.g.,
 \begin{verbatim}        
         oboeI = \melodic { 
@@ -460,6 +484,7 @@ You can set the voicegroup of a voice with the command \verb+\group+, e.g.,
                 \melodic { oboeII}
 }
 \end{verbatim}
+
 In this example, the two oboe voices share one staff and are initially
 in the voicegroup called "oboes". They will share beams, dynamics etc.
 After two quavers, oboeI "pushes" its group: a new voicegroup is
@@ -516,39 +541,19 @@ same syntax as grouping:
 \partial 16*3 4;
 \end{verbatim}
 
-Make the piece start with a partial measure [transl?]  lasting 1 3/4
-quaver.
+Make the piece start with a partial measure [english translation?]
+lasting 1 3/4 quaver.
 
 These commands are also "voice elements", and constitute simple mudela
 (consisting of stuff with duration 0).
 
-\section{STRUCTURE}
-
-In concrete, a piece of Mudela has the following structure:
-\begin{verbatim}
-% declare pieces of music:
-        melody = \music{ <simple mudela> }
-        accompany = \music{ <simple mudela> }
-
-        % instantiate (=create tex, midi output) the score:
-        \score{ 
-                \melodic <
-                        \multi 3;
-                        \melody 
-                          \accompany 
-                >
-                \midi{ <midi definitions> }
-                \paper{ <paper and layout definitions> }
-}
-\end{verbatim}
-
 \subsection{Examples}
 
 Examples are included with the GNU LilyPond distribution. For the sake of
 maintenance no long examples are included in this document.
 
 
-\section{HISTORY}
+\section{History}
 
 This language has a number of roots. First and foremost, GNU LilyPond's
 predecessor mpp was the inspiration of simple Mudela.  Secondly, the
index 7d6f3c0b4b056cb337f8b6021e1fd730c5a9e229..9da5f26af94695c6daab864db525f9ef77568cba 100644 (file)
@@ -14,9 +14,9 @@ packages. Feel free to add info (and mail it to me).
 An alpha version notation editor for X in Scheme. Source available on
 request.
 
-=item Rosegarden, http://www.math.bath.ac.uk/~masjpf/rose.html
+=item Rosegarden, http://www.bath.ac.uk/~masjpf/rose.html
 
-A Notation editor/Sequencer for X (win95 port underway). Outputs musictex.
+A Notation editor/Sequencer for X (windows95 port underway). Outputs musictex.
 
 =item Common Notation,
 http://www-ccrma.stanford.edu/CCRMA/Software/cmn/cmn.html
@@ -91,7 +91,7 @@ Described in Computer vol 29(6). Shareware
 
 Notation editor for W95 and Mac
 
-=item Sibelius, http://www.acorn.co.uk/developers/sibelius
+=item Sibelius, http://www.acorn.co.uk/developers/sibelius/Home
 
 Notation/engraving on Acorn machines. 
 
index d4ff1b179100085f71cffdbbf204ccd7f455e12a..c4b84339f127f8a9ad92a07ea5ff8c303e61f0c6 100644 (file)
@@ -41,27 +41,27 @@ R\bR\bR\bRU\bU\bU\bUN\bN\bN\bNN\bN\bN\bNI\bI\bI\bIN\bN\bN\bNG\bG\bG\bG
             MusixTeX T.73). Beware, the clef symbol seems to have
             changed its position in some versions, (notably
             Egler's, a.k.a. OpusTeX). The MusixTeX fonts are
-            included in MusixTeX T.73, which can be had from any
-            CTAN site, eg at
+            included in MusixTeX (T73 or better), which can be
+            had from any CTAN site, e.g. at
 
-                    ftp://ftp.shsu.edu/tex-archive/macros/musixtex/taupin
-                    ftp://ftp.tex.ac.uk/tex-archive/macros/musixtex/taupin
-                    ftp://ftp.dante.de/tex-archive/macros/musixtex/taupin
+       ftp://ftp.shsu.edu/tex-archive/macros/musixtex/taupin
 
-            You only need the contents of the _\bm_\bf_\b/ subdirectory of
-            the package.
+       ftp://ftp.tex.ac.uk/tex-archive/macros/musixtex/taupin
+
+       ftp://ftp.dante.de/tex-archive/macros/musixtex/taupin
+
+                You only need the contents of the _\bm_\bf_\b/
+                subdirectory of the package. The primary site of
+                the Taupin version is ftp://hprib.lps.u-
+                psud.fr/pub/music_zips/musixtex.zip
 
 R\bR\bR\bRE\bE\bE\bEC\bC\bC\bCO\bO\bO\bOM\bM\bM\bMM\bM\bM\bME\bE\bE\bEN\bN\bN\bND\bD\bD\bDE\bE\bE\bED\bD\bD\bD
        Although not strictly necessary, these are recommended to
        have.
 
-       +\bo         Perl.  Most scripts are written in Perl. The
-                 documentation was created with the perl's Plain
-                 Old Documentation.
-
 
 
-28/Jul/97                LilyPond 0.0.76                        1
+29/Jul/97                LilyPond 0.0.77                        1
 
 
 
@@ -70,6 +70,10 @@ R\bR\bR\bRE\bE\bE\bEC\bC\bC\bCO\bO\bO\bOM\bM\bM\bMM\bM\bM\bME\bE\bE\bEN\bN\bN\bND\bD\bD\bDE\bE\bE\bED\bD\bD\bD
 INSTALL(1)            LilyPond documentation           INSTALL(1)
 
 
+       +\bo         Perl.  Most scripts are written in Perl. The
+                 documentation was created with the perl's Plain
+                 Old Documentation.
+
        +\bo         (GNU) find
 
        +\bo         A fast computer (a full page of music typically
@@ -121,13 +125,9 @@ C\bC\bC\bCO\bO\bO\bON\bN\bN\bNF\bF\bF\bFI\bI\bI\bIG\bG\bG\bGU\bU\bU\bUR\bR\bR\bRI\bI\bI\bIN\bN\bN\bNG\bG\bG\bG a\b
 
                configure --prefix=/usr/local --enable-tex-prefix=/usr/lib/texmf
 
-       Since GNU LilyPond currently is beta, you are advised to
-       also use
-
-
 
 
-28/Jul/97                LilyPond 0.0.76                        2
+29/Jul/97                LilyPond 0.0.77                        2
 
 
 
@@ -136,6 +136,9 @@ C\bC\bC\bCO\bO\bO\bON\bN\bN\bNF\bF\bF\bFI\bI\bI\bIG\bG\bG\bGU\bU\bU\bUR\bR\bR\bRI\bI\bI\bIN\bN\bN\bNG\bG\bG\bG a\b
 INSTALL(1)            LilyPond documentation           INSTALL(1)
 
 
+       Since GNU LilyPond currently is beta, you are advised to
+       also use
+
                --enable-debugging
                --enable-checking
 
@@ -187,13 +190,10 @@ I\bI\bI\bIN\bN\bN\bNS\bS\bS\bST\bT\bT\bTA\bA\bA\bAL\bL\bL\bLL\bL\bL\bLI\bI\bI\bIN\bN\bN\bNG\bG\bG\bG
 
        Install the musixtex fonts in a directory which TeX and MF
        knows (if you are root, look for a directory which
-       contains the directories with AMS and CM source (*.mf)
-       files. Create a subdir lilypond or musixtex and copy the
-       fonts into that). Do not forget to rehash TeX (if
 
 
 
-28/Jul/97                LilyPond 0.0.76                        3
+29/Jul/97                LilyPond 0.0.77                        3
 
 
 
@@ -202,6 +202,9 @@ I\bI\bI\bIN\bN\bN\bNS\bS\bS\bST\bT\bT\bTA\bA\bA\bAL\bL\bL\bLL\bL\bL\bLI\bI\bI\bIN\bN\bN\bNG\bG\bG\bG
 INSTALL(1)            LilyPond documentation           INSTALL(1)
 
 
+       contains the directories with AMS and CM source (*.mf)
+       files. Create a subdir lilypond or musixtex and copy the
+       fonts into that). Do not forget to rehash TeX (if
        applicable)
 
        Example: my fonts are in
@@ -210,8 +213,6 @@ INSTALL(1)            LilyPond documentation           INSTALL(1)
        _\b/_\bu_\bs_\br_\b/_\bl_\bi_\bb_\b/_\bt_\be_\bx_\bm_\bf_\b/_\bt_\be_\bx_\bm_\bf_\b/_\bf_\bo_\bn_\bt_\bs_\b/_\bs_\bo_\bu_\br_\bc_\be_\b/_\bp_\bu_\bb_\bl_\bi_\bc_\b/. After I copied
        the files, I ran "texhash"
 
-       ftp://hprib.lps.u-psud.fr/pub/music_zips/musixtex.zip
-
 C\bC\bC\bCA\bA\bA\bAV\bV\bV\bVE\bE\bE\bEA\bA\bA\bAT\bT\bT\bTS\bS\bS\bS
        +\bo         The -O2 option to gcc triggers a gcc bug on DEC
                  Alpha in dstream.cc. You should turn off this
@@ -255,11 +256,10 @@ R\bR\bR\bRE\bE\bE\bED\bD\bD\bDH\bH\bH\bHA\bA\bA\bAT\bT\bT\bT L\bL\bL\bLI\bI\bI\bIN\bN\bN\bNU\bU\bU\bUX\bX\bX\bX
        file is in _\bm_\ba_\bk_\be_\b/_\bo_\bu_\bt_\b/_\bl_\bi_\bl_\by_\bp_\bo_\bn_\bd_\b._\bs_\bp_\be_\bc. You should be able to
        create an rpm as a normal user. Be sure you have a
        ~/.rpmrc, and edit the RPM-dir in _\bV_\ba_\br_\bi_\ba_\bb_\bl_\be_\bs_\b._\bm_\ba_\bk_\be. (If you
-       create the RPM as a normal user the permissions will not
 
 
 
-28/Jul/97                LilyPond 0.0.76                        4
+29/Jul/97                LilyPond 0.0.77                        4
 
 
 
@@ -268,6 +268,7 @@ R\bR\bR\bRE\bE\bE\bED\bD\bD\bDH\bH\bH\bHA\bA\bA\bAT\bT\bT\bT L\bL\bL\bLI\bI\bI\bIN\bN\bN\bNU\bU\bU\bUX\bX\bX\bX
 INSTALL(1)            LilyPond documentation           INSTALL(1)
 
 
+       create the RPM as a normal user the permissions will not
        be set correctly, unfortunately)
 
 W\bW\bW\bWI\bI\bI\bIN\bN\bN\bND\bD\bD\bDO\bO\bO\bOZ\bZ\bZ\bZE\bE\bE\bE
@@ -324,7 +325,6 @@ A\bA\bA\bAU\bU\bU\bUT\bT\bT\bTH\bH\bH\bHO\bO\bO\bOR\bR\bR\bRS\bS\bS\bS
 
 
 
-
-28/Jul/97                LilyPond 0.0.76                        5
+29/Jul/97                LilyPond 0.0.77                        5
 
 
diff --git a/NEWS b/NEWS
index 2cf9b4d45e39b8629d3f58415e7c9609f55e5ee7..e6d1201daee5e2a2bd1876ca5f0e67be63bd1c50 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,25 @@
+pl 77.jcn1
+       - init/*.ly in dist
+       - bf: string-convert.cc: return local buf
+       - bf: debug.cc: <new.h>
+       - bf: template4.cc: #includes
+
+pl 77  
+       - some fixes for internal compiler errors 
+derive from Pointer_list with default dtor gives error with -O2
+       - .ini -> .ly
+       - lyrics fix 
+       - Performer beautification: got rid of set_track(), midi_output()
+       - pseudo RTTI for midi-items
+       - bf: Performer*::print() 
+       - links.pod
+       - Voice_element -> Request_chord
+       - fixed flex problems: stdin input works again 
+       - Documentation/Rules.make, make-website via make
+       - spacing: now add basicspace
+
+*******
+july 28
 pl 76
        - mudela version bumped to 0.1
        - mudela-book
diff --git a/TODO b/TODO
index 5ac024269a3ef83747e4e0c68c7e10302678c52b..d0c00112f6eceaf7b302aa4a293b009bfadf4426 100644 (file)
--- a/TODO
+++ b/TODO
@@ -12,6 +12,8 @@ grep for TODO and ugh/ugr
 
        * dots into separate item.
 
+       * return status
+
        * lyrics in chords still fuck up.
 
        * add to MIDI output:
@@ -22,6 +24,8 @@ grep for TODO and ugh/ugr
 
        * rewire acknowledge_element() logic with a process_acknowledged()
 
+       * progress when creating MIDI elts.
+
        * pushgroup/popgroup
 
        * whole head on ledger line
index 3a389296847e35ab5a4cb8ef8e4148c5835808b2..8f00d4f9cc2630006458f38fa0c4879b4b9c71e0 100755 (executable)
@@ -6,7 +6,10 @@ use Getopt::Long;
 my $lily_version;
 my $footstr;
 my $mw_id = "<!make_website!>";
-my $id_str = "make-website 0.2";
+my $id_str = "make-website 0.3";
+
+my $TAR="tar";
+my $MAKE="make";
 
 sub get_version
 {
@@ -72,7 +75,7 @@ sub my_system
 
 
 local $base="lilypond/";
-local @examples=("multi", "wohltemperirt" ,"standchen", "toccata-fuga-E", 
+local @examples=("twinkle", "multi", "wohltemperirt" ,"standchen", "toccata-fuga-E", 
                 "scsii-menuetto", "collisions", "cadenza", "scales");
 
 # rhythm, scales, 
@@ -81,60 +84,18 @@ local @examples=("multi", "wohltemperirt" ,"standchen", "toccata-fuga-E",
 sub gen_html
 {
     print "generating HTML\n";
-    my_system "make -kC .. html";
-}
-
-sub ps_to_gif 
-{
-    my ($a)=@_;
-    if (! -f "$a.ps" ) {
-       my_system("gunzip -c $a.ps.gz > $a.ps");
-    }
-    my_system "gs -q -sDEVICE=ppmraw -sOutputFile=- -r200 -dNOPAUSE  $a.ps -c quit |pnmscale 0.5| ppmtogif > $a.gif";
-}
-
-
-sub ps_to_jpeg
-{ 
-    my ($a)=@_;
-    my $in = "$a.ps";
-    
-    my_system "gs -q -sDEVICE=ppmraw -sOutputFile=- -r200 -dNOPAUSE  $in -c quit |pnmscale 0.5| cjpeg -grayscale > $a.jpeg";
+    my_system "$MAKE -kC .. html";
 }
 
 sub gen_examples
 {
     print "generating examples: \n";
+    my @todo=();
     foreach $a (@examples) {
-       $texfile="lelie";
-       $tex = "tex $texfile";
-       if ($a eq "standchen" || $a eq "scsii-menuetto" ) {
-           $tex = "latex $a";
-           $texfile = "$a";
-       }
-       
-       if ( ! -f "$a.ly.txt" ) {
-           my_system "ln $depth/input/$a.ly ./$a.ly.txt";
-       }
-       if (! -f "$a.dvi" ) {
-           my_system "lilypond $a;",
-           "$tex", "-mv $texfile.dvi $a.dvi";
-       }  
-       if ( ! -f "$a.ps.gz" && ! -f "$a.ps" ) {
-           my_system "dvips -o $a.ps $a.dvi";
-       }
-
-       my_system "mv lelie.midi $a.midi; " if ( -f "lelie.midi" );
-
-       # generate the pixmap at twice the size, then rescale (for antialiasing)
-       if ( ! -f "$a.gif" ) {
-           ps_to_gif($a);
-       }
-       if ( ! -f "$a.ps.gz" ) {
-           my_system "gzip -f $a.ps";
-       }   
+       push @todo, "out/$a.ps.gz", "out/$a.gif", "out/$a.ly.txt";
     }
+    
+    my_system ("$MAKE -C .. " . join(' ', @todo));
 }
 
 my @texstuff = ("mudela-man", "mudela-course");
@@ -145,13 +106,15 @@ sub gen_manuals
     open HTMLLIST, ">tex_manuals.html";
     print HTMLLIST "<html><body><title>LilyPond manuals in TeX</title>\n" .
        "<ul>\n";
+    my @todo=();
     foreach $a (@texstuff) {
-       my_system( "make -C $depth/Documentation out/$a.dvi");
-       my_system( "dvips $a", "gzip -9f $a.ps");
+       push @todo , "out/$a.ps.gz";
        print HTMLLIST "<li><a href=$a.ps.gz>$a.ps.gz</a>";
     }
     print HTMLLIST "</ul>";
     close HTMLLIST;
+
+    my_system( "$MAKE -C .. " .  join(' ', @todo));
 }
 
 sub gen_list
@@ -233,12 +196,25 @@ sub edit_html
     }
 }
 
+sub copy_txt_file
+{
+    my ($f) = @_;
+    my $d = $f;
+    $d =~ s!^.*\/!!;
+    if (! $f =~ /.txt$/) {
+       $d = "$f.txt";
+    }
+    print $f, $d;
+}
+    
 sub copy_files
 {  
     print "copying files\n";
     print `ln -s $depth/out ./docxx` if ( ! -x "docxx" ) ;
     my_system "cp $depth/TODO ./TODO.txt",
+    "cp $depth/ANNOUNCE ./ANNOUNCE.txt",
     "cp $depth/NEWS ./NEWS.txt",
+    "cp $depth/DEDICATION ./DEDICATION.txt",
     "cp ../lelie*gif .";
 }
 
@@ -258,7 +234,7 @@ sub set_images
 
 sub docxx_update
 {
-    my_system "make -C $depth doc++";
+    my_system "$MAKE -C $depth doc++";
 }
 
 sub do_tar
@@ -266,8 +242,8 @@ sub do_tar
      print "tarring.\n";
      $files = join (' ', < *.html *.$image *.ps.gz *.txt *.midi docxx/*>);
      my_system
-        "-tar vhcf website.tar $files;",
-        "gzip -f9 website.tar;";
+        "-$TAR zvhcf website.tar.gz $files;",
+#       "gzip -f9 website.tar;";
 }
 
 sub identify
index a6d093ed4165d226761615c9b874702525d1a390..6214501523e8d6967e71259a2b7b307ae549e09a 100644 (file)
@@ -1,6 +1,6 @@
 MAJOR_VERSION = 1
 MINOR_VERSION = 1
-PATCH_LEVEL = 22
+PATCH_LEVEL = 23
 # use to send patches, always empty for released version:
 MY_PATCH_LEVEL = # include separator: "-1" or ".a"
 #
index e7aaaa390edd97c0b3c365ad0f370a2833b2bde6..3b0cf5e684512b9a2eed3a0efb73311292023dd0 100644 (file)
@@ -1,5 +1,8 @@
 version 1.1:
 
+pl 23:
+       - virtual-methods : static_is_type_b
+       - Choleski checks no if PARANOID
 pl 22:
        - ACursor and PACursor to give array a List like interface.
 
index b810fabd7ad6846b17f5f05276e3d63b4315f94e..169a0525e6957791433e404bf8d56c494cb2fc3a 100644 (file)
@@ -1,3 +1,7 @@
+       * write a String_hash template
+
+       * write a Pointer_hash template
+
        * fix/junk ambiguous String constructor overloads, e.g.:
          String( int ) and String( char )
 
@@ -7,7 +11,7 @@
 
        * disable this auto conv: const pointer -> bool -> string
 
-       * PointerVec ?
+       * Pointer_array
 
        * PCursor -> Pointer_cursor / PointerCursor ?
 
index d10372fdfdc0339d089cdf935495a59d4dda42e5..202e184440cb62f68153b552a8c1038337a41516 100644 (file)
@@ -1,3 +1,11 @@
+/*
+  choleski.cc -- implement Choleski_decomposition
+
+  source file of the Flower Library
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
 #include "choleski.hh"
 const Real EPS = 1e-7;         // so sue me. Hard coded
 
@@ -31,14 +39,18 @@ Choleski_decomposition::solve(Vector rhs)const
 
 /*
   Standard matrix algorithm.
+  Should add support for banded matrices
   */
 
 Choleski_decomposition::Choleski_decomposition(Matrix P)
     : L(P.dim()), D(P.dim())
 {
     int n = P.dim();
-    assert((P-P.transposed()).norm()/P.norm() < EPS);
 
+#ifdef PARANOID
+    assert((P-P.transposed()).norm()/P.norm() < EPS);
+#endif
+    
     L.unit();
     for (int k= 0; k < n; k++) {
        for (int j = 0; j < k; j++){
@@ -55,7 +67,7 @@ Choleski_decomposition::Choleski_decomposition(Matrix P)
        D(k) = d;
     }
 
-#ifndef NDEBUG
+#ifdef PARANOID
     assert((original()-P).norm() / P.norm() < EPS);
 #endif
 }
@@ -81,7 +93,7 @@ Choleski_decomposition::inverse() const
            invm(i,j) = inv(j);
     }
     
-#ifndef NDEBUG
+#ifdef PARANOID
     Matrix I1(n), I2(original());
     I1.unit();
     assert((I1-I2*invm).norm()/I2.norm() < EPS);
index 0a7bf4efbe508967cc771153e8057243855a9b49..1b5c05a392c6d19721128d9f369b583e4d091c21 100644 (file)
@@ -211,7 +211,5 @@ Full_storage::try_right_multiply(Matrix_storage * dest, Matrix_storage const * r
     
     
 }
-IMPLEMENT_STATIC_NAME(Full_storage);
-IMPLEMENT_STATIC_NAME(Matrix_storage);
 IMPLEMENT_IS_TYPE_B(Matrix_storage);
 IMPLEMENT_IS_TYPE_B1(Full_storage,Matrix_storage);
index ea81cbbc992fc8eb0ff9496e248de8e4d4a0825c..b8933baa0e279d76e0ad4b8573542dad82a18e13 100644 (file)
@@ -16,7 +16,8 @@
  */
 #define NAME_MEMBERS() \
 static char const *static_name();\
-virtual bool is_type_b(const char *)const; \
+static bool static_is_type_b(const char*s);\
+virtual bool is_type_b(const char *s)const { return static_is_type_b(s); } \
 virtual char const *name() const{ return static_name(); } \
 int a_stupid_nonexistent_function_to_allow_the_semicolon_come_out()
 
@@ -28,20 +29,23 @@ int a_stupid_nonexistent_function_to_allow_the_semicolon_come_out()
   int  yet_another_stupid_function_to_allow_semicolon()
 
 #define IMPLEMENT_IS_TYPE_B(D)                                                            \
-  bool D::is_type_b(const char *s)     const                                      \
+    IMPLEMENT_STATIC_NAME(D)\
+  bool D::static_is_type_b(const char *s)                                         \
 {                                                                                 \
     return s == static_name();                                                    \
 }                                                                                 
                                                                                   
 #define IMPLEMENT_IS_TYPE_B1(D,B)                                                 \
-  bool D::is_type_b(const char *s)const                                                   \
+       IMPLEMENT_STATIC_NAME(D)\
+  bool D::static_is_type_b(const char *s)                                                 \
 {                                                                                 \
-    return s == static_name() || B::is_type_b(s);                                 \
+    return s == static_name() || B::static_is_type_b(s);                                  \
 }                                                                                 
 #define IMPLEMENT_IS_TYPE_B2(D, BA, BB)                                                   \
-  bool D::is_type_b(const char *s)     const                                      \
+       IMPLEMENT_STATIC_NAME(D)\
+  bool D::static_is_type_b(const char *s)                                                 \
 {                                                                                 \
-    return s == static_name() || BA::is_type_b(s) || BB::is_type_b(s); \
+    return s == static_name() || BA::static_is_type_b(s) || BB::static_is_type_b(s); \
 }
 
 #endif 
index feb793369f7b95e625ac9723348b2eed2f03a8e7..f791e1f6c2608da6a97ce8dfd8690fed677f859b 100644 (file)
@@ -204,7 +204,7 @@ String_convert::int_str(int i, char const* fmt)
 String
 String_convert::double_str(double f, char const* fmt)
 {
-    char buf[STRING_BUFFER_LEN]; 
+    static char buf[STRING_BUFFER_LEN]; 
 
     snprintf(buf, STRING_BUFFER_LEN, fmt ? fmt : "%f", f);
     return buf;
index ddf1ae7e0293a37b61c3125c5fe64b99d4441c03..32318e47c36e0a19ac71ede534dfe9923246be58 100644 (file)
@@ -15,13 +15,13 @@ include ./$(depth)/make/Include.make
 
 # list of distribution files:
 # 
-INIFILES = $(wildcard *.ini)
-DISTFILES = Makefile $(INIFILES)
+INITFILES = $(wildcard *.ly)
+DISTFILES = Makefile $(INITFILES)
 #
 
 localinstall:
        $(INSTALL) -d $(datadir)/lilypond/init
-       $(INSTALL) -m 644 $(INIFILES) $(datadir)/lilypond/init
+       $(INSTALL) -m 644 $(INITFILES) $(datadir)/lilypond/init
 
 localuninstall:
        for i in $(INIFILES) ; do rm -f $(datadir)/lilypond/init/$$i; done
diff --git a/init/bare.ini b/init/bare.ini
deleted file mode 100644 (file)
index be63e67..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-
-% enough for the parsing step
-
-include "init/dutch.ini"
-include "init/table_sixteen.ini"
diff --git a/init/bare.ly b/init/bare.ly
new file mode 100644 (file)
index 0000000..67963e1
--- /dev/null
@@ -0,0 +1,5 @@
+
+% enough for the parsing step
+
+include "init/dutch.ly"
+include "init/table_sixteen.ly"
diff --git a/init/dutch.ini b/init/dutch.ini
deleted file mode 100644 (file)
index b3d80dc..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-%{
- common dutch names for notes. "es" means flat, "is" means sharp
-
-
-
-
- Please note that, while these names are used to enter *notes*, they
- actually are *melodic*s, i.e. they represent a pitch solely. Notes
- have a rhythmic part too. This is the reason that we don't write 'note { .. }'
-
-%}
-
-\notenames {
-       ceses   = \melodic_request { -1 0 -2 }
-       ces     = \melodic_request { -1 0 -1 }
-       c       = \melodic_request { -1 0 0 }
-       cis     = \melodic_request { -1 0 1 }
-       cisis   = \melodic_request { -1 0 2 }
-       deses   = \melodic_request { -1 1 -2 }
-       des     = \melodic_request { -1 1 -1 }
-       d       = \melodic_request { -1 1 0 }
-       dis     = \melodic_request { -1 1 1 }
-       disis   = \melodic_request { -1 1 2 }
-       eeses   = \melodic_request { -1 2 -2 }
-       eses    = \melodic_request { -1 2 -2 }
-       ees     = \melodic_request { -1 2 -1 }
-       es      = \melodic_request { -1 2 -1 }
-       e       = \melodic_request { -1 2 0 }
-       eis     = \melodic_request { -1 2 1 }
-       eisis   = \melodic_request { -1 2 2 }
-       feses   = \melodic_request { -1 3 -2 }
-       fes     = \melodic_request { -1 3 -1 }
-       "f"     = \melodic_request { -1 3 0 }
-       fis     = \melodic_request { -1 3 1 }
-       fisis   = \melodic_request { -1 3 2 }
-       geses   = \melodic_request { -1 4 -2 }
-       ges     = \melodic_request { -1 4 -1 }
-       g       = \melodic_request { -1 4 0 }
-       gis     = \melodic_request { -1 4 1 }
-       gisis   = \melodic_request { -1 4 2 }
-       aeses   = \melodic_request { -1 5 -2 }
-       ases    = \melodic_request { -1 5 -2 }
-       aes     = \melodic_request { -1 5 -1 }
-       as      = \melodic_request { -1 5 -1 }
-       a       = \melodic_request { -1 5 0 }
-       ais     = \melodic_request { -1 5 1 }
-       aisis   = \melodic_request { -1 5 2 }
-       beses   = \melodic_request { -1 6 -2 }
-       bes     = \melodic_request { -1 6 -1 }
-       b       = \melodic_request { -1 6 0 }
-       bis     = \melodic_request { -1 6 1 }
-       bisis   = \melodic_request { -1 6 2 }
-
-
-       %
-       % upper case: 1 octave lower.
-       %
-
-
-       Ceses   = \melodic_request { -2 0 -2 }
-       Ces     = \melodic_request { -2 0 -1 }
-       C       = \melodic_request { -2 0 0 }
-       Cis     = \melodic_request { -2 0 1 }
-       Cisis   = \melodic_request { -2 0 2 }
-       Deses   = \melodic_request { -2 1 -2 }
-       Des     = \melodic_request { -2 1 -1 }
-       D       = \melodic_request { -2 1 0 }
-       Dis     = \melodic_request { -2 1 1 }
-       Disis   = \melodic_request { -2 1 2 }
-       Eses    = \melodic_request { -2 2 -2 }
-       Es      = \melodic_request { -2 2 -1 }
-       E       = \melodic_request { -2 2 0 }
-       Eis     = \melodic_request { -2 2 1 }
-       Eisis   = \melodic_request { -2 2 2 }
-       Feses   = \melodic_request { -2 3 -2 }
-       Fes     = \melodic_request { -2 3 -1 }
-       F       = \melodic_request { -2 3 0 }
-       Fis     = \melodic_request { -2 3 1 }
-       Fisis   = \melodic_request { -2 3 2 }
-       Geses   = \melodic_request { -2 4 -2 }
-       Ges     = \melodic_request { -2 4 -1 }
-       G       = \melodic_request { -2 4 0 }
-       Gis     = \melodic_request { -2 4 1 }
-       Gisis   = \melodic_request { -2 4 2 }
-       Aeses   = \melodic_request { -2 5 -2 }
-       Ases    = \melodic_request { -2 5 -2 }
-       Aes     = \melodic_request { -2 5 -1 }
-       As      = \melodic_request { -2 5 -1 }
-       A       = \melodic_request { -2 5 0 }
-       Ais     = \melodic_request { -2 5 1 }
-       Aisis   = \melodic_request { -2 5 2 }
-       Beses   = \melodic_request { -2 6 -2 }
-       Bes     = \melodic_request { -2 6 -1 }
-       B       = \melodic_request { -2 6 0 }
-       Bis     = \melodic_request { -2 6 1 }
-       Bisis   = \melodic_request { -2 6 2 }
-
-
-}
diff --git a/init/dutch.ly b/init/dutch.ly
new file mode 100644 (file)
index 0000000..b3d80dc
--- /dev/null
@@ -0,0 +1,99 @@
+%{
+ common dutch names for notes. "es" means flat, "is" means sharp
+
+
+
+
+ Please note that, while these names are used to enter *notes*, they
+ actually are *melodic*s, i.e. they represent a pitch solely. Notes
+ have a rhythmic part too. This is the reason that we don't write 'note { .. }'
+
+%}
+
+\notenames {
+       ceses   = \melodic_request { -1 0 -2 }
+       ces     = \melodic_request { -1 0 -1 }
+       c       = \melodic_request { -1 0 0 }
+       cis     = \melodic_request { -1 0 1 }
+       cisis   = \melodic_request { -1 0 2 }
+       deses   = \melodic_request { -1 1 -2 }
+       des     = \melodic_request { -1 1 -1 }
+       d       = \melodic_request { -1 1 0 }
+       dis     = \melodic_request { -1 1 1 }
+       disis   = \melodic_request { -1 1 2 }
+       eeses   = \melodic_request { -1 2 -2 }
+       eses    = \melodic_request { -1 2 -2 }
+       ees     = \melodic_request { -1 2 -1 }
+       es      = \melodic_request { -1 2 -1 }
+       e       = \melodic_request { -1 2 0 }
+       eis     = \melodic_request { -1 2 1 }
+       eisis   = \melodic_request { -1 2 2 }
+       feses   = \melodic_request { -1 3 -2 }
+       fes     = \melodic_request { -1 3 -1 }
+       "f"     = \melodic_request { -1 3 0 }
+       fis     = \melodic_request { -1 3 1 }
+       fisis   = \melodic_request { -1 3 2 }
+       geses   = \melodic_request { -1 4 -2 }
+       ges     = \melodic_request { -1 4 -1 }
+       g       = \melodic_request { -1 4 0 }
+       gis     = \melodic_request { -1 4 1 }
+       gisis   = \melodic_request { -1 4 2 }
+       aeses   = \melodic_request { -1 5 -2 }
+       ases    = \melodic_request { -1 5 -2 }
+       aes     = \melodic_request { -1 5 -1 }
+       as      = \melodic_request { -1 5 -1 }
+       a       = \melodic_request { -1 5 0 }
+       ais     = \melodic_request { -1 5 1 }
+       aisis   = \melodic_request { -1 5 2 }
+       beses   = \melodic_request { -1 6 -2 }
+       bes     = \melodic_request { -1 6 -1 }
+       b       = \melodic_request { -1 6 0 }
+       bis     = \melodic_request { -1 6 1 }
+       bisis   = \melodic_request { -1 6 2 }
+
+
+       %
+       % upper case: 1 octave lower.
+       %
+
+
+       Ceses   = \melodic_request { -2 0 -2 }
+       Ces     = \melodic_request { -2 0 -1 }
+       C       = \melodic_request { -2 0 0 }
+       Cis     = \melodic_request { -2 0 1 }
+       Cisis   = \melodic_request { -2 0 2 }
+       Deses   = \melodic_request { -2 1 -2 }
+       Des     = \melodic_request { -2 1 -1 }
+       D       = \melodic_request { -2 1 0 }
+       Dis     = \melodic_request { -2 1 1 }
+       Disis   = \melodic_request { -2 1 2 }
+       Eses    = \melodic_request { -2 2 -2 }
+       Es      = \melodic_request { -2 2 -1 }
+       E       = \melodic_request { -2 2 0 }
+       Eis     = \melodic_request { -2 2 1 }
+       Eisis   = \melodic_request { -2 2 2 }
+       Feses   = \melodic_request { -2 3 -2 }
+       Fes     = \melodic_request { -2 3 -1 }
+       F       = \melodic_request { -2 3 0 }
+       Fis     = \melodic_request { -2 3 1 }
+       Fisis   = \melodic_request { -2 3 2 }
+       Geses   = \melodic_request { -2 4 -2 }
+       Ges     = \melodic_request { -2 4 -1 }
+       G       = \melodic_request { -2 4 0 }
+       Gis     = \melodic_request { -2 4 1 }
+       Gisis   = \melodic_request { -2 4 2 }
+       Aeses   = \melodic_request { -2 5 -2 }
+       Ases    = \melodic_request { -2 5 -2 }
+       Aes     = \melodic_request { -2 5 -1 }
+       As      = \melodic_request { -2 5 -1 }
+       A       = \melodic_request { -2 5 0 }
+       Ais     = \melodic_request { -2 5 1 }
+       Aisis   = \melodic_request { -2 5 2 }
+       Beses   = \melodic_request { -2 6 -2 }
+       Bes     = \melodic_request { -2 6 -1 }
+       B       = \melodic_request { -2 6 0 }
+       Bis     = \melodic_request { -2 6 1 }
+       Bisis   = \melodic_request { -2 6 2 }
+
+
+}
diff --git a/init/dynamic.ini b/init/dynamic.ini
deleted file mode 100644 (file)
index 4dcaf78..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-%
-% declare the standard dynamic identifiers.
-%
-
-ppp = \absdynamic {7 }
-pp = \absdynamic { 6 }
-p = \absdynamic { 5 }
-mp = \absdynamic { 4 }
-mf = \absdynamic { 3 }
-f = \absdynamic { 2 } % f is a notename too.
-ff = \absdynamic { 1 }
-fff = \absdynamic { 0 }
-
-cr = \spandynamic { 1 1 } 
-decr = \spandynamic { -1 1 }
-rc = \spandynamic { 1 2 } % stop a crescendo (worrks for decrescendo too)
-
diff --git a/init/dynamic.ly b/init/dynamic.ly
new file mode 100644 (file)
index 0000000..4dcaf78
--- /dev/null
@@ -0,0 +1,17 @@
+%
+% declare the standard dynamic identifiers.
+%
+
+ppp = \absdynamic {7 }
+pp = \absdynamic { 6 }
+p = \absdynamic { 5 }
+mp = \absdynamic { 4 }
+mf = \absdynamic { 3 }
+f = \absdynamic { 2 } % f is a notename too.
+ff = \absdynamic { 1 }
+fff = \absdynamic { 0 }
+
+cr = \spandynamic { 1 1 } 
+decr = \spandynamic { -1 1 }
+rc = \spandynamic { 1 2 } % stop a crescendo (worrks for decrescendo too)
+
diff --git a/init/english.ini b/init/english.ini
deleted file mode 100644 (file)
index d876d29..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-
-%
-% f = flat, s = sharp.
-%
-english_names = notenames {
-       "cff" 0 -2 "cf" 0 -1    "c" 0 0         "cs" 0 1 "css" 0 2
-       "dff" 1 -2 "df" 1 -1    "d" 1 0         "ds" 1 1 "dss" 1 2
-       "eff" 2 -2 "ef" 2 -1    "e" 2 0         "es" 2 1 "ess" 2 2
-       "fff" 3 -2 "ff" 3 -1    "f" 3 0         "fs" 3 1 "fss" 3 2
-       "gff" 4 -2 "gf" 4 -1    "g" 4 0         "gs" 4 1 "gss" 4 2
-       "aff" 5 -2 "af" 5 -1    "a" 5 0         "as" 5 1 "ass" 5 2
-       "bff" 6 -2 "bf" 6 -1    "b" 6 0         "bs" 6 1 "bss" 6 2
-}
diff --git a/init/english.ly b/init/english.ly
new file mode 100644 (file)
index 0000000..d876d29
--- /dev/null
@@ -0,0 +1,13 @@
+
+%
+% f = flat, s = sharp.
+%
+english_names = notenames {
+       "cff" 0 -2 "cf" 0 -1    "c" 0 0         "cs" 0 1 "css" 0 2
+       "dff" 1 -2 "df" 1 -1    "d" 1 0         "ds" 1 1 "dss" 1 2
+       "eff" 2 -2 "ef" 2 -1    "e" 2 0         "es" 2 1 "ess" 2 2
+       "fff" 3 -2 "ff" 3 -1    "f" 3 0         "fs" 3 1 "fss" 3 2
+       "gff" 4 -2 "gf" 4 -1    "g" 4 0         "gs" 4 1 "gss" 4 2
+       "aff" 5 -2 "af" 5 -1    "a" 5 0         "as" 5 1 "ass" 5 2
+       "bff" 6 -2 "bf" 6 -1    "b" 6 0         "bs" 6 1 "bss" 6 2
+}
diff --git a/init/engraver.ini b/init/engraver.ini
deleted file mode 100644 (file)
index 4d73ecf..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-%
-% setup for Request->Element conversion. Guru-only
-%
-
-staff_engraver = \requesttranslator {
-                 Engraver "Engraver_group_engraver"
-                 \alias "Staff";
-                 \consists "Line_group_engraver";
-                 \consists "Bar_engraver";
-                 \consists "Clef_engraver";
-                 \consists "Key_engraver";
-                 \consists "Meter_engraver";
-                 \consists "Local_key_engraver";
-                 \consists "Staff_sym_engraver";
-                 \consists "Collision_engraver";
-                 \consists "Rest_collision_engraver";
-                 \contains \requesttranslator {
-                         Engraver  "Voice_group_engravers"
-                         \alias "Voice_group";
-                         \consists "Dynamic_engraver";
-                         \consists "Stem_beam_engraver";
-                         \consists "Script_engraver";
-                         \consists "Note_column_engraver";
-                         \consists "Slur_engraver";
-                         \contains \requesttranslator {
-                                 Engraver "Engraver_group_engraver"
-                                 \alias "Voice";
-                                 \consists "Note_head_engraver" ;
-                                 \consists "Tie_engraver";
-                         }
-               }
-            }
-
-piano_staff_engraver = \requesttranslator {
-       Engraver "Engraver_group_engraver"
-       \alias "Piano";
-       \alias "Hoenoemjedat";
-       \consists "Span_bar_engraver";
-       \consists "Vertical_align_engraver";
-       \consists "Line_group_engraver";
-       \consists "Piano_bar_engraver";
-       \contains\requesttranslator { \staff_engraver }
-}
-
-staff_group_engraver = \requesttranslator {
-       Engraver "Engraver_group_engraver"
-       \alias "Staff_group";
-       \consists "Span_bar_engraver";
-       \consists "Vertical_align_engraver";
-       \consists "Line_group_engraver";
-       \contains\requesttranslator { \staff_engraver }
-}
-lyric_engraver = \requesttranslator {
-       Engraver "Engraver_group_engraver"
-       \alias "Lyric";
-
-       \contains\requesttranslator{
-               Engraver "Engraver_group_engraver"
-               \consists "Lyric_engraver";
-               \consists "Line_group_engraver";
-               \consists "Swallow_engraver";
-       }
-       \consists "Vertical_align_engraver";
-}
-
-orchestral_score_translator = \requesttranslator {
-       Engraver Score_engraver
-       \alias "Score";
-
-       \consists "Bar_align_engraver";
-       \consists "Clef_align_engraver";
-       \consists "Key_align_engraver";
-       \consists "Meter_align_engraver";
-       \consists "Score_horizontal_align_engraver";
-       \consists "Vertical_align_engraver";
-       \consists "Span_score_bar_engraver";
-
-       \contains \requesttranslator { \staff_group_engraver }
-       \contains \requesttranslator { \lyric_engraver }
-       \contains \requesttranslator { \piano_staff_engraver }
-
-       
-}
-
-
-
diff --git a/init/engraver.ly b/init/engraver.ly
new file mode 100644 (file)
index 0000000..4d73ecf
--- /dev/null
@@ -0,0 +1,86 @@
+%
+% setup for Request->Element conversion. Guru-only
+%
+
+staff_engraver = \requesttranslator {
+                 Engraver "Engraver_group_engraver"
+                 \alias "Staff";
+                 \consists "Line_group_engraver";
+                 \consists "Bar_engraver";
+                 \consists "Clef_engraver";
+                 \consists "Key_engraver";
+                 \consists "Meter_engraver";
+                 \consists "Local_key_engraver";
+                 \consists "Staff_sym_engraver";
+                 \consists "Collision_engraver";
+                 \consists "Rest_collision_engraver";
+                 \contains \requesttranslator {
+                         Engraver  "Voice_group_engravers"
+                         \alias "Voice_group";
+                         \consists "Dynamic_engraver";
+                         \consists "Stem_beam_engraver";
+                         \consists "Script_engraver";
+                         \consists "Note_column_engraver";
+                         \consists "Slur_engraver";
+                         \contains \requesttranslator {
+                                 Engraver "Engraver_group_engraver"
+                                 \alias "Voice";
+                                 \consists "Note_head_engraver" ;
+                                 \consists "Tie_engraver";
+                         }
+               }
+            }
+
+piano_staff_engraver = \requesttranslator {
+       Engraver "Engraver_group_engraver"
+       \alias "Piano";
+       \alias "Hoenoemjedat";
+       \consists "Span_bar_engraver";
+       \consists "Vertical_align_engraver";
+       \consists "Line_group_engraver";
+       \consists "Piano_bar_engraver";
+       \contains\requesttranslator { \staff_engraver }
+}
+
+staff_group_engraver = \requesttranslator {
+       Engraver "Engraver_group_engraver"
+       \alias "Staff_group";
+       \consists "Span_bar_engraver";
+       \consists "Vertical_align_engraver";
+       \consists "Line_group_engraver";
+       \contains\requesttranslator { \staff_engraver }
+}
+lyric_engraver = \requesttranslator {
+       Engraver "Engraver_group_engraver"
+       \alias "Lyric";
+
+       \contains\requesttranslator{
+               Engraver "Engraver_group_engraver"
+               \consists "Lyric_engraver";
+               \consists "Line_group_engraver";
+               \consists "Swallow_engraver";
+       }
+       \consists "Vertical_align_engraver";
+}
+
+orchestral_score_translator = \requesttranslator {
+       Engraver Score_engraver
+       \alias "Score";
+
+       \consists "Bar_align_engraver";
+       \consists "Clef_align_engraver";
+       \consists "Key_align_engraver";
+       \consists "Meter_align_engraver";
+       \consists "Score_horizontal_align_engraver";
+       \consists "Vertical_align_engraver";
+       \consists "Span_score_bar_engraver";
+
+       \contains \requesttranslator { \staff_group_engraver }
+       \contains \requesttranslator { \lyric_engraver }
+       \contains \requesttranslator { \piano_staff_engraver }
+
+       
+}
+
+
+
diff --git a/init/midi.ini b/init/midi.ini
deleted file mode 100644 (file)
index 29f4c2d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-
-default_midi = \midi {
-        \tempo 4:60;
-       \include "performer.ini"
-}
diff --git a/init/midi.ly b/init/midi.ly
new file mode 100644 (file)
index 0000000..f10856a
--- /dev/null
@@ -0,0 +1,5 @@
+
+default_midi = \midi {
+        \tempo 4:60;
+       \include "performer.ly"
+}
diff --git a/init/paper16.ini b/init/paper16.ini
deleted file mode 100644 (file)
index c99b858..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-
-\include "table16.ini"
-\include "engraver.ini"
-
-default_paper = \paper {
-       linewidth = 15.0 \cm;
-       rule_thickness = 0.4\pt;
-       bar_size = 16.0 \pt;
-       interline = 4.\pt;
-       notewidth = 5.0\pt;
-       wholewidth = 4.8\pt;
-       unitspace = 30.\pt;
-
-       %
-       interbeam = 2.667\pt;
-       geometric = 1.414;
-       \symboltables { \table_sixteen }
-       \requesttranslator { \orchestral_score_translator }
-}
diff --git a/init/paper16.ly b/init/paper16.ly
new file mode 100644 (file)
index 0000000..fd19f6e
--- /dev/null
@@ -0,0 +1,20 @@
+
+\include "table16.ly"
+\include "engraver.ly"
+
+default_paper = \paper {
+       linewidth = 15.0 \cm;
+       rule_thickness = 0.4\pt;
+       bar_size = 16.0 \pt;
+       interline = 4.\pt;
+       notewidth = 5.0\pt;
+       wholewidth = 4.8\pt;
+       unitspace = 30.\pt;
+       basicspace = 5.0\pt;
+
+       %
+       interbeam = 2.667\pt;
+       geometric = 1.414;
+       \symboltables { \table_sixteen }
+       \requesttranslator { \orchestral_score_translator }
+}
diff --git a/init/performer.ini b/init/performer.ini
deleted file mode 100644 (file)
index fa184d1..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-%
-% setup for Request->Element conversion. Guru-only
-%
-
-\requesttranslator {
-       Performer "Score_performer"
-       \alias "Score";
-%      \consists "Clef_performer";
-%      \consists "Key_performer";
-%      \consists "Meter_performer";
-%      \consists "Tempo_performer";
-
-       \contains\requesttranslator {
-               Performer "Staff_performer"
-               \alias "Midi";
-               \contains\requesttranslator{
-                       Performer "Voice_group_performer"
-                       \alias "Voice_group";
-                       \contains\requesttranslator{
-                               Performer "Performer_group_performer"
-                               \consists "Lyric_performer";
-                               \consists "Note_performer";
-                               
-                       }
-               }
-               \consists "Key_performer";
-               \consists "Meter_performer";
-               \consists "Swallow_performer";
-       }
-}
diff --git a/init/performer.ly b/init/performer.ly
new file mode 100644 (file)
index 0000000..fa184d1
--- /dev/null
@@ -0,0 +1,30 @@
+%
+% setup for Request->Element conversion. Guru-only
+%
+
+\requesttranslator {
+       Performer "Score_performer"
+       \alias "Score";
+%      \consists "Clef_performer";
+%      \consists "Key_performer";
+%      \consists "Meter_performer";
+%      \consists "Tempo_performer";
+
+       \contains\requesttranslator {
+               Performer "Staff_performer"
+               \alias "Midi";
+               \contains\requesttranslator{
+                       Performer "Voice_group_performer"
+                       \alias "Voice_group";
+                       \contains\requesttranslator{
+                               Performer "Performer_group_performer"
+                               \consists "Lyric_performer";
+                               \consists "Note_performer";
+                               
+                       }
+               }
+               \consists "Key_performer";
+               \consists "Meter_performer";
+               \consists "Swallow_performer";
+       }
+}
diff --git a/init/script.ini b/init/script.ini
deleted file mode 100644 (file)
index 52395bf..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-
-% name = \script {
-% indexstring follow_into_staff same_dir_as_stem above_below_staff symbol_can_beinverted priority }
-%
-
-accent = \script { "sforzato"  0 -1 0 0 0 }
-marcato = \script { "marcato" 0 -1 0 1  0 }
-staccatissimo = \script { "staccatissimo" 0  -1 0 1 0 }
-portato= \script { "portato" 0 -1 0 1 0 }
-fermata = \script { "fermata" 0 1 0 1 0 }
-stopped = \script { "stopped" 0 0 1 0 0 }
-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 }
-lbheel = \script { "bheel" 0 0 -1  0 0 }
-rbheel = \script { "bheel" 0 0 1 0 0 }
-lbtoe = \script { "btoe" 0 0 -1 0 0 }
-rbtoe = \script { "btoe" 0 0 1 0 0 }
-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 }
-%
-% left toe:      right heel:
-%
-%                    u     -
-%                    -     u
-%  ---|-----|--   --|x----|x--
-%  ---|-----|--   --|-----|---
-%  --x|----x|--   --|-----|---
-%    ^     -                   
-%    -     ^                   
-%  back  front     back  front
-%
-% 
-% heu, me thought for a moment that order in table_xxx.ini was
-% being translated into priority...
-back = \script { "back" 0 -1 -1  0 0 }
-front = \script { "front" 0 -1 1 0 0 }
diff --git a/init/script.ly b/init/script.ly
new file mode 100644 (file)
index 0000000..6a1c283
--- /dev/null
@@ -0,0 +1,44 @@
+
+% name = \script {
+% indexstring follow_into_staff same_dir_as_stem above_below_staff symbol_can_beinverted priority }
+%
+
+accent = \script { "sforzato"  0 -1 0 0 0 }
+marcato = \script { "marcato" 0 -1 0 1  0 }
+staccatissimo = \script { "staccatissimo" 0  -1 0 1 0 }
+portato= \script { "portato" 0 -1 0 1 0 }
+fermata = \script { "fermata" 0 1 0 1 0 }
+stopped = \script { "stopped" 0 0 1 0 0 }
+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 }
+lbheel = \script { "bheel" 0 0 -1  0 0 }
+rbheel = \script { "bheel" 0 0 1 0 0 }
+lbtoe = \script { "btoe" 0 0 -1 0 0 }
+rbtoe = \script { "btoe" 0 0 1 0 0 }
+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 }
+%
+% left toe:      right heel:
+%
+%                    u     -
+%                    -     u
+%  ---|-----|--   --|x----|x--
+%  ---|-----|--   --|-----|---
+%  --x|----x|--   --|-----|---
+%    ^     -                   
+%    -     ^                   
+%  back  front     back  front
+%
+% 
+% heu, me thought for a moment that order in table_xxx.ly was
+% being translated into priority...
+back = \script { "back" 0 -1 -1  0 0 }
+front = \script { "front" 0 -1 1 0 0 }
diff --git a/init/swedish.ini b/init/swedish.ini
deleted file mode 100644 (file)
index 22f1664..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-%
-% common Swedish names for notes. "ess" means flat, "iss" means sharp
-%
-% by Mats Bengtsson.
-
-
-%
-% Please note that, while these names are used to enter *notes*, they
-% actually are *melodic*s, i.e. they represent a pitch solely. Notes
-% have a rhythmic part too. This is the reason that we don't write 'note { .. }'
-%
-\notenames {
-       cessess = \melodic_request { -1 0 -2 }
-       cess    = \melodic_request { -1 0 -1 }
-       c       = \melodic_request { -1 0 0 }
-       ciss    = \melodic_request { -1 0 1 }
-       cississ = \melodic_request { -1 0 2 }
-       dessess = \melodic_request { -1 1 -2 }
-       dess    = \melodic_request { -1 1 -1 }
-       d       = \melodic_request { -1 1 0 }
-       diss    = \melodic_request { -1 1 1 }
-       dississ = \melodic_request { -1 1 2 }
-       essess  = \melodic_request { -1 2 -2 }
-       ess     = \melodic_request { -1 2 -1 }
-       e       = \melodic_request { -1 2 0 }
-       eiss    = \melodic_request { -1 2 1 }
-       eississ = \melodic_request { -1 2 2 }
-       fessess = \melodic_request { -1 3 -2 }
-       fess    = \melodic_request { -1 3 -1 }
-       "f"     = \melodic_request { -1 3 0 }
-       fiss    = \melodic_request { -1 3 1 }
-       fississ = \melodic_request { -1 3 2 }
-       gessess = \melodic_request { -1 4 -2 }
-       gess    = \melodic_request { -1 4 -1 }
-       g       = \melodic_request { -1 4 0 }
-       giss    = \melodic_request { -1 4 1 }
-       gississ = \melodic_request { -1 4 2 }
-       assess  = \melodic_request { -1 5 -2 }
-       ass     = \melodic_request { -1 5 -1 }
-       a       = \melodic_request { -1 5 0 }
-       aiss    = \melodic_request { -1 5 1 }
-       aississ = \melodic_request { -1 5 2 }
-       hessess = \melodic_request { -1 6 -2 }
-       b       = \melodic_request { -1 6 -1 }
-       h       = \melodic_request { -1 6 0 }
-       hiss    = \melodic_request { -1 6 1 }
-       hississ = \melodic_request { -1 6 2 }
-
-
-       %
-       % upper case: 1 octave lower.
-       %
-
-
-       Cessess = \melodic_request { -2 0 -2 }
-       Cess    = \melodic_request { -2 0 -1 }
-       C       = \melodic_request { -2 0 0 }
-       Ciss    = \melodic_request { -2 0 1 }
-       Cississ = \melodic_request { -2 0 2 }
-       Dessess = \melodic_request { -2 1 -2 }
-       Dess    = \melodic_request { -2 1 -1 }
-       D       = \melodic_request { -2 1 0 }
-       Diss    = \melodic_request { -2 1 1 }
-       Dississ = \melodic_request { -2 1 2 }
-       Essess  = \melodic_request { -2 2 -2 }
-       Ess     = \melodic_request { -2 2 -1 }
-       E       = \melodic_request { -2 2 0 }
-       Eiss    = \melodic_request { -2 2 1 }
-       Eississ = \melodic_request { -2 2 2 }
-       Fessess = \melodic_request { -2 3 -2 }
-       Fess    = \melodic_request { -2 3 -1 }
-       F       = \melodic_request { -2 3 0 }
-       Fiss    = \melodic_request { -2 3 1 }
-       Fississ = \melodic_request { -2 3 2 }
-       Gessess = \melodic_request { -2 4 -2 }
-       Gess    = \melodic_request { -2 4 -1 }
-       G       = \melodic_request { -2 4 0 }
-       Giss    = \melodic_request { -2 4 1 }
-       Gississ = \melodic_request { -2 4 2 }
-       Assess  = \melodic_request { -2 5 -2 }
-       Ass     = \melodic_request { -2 5 -1 }
-       A       = \melodic_request { -2 5 0 }
-       Aiss    = \melodic_request { -2 5 1 }
-       Aississ = \melodic_request { -2 5 2 }
-       Hessess = \melodic_request { -2 6 -2 }
-       B       = \melodic_request { -2 6 -1 }
-       H       = \melodic_request { -2 6 0 }
-       Hiss    = \melodic_request { -2 6 1 }
-       Hississ = \melodic_request { -2 6 2 }
-
-
-}
diff --git a/init/swedish.ly b/init/swedish.ly
new file mode 100644 (file)
index 0000000..22f1664
--- /dev/null
@@ -0,0 +1,92 @@
+%
+% common Swedish names for notes. "ess" means flat, "iss" means sharp
+%
+% by Mats Bengtsson.
+
+
+%
+% Please note that, while these names are used to enter *notes*, they
+% actually are *melodic*s, i.e. they represent a pitch solely. Notes
+% have a rhythmic part too. This is the reason that we don't write 'note { .. }'
+%
+\notenames {
+       cessess = \melodic_request { -1 0 -2 }
+       cess    = \melodic_request { -1 0 -1 }
+       c       = \melodic_request { -1 0 0 }
+       ciss    = \melodic_request { -1 0 1 }
+       cississ = \melodic_request { -1 0 2 }
+       dessess = \melodic_request { -1 1 -2 }
+       dess    = \melodic_request { -1 1 -1 }
+       d       = \melodic_request { -1 1 0 }
+       diss    = \melodic_request { -1 1 1 }
+       dississ = \melodic_request { -1 1 2 }
+       essess  = \melodic_request { -1 2 -2 }
+       ess     = \melodic_request { -1 2 -1 }
+       e       = \melodic_request { -1 2 0 }
+       eiss    = \melodic_request { -1 2 1 }
+       eississ = \melodic_request { -1 2 2 }
+       fessess = \melodic_request { -1 3 -2 }
+       fess    = \melodic_request { -1 3 -1 }
+       "f"     = \melodic_request { -1 3 0 }
+       fiss    = \melodic_request { -1 3 1 }
+       fississ = \melodic_request { -1 3 2 }
+       gessess = \melodic_request { -1 4 -2 }
+       gess    = \melodic_request { -1 4 -1 }
+       g       = \melodic_request { -1 4 0 }
+       giss    = \melodic_request { -1 4 1 }
+       gississ = \melodic_request { -1 4 2 }
+       assess  = \melodic_request { -1 5 -2 }
+       ass     = \melodic_request { -1 5 -1 }
+       a       = \melodic_request { -1 5 0 }
+       aiss    = \melodic_request { -1 5 1 }
+       aississ = \melodic_request { -1 5 2 }
+       hessess = \melodic_request { -1 6 -2 }
+       b       = \melodic_request { -1 6 -1 }
+       h       = \melodic_request { -1 6 0 }
+       hiss    = \melodic_request { -1 6 1 }
+       hississ = \melodic_request { -1 6 2 }
+
+
+       %
+       % upper case: 1 octave lower.
+       %
+
+
+       Cessess = \melodic_request { -2 0 -2 }
+       Cess    = \melodic_request { -2 0 -1 }
+       C       = \melodic_request { -2 0 0 }
+       Ciss    = \melodic_request { -2 0 1 }
+       Cississ = \melodic_request { -2 0 2 }
+       Dessess = \melodic_request { -2 1 -2 }
+       Dess    = \melodic_request { -2 1 -1 }
+       D       = \melodic_request { -2 1 0 }
+       Diss    = \melodic_request { -2 1 1 }
+       Dississ = \melodic_request { -2 1 2 }
+       Essess  = \melodic_request { -2 2 -2 }
+       Ess     = \melodic_request { -2 2 -1 }
+       E       = \melodic_request { -2 2 0 }
+       Eiss    = \melodic_request { -2 2 1 }
+       Eississ = \melodic_request { -2 2 2 }
+       Fessess = \melodic_request { -2 3 -2 }
+       Fess    = \melodic_request { -2 3 -1 }
+       F       = \melodic_request { -2 3 0 }
+       Fiss    = \melodic_request { -2 3 1 }
+       Fississ = \melodic_request { -2 3 2 }
+       Gessess = \melodic_request { -2 4 -2 }
+       Gess    = \melodic_request { -2 4 -1 }
+       G       = \melodic_request { -2 4 0 }
+       Giss    = \melodic_request { -2 4 1 }
+       Gississ = \melodic_request { -2 4 2 }
+       Assess  = \melodic_request { -2 5 -2 }
+       Ass     = \melodic_request { -2 5 -1 }
+       A       = \melodic_request { -2 5 0 }
+       Aiss    = \melodic_request { -2 5 1 }
+       Aississ = \melodic_request { -2 5 2 }
+       Hessess = \melodic_request { -2 6 -2 }
+       B       = \melodic_request { -2 6 -1 }
+       H       = \melodic_request { -2 6 0 }
+       Hiss    = \melodic_request { -2 6 1 }
+       Hississ = \melodic_request { -2 6 2 }
+
+
+}
diff --git a/init/symbol.ini b/init/symbol.ini
deleted file mode 100644 (file)
index d3f1d1b..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-\version "0.1.0";
-
-\include "dynamic.ini"
-\include "dutch.ini" 
-\include "script.ini"
-\include "paper16.ini"
-
-% ugh
-\include "midi.ini"
-
-left = -1
-right = 1
-up = 1
-down = -1
-
diff --git a/init/symbol.ly b/init/symbol.ly
new file mode 100644 (file)
index 0000000..62baead
--- /dev/null
@@ -0,0 +1,15 @@
+\version "0.1.0";
+
+\include "dynamic.ly"
+\include "dutch.ly" 
+\include "script.ly"
+\include "paper16.ly"
+
+% ugh
+\include "midi.ly"
+
+left = -1
+right = 1
+up = 1
+down = -1
+
diff --git a/init/table16.ini b/init/table16.ini
deleted file mode 100644 (file)
index c64b5fc..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-%
-% spacing info for LilyPond. Do not edit this if you're not a guru.
-% It has a lot of hard-wired stringconstants
-%
-
-
-table_sixteen= 
-\symboltables {
-
-   \texid      "\input lilyponddefs \musixsixteendefs"
-
-   % index TeXstring,  xmin xmax ymin ymax
-
-    "scripts" = \table {
-           "fermata" "\fermata"                0.0\pt 0.0\pt   0.0\pt 6.0\pt
-           "-fermata" "\ifermata"              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" "\tenuto"                  0.0\pt 4.0\pt   -1.0\pt 1.0\pt
-           "-tenuto" "\itenuto"                0.0\pt 4.0\pt   -1.0\pt 1.0\pt
-           "sforzato" "\sforzato"              -0.8\pt 4.0\pt  -1.92\pt 1.92\pt
-           "marcato" "\marcato"                0.0\pt 4.0\pt   0.0\pt  4.0\pt
-           "-marcato" "\imarcato"              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" "\staccatissimo"    0.0\pt  0.0\pt  0.0\pt  1.0\pt
-           "-staccatissimo" "\istaccatissimo"  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
-       }
-
-     "style" = \table {
-               "roman" "\settext{%}"   0.0\pt  5.0\pt  0.0\pt  8.0\pt
-               "italic"        "\setitalic{%}" 0.0\pt  0.0\pt  0.0\pt  8.0\pt
-               "dynamic"       "\setdynamic{%}"        0.0\pt  0.0\pt  0.0\pt  8.0\pt
-     }
-     "dynamics" = \table {
-
-       "mf" "\dynmf"
-       "fff" "\dynfff"
-       "ff" "\dynff"
-       "f" "\dynf"
-       "mp" "\dynmp"
-       "p" "\dynp"
-       "pp" "\dynpp"
-       "ppp" "\dynppp"
-
-       }
-     "align" = \table {
-               "-1"    "\leftalign{%}"
-               "0"     "\centeralign{%}"
-               "1"     "\rightalign{%}"
-       }
-
-     "clefs" = \table {
-            "violin"   "\violinclef"           0.0\pt  12.8\pt -10.0\pt        18.0\pt
-            "bass"     "\bassclef"             0.0\pt  12.8\pt 0.0\pt  16.0\pt
-            "alto"     "\altoclef"             0.0\pt  12.8\pt 0.0\pt  16.0\pt
-            "tenor"    "\altoclef"             0.0\pt  12.8\pt 0.0\pt  16.0\pt
-            "violin_change"    "\cviolinclef"  0.0\pt  11.2\pt -12.0\pt        12.0\pt
-            "bass_change"      "\cbassclef"    0.0\pt  11.2\pt 0.0\pt  16.0\pt
-            "alto_change"      "\caltoclef"    0.0\pt  11.2\pt 0.0\pt  16.0\pt
-            "tenor_change"     "\caltoclef"    0.0\pt  11.2\pt 0.0\pt  16.0\pt
-     }
-
-     "balls" = \table {
-            "1"        "\wholeball"    0.0\pt  6.0\pt  -2.0\pt 2.0\pt
-            "2"        "\halfball"     0.0\pt  5.0\pt  -2.0\pt 2.0\pt
-            "4"        "\quartball"    0.0\pt  5.0\pt  -2.0\pt 2.0\pt
-     }
-
-     "slur" = \table {
-            "whole"    "\slurchar%{%}"
-            "half"     "\hslurchar%{%}"
-     }
-     "accidentals" = \table {
-            "-2"       "\flatflat"     0.0\pt  8.16\pt -2.5\pt 7.5\pt
-            "-1"       "\flat"         0.0\pt  4.8\pt  -2.5\pt 7.5\pt
-            "0"        "\natural"      0.0\pt  4.8\pt  -7.5\pt 7.5\pt
-            "1"        "\sharp"        0.0\pt  3.6\pt  -7.5\pt 7.5\pt
-            "2"        "\sharpsharp"   0.0\pt  4.8\pt  -2.5\pt 7.5\pt
-     }
-
-     "streepjes" = \table {
-            "toplines" "\toplines{%}"  -1.0\pt 7.0\pt  0.0\pt  0.0\pt
-            "botlines" "\botlines{%}"  -1.0\pt 7.0\pt  0.0\pt  0.0\pt
-     }
-
-     "bars" = \table {
-       "empty" "\emptybar"
-       ""      ""                      0.0\pt  0.0\pt  0.0\pt  16.0\pt
-       "|"     "\maatstreep{%}"        0.0\pt  0.64\pt 0.0\pt  16.0\pt
-       "||"    "\doublebar{%}"         0.0\pt  4.0\pt  0.0\pt  16.0\pt
-       "|."    "\finishbar{%}"         -4.0\pt 0.0\pt  0.0\pt  16.0\pt
-       ":|"    "\repeatbar"            -8.0\pt 0.0\pt  0.0\pt  16.0\pt
-       "|:"    "\startrepeat"          0.0\pt  8.0\pt  0.0\pt 16.0\pt
-       ":|:"   "\repeatbarstartrepeat" 0.0\pt  16.0\pt 0.0\pt  16.0\pt
-
-     }
-
-     "rests" = \table {
-            "1o"       "\outsidewholerest"     0.0\pt  6.0\pt  0.0\pt  2.0\pt
-            "1"        "\wholerest"            0.0\pt  6.0\pt  0.0\pt  2.0\pt
-            "2"        "\halfrest"             0.0\pt  6.0\pt  -2.0\pt 0.0\pt
-            "2o"       "\outsidehalfrest"              0.0\pt  6.0\pt  -2.0\pt 0.0\pt
-            "4o"       "\quartrest"            -5.0\pt 2.0\pt  -5.0\pt 5.0\pt
-            "8o"       "\eighthrest"           0.0\pt  5.0\pt  0.0\pt  8.0\pt
-            "16o"      "\sixteenthrest"                0.0\pt  6.0\pt  0.0\pt  12.0\pt
-            "4"        "\quartrest"            -5.0\pt 2.0\pt  -5.0\pt 5.0\pt
-            "8"        "\eighthrest"           0.0\pt  5.0\pt  0.0\pt  8.0\pt
-            "16"       "\sixteenthrest"                0.0\pt  6.0\pt  0.0\pt  12.0\pt
-            "32"       "\thirtysecondrest"     0.0\pt  6.0\pt  0.0\pt  16.0\pt
-            "64"       "\sixtyfourthrest"      0.0\pt  6.0\pt  0.0\pt  16.0\pt
-            "128"      "\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
-     }
-
-     % 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
-            "linestaf" "\linestafsym{%}{%}"
-            "stem"     "\stem{%}{%}"
-            "fill"     "\hbox{}"
-       % ugh. 8pt
-            "crescendosym" "\crescendosym{%}"  0.0\pt  0.0\pt  -3.0\pt 3.0\pt
-            "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 {
-            "8"        "\eighthflag"           0.0\pt  4.0\pt  0.0\pt  0.0\pt
-            "16"       "\sixteenthflag"                0.0\pt  4.0\pt  0.0\pt  0.0\pt
-            "32"       "\thirtysecondflag"     0.0\pt  4.0\pt  0.0\pt  0.0\pt
-            "64"       "\sixtyfourthflag"      0.0\pt  4.0\pt  0.0\pt  0.0\pt
-            "128"      "\hundredtwentyeighthflag"      0.0\pt  4.0\pt  0.0\pt  0.0\pt
-            "-8"       "\deighthflag"          0.0\pt  4.0\pt  0.0\pt  0.0\pt
-            "-16"      "\dsixteenthflag"               0.0\pt  4.0\pt  0.0\pt  0.0\pt
-            "-32"      "\dthirtysecondflag"    0.0\pt  4.0\pt  0.0\pt  0.0\pt
-            "-64"      "\dsixtyfourthflag"     0.0\pt  4.0\pt  0.0\pt  0.0\pt
-            "-128"     "\dhundredtwentyeighthflag"     0.0\pt  4.0\pt  0.0\pt  0.0\pt
-     }
-
-     "beamslopes" = \table {
-            "slope"    "\beamslope{%}{%}"
-            "horizontal"       "\rulesym{%}{%}"
-     }
-
-}
-
diff --git a/init/table16.ly b/init/table16.ly
new file mode 100644 (file)
index 0000000..c64b5fc
--- /dev/null
@@ -0,0 +1,168 @@
+%
+% spacing info for LilyPond. Do not edit this if you're not a guru.
+% It has a lot of hard-wired stringconstants
+%
+
+
+table_sixteen= 
+\symboltables {
+
+   \texid      "\input lilyponddefs \musixsixteendefs"
+
+   % index TeXstring,  xmin xmax ymin ymax
+
+    "scripts" = \table {
+           "fermata" "\fermata"                0.0\pt 0.0\pt   0.0\pt 6.0\pt
+           "-fermata" "\ifermata"              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" "\tenuto"                  0.0\pt 4.0\pt   -1.0\pt 1.0\pt
+           "-tenuto" "\itenuto"                0.0\pt 4.0\pt   -1.0\pt 1.0\pt
+           "sforzato" "\sforzato"              -0.8\pt 4.0\pt  -1.92\pt 1.92\pt
+           "marcato" "\marcato"                0.0\pt 4.0\pt   0.0\pt  4.0\pt
+           "-marcato" "\imarcato"              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" "\staccatissimo"    0.0\pt  0.0\pt  0.0\pt  1.0\pt
+           "-staccatissimo" "\istaccatissimo"  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
+       }
+
+     "style" = \table {
+               "roman" "\settext{%}"   0.0\pt  5.0\pt  0.0\pt  8.0\pt
+               "italic"        "\setitalic{%}" 0.0\pt  0.0\pt  0.0\pt  8.0\pt
+               "dynamic"       "\setdynamic{%}"        0.0\pt  0.0\pt  0.0\pt  8.0\pt
+     }
+     "dynamics" = \table {
+
+       "mf" "\dynmf"
+       "fff" "\dynfff"
+       "ff" "\dynff"
+       "f" "\dynf"
+       "mp" "\dynmp"
+       "p" "\dynp"
+       "pp" "\dynpp"
+       "ppp" "\dynppp"
+
+       }
+     "align" = \table {
+               "-1"    "\leftalign{%}"
+               "0"     "\centeralign{%}"
+               "1"     "\rightalign{%}"
+       }
+
+     "clefs" = \table {
+            "violin"   "\violinclef"           0.0\pt  12.8\pt -10.0\pt        18.0\pt
+            "bass"     "\bassclef"             0.0\pt  12.8\pt 0.0\pt  16.0\pt
+            "alto"     "\altoclef"             0.0\pt  12.8\pt 0.0\pt  16.0\pt
+            "tenor"    "\altoclef"             0.0\pt  12.8\pt 0.0\pt  16.0\pt
+            "violin_change"    "\cviolinclef"  0.0\pt  11.2\pt -12.0\pt        12.0\pt
+            "bass_change"      "\cbassclef"    0.0\pt  11.2\pt 0.0\pt  16.0\pt
+            "alto_change"      "\caltoclef"    0.0\pt  11.2\pt 0.0\pt  16.0\pt
+            "tenor_change"     "\caltoclef"    0.0\pt  11.2\pt 0.0\pt  16.0\pt
+     }
+
+     "balls" = \table {
+            "1"        "\wholeball"    0.0\pt  6.0\pt  -2.0\pt 2.0\pt
+            "2"        "\halfball"     0.0\pt  5.0\pt  -2.0\pt 2.0\pt
+            "4"        "\quartball"    0.0\pt  5.0\pt  -2.0\pt 2.0\pt
+     }
+
+     "slur" = \table {
+            "whole"    "\slurchar%{%}"
+            "half"     "\hslurchar%{%}"
+     }
+     "accidentals" = \table {
+            "-2"       "\flatflat"     0.0\pt  8.16\pt -2.5\pt 7.5\pt
+            "-1"       "\flat"         0.0\pt  4.8\pt  -2.5\pt 7.5\pt
+            "0"        "\natural"      0.0\pt  4.8\pt  -7.5\pt 7.5\pt
+            "1"        "\sharp"        0.0\pt  3.6\pt  -7.5\pt 7.5\pt
+            "2"        "\sharpsharp"   0.0\pt  4.8\pt  -2.5\pt 7.5\pt
+     }
+
+     "streepjes" = \table {
+            "toplines" "\toplines{%}"  -1.0\pt 7.0\pt  0.0\pt  0.0\pt
+            "botlines" "\botlines{%}"  -1.0\pt 7.0\pt  0.0\pt  0.0\pt
+     }
+
+     "bars" = \table {
+       "empty" "\emptybar"
+       ""      ""                      0.0\pt  0.0\pt  0.0\pt  16.0\pt
+       "|"     "\maatstreep{%}"        0.0\pt  0.64\pt 0.0\pt  16.0\pt
+       "||"    "\doublebar{%}"         0.0\pt  4.0\pt  0.0\pt  16.0\pt
+       "|."    "\finishbar{%}"         -4.0\pt 0.0\pt  0.0\pt  16.0\pt
+       ":|"    "\repeatbar"            -8.0\pt 0.0\pt  0.0\pt  16.0\pt
+       "|:"    "\startrepeat"          0.0\pt  8.0\pt  0.0\pt 16.0\pt
+       ":|:"   "\repeatbarstartrepeat" 0.0\pt  16.0\pt 0.0\pt  16.0\pt
+
+     }
+
+     "rests" = \table {
+            "1o"       "\outsidewholerest"     0.0\pt  6.0\pt  0.0\pt  2.0\pt
+            "1"        "\wholerest"            0.0\pt  6.0\pt  0.0\pt  2.0\pt
+            "2"        "\halfrest"             0.0\pt  6.0\pt  -2.0\pt 0.0\pt
+            "2o"       "\outsidehalfrest"              0.0\pt  6.0\pt  -2.0\pt 0.0\pt
+            "4o"       "\quartrest"            -5.0\pt 2.0\pt  -5.0\pt 5.0\pt
+            "8o"       "\eighthrest"           0.0\pt  5.0\pt  0.0\pt  8.0\pt
+            "16o"      "\sixteenthrest"                0.0\pt  6.0\pt  0.0\pt  12.0\pt
+            "4"        "\quartrest"            -5.0\pt 2.0\pt  -5.0\pt 5.0\pt
+            "8"        "\eighthrest"           0.0\pt  5.0\pt  0.0\pt  8.0\pt
+            "16"       "\sixteenthrest"                0.0\pt  6.0\pt  0.0\pt  12.0\pt
+            "32"       "\thirtysecondrest"     0.0\pt  6.0\pt  0.0\pt  16.0\pt
+            "64"       "\sixtyfourthrest"      0.0\pt  6.0\pt  0.0\pt  16.0\pt
+            "128"      "\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
+     }
+
+     % 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
+            "linestaf" "\linestafsym{%}{%}"
+            "stem"     "\stem{%}{%}"
+            "fill"     "\hbox{}"
+       % ugh. 8pt
+            "crescendosym" "\crescendosym{%}"  0.0\pt  0.0\pt  -3.0\pt 3.0\pt
+            "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 {
+            "8"        "\eighthflag"           0.0\pt  4.0\pt  0.0\pt  0.0\pt
+            "16"       "\sixteenthflag"                0.0\pt  4.0\pt  0.0\pt  0.0\pt
+            "32"       "\thirtysecondflag"     0.0\pt  4.0\pt  0.0\pt  0.0\pt
+            "64"       "\sixtyfourthflag"      0.0\pt  4.0\pt  0.0\pt  0.0\pt
+            "128"      "\hundredtwentyeighthflag"      0.0\pt  4.0\pt  0.0\pt  0.0\pt
+            "-8"       "\deighthflag"          0.0\pt  4.0\pt  0.0\pt  0.0\pt
+            "-16"      "\dsixteenthflag"               0.0\pt  4.0\pt  0.0\pt  0.0\pt
+            "-32"      "\dthirtysecondflag"    0.0\pt  4.0\pt  0.0\pt  0.0\pt
+            "-64"      "\dsixtyfourthflag"     0.0\pt  4.0\pt  0.0\pt  0.0\pt
+            "-128"     "\dhundredtwentyeighthflag"     0.0\pt  4.0\pt  0.0\pt  0.0\pt
+     }
+
+     "beamslopes" = \table {
+            "slope"    "\beamslope{%}{%}"
+            "horizontal"       "\rulesym{%}{%}"
+     }
+
+}
+
diff --git a/init/table_twenty.ini b/init/table_twenty.ini
deleted file mode 100644 (file)
index e4a5f78..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-%
-% spacing info for LilyPond. Do not edit this.
-% It has a lot of hard-wired stringconstants
-%
-
-table_twenty = \symboltables {
-
-    texid      "\musixtwentydefs"
-
-     "style" = \table {
-               "roman" "\settext{%}" 0pt 0pt 0pt 0pt
-               "italic"        "\setitalic{%}" 0pt 0pt 0pt 0pt
-     }
-     "align" = \table {
-               "-1"    "\leftalign{%}" 0pt 0pt 0pt 0pt
-               "0"     "\centeralign{%}" 0pt 0pt 0pt 0pt
-               "1"     "\rightalign{%}" 0pt 0pt 0pt 0pt
-       }
-
-
-    % index TeXstring,         xmin xmax ymin ymax
-    % be careful with editing this:
-    % the "index" entry is hardwired into lilypond.
-
-    "clefs" = \table {
-           "violin"    "\violinclef"   0pt     16pt    -12.5pt 22.5pt
-           "bass"      "\bassclef"             0pt     16pt    0pt     20pt
-           "alto"      "\altoclef"             0pt     16pt    0pt     20pt
-           "tenor"     "\altoclef"             0pt     16pt    0pt     20pt
-           "violin_change"     "\cviolinclef"  0pt     16pt    -12.5pt 22.5pt
-           "bass_change"       "\cbassclef"    0pt     16pt    0pt     20pt
-           "alto_change"       "\caltoclef"    0pt     16pt    0pt     20pt
-           "tenor_change"      "\caltoclef"    0pt     16pt    0pt     20pt
-    }
-
-    "balls" = \table {
-           "1" "\wholeball"    0pt     7.5pt   -2.5pt  2.5pt
-           "2" "\halfball"     0pt     6pt     -2.5pt  2.5pt
-           "4" "\quartball"    0pt     6pt     -2.5pt  2.5pt
-    }
-
-    "slur" = \table {
-           "whole"     "\slurchar%{%}" 0pt     0pt     0pt     0pt
-           "half"      "\hslurchar%{%}"        0pt     0pt     0pt     0pt
-    }
-    "accidentals" = \table {
-           "-2"        "\flatflat"     0pt     10.2pt  -2.5pt 7.5pt
-           "-1"        "\flat"         0pt     6pt     -2.5pt 7.5pt
-           "0" "\natural"      0pt     6pt     -7.5pt 7.5pt
-           "1" "\sharp"                0pt     6pt     -7.5pt 7.5pt
-           "2" "\sharpsharp"   0pt     6pt     -2.5pt 7.5pt
-    }
-
-    "streepjes" = \table {
-           "toplines"  "\toplines{%}"  -3pt    9pt 0pt 0pt
-           "botlines"  "\botlines{%}"  -3pt    9pt 0pt 0pt
-    }
-
-    "bars" = \table {
-           "empty"     "\emptybar"     0pt     0pt     0pt     0pt
-           "|" "\maatstreep"   0pt     5pt     -12pt   12pt
-           "||"        "\finishbar"    0pt     2pt     -12pt   12pt
-    }
-
-    "rests" = \table {
-           "1" "\wholerest"            -5pt    1pt     -1pt    1pt
-           "2" "\halfrest"             -5pt    1pt     -1pt    1pt
-           "4" "\quartrest"            -5pt    2pt     -5pt    5pt
-           "8" "\eighthrest"           0pt     5pt     0pt     8pt
-           "16"        "\sixteenthrest"                0pt     6pt     0pt     12pt
-           "32"        "\thirtysecondrest"     0pt     6pt     0pt     16pt
-    }
-
-    "meters" = \table {
-           "C" "\fourfourmeter"                0pt     10pt    -5pt    5pt
-           "C2"        "\allabreve"            0pt     10pt    -5pt    5pt
-    }
-
-    % dims ignored for this table
-    "param" = \table {
-           "meter"     "\generalmeter{%}{%}"   -3pt    10pt    -5pt    5pt
-           "linestaf"  "\linestafsym{%}{%}"    
-           "stem"      "\stem{%}{%}"           
-            "fill"     "\hbox{}"
-    }
-
-    "dots" = \table {
-           "1" "\lsingledot"           0pt     8pt     -1pt    1pt
-           "2" "\ldoubledot"           0pt     12pt    -1pt    1pt
-           "3" "\ltripledot"           0pt     16pt    -1pt    1pt
-    }
-
-    "flags" = \table {
-           "8" "\eigthflag"            0pt     5pt     0pt     0pt     
-           "16"        "\sixteenthflag"                0pt     5pt     0pt     0pt
-           "32"        "\thirtysecondflag"     0pt     5pt     0pt     0pt
-           "-8"        "\deigthflag"           0pt     5pt     0pt     0pt
-           "-16"       "\dsixteenthflag"               0pt     5pt     0pt     0pt
-           "-32"       "\dthirtysecondflag"    0pt     5pt     0pt     0pt
-    }
-
-    "beamslopes" = \table {
-           "slope"     "\beamslope{%}{%}"
-           "horizontal"        "\rulesym{%}{%}"        
-    }
-
-}
-default_table = \symboltables { table_twenty }
diff --git a/init/table_twenty.ly b/init/table_twenty.ly
new file mode 100644 (file)
index 0000000..e4a5f78
--- /dev/null
@@ -0,0 +1,108 @@
+%
+% spacing info for LilyPond. Do not edit this.
+% It has a lot of hard-wired stringconstants
+%
+
+table_twenty = \symboltables {
+
+    texid      "\musixtwentydefs"
+
+     "style" = \table {
+               "roman" "\settext{%}" 0pt 0pt 0pt 0pt
+               "italic"        "\setitalic{%}" 0pt 0pt 0pt 0pt
+     }
+     "align" = \table {
+               "-1"    "\leftalign{%}" 0pt 0pt 0pt 0pt
+               "0"     "\centeralign{%}" 0pt 0pt 0pt 0pt
+               "1"     "\rightalign{%}" 0pt 0pt 0pt 0pt
+       }
+
+
+    % index TeXstring,         xmin xmax ymin ymax
+    % be careful with editing this:
+    % the "index" entry is hardwired into lilypond.
+
+    "clefs" = \table {
+           "violin"    "\violinclef"   0pt     16pt    -12.5pt 22.5pt
+           "bass"      "\bassclef"             0pt     16pt    0pt     20pt
+           "alto"      "\altoclef"             0pt     16pt    0pt     20pt
+           "tenor"     "\altoclef"             0pt     16pt    0pt     20pt
+           "violin_change"     "\cviolinclef"  0pt     16pt    -12.5pt 22.5pt
+           "bass_change"       "\cbassclef"    0pt     16pt    0pt     20pt
+           "alto_change"       "\caltoclef"    0pt     16pt    0pt     20pt
+           "tenor_change"      "\caltoclef"    0pt     16pt    0pt     20pt
+    }
+
+    "balls" = \table {
+           "1" "\wholeball"    0pt     7.5pt   -2.5pt  2.5pt
+           "2" "\halfball"     0pt     6pt     -2.5pt  2.5pt
+           "4" "\quartball"    0pt     6pt     -2.5pt  2.5pt
+    }
+
+    "slur" = \table {
+           "whole"     "\slurchar%{%}" 0pt     0pt     0pt     0pt
+           "half"      "\hslurchar%{%}"        0pt     0pt     0pt     0pt
+    }
+    "accidentals" = \table {
+           "-2"        "\flatflat"     0pt     10.2pt  -2.5pt 7.5pt
+           "-1"        "\flat"         0pt     6pt     -2.5pt 7.5pt
+           "0" "\natural"      0pt     6pt     -7.5pt 7.5pt
+           "1" "\sharp"                0pt     6pt     -7.5pt 7.5pt
+           "2" "\sharpsharp"   0pt     6pt     -2.5pt 7.5pt
+    }
+
+    "streepjes" = \table {
+           "toplines"  "\toplines{%}"  -3pt    9pt 0pt 0pt
+           "botlines"  "\botlines{%}"  -3pt    9pt 0pt 0pt
+    }
+
+    "bars" = \table {
+           "empty"     "\emptybar"     0pt     0pt     0pt     0pt
+           "|" "\maatstreep"   0pt     5pt     -12pt   12pt
+           "||"        "\finishbar"    0pt     2pt     -12pt   12pt
+    }
+
+    "rests" = \table {
+           "1" "\wholerest"            -5pt    1pt     -1pt    1pt
+           "2" "\halfrest"             -5pt    1pt     -1pt    1pt
+           "4" "\quartrest"            -5pt    2pt     -5pt    5pt
+           "8" "\eighthrest"           0pt     5pt     0pt     8pt
+           "16"        "\sixteenthrest"                0pt     6pt     0pt     12pt
+           "32"        "\thirtysecondrest"     0pt     6pt     0pt     16pt
+    }
+
+    "meters" = \table {
+           "C" "\fourfourmeter"                0pt     10pt    -5pt    5pt
+           "C2"        "\allabreve"            0pt     10pt    -5pt    5pt
+    }
+
+    % dims ignored for this table
+    "param" = \table {
+           "meter"     "\generalmeter{%}{%}"   -3pt    10pt    -5pt    5pt
+           "linestaf"  "\linestafsym{%}{%}"    
+           "stem"      "\stem{%}{%}"           
+            "fill"     "\hbox{}"
+    }
+
+    "dots" = \table {
+           "1" "\lsingledot"           0pt     8pt     -1pt    1pt
+           "2" "\ldoubledot"           0pt     12pt    -1pt    1pt
+           "3" "\ltripledot"           0pt     16pt    -1pt    1pt
+    }
+
+    "flags" = \table {
+           "8" "\eigthflag"            0pt     5pt     0pt     0pt     
+           "16"        "\sixteenthflag"                0pt     5pt     0pt     0pt
+           "32"        "\thirtysecondflag"     0pt     5pt     0pt     0pt
+           "-8"        "\deigthflag"           0pt     5pt     0pt     0pt
+           "-16"       "\dsixteenthflag"               0pt     5pt     0pt     0pt
+           "-32"       "\dthirtysecondflag"    0pt     5pt     0pt     0pt
+    }
+
+    "beamslopes" = \table {
+           "slope"     "\beamslope{%}{%}"
+           "horizontal"        "\rulesym{%}{%}"        
+    }
+
+}
+default_table = \symboltables { table_twenty }
index a8a7b2c236de23741f1c07f59ee2521f68ed1497..64e7a17ae0266d4629f49da060e6a4a1548d748e 100644 (file)
@@ -101,9 +101,8 @@ IImenuetto = \melodic{
 }
 
 \score{
-       % huh? how to set id_str
        \melodic{ 
-               \id "Staff" "Cello"; \IImenuetto 
+               \id "Staff" "cello"; \IImenuetto 
        }
        \paper{
                unitspace= 9.0\mm  ;% to get lily to use only three lines
index 4f36f53182450f5ddf01c3b2d013904115975392..34faff618c1e11782ac0d3629258348abf47c83e 100644 (file)
@@ -466,8 +466,10 @@ tekstII = \lyric{
 
 \score{
        <       
-               { \id "Lyric" "1"; \tekstI } % ugh
-               { \id "Lyric" "2"; \tekstII }
+               <       \id "Lyric" "1";
+                       \tekstI
+                        \tekstII
+               >
                < \id "Piano" "";
                        \multi 2;
                        \melodic < \melodie \commands >
index aae1ded22add10d40063c97b0c663e604a56724f..4835e7783aad506f57741c0ab8876de59710d7c2 100644 (file)
@@ -114,9 +114,9 @@ textiii = \lyric{
 }
 
 \score{
-       < \multi 3;
+       < 
                \melodic <
-                       \id "Piano" "";\multi 3;
+                       \id "Piano" "";\multi 2;
                        < \global 
                                \melody >
                        < \global 
@@ -124,9 +124,12 @@ textiii = \lyric{
                >
                
                % ugh
-               \lyric < \id "Lyric" "1"; \global \tekst \hegedraagjetekst >
-%              \lyric < \id "Lyric" "2";  \global \texte >
-%              \lyric < \id "Lyric" "3"; \global \texti \textii \textiii >
+               \lyric < \id "Lyric" "1"; 
+                       \global \tekst \hegedraagjetekst >
+               \lyric < \id "Lyric" "2";  \global
+                       \texte >
+               \lyric < \id "Lyric" "3"; \global
+                       \texti \textii \textiii >
                
        >
        \paper{
index 08101712ad9479d16f45649f33438bcded1c6947..5fa5b63007b0d78bde2372bd6dc35873c34a027a 100644 (file)
@@ -175,7 +175,7 @@ bassdux =
 
     \paper{
 %      unitspace = 40.0\pt;    geometric = 1.6;
-       geometric= 1.4; unitspace= 34.\pt;
+%      geometric= 1.4; unitspace= 34.\pt;
     }
     \midi {
         \tempo 4:84;
index 792cbc46aeba693fd42e14401b3d7bdb84333ab5..6b4348d5f2a9a6e49b9a0f439af1cc5d692b8ddb 100644 (file)
@@ -9,6 +9,10 @@
 #include "source-file.hh"
 #include "source.hh"
 
+#ifndef YY_BUF_SIZE
+#define YY_BUF_SIZE 16384
+#endif
+
 Includable_lexer::Includable_lexer()
 {
     yy_current_buffer = 0;
@@ -32,8 +36,17 @@ Includable_lexer::new_input(String s, Sources  * global_sources)
     cout << "[" << s<<flush;
     include_stack_.push(sl);    
     
-    // ugh. We'd want to create a buffer from the bytes directly.
-    yy_switch_to_buffer(yy_create_buffer( sl->istream_l(), sl->length_off() )); 
+    /*
+      ugh. We'd want to create a buffer from the bytes directly.
+
+      Whoops. The size argument to yy_create_buffer is not the
+      filelength but a BUFFERSIZE. Maybe this is why reading stdin fucks up.
+      
+      Maybe this is also the reason why LilyPond sometimes crashed
+      mysteriously in yy_create_buffer() with a libc-malloc error
+
+      */
+    yy_switch_to_buffer(yy_create_buffer( sl->istream_l(), YY_BUF_SIZE )); 
 }
 
 /** pop the inputstack.  conceptually this is a destructor, but it
index 4f4f02184e65ce22f3703a3e9f5e5628f2d9c7ad..98ec990eb1a98932b41a862b2d4ef64bd6545f2f 100644 (file)
@@ -1,6 +1,6 @@
 MAJOR_VERSION = 0
 MINOR_VERSION = 0
-PATCH_LEVEL = 76
+PATCH_LEVEL = 77
 # use to send patches, always empty for released version:
 # include separator: ".postfix", "-pl" makes rpm barf
 
index fb03ccca1deac120ee8c308e33ddaae9489e7868..57ea2528d1e8c1076ae58cec3ee964c9484ebd03 100644 (file)
@@ -4,7 +4,9 @@
 stablecc=atom.cc command-request.cc musical-request.cc bar.cc boxes.cc \
        keyword.cc leastsquares.cc \
        lookup.cc meter.cc\
-       parser.cc lexer.cc qlp.cc qlpsolve.cc\
+       parser.cc \
+#      lexer.cc \
+       qlp.cc qlpsolve.cc\
        template1.cc template2.cc template3.cc template4.cc\
        template5.cc template6.cc version.cc tex-stream.cc  tex.cc\
        identifier.cc note.cc
index 8bcfd80ce727217abde1d8a1c84cabc09e4e81cf..3362ce00245b059eb3a1a56765dc465a99f475f6 100644 (file)
@@ -67,7 +67,7 @@ Bar_engraver::do_post_move_processing()
     bar_p_ =0;
 }
 
-IMPLEMENT_STATIC_NAME(Bar_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Bar_engraver,Engraver);
 ADD_THIS_ENGRAVER(Bar_engraver);
 
index b4364e6cd5eb4bde634ce27a30be63bb2a0e941b..b45d977b2625914282ed1c060376f8e64d84ccdf 100644 (file)
@@ -20,7 +20,7 @@ Bar::Bar()
 }
 
 
-IMPLEMENT_STATIC_NAME(Bar);
+
 IMPLEMENT_IS_TYPE_B1(Bar,Item);
 
 void
index d09eb627f115df578a15e1974ff978f4b3a0eaf2..9079d277ba292c8f90b7189377b3ceb07af1be11 100644 (file)
@@ -370,7 +370,7 @@ Beam::brew_molecule_p() const
     return mol_p;
 }
 
-IMPLEMENT_STATIC_NAME(Beam);
+
 IMPLEMENT_IS_TYPE_B1(Beam, Spanner);
 
 void
index de9269b2e45fb8085e3d6ebdf1cdb750a9ca25e1..46707624af26701f6b3dce61f1d6d756832fcf12 100644 (file)
@@ -55,5 +55,5 @@ Bow::brew_molecule_p() const
     return output;
 }
 
-IMPLEMENT_STATIC_NAME(Bow);
+
 IMPLEMENT_IS_TYPE_B1(Bow,Directional_spanner);
index 14ff34118bf470222d8a81e53cc776b0ee252dbb..d3c9e5df79ee8e567de1f2980b6a88414c4cc2a9 100644 (file)
@@ -15,5 +15,5 @@ Break_align_item::do_pre_processing()
     align_i_ = break_status_i();
     Horizontal_align_item::do_pre_processing();
 }
-IMPLEMENT_STATIC_NAME(Break_align_item);
+
 IMPLEMENT_IS_TYPE_B1(Break_align_item, Horizontal_align_item);
index 5f7ad85a8cc466bb0159a6f2259433fb756682f9..e7126456e2d8830fc9f2610508c99dfdafbdf5e5 100644 (file)
@@ -123,6 +123,6 @@ Clef_engraver::do_removal_processing()
     clef_p_ =0;
 }
 
-IMPLEMENT_STATIC_NAME(Clef_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Clef_engraver,Engraver);
 ADD_THIS_ENGRAVER(Clef_engraver);
index 7e399f37c32e3c7dba5287d68a99415d0130cb3c..15cc5687b21786cd60e0c38665d81a9ff78f246f 100644 (file)
@@ -63,5 +63,5 @@ Clef_item::brew_molecule_p()const
     return output;
 }
 
-IMPLEMENT_STATIC_NAME(Clef_item);
+
 IMPLEMENT_IS_TYPE_B1(Clef_item,Item);
index 1cb0295a8bba4b5ec5dd3f50ce2b6dd70780c6dc..2a4903d10518cc72127d769d39c03e3a8ce5bd26 100644 (file)
@@ -35,6 +35,6 @@ Collision_engraver::Collision_engraver()
     col_p_ =0;
 }
 
-IMPLEMENT_STATIC_NAME(Collision_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Collision_engraver,Engraver);
 ADD_THIS_ENGRAVER(Collision_engraver);
index 7ba6c4c601bc19d9a7cf50910c7f4600a62441e2..f9a15bc4fa4a11615a42c022e713fa9c8dc1e197 100644 (file)
@@ -140,7 +140,7 @@ Collision::do_pre_processing()
     }
 }
 
-IMPLEMENT_STATIC_NAME(Collision);
+
 IMPLEMENT_IS_TYPE_B1(Collision, Item);
 
 void
index a9539e28f7a6db3e933494f72bf38c43deb5af48..0d44ccbd351e657f09c53a0dafe0259183282ee3 100644 (file)
 void
 Command_script_req::do_print() const
 {}
-IMPLEMENT_STATIC_NAME(Command_script_req);
+
 IMPLEMENT_IS_TYPE_B1(Command_script_req,Command_req);
 
-IMPLEMENT_STATIC_NAME(Cadenza_req);
+
 IMPLEMENT_IS_TYPE_B1(Cadenza_req, Timing_req);
 
 void
@@ -38,7 +38,7 @@ Bar_req::compare(Bar_req const &c1)const
     return type_str_ == c1.type_str_;
 }
 
-IMPLEMENT_STATIC_NAME(Bar_req);
+
 IMPLEMENT_IS_TYPE_B1(Bar_req,Command_req);
 
 void
@@ -58,33 +58,33 @@ Partial_measure_req::Partial_measure_req(Moment m)
 }
 /* *************** */
 
-IMPLEMENT_STATIC_NAME(Timing_req);
+
 IMPLEMENT_IS_TYPE_B1(Timing_req,Command_req);
 
 void
 Timing_req::do_print()const{}
 
-IMPLEMENT_STATIC_NAME(Command_req);
+
 IMPLEMENT_IS_TYPE_B1(Command_req,Request);
 
 void
 Command_req::do_print()const{}
 
 IMPLEMENT_IS_TYPE_B1(Disallow_break_req,Command_req);
-IMPLEMENT_STATIC_NAME(Disallow_break_req);
+
 void
 Disallow_break_req::do_print()const
 {
 }
 /* *************** */
-IMPLEMENT_STATIC_NAME(Barcheck_req);
+
 IMPLEMENT_IS_TYPE_B1(Barcheck_req,Timing_req);
 
 void
 Barcheck_req::do_print() const{}
 
 /* *************** */
-IMPLEMENT_STATIC_NAME(Clef_change_req);
+
 IMPLEMENT_IS_TYPE_B1(Clef_change_req,Command_req);
 
 void
@@ -100,7 +100,7 @@ Clef_change_req::Clef_change_req(String s)
     clef_str_ = s;
 }
 /* *************** */
-IMPLEMENT_STATIC_NAME(Group_feature_req);
+
 IMPLEMENT_IS_TYPE_B1(Group_feature_req,Command_req);
 
 void
@@ -113,7 +113,7 @@ Group_feature_req::do_print() const
 
 /* *************** */
 
-IMPLEMENT_STATIC_NAME(Partial_measure_req);
+
 IMPLEMENT_IS_TYPE_B1(Partial_measure_req,Timing_req);
 
 void
@@ -122,7 +122,7 @@ Partial_measure_req::do_print() const
     mtor << duration_;
 }
 
-IMPLEMENT_STATIC_NAME(Meter_change_req);
+
 IMPLEMENT_IS_TYPE_B1(Meter_change_req,Timing_req);
 
 void
@@ -152,7 +152,7 @@ Meter_change_req::set(int b,int o)
 
 /* *************** */
 
-IMPLEMENT_STATIC_NAME(Measure_grouping_req);
+
 IMPLEMENT_IS_TYPE_B1(Measure_grouping_req,Timing_req);
 
 void
@@ -173,7 +173,7 @@ Key_change_req::transpose(Melodic_req const & d)const
     }
 }
 
-IMPLEMENT_STATIC_NAME(Key_change_req);
+
 IMPLEMENT_IS_TYPE_B1(Key_change_req,Command_req);
 void
 Key_change_req::squash_octaves()
index 1b25d8439f1b8c831fab6a295017527343806a02..8de7d68759930576ece02c093a996097dfd6319d 100644 (file)
@@ -64,5 +64,5 @@ Crescendo::brew_molecule_p() const
     return m_p;
 }
 
-IMPLEMENT_STATIC_NAME(Crescendo);
+
 IMPLEMENT_IS_TYPE_B1(Crescendo,Spanner);
index 3d046bd4147ffdc26a486b54b4366423b49999f3..4b95a385191f2765969b1131ea85d704101e9a1e 100644 (file)
@@ -1,6 +1,6 @@
 #include <fstream.h>
 #include <signal.h>
-#include <std/new.h>
+#include <new.h>
 #include <stdlib.h>
 #include "debug.hh"
 #include "dstream.hh"
index 09673c240dc9d9a9580c436a8cf7f90eb1e33e98..8f99590581b991f38b20ef74db08dda47344f5a0 100644 (file)
@@ -116,7 +116,7 @@ Dynamic_engraver::set_feature(Feature i)
        dir_i_ = i.value_;
 }
 
-IMPLEMENT_STATIC_NAME(Dynamic_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Dynamic_engraver,Engraver);
 ADD_THIS_ENGRAVER(Dynamic_engraver);
 
index 2c174c63796a38b74c36fbb07a8c3b4d247863b5..c1903ffcd065d0909a1ea1dae77079b7b4b6a84a 100644 (file)
@@ -14,8 +14,8 @@ Horizontal_vertical_group_item::do_print()const
 {
     Horizontal_vertical_group::do_print();
 }
-IMPLEMENT_STATIC_NAME(Horizontal_vertical_group_item);
+
 IMPLEMENT_IS_TYPE_B2(Horizontal_vertical_group_item,Horizontal_vertical_group,Item);
     
 IMPLEMENT_IS_TYPE_B2(Horizontal_group_item, Horizontal_group, Item);
-IMPLEMENT_STATIC_NAME(Horizontal_group_item);
+
index 1bf661a27140846c11cd1d2c3eb325258b67adf2..e60570ed6655816847ce467bc0d003bde50e330a 100644 (file)
@@ -36,10 +36,10 @@ Horizontal_group::do_width()const
     return r;
 }
 
-IMPLEMENT_STATIC_NAME(Horizontal_group);
+
 IMPLEMENT_IS_TYPE_B1(Horizontal_group, Elbement_group);
 IMPLEMENT_IS_TYPE_B1(Vertical_group, Elbement_group);
-IMPLEMENT_STATIC_NAME(Vertical_group);
+
 
 void
 Elbement_group::add_element(Score_elem*i_l)
@@ -80,7 +80,7 @@ Vertical_group::translate_y(Real y)
        elem_l_arr_[i]->translate_y(y);
 }
 
-IMPLEMENT_STATIC_NAME(Elbement_group);
+
 IMPLEMENT_IS_TYPE_B1(Elbement_group, Score_elem);
 
 void
@@ -148,7 +148,7 @@ Elbement_group::Elbement_group()
 }
 
 IMPLEMENT_IS_TYPE_B2(Horizontal_vertical_group, Horizontal_group, Vertical_group);
-IMPLEMENT_STATIC_NAME(Horizontal_vertical_group);
+
 
 Horizontal_vertical_group::Horizontal_vertical_group()
 {
index 224a86ac4fd13dfbc55ff99b5a164c27fe996211..50a3c605684e7c6c18aada6963bd4912dbbb979b 100644 (file)
@@ -121,7 +121,7 @@ Engraver_group_engraver::do_try_request(Request*req_l)
     bool hebbes_b =false;
     for (int i =0; !hebbes_b && i < nongroup_l_arr_.size() ; i++)
        hebbes_b =nongroup_l_arr_[i]->try_request(req_l);
-    if (!hebbes_b)
+    if (!hebbes_b && daddy_grav_l_)
        hebbes_b = daddy_grav_l_->try_request(req_l);
     return hebbes_b ;
 }
@@ -167,7 +167,7 @@ Engraver_group_engraver::terminate_engraver(Engraver*r_l)
 }
 
 IMPLEMENT_IS_TYPE_B2(Engraver_group_engraver,Engraver, Translator);
-IMPLEMENT_STATIC_NAME(Engraver_group_engraver);
+
 ADD_THIS_ENGRAVER(Engraver_group_engraver);
 
 void
index 54518e6daf01b6e4005e1eed946760abbeca818f..4dea919ecaedf486bfb7156f74c7a25182c45aa7 100644 (file)
@@ -125,7 +125,7 @@ Engraver::print() const
 #endif
 }
 
-IMPLEMENT_STATIC_NAME(Engraver);
+
 IMPLEMENT_IS_TYPE_B(Engraver);
 
 void
index 688e9cdd36c933c537b60eb8cca3b07f4c042dfc..9bf570e5b8a2d9725a91bcbc7fb17aa6585b1749 100644 (file)
@@ -67,5 +67,5 @@ General_script_def::get_atom(Paper_def*, int)const
     Symbol s;
     return Atom(s);
 }
-IMPLEMENT_STATIC_NAME(General_script_def);
+
 IMPLEMENT_IS_TYPE_B(General_script_def);
index d53bc4eb6d9d25639b49992624244d797ea1d7a3..78fa0a0ff7a93925df3f02130222150c8b7feea5 100644 (file)
@@ -68,5 +68,5 @@ Global_translator::prepare(Moment)
 {
 }
 
-IMPLEMENT_STATIC_NAME(Global_translator);
+
 IMPLEMENT_IS_TYPE_B1(Global_translator, Translator);
index 4a50701e63e6b1c63cf3bfaf845b06abaa00dd95..d08519a8913e06b81a8880794556262b68630323 100644 (file)
@@ -47,7 +47,7 @@ Head_column::add(Note_head *n_l)
 }
 
 
-IMPLEMENT_STATIC_NAME(Head_column);
+
 IMPLEMENT_IS_TYPE_B1(Head_column,Script_column);
 
 void
index f3bca5172139e5aebde907a1c58f0a3044cca798..952f6d867073f430403791de50c565d922e432e9 100644 (file)
@@ -64,6 +64,6 @@ Note_head_engraver::do_post_move_processing()
     note_req_l_ = 0;
 }
 
-IMPLEMENT_STATIC_NAME(Note_head_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Note_head_engraver,Engraver);
 ADD_THIS_ENGRAVER(Note_head_engraver);
index 46e2b67ee281949162becc55861f52ec6d3e1fd8..972b52f8e0812f0472f6b5a177d6e37bbcdf2501 100644 (file)
@@ -8,7 +8,7 @@
 
 #include "horizontal-align-item.hh"
 
-IMPLEMENT_STATIC_NAME(Horizontal_align_item);
+
 IMPLEMENT_IS_TYPE_B1(Horizontal_align_item,Item);
 
 
index 4eda207ca747db54ad3d96e211f8bfce2aa786fb..bbeea7ef787d004b29e0d9f7d9741d78775f17d6 100644 (file)
@@ -20,7 +20,7 @@
 #include "request.hh"
 #include "input-translator.hh"
 
-IMPLEMENT_STATIC_NAME(Identifier);
+
 IMPLEMENT_IS_TYPE_B(Identifier);
 
 Identifier::~Identifier()
@@ -106,7 +106,6 @@ Idclass::accessor(bool copy) {\
 
 
 #define implement_id_class(Idclass, Class, accessor)   \
-IMPLEMENT_STATIC_NAME(Idclass)\
 IMPLEMENT_IS_TYPE_B1(Idclass,Identifier)\
 Idclass::~Idclass() { delete accessor(false); }\
 Idclass::Idclass(String s, Class*st, int code):Identifier(s,code) { data = st; }\
index b2612147f0770dc12c9c1c0a7f58c42abdb7e59d..a14c19cc5605a8f70cd66ff42572e5f35c33dfc7 100644 (file)
@@ -20,7 +20,7 @@ public:
 
 protected:
     void do_print() const;
-    virtual bool try_request( Request* req_l );
+    virtual bool do_try_request( Request* req_l );
     virtual void process_requests();
 
 private:
index 01c5731854db3bffb4516c27b562bd84c2c811b3..8760b560b11ee514efb0b1af493cc72dbf5889c2 100644 (file)
@@ -192,7 +192,7 @@ struct Vertical_align_spanner;
 struct Vertical_align_engraver;
 struct Vertical_align_element;
 struct Voice;
-struct Voice_element;
+struct Request_chord;
 struct Voice_group_engravers;
 struct Voice_group_performer;
 struct Voice_list;
diff --git a/lily/include/line-group-grav.hh b/lily/include/line-group-grav.hh
new file mode 100644 (file)
index 0000000..bb43f6d
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+  line-group-grav.hh -- declare 
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef LINE_GROUP_GRAV_HH
+#define LINE_GROUP_GRAV_HH
+
+#include "engraver.hh"
+
+/**
+  Engravers put elements on the same or lowel level in a line
+  */
+class Line_group_engraver : public Engraver{
+    Line_of_staff *staffline_p_;   
+
+protected:
+    virtual void do_creation_processing();
+    virtual void do_removal_processing();
+    virtual void acknowledge_element(Score_elem_info);
+
+public:
+    NAME_MEMBERS();
+    Line_group_engraver();
+};
+
+
+#endif // LINE_GROUP_GRAV_HH
+
index e9bd22a2ee278e862f841eb01ee40cc75c23781a..cd07a96fde0f9a6d1f44942b470a743e825d554c 100644 (file)
@@ -22,7 +22,7 @@ public:
 
 protected:
     void do_print() const;
-    virtual bool try_request( Request* req_l );
+    virtual bool do_try_request( Request* req_l );
     virtual void process_requests();
 
 private:
index 13cbec5bd03a895b8f78b7dcb65cabe8499ef746..e72451d5b8b4c7058dd86132f50062653b019e14 100644 (file)
@@ -20,7 +20,7 @@ public:
 
 protected:
     void do_print() const;
-    virtual bool try_request( Request* req_l );
+    virtual bool do_try_request( Request* req_l );
     virtual void process_requests();
 
 private:
index 2467318e463a780ab8758b7220bf7b9779293494..b8e1a6b8b4c08c38a6e495ec2d600838b0b2a2a5 100644 (file)
@@ -9,57 +9,57 @@
 #include "lily-proto.hh"
 
 struct Midi_item {
-    /* *************** */
     static String i2varint_str( int i );
     virtual void output_midi( Midi_stream& midi_stream_r ) const;
     virtual String str() const = 0;
+    NAME_MEMBERS();
 };
 
 struct Midi_key : public Midi_item {
-       Midi_key( int accidentals_i, int minor_i );
-       
-       virtual String str() const;
+    Midi_key( int accidentals_i, int minor_i );
        
-       int accidentals_i_;
-       int minor_i_;
+    virtual String str() const;
+    NAME_MEMBERS();
+    /* *************** */
+    int accidentals_i_;
+    int minor_i_;
 };
 
 struct Midi_note : public Midi_item {
-    /* *************** */
-    int const c0_pitch_i_c_ = 60;
-    Byte dynamic_byte_;
-
     /**
       Generate a note-event on a channel pitch.
 
       @param #melreq_l# is the pitch. 
      */
     Midi_note( Melodic_req* melreq_l, int channel_i, bool on_b );
-
+    NAME_MEMBERS();
     virtual String str() const;
 
+    /* *************** */
+    int const c0_pitch_i_c_ = 60;
+    Byte dynamic_byte_;
+
     int channel_i_;
     int on_b_;
     int pitch_i_;
 };
 
 struct Midi_duration : public Midi_item {
-    /* *************** */
     Midi_duration( Real seconds_f );
 
     virtual String str() const;
-
+    NAME_MEMBERS();
+    /* *************** */
     Real seconds_f_;
 };
 
 struct Midi_chunk : Midi_item {
-    /* *************** */
     Midi_chunk();
 
     void add( String str );
     void set( String header_str, String data_str, String footer_str );
     virtual String str() const;
-
+    NAME_MEMBERS();
 private:
     String data_str_;
     String footer_str_;
@@ -69,46 +69,52 @@ private:
 struct Midi_header : Midi_chunk {
     /* *************** */
     Midi_header( int format_i, int tracks_i, int clocks_per_4_i );
+    NAME_MEMBERS();
 };
 
 struct Midi_text : Midi_item {
+    
+    enum Type { 
+       TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC, 
+       MARKER, CUE_POINT
+    };
+    Midi_text( Midi_text::Type type, String text_str );
+    NAME_MEMBERS();
+    virtual String str() const;
     /* *************** */
-       enum Type { 
-               TEXT = 1, COPYRIGHT, TRACK_NAME, INSTRUMENT_NAME, LYRIC, 
-               MARKER, CUE_POINT
-       };
-       Midi_text( Midi_text::Type type, String text_str );
-
-       virtual String str() const;
-
-       Type type_;
-       String text_str_;
+    Type type_;
+    String text_str_;
+    
 };
 
 struct Midi_tempo : Midi_item {
-    /* *************** */
     Midi_tempo( int per_minute_4_i );
+    NAME_MEMBERS();
 
     virtual String str() const;
+    /* *************** */
 
     int per_minute_4_i_;
 };
 
 struct Midi_time : Midi_item {
-    /* *************** */
+
     Midi_time( int num_i, int den_i, int clocks_per_1_i );
+    NAME_MEMBERS();
 
     virtual String str() const;
 
+    /* *************** */
     int num_i_;
     int den_i_;
     int clocks_per_1_i_;
 };
 
 struct Midi_track : Midi_chunk {
-    /* *************** */
     int number_i_;
-    Midi_track( int number_i );
+    /* *************** */
+    Midi_track( );
+    NAME_MEMBERS();
 
     void add( int delta_time_i, String event );
 //     void add( Moment delta_time_moment, Midi_item& mitem_r );
index 143587be88af2f4efad572c6352ce04e3cd151d1..93d21e5c2a54c07f036a4867ccd84e4ee85929cf 100644 (file)
@@ -69,12 +69,12 @@ protected:
     virtual bool ok()const;
 };
 
-class Voice_element_iterator : public Music_iterator {
-    const Voice_element * elt_l_;
+class Request_chord_iterator : public Music_iterator {
+    const Request_chord * elt_l_;
     Moment elt_duration_;
     bool last_b_;
 public:
-    Voice_element_iterator(Voice_element*);
+    Request_chord_iterator(Request_chord*);
     NAME_MEMBERS();
 
 protected:
index 6ea2ae0f478907d4d587a40f53fb37cd35f62112..ad745eff28561445c3321f1eb3e722c97c73e98a 100644 (file)
@@ -53,11 +53,11 @@ public:
     virtual MInterval time_int()const;
 };
 
-class Voice_element : public Chord {
+class Request_chord : public Chord {
 public:
     NAME_MEMBERS();
-    Voice_element();
-    VIRTUAL_COPY_CONS(Voice_element,Music);
+    Request_chord();
+    VIRTUAL_COPY_CONS(Request_chord,Music);
 };
 
 /**
index 08cce94c9a9435880a14d657d73a12b628ce4024..782541d68925c7222f945442ff3d1ca55df2715b 100644 (file)
@@ -16,7 +16,7 @@
 
 
 /**
-  A request which is coupled to a #Voice_element#
+  A request which is coupled to a #Request_chord#
   Base class only
  */
 class Musical_req  : public virtual Request  {
index 0105fc4b35a36e5819220dfc8c00d96253f754dd..cae750568541ee8ca0a4f601680e175626173643 100644 (file)
@@ -20,25 +20,15 @@ public:
     Note_performer();
     ~Note_performer();
 
+protected:
     virtual void process_requests();
-    virtual bool /*do_*/try_request( Request *req_l ) ;
 
-protected:
+    virtual bool do_try_request( Request *req_l ) ;
     virtual void do_print() const;
 
-#if 0
-    virtual void /*do_*/process_requests();
-    virtual void /*do_*/pre_move_processing();
-    virtual void /*do_*/post_move_processing();
-#endif
-
 private:
     Melodic_req * note_req_l_;
-//    Rhythmic_req * note_req_l_;
-
-//    Melodic_req* current_l_;
     Moment off_mom_;
-//    Moment on_mom_;
 };
 
 #endif // NOTE_PERFORMER_HH
index aeba3222fe0fe06bdfb17863fd485ed63b8d14f3..b3a1239d5a4ff339b8a508f61c0693f581896b3e 100644 (file)
@@ -26,11 +26,13 @@ public:
     Performer_group_performer();
     ~Performer_group_performer();
 
-    bool is_bottom_performer_b() const;
-    virtual Performer_group_performer* find_performer_l( String name, String id );
-    
     virtual void add( Performer* perf_p );
-    virtual bool try_request( Request* req_l );
+    virtual void print()const { Performer::print() ; }
+    virtual Moment get_mom() const;
+    virtual bool do_try_request( Request* req_l );
+    virtual bool try_request(Request*r) { return Performer::try_request(r) ; }
+
+protected:
 
     virtual Translator* find_get_translator_l( String name, String id );
     virtual Translator* get_default_interpreter();
@@ -38,12 +40,14 @@ public:
     Translator * ancestor_l( int l = 1 );
     virtual int depth_i() const;
 
-    virtual Moment get_mom() const;
-
-    virtual void midi_output( Midi_stream* midi_stream_l );
     virtual void process_requests();
-    virtual void set_track( Midi_def* midi_l, int& track_i_r );
+    virtual void do_removal_processing();
+    virtual void do_creation_processing();
 
+    bool is_bottom_performer_b() const;
+    virtual Performer_group_performer* find_performer_l( String name, String id );
+    
+    virtual void do_print()const;
 private:
     Pointer_list<Performer*> perf_p_list_;
     
index 4c6a8e2ec69ed81dbb1985456df786d005d57bf3..55a2660c435e80b04ba438b2b76be829a7e15941 100644 (file)
@@ -15,6 +15,7 @@
 #include "staff-info.hh"
 
 class Performer {
+    bool init_b_;
 public:
     NAME_MEMBERS();
     Performer_group_performer* daddy_perf_l_;
@@ -22,19 +23,24 @@ public:
     Performer();
     virtual ~Performer();
 
-    virtual void midi_output( Midi_stream* midi_stream_l_ );
+    
     void print() const;
     virtual void process_requests();
 
     virtual void set( Moment mom );
-    virtual void set_track( Midi_def* midi_l, int& track_i_r );
-
     virtual bool try_request( Request* req_l );
 
+    virtual void do_removal_processing();
+    void creation_processing();
 protected:
+    virtual void do_creation_processing();
+
+    virtual bool do_try_request(Request*);
+    virtual int get_tempo_i() const;
     virtual void do_print() const;
     virtual Moment get_mom() const;
     virtual void play_event( Midi_item* l );
+
 };
 
 #include "global-performers.hh"
index 62d5e73e8ca39b4f5a2e132b6fe8e64e0b9a897f..f130120cf67b4648f81d4508a3c968c614e47dc6 100644 (file)
@@ -24,7 +24,6 @@
 class Request : public Music {
 
 public:
-    Voice  * voice_l();
     
     /* *************** */
 
@@ -33,7 +32,6 @@ public:
     NAME_MEMBERS();
     VIRTUAL_COPY_CONS(Request,Music);
     
-    void print()const ;
     virtual MInterval time_int() const;
     virtual void transpose(Melodic_req const &){}
     virtual Moment duration() const { return 0; }
index 6b97718562df71e813599de2df13ed2ac605e693..05c1413ddfbeaddd5737d0148f27b63f97d87ddc 100644 (file)
@@ -18,7 +18,6 @@
 struct Score_elem_info {
     Score_elem * elem_l_;
     Request*req_l_;
-    Voice const * voice_l_;
     Array<Engraver*> origin_grav_l_arr_;
 
     /* *** */
index 8ab61fe2ed6021f7ef60cc5c501a6ca187f002e9..769edecec772bc96f08318112e60f503d6ce9621 100644 (file)
@@ -29,14 +29,17 @@ protected:
     virtual void process();
     virtual void set_score( Score* score_l );
     virtual void start();
-
+    virtual int get_tempo_i() const;
+    virtual void play_event(Midi_item*);
 private:
-    void header();
+    void header(Midi_stream&);
 
     Midi_def* midi_l_;
-    Midi_stream* midi_stream_p_;
+
     Moment prev_mom_;
     Moment now_mom_;
+
+    Link_array<Midi_item> midi_item_p_arr_;
 };
 
 #endif // SCORE_PERFORMER_HH
index 2b540085f28c3f07cc91580260d60908f9af4c1a..55864615a24dbc49d801b91a5eec6d6d4509b680 100644 (file)
@@ -93,6 +93,7 @@ public:
     virtual    void OK() const;
     virtual    void print() const;
     virtual    void prepare();
+    virtual ~Spring_spacer(){}
 };
 
 #endif // SPRING_SPACER_HH
diff --git a/lily/include/staff-gravs.hh b/lily/include/staff-gravs.hh
deleted file mode 100644 (file)
index a51ffe4..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-  staff-gravs.hh -- declare Line_group_engraver
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
-*/
-
-
-#ifndef STAFF_GRAVS_HH
-#define STAFF_GRAVS_HH
-
-#include "engraver-group.hh"
-
-/**
-  Engravers which manage a Staff (one 5-line linestaff)
-  */
-class Line_group_engraver : public Engraver{
-    Line_of_staff *staffline_p_;   
-    Link_array<Score_elem> staff_elem_l_arr_;
-
-protected:
-    virtual void do_creation_processing();
-    virtual void do_removal_processing();
-    virtual void acknowledge_element(Score_elem_info);
-
-public:
-    NAME_MEMBERS();
-    Line_group_engraver();
-};
-
-#endif // STAFF_GRAVS_HH
index 32f6572f3485a6da7db0e525efd7b4a18869d721..f85c501915ac78a0f7652633e73b82d406382a6c 100644 (file)
@@ -21,16 +21,14 @@ public:
     String instrument_str();
 
 protected:
-    virtual void midi_output( Midi_stream* midi_stream_l_ );
     virtual void play_event( Midi_item* l );
-    virtual void set_track( Midi_def* midi_l, int& track_i_r );
+    virtual void do_removal_processing();
+    virtual void do_creation_processing();
 
 private:
     void header();
 
-    Midi_def* midi_l_;
     Moment midi_mom_;
-    int track_i_;
     Midi_track* midi_track_p_;
 };
 
index 7c6ec8d4aee76555eba982596ec4e75aaaabd519..eec24e9643a3de35d7263d76f3d20cf90261e5a4 100644 (file)
@@ -15,7 +15,8 @@
 class Swallow_performer : public Performer {
 public:
     NAME_MEMBERS();
-    virtual bool try_request (Request* ) { return true; }
+protected:
+    virtual bool do_try_request (Request* ) { return true; }
 };
 
 #endif // SWALLOW_PERF_HH
index 1a652794a8f502b412cf326477b3f7c844c1df98..748f516bd5212c26980071cec30047916c6ee610 100644 (file)
@@ -6,7 +6,6 @@
   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
-//#include "translator-admin.hh"
 #include "debug.hh"
 #include "engraver.hh"
 #include "input-translator.hh"
index ab0290db9f4fd2f5e61aff3024152212f3abf7c4..7919a3ec35ce8baca840bd02f1c04a83b6c5eb13 100644 (file)
@@ -18,7 +18,7 @@ Item::Item()
        = broken_to_a_[1]=0;
 }
 
-IMPLEMENT_STATIC_NAME(Item);
+
 IMPLEMENT_IS_TYPE_B1(Item, Score_elem);
 
 void
index ba07441885f6c58b429ae5fc448f56de6b896a8a..84288bd1012dc75d57cdcfe1c32acfc5c4aac600 100644 (file)
@@ -111,6 +111,6 @@ Key_engraver::do_post_move_processing()
     default_key_b_ = false;
 }
 
-IMPLEMENT_STATIC_NAME(Key_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Key_engraver,Engraver);
 ADD_THIS_ENGRAVER(Key_engraver);
index ae15a9532491e2528490cf3e5085b5dc3060d0e0..aa8401e005e520b8b744464bf772888afa6edace 100644 (file)
@@ -71,7 +71,7 @@ Key_item::brew_molecule_p()const
     }
     return output;
 }
-IMPLEMENT_STATIC_NAME(Key_item);
+
 IMPLEMENT_IS_TYPE_B1(Key_item,Item);
 
 void 
index 0ed1f33afab5c2f24f05df44563cffb80bc8b5c8..5e620ff7c98666607bd2ae152d28d21927d9dba0 100644 (file)
@@ -11,7 +11,7 @@
 #include "midi-item.hh"
 
 
-IMPLEMENT_STATIC_NAME(Key_performer);
+
 IMPLEMENT_IS_TYPE_B1(Key_performer,Performer);
 ADD_THIS_PERFORMER(Key_performer);
 
@@ -49,7 +49,7 @@ Key_performer::process_requests()
 }
 
 bool
-Key_performer::try_request( Request* req_l )
+Key_performer::do_try_request( Request* req_l )
 {
     if ( key_req_l_ )
        return false;
diff --git a/lily/line-group-grav.cc b/lily/line-group-grav.cc
new file mode 100644 (file)
index 0000000..843fa5b
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+  staff-gravs.cc -- implement Line_group_engraver
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+#include "staff-sym.hh"
+#include "line-group-grav.hh"
+#include "command-request.hh"
+#include "bar.hh"
+#include "debug.hh"
+#include "staffline.hh"
+
+
+Line_group_engraver::Line_group_engraver()
+{
+    staffline_p_ =0;
+}
+
+void
+Line_group_engraver::acknowledge_element(Score_elem_info  elem)
+{
+    staffline_p_->add_element(elem.elem_l_);
+}
+
+
+void
+Line_group_engraver::do_removal_processing()
+{
+    staffline_p_->right_col_l_ = get_staff_info().command_pcol_l();
+    typeset_element(staffline_p_);
+    staffline_p_ = 0;
+}
+
+void
+Line_group_engraver::do_creation_processing()
+{
+    staffline_p_ = new Line_of_staff;
+    staffline_p_->left_col_l_ = get_staff_info().command_pcol_l();
+
+    // don't broadcast to self.
+    announce_element(Score_elem_info(staffline_p_,0));
+}
+
+
+
+IMPLEMENT_IS_TYPE_B1(Line_group_engraver,Engraver);
+ADD_THIS_ENGRAVER(Line_group_engraver);
+
index 4c10dc50b65642b148b7e66ca9b66cffa26cc547..78fbae299214cc5eb5220371f8cf9ad22aa39c50 100644 (file)
@@ -103,6 +103,6 @@ Local_key_engraver::do_process_requests()
     }
 }
 
-IMPLEMENT_STATIC_NAME(Local_key_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Local_key_engraver,Engraver);
 ADD_THIS_ENGRAVER(Local_key_engraver);
index 439f24f9fef15390b7269e1f93b11cc1a69cc559..50f870c1cfe9b1f2b353d5ffe7907c3df742135f 100644 (file)
@@ -104,7 +104,7 @@ Local_acc::compare(Local_acc&a, Local_acc&b)
     
     return a.accidental_i_ - b.accidental_i_;
 };
-IMPLEMENT_STATIC_NAME(Local_key_item);
+
 IMPLEMENT_IS_TYPE_B1(Local_key_item,Item);
 
 void
index 08c81723a0e8f5e1b6dd67d2336933852cb5be46..0ba2ae489676a30fcd5cce11a4b8f8bd1b5e551b 100644 (file)
@@ -55,6 +55,6 @@ Lyric_engraver::do_pre_move_processing()
     }
 }
 
-IMPLEMENT_STATIC_NAME(Lyric_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Lyric_engraver,Engraver);
 ADD_THIS_ENGRAVER(Lyric_engraver);
index 81014b9d5df526522d8042636c1eb4669c320ac6..e623e5881cb5d9cb5898fb9bababb7703882151d 100644 (file)
@@ -12,7 +12,7 @@
 #include "midi-item.hh"
 
 
-IMPLEMENT_STATIC_NAME(Lyric_performer);
+
 IMPLEMENT_IS_TYPE_B1(Lyric_performer,Performer);
 ADD_THIS_PERFORMER(Lyric_performer);
 
@@ -45,7 +45,7 @@ Lyric_performer::process_requests()
 }
 
 bool
-Lyric_performer::try_request( Request* req_l )
+Lyric_performer::do_try_request( Request* req_l )
 {
     Musical_req* m_l = req_l->musical();
     if ( !m_l || ! m_l->lreq_l() ) 
index 22f226d182bf1901300cbdc41d9bc1633ba8b0e3..a87d9b28852241a821362f4e8bec1608094afa42 100644 (file)
@@ -105,12 +105,14 @@ static File_path path;
 void
 do_one_file(String init_str, String file_str)
 {
-    if ( "" == path.find( init_str ) )
+    if ( init_str != "" && "" == path.find( init_str ) ) {
        error ( "Can not find `" + init_str +"'");
-
-    if ( path.find( file_str ) == "" )
+       return ;
+    }
+    if ( file_str!= "" && path.find( file_str ) == "" ) {
        error ( "Can not find `" + file_str + "'");
-       
+       return ;
+    }
     
     Sources sources;
     source_l_g = &sources; 
@@ -142,7 +144,7 @@ main (int argc, char **argv)
 
     Getopt_long oparser(argc, argv,theopts);
     cout << get_version_str() << endl;
-    String init_str("symbol.ini");
+    String init_str("symbol.ly");
     
     while (Long_option_init * opt = oparser()) {
        switch ( opt->shortname){
index 28397bb198a764fccce5c89a6af3811f499a8336..3112f1855620fa498dd83758c26ae705d6036e93 100644 (file)
@@ -121,6 +121,6 @@ Meter_engraver::do_post_move_processing()
     time_.add( get_staff_info().when()  - time_.when_ );
 }
 
-IMPLEMENT_STATIC_NAME(Meter_engraver);
+
 ADD_THIS_ENGRAVER(Meter_engraver);
 IMPLEMENT_IS_TYPE_B1(Meter_engraver,Engraver); 
index c04bf3bf56c0a73468004dadd4d866eeb0d98513..ac5bb9f3b5ca4efdeeb350bb3910584e93943c85 100644 (file)
@@ -11,7 +11,7 @@
 #include "midi-item.hh"
 
 
-IMPLEMENT_STATIC_NAME(Meter_performer);
+
 IMPLEMENT_IS_TYPE_B1(Meter_performer,Performer);
 ADD_THIS_PERFORMER(Meter_performer);
 
@@ -44,7 +44,7 @@ Meter_performer::process_requests()
 }
 
 bool
-Meter_performer::try_request( Request* req_l )
+Meter_performer::do_try_request( Request* req_l )
 {
     if ( meter_req_l_ )
        return false;
index d56bc338697818d12e686db80ef42a3777175e03..e578cef5fe498b0f832ab0950756c62715032cdc 100644 (file)
@@ -16,6 +16,6 @@ Meter::brew_molecule_p()const
     return new Molecule(Atom(s));
 }
 
-IMPLEMENT_STATIC_NAME(Meter);
+
 
 IMPLEMENT_IS_TYPE_B1(Meter,Item);
index 5e76d11805bda19dd57052a0f57671f0e779e7dd..280b6304d17cbe2ba2286fd1dc95929081d7fe95 100644 (file)
@@ -1,10 +1,11 @@
-//
-// midi-def.cc -- implement midi output
-//
-// source file of the GNU LilyPond music typesetter
-//
-// (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+/*
+  midi-def.cc -- implement Midi_def
 
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+
+*/
 #include <math.h>
 #include "misc.hh"
 #include "midi-def.hh"
index 404f06b5ca5b103829854ede06f4a8c986b6c039..2efb36aff1057f6c4e19ae3e37399da1780c1655 100644 (file)
@@ -1,9 +1,10 @@
-//
-// midiitem.cc
-//
-// source file of the GNU LilyPond music typesetter
-//
-// (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
+/*
+  midi-item.cc -- implement various midi items.
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
 
 #include <limits.h>
 #include "proto.hh"
 #include "midi-item.hh"
 #include "midi-stream.hh"
 
+
+IMPLEMENT_IS_TYPE_B(Midi_item);
+IMPLEMENT_IS_TYPE_B1(Midi_key,Midi_item);
+IMPLEMENT_IS_TYPE_B1(Midi_note, Midi_item);
+IMPLEMENT_IS_TYPE_B1(Midi_duration, Midi_item);
+IMPLEMENT_IS_TYPE_B1(Midi_chunk, Midi_item);
+IMPLEMENT_IS_TYPE_B1(Midi_header, Midi_chunk);
+IMPLEMENT_IS_TYPE_B1(Midi_text, Midi_item);
+IMPLEMENT_IS_TYPE_B1(Midi_tempo, Midi_item);
+IMPLEMENT_IS_TYPE_B1(Midi_time, Midi_item);
+IMPLEMENT_IS_TYPE_B1(Midi_track, Midi_chunk);
+
 Midi_chunk::Midi_chunk()
 {
 }
@@ -195,7 +208,7 @@ Midi_text::str() const
        return str;
 }
 
-Midi_track::Midi_track( int number_i )
+Midi_track::Midi_track( )
 {
 //                4D 54 72 6B     MTrk
 //                00 00 00 3B     chunk length (59)
@@ -211,7 +224,7 @@ Midi_track::Midi_track( int number_i )
 //         mi = 0:  major key
 //         mi = 1:  minor key
 
-    number_i_ = number_i;
+    number_i_ = 0;
        
     char const* data_ch_C = ""
 //        "00" "ff58" "0404" "0218" "08"
index b88271e158139ccae880b9cdf575ea06ec4b4894..bc6b717fda942a8b3c01fcaf0a75d2b2f52b81fd 100644 (file)
@@ -12,7 +12,7 @@
 #include "request.hh"
 #include "debug.hh"
 
-IMPLEMENT_STATIC_NAME(Music_iterator);
+
 IMPLEMENT_IS_TYPE_B(Music_iterator);
 
 Chord_iterator::~Chord_iterator(){}
@@ -117,8 +117,8 @@ Music_iterator::static_get_iterator_p(Music *m,
     Music_iterator * p =0;
     if (m->is_type_b( Change_reg::static_name()))
        p = new Change_iterator((Change_reg*)m);
-    else if (m->is_type_b( Voice_element::static_name()))
-       p = new Voice_element_iterator( (Voice_element*) m);
+    else if (m->is_type_b( Request_chord::static_name()))
+       p = new Request_chord_iterator( (Request_chord*) m);
     else if (m->is_type_b( Chord::static_name())) 
        p =  new Chord_iterator( (Chord*) m);
     else if (m->is_type_b( Voice::static_name())) 
@@ -204,7 +204,7 @@ Chord_iterator::process_and_next(Moment until)
 //    assert(!ok() || next_moment() > until);
 }
 
-IMPLEMENT_STATIC_NAME(Chord_iterator);
+
 IMPLEMENT_IS_TYPE_B1(Chord_iterator,Music_iterator);
 
 Moment
@@ -266,7 +266,7 @@ Voice_iterator::~Voice_iterator()
     delete iter_p_;
 }
 
-IMPLEMENT_STATIC_NAME(Voice_iterator);
+
 IMPLEMENT_IS_TYPE_B1(Voice_iterator,Music_iterator);
 
 void
@@ -309,7 +309,7 @@ Change_iterator::Change_iterator(Change_reg * ch)
     change_l_ = ch;
 }
 
-IMPLEMENT_STATIC_NAME(Change_iterator);
+
 IMPLEMENT_IS_TYPE_B1(Change_iterator,Music_iterator);
 
 /*
@@ -336,16 +336,16 @@ Change_iterator::process_and_next(Moment mom)
 
 /* ******************** */
 
-IMPLEMENT_STATIC_NAME(Voice_element_iterator);
-IMPLEMENT_IS_TYPE_B1(Voice_element_iterator,Music_iterator);
+
+IMPLEMENT_IS_TYPE_B1(Request_chord_iterator,Music_iterator);
 
 void
-Voice_element_iterator::construct_children()
+Request_chord_iterator::construct_children()
 {
     get_req_translator_l();
 }
 
-Voice_element_iterator::Voice_element_iterator(Voice_element*el_l)
+Request_chord_iterator::Request_chord_iterator(Request_chord*el_l)
 {
     elt_l_ = el_l;
     elt_duration_ = el_l->time_int().length(); 
@@ -354,7 +354,7 @@ Voice_element_iterator::Voice_element_iterator(Voice_element*el_l)
 
 
 bool
-Voice_element_iterator::ok()const
+Request_chord_iterator::ok()const
 {
     return (elt_duration_ && !last_b_) || first_b_; 
 }
@@ -362,7 +362,7 @@ Voice_element_iterator::ok()const
 
 
 Moment
-Voice_element_iterator::next_moment()const
+Request_chord_iterator::next_moment()const
 {
     Moment m(0);
     if  (!first_b_) 
@@ -371,14 +371,14 @@ Voice_element_iterator::next_moment()const
 }
 
 void
-Voice_element_iterator::do_print() const
+Request_chord_iterator::do_print() const
 {
 #ifndef NPRINT
     mtor << "duration: " << elt_duration_;
 #endif
 }
 void
-Voice_element_iterator::process_and_next(Moment mom)
+Request_chord_iterator::process_and_next(Moment mom)
 {
     if ( first_b_ ) {
        for (PCursor<Music*> i(elt_l_->music_p_list_); i.ok(); i++) {
index 9008ddc27a4d0353510a3c542516a7885de26010..b169a74727cbdde085b07488de8312f99ca78e04 100644 (file)
@@ -18,9 +18,9 @@ Music_list::Music_list(Music_list const&s)
        add(i->clone());
 }
 
-IMPLEMENT_STATIC_NAME(Music_list);
-IMPLEMENT_STATIC_NAME(Chord);
-IMPLEMENT_STATIC_NAME(Voice);
+
+
+
 IMPLEMENT_IS_TYPE_B1(Music_list, Music);
 IMPLEMENT_IS_TYPE_B1(Voice,Music_list);
 IMPLEMENT_IS_TYPE_B1(Chord,Music_list);
@@ -97,10 +97,10 @@ Music_list::do_print()const
 #endif 
 }
 
-IMPLEMENT_IS_TYPE_B1(Voice_element, Chord);
-IMPLEMENT_STATIC_NAME(Voice_element);
+IMPLEMENT_IS_TYPE_B1(Request_chord, Chord);
+
 
-Voice_element::Voice_element()
+Request_chord::Request_chord()
 {
     multi_level_i_ =0;
 }
index ca55e559ecc3023e121e5c25a7d805fac960cf50..f42394b9e6ef8d1a36224a79e0fcaaa84b2fb11c 100644 (file)
@@ -42,7 +42,7 @@ Music::do_print()const
 {
 }
 
-IMPLEMENT_STATIC_NAME(Music);
+
 IMPLEMENT_IS_TYPE_B(Music);
 
 
@@ -54,4 +54,4 @@ Music::Music()
 }
 
 IMPLEMENT_IS_TYPE_B1(Change_reg,Music)
-IMPLEMENT_STATIC_NAME(Change_reg);
+
index 396870dd36a8effed905a614fa9ad7be9b150cfa..0d14c09c386ad81f67dabcddc7e4dbc651dd7614 100644 (file)
@@ -13,7 +13,7 @@
 #include "text-def.hh"
 #include "music-list.hh"
 
-IMPLEMENT_STATIC_NAME(Stem_req);
+
 IMPLEMENT_IS_TYPE_B1(Stem_req,Rhythmic_req);
 
 void
@@ -31,7 +31,7 @@ Stem_req::Stem_req()
 }
 
 /* ************** */
-IMPLEMENT_STATIC_NAME(Musical_req);
+
 IMPLEMENT_IS_TYPE_B1(Musical_req,Request);
 void
 Musical_req::do_print()const{}
@@ -43,7 +43,7 @@ Tie_req::do_print()const{}
    
 
 
-IMPLEMENT_STATIC_NAME(Span_req);
+
 IMPLEMENT_IS_TYPE_B1(Span_req,Musical_req);
 
 void
@@ -60,7 +60,7 @@ Spacing_req::Spacing_req()
     distance = 0;
     strength = 0;
 }
-IMPLEMENT_STATIC_NAME(Spacing_req);
+
 IMPLEMENT_IS_TYPE_B1(Spacing_req,Request);
 
 void
@@ -71,7 +71,7 @@ Spacing_req::do_print()const
 #endif
 }
 
-IMPLEMENT_STATIC_NAME(Blank_req);
+
 IMPLEMENT_IS_TYPE_B2(Blank_req,Spacing_req,Rhythmic_req);
 
 void
@@ -107,7 +107,7 @@ Melodic_req::transpose(Melodic_req const & delta)
     }
 }
 
-IMPLEMENT_STATIC_NAME(Melodic_req);
+
 IMPLEMENT_IS_TYPE_B1(Melodic_req,Musical_req);
 
 int
@@ -164,7 +164,7 @@ Rhythmic_req::Rhythmic_req()
 {
 }
 
-IMPLEMENT_STATIC_NAME(Rhythmic_req);
+
 IMPLEMENT_IS_TYPE_B1(Rhythmic_req,Musical_req);
 
 void
@@ -189,7 +189,7 @@ Lyric_req::Lyric_req(Text_def* def_p)
     dir_i_ = -1;               // lyrics below (invisible) staff
 }
 
-IMPLEMENT_STATIC_NAME(Lyric_req);
+
 IMPLEMENT_IS_TYPE_B2(Lyric_req,Musical_req,Rhythmic_req);
 
 void
@@ -204,7 +204,7 @@ Note_req::Note_req()
 {
     forceacc_b_ = false;
 }
-IMPLEMENT_STATIC_NAME(Note_req);
+
 IMPLEMENT_IS_TYPE_B2(Note_req,Melodic_req,Rhythmic_req);
 
 void
@@ -219,7 +219,7 @@ Note_req::do_print() const
 #endif
 }
 /* *************** */
-IMPLEMENT_STATIC_NAME(Rest_req);
+
 IMPLEMENT_IS_TYPE_B1(Rest_req,Rhythmic_req);
 
 void
@@ -233,12 +233,12 @@ Beam_req::Beam_req()
 {
     nplet = 0;
 }
-IMPLEMENT_STATIC_NAME(Beam_req);
+
 IMPLEMENT_IS_TYPE_B1(Beam_req,Span_req);
 void
 Beam_req::do_print()const{}
 /* *************** */
-IMPLEMENT_STATIC_NAME(Slur_req);
+
 IMPLEMENT_IS_TYPE_B1(Slur_req,Span_req);
 void
 Slur_req::do_print()const{}
@@ -274,7 +274,7 @@ Script_req::Script_req()
     scriptdef_p_ = 0;
 }
 
-IMPLEMENT_STATIC_NAME(Script_req);
+
 IMPLEMENT_IS_TYPE_B1(Script_req,Request);
 
 void
@@ -292,7 +292,7 @@ Musical_script_req::do_print() const
     Script_req::do_print();
 }
 
-IMPLEMENT_STATIC_NAME(Musical_script_req);
+
 IMPLEMENT_IS_TYPE_B2(Musical_script_req,Musical_req, Script_req);
 
 
@@ -326,7 +326,7 @@ Text_req::Text_req(int dir_i, Text_def* tdef_p)
     tdef_p_ = tdef_p;
 }
 
-IMPLEMENT_STATIC_NAME(Text_req);
+
 IMPLEMENT_IS_TYPE_B1(Text_req,Musical_req);
 
 void
@@ -341,7 +341,7 @@ Text_req::do_print() const
 
 /* *************** */
 
-IMPLEMENT_STATIC_NAME(Skip_req);
+
 IMPLEMENT_IS_TYPE_B1(Skip_req,Musical_req);
 
 void
@@ -353,17 +353,8 @@ Skip_req::do_print() const
 #endif
 }
 
-Voice *
-Request::voice_l()
-{
-    if (!parent_music_l_)
-       return 0;
-    else
-       return (Voice*)parent_music_l_;
-}
-/* *************** */
 
-IMPLEMENT_STATIC_NAME(Dynamic_req);
+
 IMPLEMENT_IS_TYPE_B1(Dynamic_req,Musical_req);
 
 void
@@ -372,7 +363,7 @@ Dynamic_req::do_print() const
     Musical_req::do_print();
 }
 
-IMPLEMENT_STATIC_NAME(Absolute_dynamic_req);
+
 IMPLEMENT_IS_TYPE_B1(Absolute_dynamic_req,Musical_req);
 
 void
@@ -412,7 +403,7 @@ Span_dynamic_req::Span_dynamic_req()
     dynamic_dir_i_  = 0;
 }
 
-IMPLEMENT_STATIC_NAME(Span_dynamic_req);
+
 IMPLEMENT_IS_TYPE_B1(Span_dynamic_req,Musical_req);
 
 void
@@ -424,7 +415,7 @@ Span_dynamic_req::do_print()const
 #endif
 }
 
-IMPLEMENT_STATIC_NAME(Tie_req);
+
 IMPLEMENT_IS_TYPE_B1(Tie_req,Musical_req);
 
 
index 69be888d94c3bebcdea41904490e6bacb2c9dcae..5c14442745860ffb32fef0245173469b6d690165 100644 (file)
@@ -126,7 +126,7 @@ My_lily_parser::set_last_duration(Duration const *d)
 Chord*
 My_lily_parser::get_word_element(Text_def* tdef_p, Duration * duration_p)
 {
-    Chord* velt_p = new Voice_element;
+    Chord* velt_p = new Request_chord;
     
     Lyric_req* lreq_p = new Lyric_req(tdef_p);
 
@@ -142,7 +142,7 @@ My_lily_parser::get_word_element(Text_def* tdef_p, Duration * duration_p)
 Chord *
 My_lily_parser::get_rest_element(String s,  Duration * duration_p )
 {    
-    Chord* velt_p = new Voice_element;
+    Chord* velt_p = new Request_chord;
     velt_p->set_spot( here_input());
 
     if (s=="s") { /* Space */
@@ -171,7 +171,7 @@ My_lily_parser::get_rest_element(String s,  Duration * duration_p )
 Chord *
 My_lily_parser::get_note_element(Note_req *rq, Duration * duration_p )
 {
-    Chord*v = new Voice_element;
+    Chord*v = new Request_chord;
     v->set_spot( here_input());
 
     v->add(rq);
index 3cf96d2575c811f50f29cfa076a9e070f8772c58..67614565588c115f2457835906209d1539022192 100644 (file)
@@ -130,6 +130,6 @@ Note_column_engraver::Note_column_engraver()
     do_post_move_processing();
 }
 
-IMPLEMENT_STATIC_NAME(Note_column_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Note_column_engraver,Engraver);
 ADD_THIS_ENGRAVER(Note_column_engraver);
index 8d7d7f7e2b8dcf5cc48a56b7b24837e0354b0211..e3bb6b1f524d6afe2b90ffca1908e6e4b32bcf56 100644 (file)
@@ -11,7 +11,7 @@
 #include "note-head.hh"
 #include "stem.hh"
 
-IMPLEMENT_STATIC_NAME(Note_column);
+
 IMPLEMENT_IS_TYPE_B1(Note_column,Head_column);
 
 void
index 1543a56634ddb99ef2e9d0d0ba36a6f29306d14e..9caa6762317faa498faa8abfc17cd8ba1b5388fa 100644 (file)
@@ -12,7 +12,7 @@
 #include "debug.hh"
 
 IMPLEMENT_IS_TYPE_B1(Note_performer,Performer);
-IMPLEMENT_STATIC_NAME(Note_performer);
+
 ADD_THIS_PERFORMER(Note_performer);
 
 Note_performer::Note_performer()
@@ -63,7 +63,7 @@ Note_performer::process_requests()
 }
 
 bool 
-Note_performer::try_request( Request* req_l )
+Note_performer::do_try_request( Request* req_l )
 {
     if ( note_req_l_ )
        return false;
index bd7fa443edbb9934488e2ccf84f4659f93dc496a..48b6b7ba6d16641a59b7fb6cf282f8afc95ebe41 100644 (file)
@@ -63,7 +63,7 @@ Note_head::set_rhythmic(Rhythmic_req*r_req_l)
     dots_i_ = r_req_l->duration_.dots_i_;
 }
     
-IMPLEMENT_STATIC_NAME(Note_head);
+
 IMPLEMENT_IS_TYPE_B1(Note_head,Item);
 
 void
index 9d784050cb9b3ce07572fe86de8d24ed69f41802..4cf44b1f8d9b2f8f9ad505c7c0ebc7be9b4898a7 100644 (file)
@@ -41,10 +41,8 @@ Paper_def::linewidth_f() const
 Real
 Paper_def::duration_to_dist(Moment d)
 {
-    if (!d)
-       return 0;
-    
-    return get_var("unitspace")  * pow(get_var("geometric"), log_2(d));
+    Real dur_f = (d) ?pow(get_var("geometric"), log_2(d)) : 0;
+    return get_var("basicspace") + get_var("unitspace")  * dur_f;
 }
 
 
index 4f074fb2dc0b7f03a32d708b8fe9cd825ec927fd..995d541ea8a894e76cc8d3204f171310127d3bf1 100644 (file)
@@ -573,7 +573,7 @@ simple_element:
 
 command_elt:
 /* empty */    {
-               $$ = new Voice_element;
+               $$ = new Request_chord;
                $$-> set_spot( THIS->here_input());
        }
 /* cont: */
index 11e768585d718aad3e63800a029a04b27365f00c..3e3a745c22e6dde354118557ae06600a1d2de473 100644 (file)
@@ -10,7 +10,7 @@
 #include "debug.hh"
 
 IMPLEMENT_IS_TYPE_B2(Performer_group_performer,Performer, Translator);
-IMPLEMENT_STATIC_NAME(Performer_group_performer);
+
 ADD_THIS_PERFORMER(Performer_group_performer);
 
 Performer_group_performer::Performer_group_performer()
@@ -124,12 +124,6 @@ Performer_group_performer::is_bottom_performer_b() const
     return !itrans_l_->get_default_itrans_l();
 }
 
-void
-Performer_group_performer::midi_output( Midi_stream* midi_stream_l )
-{
-    for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
-       i->midi_output( midi_stream_l );
-}
 
 void
 Performer_group_performer::process_requests()
@@ -138,23 +132,36 @@ Performer_group_performer::process_requests()
        i->process_requests();
 }
 
-void
-Performer_group_performer::set_track( Midi_def* midi_l, int& track_i_r )
-{
-    for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
-       i->set_track( midi_l, track_i_r );
-}
-
 bool
-Performer_group_performer::try_request( Request* req_l )
+Performer_group_performer::do_try_request( Request* req_l )
 {
-//    return Performer::try_request( req_l );
     bool hebbes_b =false;
     for (int i =0; !hebbes_b && i < nongroup_l_arr_.size() ; i++)
        hebbes_b =nongroup_l_arr_[i]->try_request(req_l);
-//    if (!hebbes_b)
     if ( !hebbes_b && daddy_perf_l_ )
        hebbes_b = daddy_perf_l_->try_request(req_l);
     return hebbes_b ;
 }
 
+void
+Performer_group_performer::do_print()const
+{
+#ifndef NPRINT
+    for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
+       i->print();
+#endif
+}
+
+void
+Performer_group_performer::do_creation_processing()
+{
+    for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
+       i->creation_processing();
+}
+
+void
+Performer_group_performer::do_removal_processing()
+{
+    for ( PCursor<Performer*> i( perf_p_list_.top() ); i.ok(); i++ )
+       i->do_removal_processing();
+}
index 76b93332533521bb2c1f8ee82c3a0cacfb36f7ab..e26f2ef2da57f5ccc52da1b62d3e4df0c6249440 100644 (file)
@@ -9,12 +9,13 @@
 #include "performer-group-performer.hh"
 #include "debug.hh"
 
-IMPLEMENT_STATIC_NAME(Performer);
+
 IMPLEMENT_IS_TYPE_B(Performer);
 
 Performer::Performer()
 {
     daddy_perf_l_ = 0;
+    init_b_ =false;
 }
 
 Performer::~Performer()
@@ -32,23 +33,24 @@ Performer::get_mom() const
     return daddy_perf_l_->get_mom();
 }
 
-void
-Performer::midi_output( Midi_stream* )
-{
-}
-
 void 
 Performer::play_event( Midi_item* l ) 
 { 
     daddy_perf_l_->play_event( l ); 
 }
 
+int
+Performer::get_tempo_i()const
+{
+    return daddy_perf_l_->get_tempo_i();
+}
+
 void
 Performer::print() const
 {
 #ifndef NPRINT
     mtor << "\n" << name() << " {";
-//    do_print();
+    do_print();
     mtor << "}";
 #endif
 }
@@ -63,16 +65,42 @@ Performer::set( Moment )
 {
 } 
 
-void
-Performer::set_track( Midi_def*, int& )
-{
-} 
-
 bool 
-Performer::try_request( Request* req_l )
+Performer::do_try_request( Request* req_l )
 {
-// huh?
-//    return daddy_perf_l_->try_request( req_l_ );
     return false;
 }
 
+bool
+Performer::try_request(Request*r)
+{
+    if (!init_b_) { 
+       creation_processing();
+    }
+    return do_try_request(r);
+}
+
+void
+Performer::creation_processing()
+{
+    if (!init_b_) { 
+/*     if ( daddy_perf_l_ ) {
+           init_b_ = true;     // ugh. avoid recursion
+           daddy_perf_l_->creation_processing();
+           init_b_ = false;
+       }
+       
+       */
+       do_creation_processing();
+       init_b_ = true;
+    }
+}
+void
+Performer::do_creation_processing()
+{
+}
+
+void
+Performer::do_removal_processing()
+{
+}
index 545abcef838464869baeb43ae727092578ffaa79..15a90ca6e3de3f4f00320b3b4c45a0e3a627378a 100644 (file)
@@ -1,7 +1,15 @@
+/*
+  request.cc -- implement Request
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1996,1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
 #include "request.hh"
 #include "debug.hh"
 
-IMPLEMENT_STATIC_NAME(Request);
+
 IMPLEMENT_IS_TYPE_B1(Request,Music);
 
 void
@@ -15,13 +23,3 @@ Request::time_int() const
     return MInterval(0, duration());
 }
 
-void
-Request::print() const
-{
-#ifndef NPRINT
-    mtor << name() << " {";
-    do_print();
-    mtor << "}\n";
-#endif
-}
-  
index 296f856a8a47f54b498f88a06ce3ddeaaba43690..29fdac1a3d47c3ef1df153725ad2852152cd768e 100644 (file)
@@ -13,7 +13,7 @@
 #include "rest-column.hh"
 #include "note-column.hh"
 
-IMPLEMENT_STATIC_NAME(Rest_collision_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Rest_collision_engraver, Engraver);
 ADD_THIS_ENGRAVER(Rest_collision_engraver);
 
index 4529bbc4d6128cce92ec344afb2204800447c282..7b3da49d41f6ed2eb4c85a42a5a48c9ff7875ef8 100644 (file)
@@ -15,7 +15,7 @@
 #include "collision.hh"
 #include "paper-def.hh"
 
-IMPLEMENT_STATIC_NAME(Rest_collision);
+
 IMPLEMENT_IS_TYPE_B1(Rest_collision,Item);
 
 void
index 9f811d39ded19fbf045bff551be9f8d1954cea96..5a0d141777e6164e597010b3fe8e3075443179e0 100644 (file)
@@ -12,7 +12,7 @@
 #include "rest-column.hh"
 #include "stem.hh"
 
-IMPLEMENT_STATIC_NAME(Rest_column);
+
 IMPLEMENT_IS_TYPE_B1(Rest_column,Head_column);
 
 
index 7f315bcc39276de7069dc6658d797139beaf9bf6..f2845632370734786745c9cfb477d3f80966dc0f 100644 (file)
@@ -42,5 +42,4 @@ Score_align_engraver::acknowledge_element(Score_elem_info inf)
     
 }
 
-IMPLEMENT_STATIC_NAME(Score_align_engraver)
 IMPLEMENT_IS_TYPE_B1(Score_align_engraver,Engraver);
index 236ca211ef9b22f99bb4bac563fa81eb11cf793b..9c92ce3af4726142e04f35d6112274f62ba22bf6 100644 (file)
@@ -21,7 +21,6 @@ public:                                                                       \
     { type_ch_C_ = T::static_name();\
     priority_i_ = p;}  \
 };                                                                     \
-IMPLEMENT_STATIC_NAME(C ## _align_engraver)    ;                       \
 ADD_THIS_ENGRAVER(C ## _align_engraver);                               \
 IMPLEMENT_IS_TYPE_B1(C ## _align_engraver, Score_align_engraver)       ;
 
index 9f15b846df4e2ac772d32834d1ac59f16da82bd5..99e6673a7d1e555801b96a4a10d0ec84e0b87ca2 100644 (file)
 Score_elem_info::Score_elem_info(Score_elem*s_l, Request*r_l)
 {
     elem_l_ = s_l;
-    voice_l_ =  (r_l)?r_l->voice_l():0;
     req_l_ = r_l;
 }
 
 Score_elem_info::Score_elem_info()
 {
     elem_l_ = 0;
-    voice_l_ = 0;
-
     req_l_ = 0;
 }
 
index 7f026d1e88452cf311d1b1a259d6a3f1abff44ba..c95817d9fd2341e11408fbc441ae440f1c4f098c 100644 (file)
@@ -343,7 +343,7 @@ Score_elem::do_substitute_dependent(Score_elem*,Score_elem*)
 }
 
 
-IMPLEMENT_STATIC_NAME(Score_elem);
+
 IMPLEMENT_IS_TYPE_B(Score_elem);
 
 Molecule*
index bcec7e71fb0faa44a4f660cc7f4595f9d8787743..8c31c827c7f5b8399dba99c9dbf4768617286165 100644 (file)
@@ -55,6 +55,9 @@ Score_engraver::prepare(Moment w)
 void
 Score_engraver::finish()
 {
+    if ( (breaks_i_%8))
+           *mlog << "[" << breaks_i_ << "]" << flush;
+   
     check_removal();
     do_removal_processing();
 }
@@ -198,16 +201,13 @@ Score_engraver::paper()const
 bool
 Score_engraver::do_try_request(Request*r)
 {
-    bool gotcha = false;  
-    for ( int i =0; !gotcha && i < nongroup_l_arr_.size() ; i++)
-       gotcha = nongroup_l_arr_[i]->try_request(r);
-  
-    if ( r->command() && r->command()->disallowbreak())
+    bool gotcha = Engraver_group_engraver::do_try_request(r);  
+    if ( !gotcha && r->command() && r->command()->disallowbreak())
            disallow_break_b_ = true;
     return gotcha;
 }
 
 IMPLEMENT_IS_TYPE_B1(Score_engraver,Engraver_group_engraver);
-IMPLEMENT_STATIC_NAME(Score_engraver);
+
 ADD_THIS_ENGRAVER(Score_engraver);
 
index 15d266599a9e2ff3846f1640eb892778ee34ad8b..243b8622f9d7bb3e05b163860a65b2b3858c047b 100644 (file)
@@ -45,6 +45,6 @@ Score_horizontal_align_engraver::acknowledge_element(Score_elem_info i)
        halign_p_->add(it, align_grav_l->priority_i_);
     }
 }
-IMPLEMENT_STATIC_NAME(Score_horizontal_align_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Score_horizontal_align_engraver,Engraver);
 ADD_THIS_ENGRAVER(Score_horizontal_align_engraver);
index 2e3853964609b2f35fb0a7b037405afbbc23f7e0..0ff49514e0e54570b3e28a9c6e99ad9de9c13476 100644 (file)
 #include "source.hh"
 
 IMPLEMENT_IS_TYPE_B1(Score_performer,Performer_group_performer);
-IMPLEMENT_STATIC_NAME(Score_performer);
 ADD_THIS_PERFORMER(Score_performer);
 
 Score_performer::Score_performer()
 {
-    midi_stream_p_ = 0;
     midi_l_ = 0;
 }
 
 Score_performer::~Score_performer()
 {
-    delete midi_stream_p_;
 }
 
 Translator* 
@@ -47,13 +44,30 @@ Score_performer::depth_i() const
 void
 Score_performer::finish()
 {
+    Performer_group_performer::do_removal_processing();
+
+
+    Midi_stream output_stream( midi_l_->outfile_str_, midi_item_p_arr_.size() + 1, 384 );    
     *mlog << "MIDI output to " << midi_l_->outfile_str_ << " ..." << endl;    
-    *mlog << "tracks: ";
-    header();
-    Performer_group_performer::midi_output( midi_stream_p_ );
+
+    header( output_stream);        
+    int track_i = 1;
+    for (int i=0; i<  midi_item_p_arr_.size(); i++) {
+       Midi_item * it_p = midi_item_p_arr_[i];
+       
+       if ( it_p->is_type_b( Midi_track::static_name()))
+           ((Midi_track*)it_p )->number_i_ = track_i ++;
+       output_stream<< *it_p;
+    }
     *mlog << endl;
 }
 
+void
+Score_performer::play_event(Midi_item*m)
+{
+    midi_item_p_arr_.push(m);
+}
+
 Moment
 Score_performer::get_mom() const
 {
@@ -61,10 +75,9 @@ Score_performer::get_mom() const
 }
 
 void
-Score_performer::header()
+Score_performer::header(Midi_stream &output_stream)
 {
-    int track_i = 0;
-    Midi_track midi_track( track_i );
+    Midi_track midi_track;
     
     time_t t = time( 0 );
 
@@ -74,38 +87,24 @@ Score_performer::header()
     Midi_text creator( Midi_text::TEXT, str );
     midi_track.add( Moment( 0 ), &creator );
 
-    str = "Generated, at ";
+    str = "Automatically generated at ";
     str += ctime( &t );
     str = str.left_str( str.length_i() - 1 );
-    str += ",\n";
+    str += "\n";
     Midi_text generate( Midi_text::TEXT, str );
     midi_track.add( Moment( 0 ), &generate );
 
     str = "from musical definition: ";
-#if 0    
-    Source_file* sourcefile_l = source_l_g->sourcefile_l( score_l_->defined_ch_C_ );
-    if ( sourcefile_l )
-       str += sourcefile_l->name_str();
-#elif 1
+
     str += score_l_->location_str();
-#else
-    str += score_l_->
-#endif
     Midi_text from( Midi_text::TEXT, str );
     midi_track.add( Moment( 0 ), &from );
 
-    // set track name
-    Midi_text track_name( Midi_text::TRACK_NAME, "Track " + String_convert::i2dec_str( 0, 0, '0' ) );
+    Midi_text track_name( Midi_text::TRACK_NAME, "Track " 
+                         + String_convert::i2dec_str( 0, 0, '0' ) );
     midi_track.add( Moment( 0 ), &track_name );
 
-    // ugh, to please lily when reparsing mi2mu output.
-    // lily currently barfs when no meter present.
-    /* are you sure? init is to 4/4 HWN */
-    Midi_time midi_time( 4, 4, 18 );
-    midi_track.add( Moment( 0.0 ), &midi_time );
-
-    *mlog << "[" << track_i << "]";
-    *midi_stream_p_  << midi_track;
+    output_stream  << midi_track;
 }
 
 void 
@@ -122,12 +121,8 @@ Score_performer::process()
 }
 
 void
-Score_performer::set_score( Score* score_l )
+Score_performer::set_score(Score* score_l )
 {
-    /*
-     why's there no start() when there's a finish()?
-     let's misuse this for start()
-     */
     Global_translator::set_score( score_l );
     midi_l_ = score_l->midi_p_;
 }
@@ -135,12 +130,13 @@ Score_performer::set_score( Score* score_l )
 void
 Score_performer::start()
 {
-    int track_i = 1;
-    Performer_group_performer::set_track( midi_l_, track_i );
-
     if ( midi_l_->outfile_str_ == "" )
        midi_l_->outfile_str_ = default_out_fn + ".midi";
-    
-    midi_stream_p_ = new Midi_stream( midi_l_->outfile_str_, track_i, 384 );
 }
 
+
+int
+Score_performer::get_tempo_i()const
+{
+    return midi_l_->get_tempo_i(Moment( 1, 4 ));
+}
index 31643159815866bfa9bf9c6351d5ceb727df09aa..77324c3879994123c95543650b22d8b9e22faee9 100644 (file)
@@ -77,6 +77,7 @@ Score::run_translator(Global_translator * trans_l)
 void
 Score::process()
 {
+    print();
     paper();
     midi();
 }
@@ -98,7 +99,6 @@ Score::midi()
        warning( "Errors found, /*not processing score*/" );
 //     return;
     }
-    print();
     *mlog << endl;
 }
     
@@ -115,14 +115,12 @@ Score::paper()
     run_translator( score_trans );
     delete score_trans;
     
-    if( errorlevel_i_){
+    if( errorlevel_i_) {
        // should we? hampers debugging. 
        warning("Errors found, /*not processing score*/");
 //     return;
     }
     
-    print();
-
     // debugging
     *mlog << endl;
     pscore_p_->process();
index 85be620ccf4d13ae307521de97934420b53b1c10..64a7df296d3859fcd2daeff4e92c359764c00575 100644 (file)
@@ -69,7 +69,7 @@ Line_of_score::Line_of_score()
 
 
 
-IMPLEMENT_STATIC_NAME(Line_of_score);
+
 IMPLEMENT_IS_TYPE_B1(Line_of_score,Spanner);
 
 void
index b49fbd48f5a72618b371d4b11e336b7a62fefe61..166eb348bb7db6f2b5a070f8da17387e8fa252f5 100644 (file)
@@ -12,7 +12,7 @@
 #include "note-head.hh"
 #include "stem.hh"
 
-IMPLEMENT_STATIC_NAME(Script_column);
+
 IMPLEMENT_IS_TYPE_B1(Script_column,Horizontal_vertical_group_item);
 
 
index 38b2608f25bf149ab604735903f7275ddf699f45..5475ec8cf2369df2959d72d0b3613b3393d62aba 100644 (file)
@@ -81,7 +81,7 @@ Script_def::get_atom(Paper_def *p , int d)const
     return p->lookup_l()->script(preidx_str + symidx_str_);
 }
 
-IMPLEMENT_STATIC_NAME(Script_def);
+
 IMPLEMENT_IS_TYPE_B1(Script_def,General_script_def);
 
 int
index 0c8f1e0590afa2b190db166716817722bde7585f..e33f121bb178eab8ba92e740ccf85bad5c0dc295 100644 (file)
@@ -84,6 +84,6 @@ Script_engraver::do_post_move_processing()
     script_req_l_arr_.set_size(0);
 }
 
-IMPLEMENT_STATIC_NAME(Script_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Script_engraver,Engraver);
 ADD_THIS_ENGRAVER(Script_engraver);
index c74afdb1fb45341848d861a2aaf4b1f9467e08d3..4fed33001398e65ea5299accfa66310f082e8261 100644 (file)
@@ -94,7 +94,7 @@ Script::brew_molecule_p() const
     return out;
 }
 
-IMPLEMENT_STATIC_NAME(Script);
+
 IMPLEMENT_IS_TYPE_B2(Script,Item,Staff_side);
 
 int 
index 655d7aad234f3bf3cf2eb76969065a0ac49baab2..feabdd45b4b2ebbfb2350edc4e1d10711e03c923 100644 (file)
@@ -99,6 +99,6 @@ Slur_engraver::~Slur_engraver()
        requests_arr_[i]->warning("unterminated slur");
     }
 }
-IMPLEMENT_STATIC_NAME(Slur_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Slur_engraver,Engraver);
 ADD_THIS_ENGRAVER(Slur_engraver);
index 098bdc3fe425c60c9ccd718e3817cd7b2d4bf4d4..89bdd2444c9d5fcbff43bf0766fc1a6629ad8175 100644 (file)
@@ -94,5 +94,5 @@ Slur::do_post_processing()
     left_pos_i_ += dir_i_;
     right_pos_i_ += dir_i_;
 }
-IMPLEMENT_STATIC_NAME(Slur);
+
 IMPLEMENT_IS_TYPE_B1(Slur,Spanner);
index c38fe430733d4e3a277492a66243f8133be3d7ff..a6d40fdd9c69bea88f13e90510a6c3dc95b57f1f 100644 (file)
@@ -53,6 +53,6 @@ Span_bar_engraver::do_pre_move_processing()
        
 }
 
-IMPLEMENT_STATIC_NAME(Span_bar_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Span_bar_engraver,Engraver);
 ADD_THIS_ENGRAVER(Span_bar_engraver);
index 61f6b1b4e6816f986cd90658870fd9710e808f90..24430729bd623e5c5cf573e62f17cf037a9eee19 100644 (file)
@@ -72,11 +72,15 @@ Span_bar::do_pre_processing()
        transparent_b_ = true;
        empty_b_ =true;
     } else {
-       if  (type_str_ == "")
+       if (type_str_ == "")
            type_str_ = spanning_l_arr_[0]->type_str_;
        if (type_str_ =="") {
            transparent_b_=true;
            empty_b_ = true;
+       } else if ( type_str_ == "|:") {
+           type_str_ = ".|";
+       } else if ( type_str_ == ":|"){
+           type_str_ = "|.";
        }
     }
 }
@@ -100,5 +104,5 @@ Span_bar::brew_molecule_p()const
     return output;
 }
 
-IMPLEMENT_STATIC_NAME(Span_bar);
+
 IMPLEMENT_IS_TYPE_B1(Span_bar,Bar);
index 9bfe9ef1cedee58e08b651860a6dabe7f8da34e7..cccbd03b7825f2ed0878d41c2f3b3c3ed9bd6ccc 100644 (file)
@@ -15,9 +15,9 @@ Span_score_bar_engraver::get_span_bar_p() const
     return new Span_score_bar;
 }
 
-IMPLEMENT_STATIC_NAME(Span_score_bar_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Span_score_bar_engraver, Span_bar_engraver);
-IMPLEMENT_STATIC_NAME(Piano_bar_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Piano_bar_engraver, Span_score_bar_engraver);
 
 Span_bar*
index 9ee958ae46056f4a8fb586ffe79584ef6d5ea436..d6a7a2fa71b81b396ace127f0155714c2bb3abe9 100644 (file)
@@ -38,8 +38,8 @@ Piano_brace::do_width()const
     return Interval(0,0);
 }
 
-IMPLEMENT_STATIC_NAME(Span_score_bar);
+
 IMPLEMENT_IS_TYPE_B1(Span_score_bar, Span_bar);
 IMPLEMENT_IS_TYPE_B1(Piano_brace, Span_score_bar);
-IMPLEMENT_STATIC_NAME(Piano_brace);
+
     
index f0b76a277ccad7b253bdc9d3f093ddde04441f55..8e2c98bf1996bba52e0d759015616ad13bdb3f28 100644 (file)
@@ -10,7 +10,7 @@
 #include "spanner-elem-group.hh"
 
 
-IMPLEMENT_STATIC_NAME(Spanner_elem_group);
+
 IMPLEMENT_IS_TYPE_B2(Spanner_elem_group,Spanner,Horizontal_vertical_group);
 
 Interval
index eb6d16f6fdb3c4e691cbcc2d91f42e6bf638dc03..1ca347172bda6db6fa9a73820a3c22c76d78760c 100644 (file)
@@ -11,7 +11,7 @@
 #include "p-col.hh"
 #include "p-score.hh"
 
-IMPLEMENT_STATIC_NAME(Spanner);
+
 IMPLEMENT_IS_TYPE_B1(Spanner,Score_elem);
 
 void
diff --git a/lily/staff-gravs.cc b/lily/staff-gravs.cc
deleted file mode 100644 (file)
index 55c148f..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-  staff-gravs.cc -- implement Line_group_engraver
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
-*/
-
-#include "staff-sym.hh"
-#include "staff-gravs.hh"
-#include "command-request.hh"
-#include "bar.hh"
-#include "debug.hh"
-#include "staffline.hh"
-
-
-Line_group_engraver::Line_group_engraver()
-{
-    staffline_p_ =0;
-}
-
-void
-Line_group_engraver::acknowledge_element(Score_elem_info  elem)
-{
-    staffline_p_->add_element(elem.elem_l_);
-}
-
-
-void
-Line_group_engraver::do_removal_processing()
-{
-    staffline_p_->right_col_l_ = get_staff_info().command_pcol_l();
-    typeset_element(staffline_p_);
-    staffline_p_ = 0;
-}
-
-void
-Line_group_engraver::do_creation_processing()
-{
-    staffline_p_ = new Line_of_staff;
-    staffline_p_->left_col_l_ = get_staff_info().command_pcol_l();
-
-    // don't broadcast to self.
-    announce_element(Score_elem_info(staffline_p_,0));
-}
-
-
-IMPLEMENT_STATIC_NAME(Line_group_engraver);
-IMPLEMENT_IS_TYPE_B1(Line_group_engraver,Engraver);
-ADD_THIS_ENGRAVER(Line_group_engraver);
-
index 1ffffd7ab08d74cda72219f71775cfd414bc602e..b21bc5c45aee54db7435607ef2a7fa92788d713f 100644 (file)
 #include "string.hh"
 #include "string-convert.hh"
 
-IMPLEMENT_STATIC_NAME(Staff_performer);
+
 IMPLEMENT_IS_TYPE_B1(Staff_performer,Performer_group_performer);
 ADD_THIS_PERFORMER(Staff_performer);
 
 Staff_performer::Staff_performer()
 {
     midi_mom_ = 0;
-    track_i_ = 0;
-    midi_track_p_ = 0;
+    midi_track_p_ = new Midi_track;
+}
+void
+Staff_performer::do_creation_processing()
+{
+    header();
+}
+
+void
+Staff_performer::do_removal_processing()
+{
+    Performer::play_event( midi_track_p_);
 }
 
 Staff_performer::~Staff_performer()
 {
-     delete midi_track_p_;
+    delete midi_track_p_;
 }
 
 void
 Staff_performer::header()
 {
     // set track name
-    Midi_text track_name( Midi_text::TRACK_NAME, "Track " + String_convert::i2dec_str( track_i_, 0, '0' ) );
+    Midi_text track_name( Midi_text::TRACK_NAME, instrument_str());
     midi_track_p_->add( Moment( 0 ), &track_name );
 
     // set instrument :-)
     Midi_text instrument_name( Midi_text::INSTRUMENT_NAME, instrument_str() );
     midi_track_p_->add( Moment( 0 ), &instrument_name );
 
-    Midi_tempo midi_tempo( midi_l_->get_tempo_i( Moment( 1, 4 ) ) );
+    
+    Midi_tempo midi_tempo( get_tempo_i(  ) );
     midi_track_p_->add( Moment( 0 ), &midi_tempo );
 }
 
@@ -52,28 +63,12 @@ Staff_performer::instrument_str()
     return Translator::id_str_; 
 }
 
-void
-Staff_performer::midi_output( Midi_stream* midi_stream_l )
-{
-    *mlog << "[" << track_i_ << "]";
-    *midi_stream_l << *midi_track_p_;
-}
-
 void 
 Staff_performer::play_event( Midi_item* l )
 {
     Moment mom = get_mom();
     Moment delta_t = mom - midi_mom_ ;
     midi_mom_ += delta_t;
-    midi_track_p_->add( delta_t, l );    
-}
-
-void
-Staff_performer::set_track( Midi_def* midi_l, int& track_i_r ) 
-{ 
-    midi_l_ = midi_l;
-    track_i_ = track_i_r++;
-    midi_track_p_ = new Midi_track( track_i_ );
-    header();
+    midi_track_p_->add( delta_t, l);
 }
 
index 9cb61495f960c92bf75e1d770f1dff481ddc5c8c..a661a0cb974d1721251dbe63b8535af057ab8768 100644 (file)
@@ -117,5 +117,5 @@ Staff_side::do_substitute_dependency(Score_elem*o, Score_elem*n)
        staff_sym_l_ = n ? (Staff_symbol*) n->spanner():0;
 }
 
-IMPLEMENT_STATIC_NAME(Staff_side);
+
 IMPLEMENT_IS_TYPE_B1(Staff_side, Score_elem);
index 2894a34120e0164cafc12f65fb01f20df9cb41b3..03de4a59d9a97e68b82f8e35682a7903309a611c 100644 (file)
@@ -50,6 +50,6 @@ Staff_sym_engraver::do_process_requests()
 }
 
 
-IMPLEMENT_STATIC_NAME(Staff_sym_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Staff_sym_engraver,Engraver);
 ADD_THIS_ENGRAVER(Staff_sym_engraver);
index 718bddbc586b95bde847961ef963ea0a096588d9..c228be587060fcdb7459813589995a0c5b7ad6d4 100644 (file)
@@ -18,7 +18,7 @@ Staff_symbol::Staff_symbol(int l)
     no_lines_i_ = l;
 }
 
-IMPLEMENT_STATIC_NAME(Staff_symbol);
+
 IMPLEMENT_IS_TYPE_B1(Staff_symbol,Spanner);
 
 void
index 359d719f0beba863a7a12d60a610461462ae4ff8..7e4aa95741c9483566b1b52f1623b0ebabc9e47c 100644 (file)
@@ -17,7 +17,7 @@
 #include "p-score.hh"
 
 
-IMPLEMENT_STATIC_NAME(Line_of_staff);
+
 IMPLEMENT_IS_TYPE_B2(Line_of_staff,Spanner,Horizontal_vertical_group);
 
 void
index a5cb842cbb881e43408fa9fe5c6efcc25160c817..38f84a48dcae51f548e65184d439a80439b3fbe8 100644 (file)
@@ -172,6 +172,6 @@ Stem_beam_engraver::set_feature(Feature i)
        default_dir_i_ = i.value_;
 }
 
-IMPLEMENT_STATIC_NAME(Stem_beam_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Stem_beam_engraver,Engraver);
 ADD_THIS_ENGRAVER(Stem_beam_engraver);
index 00b7423a2b014356f2a833a9b9c3fa2bd2bd641c..cf811ddf56025118613ec50b517be066b8026f43 100644 (file)
@@ -51,7 +51,7 @@ Stem::Stem(int c)
     stem_xoffset_f_ =0;
 }
 
-IMPLEMENT_STATIC_NAME(Stem);
+
 IMPLEMENT_IS_TYPE_B1(Stem,Item);
 
 void
index c2554516fe16bdc89903ac863194ad051fd93f78..cf7884fd7aba2fec0a409cc83d0c8fa1ac96dc85 100644 (file)
@@ -53,5 +53,5 @@ Super_elem::do_add_processing()
 
 
 
-IMPLEMENT_STATIC_NAME(Super_elem);
+
 IMPLEMENT_IS_TYPE_B1(Super_elem,Score_elem);
index 9f596cba76ffad37696264d71f9f73d7599225c1..b445c9c4b5964a9d467e707cf667d5a0ad269482 100644 (file)
@@ -7,7 +7,7 @@
 */
 #include "swallow-grav.hh"
 
-IMPLEMENT_STATIC_NAME(Swallow_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Swallow_engraver,Engraver);
 ADD_THIS_ENGRAVER(Swallow_engraver);
 
index 7bdb355adc9793653b65fae396c9f55822df5bb6..332964af408d088720a1dc468110e0d7113b5143 100644 (file)
@@ -8,6 +8,6 @@
 
 #include "swallow-perf.hh"
 
-IMPLEMENT_STATIC_NAME(Swallow_performer);
+
 IMPLEMENT_IS_TYPE_B1(Swallow_performer, Performer);
 ADD_THIS_PERFORMER(Swallow_performer);
index 484729579becf4cc01a027a9c388b855893b6fb8..f072a5b28641efbe3aa251df9d4e7995ee4334ba 100644 (file)
@@ -7,6 +7,7 @@
 */
 
 #include "proto.hh"
+#include "plist.hh"
 #include "list.tcc"
 #include "cursor.tcc"
 
index 4d6c641436a4e78c073ba72b73c42a200fcd7934..9ab7d0a25b5f9d6f21f485d9c40cda432a175dec 100644 (file)
@@ -58,5 +58,5 @@ Text_def::print() const
        style_str_ << "align " << align_i_ << '\n';
 }
 
-IMPLEMENT_STATIC_NAME(Text_def);
+
 IMPLEMENT_IS_TYPE_B1(Text_def,General_script_def);
index d685a47a126a110947541afd4668c0009a0df01a..5095b23b3c92e7949e872cc6aa1b57e8af4b34a4 100644 (file)
@@ -70,6 +70,6 @@ Text_engraver::do_post_move_processing()
 {
     text_req_l_ = 0;
 }
-IMPLEMENT_STATIC_NAME(Text_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Text_engraver,Engraver);
 ADD_THIS_ENGRAVER(Text_engraver);
index a8cddcfade0c8b5f59b80aa9dd8ff66269139c6d..3ae99c40ad1b352ad71fe51d995d682dcb15be96 100644 (file)
@@ -57,5 +57,5 @@ Text_item::brew_molecule_p() const
     return mol_p;
 }
 
-IMPLEMENT_STATIC_NAME(Text_item);
+
 IMPLEMENT_IS_TYPE_B1(Text_item,Item);
index 10bbb0b0fa5db74ac8d88042a85ea2b5420accb4..437739019ae8b8346667529b5c3ac35c69b3df58 100644 (file)
@@ -31,7 +31,7 @@ Text_spanner::Text_spanner()
     support_span_l_ = 0;
 }
 
-IMPLEMENT_STATIC_NAME(Text_spanner);
+
 IMPLEMENT_IS_TYPE_B1(Text_spanner,Spanner);
 
 void
index 981e3f12c729eb939eae9e082874a487c83b42db..e49cd5b7e5aa2f82454614b2dedd97360335531a 100644 (file)
@@ -119,6 +119,6 @@ Tie_engraver::set_feature(Feature f)
        dir_i_ = f.value_;
 }
 
-IMPLEMENT_STATIC_NAME(Tie_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Tie_engraver,Engraver);
 ADD_THIS_ENGRAVER(Tie_engraver);
index 7ce834946c887d185a5b5318e814135ebdd61eb4..d67aacccfcbfdc864695699e767a8f7f4cf58ad3 100644 (file)
@@ -91,5 +91,5 @@ Tie::do_substitute_dependency(Score_elem*o, Score_elem*n)
 }
 
 
-IMPLEMENT_STATIC_NAME(Tie);
+
 IMPLEMENT_IS_TYPE_B1(Tie,Bow);
index 06e30c21e998a7a3264220f3192f3260d0a8d2fe..0d86219b267f82f31cc4d5e5df0720714d24746f 100644 (file)
@@ -13,7 +13,7 @@ Translator::Translator()
     iterator_count_  = 0;
 }
 
-IMPLEMENT_STATIC_NAME(Translator);
+
 IMPLEMENT_IS_TYPE_B(Translator);
 
 bool
index 506bce550cde24aaa061b6802b639af748e304bc..4ba8b7c5a4d69f566273907571113be9c4e20a20 100644 (file)
@@ -58,6 +58,6 @@ Vertical_align_element::Vertical_align_element()
     empty_b_ =true;
 }
 
-IMPLEMENT_STATIC_NAME(Vertical_align_element);
+
 IMPLEMENT_IS_TYPE_B1(Vertical_align_element, Score_elem);
 
index 6eb56a4dffdd7c83797ab1fcff36d08b01832de2..83cfae7acce35adfe4e37e8fd32850e9b24d1eeb 100644 (file)
@@ -43,6 +43,6 @@ Vertical_align_engraver::acknowledge_element(Score_elem_info i)
     }
 }
 
-IMPLEMENT_STATIC_NAME(Vertical_align_engraver);
+
 IMPLEMENT_IS_TYPE_B1(Vertical_align_engraver, Engraver);
 ADD_THIS_ENGRAVER(Vertical_align_engraver);
index 461f6bd2822b86f1ffbc38dc8f4c66b7e985e286..94a8c5ee723fe24995bb82465d65a79af374e8a4 100644 (file)
@@ -8,5 +8,5 @@
 
 #include "vertical-align-spanner.hh"
 
-IMPLEMENT_STATIC_NAME(Vertical_align_spanner);
+
 IMPLEMENT_IS_TYPE_B2(Vertical_align_spanner, Vertical_align_element, Spanner);
index 5021a294407897c6750dca903d0f775fe5f856fe..f5e5df0c5fb7bbbffe9aa6b5bd0bd95026b95184 100644 (file)
@@ -34,7 +34,7 @@ Voice_group_engravers::do_try_request(Request*r_l)
 }
 
 
-IMPLEMENT_STATIC_NAME(Voice_group_engravers);
+
 IMPLEMENT_IS_TYPE_B1(Voice_group_engravers,Engraver_group_engraver);
 
 void
index ac5c6cb7da1f954cb2f3b63de6d730fa3f2e4d43..fa3393347b003e3be8756406996e71d7b6265bf8 100644 (file)
@@ -13,7 +13,7 @@
 
 //IMPLEMENT_IS_TYPE_B2(Voice_group_performer,Performer, Translator);
 IMPLEMENT_IS_TYPE_B1(Voice_group_performer,Performer_group_performer);
-IMPLEMENT_STATIC_NAME(Voice_group_performer);
+
 ADD_THIS_PERFORMER(Voice_group_performer);
 
 Voice_group_performer::Voice_group_performer()
index 23fee6acc0c4e3ab69e530c6e7be79f1b86503ac..07e44b7041b3908667c160af6fe362ef5dbc7d22 100644 (file)
@@ -24,10 +24,7 @@ $(outdir)/%.o: $(outdir)/%.cc
        $(DO_CXX_COMPILE)
 
 $(outdir)/%.cc: %.y
-#      $(BISON) -d $<
        $(BISON) $<
-#      mv $(shell basename $@ .cc ).tab.h $(include-lib)/$(shell basename $@ .cc).hh
-#      mv $(shell basename $@ .cc ).tab.h $(outdir)/$(shell basename $@ .cc).hh
        mv $(shell basename $@ .cc ).tab.c $@
 
 $(outdir)/%.hh: %.y
@@ -40,25 +37,6 @@ $(outdir)/%.cc: %.l
 # could be faster:
 #      $(FLEX) -8 -Cf -t $< > $@
 
-$(outdir)/%.text: $(outdir)/%.1
-       groff -man -Tascii $< > $@
-
-$(depth)/%.text: $(outdir)/%.text
-       cp $< $@
-
-$(outdir)/%.html: %.pod
-       $(pod2html)  $<
-       mv $(notdir $@) $(outdir)/
-
-$(outdir)/%.5: %.pod
-       $(pod2groff)
-$(outdir)/%.1: %.pod
-       $(pod2groff)
-
-
-
-#
-
 # outdirs:
 #
 # ?$(outdir)/%.dep:
@@ -75,17 +53,3 @@ $(outdir)/%.1: %.pod
 $(depth)/%.text: check-doc-deps
        rm -f $@
        ln `find ${depth}/Documentation -name $@|head -1` .
-
-$(outdir)/%.xpm: %.gif
-       giftopnm $< | ppmtoxpm > $@
-
-$(outdir)/%.ps: $(outdir)/%.dvi
-       dvips -o $@ $<
-
-$(outdir)/%.dvi: $(outdir)/%.mudtex
-       latex '\batchmode \input $<'
-
-$(outdir)/%.mudtex: %.doc
-       $(depth)/bin/mudela-book --outdir=$(outdir)/ --outname=$(notdir $@) $<
-
-
index a564a1f91c448e0ceec53f7f83a2c19f57763f6e..10de977c254cae6fe965e61d68d925d7ec3e6747 100644 (file)
@@ -140,8 +140,8 @@ dist:
        $(MAKE) localdist
        chmod -Rf a+rX $(distdir)
 
-       (cd ./$(depth); $(TAR) cf $(DIST_NAME).tar $(DIST_NAME);)
-       (cd $(depth); gzip -9 $(DIST_NAME).tar)
+       (cd ./$(depth); $(TAR) cf - $(DIST_NAME) | gzip -9 > $(DIST_NAME).tar.gz)
+
 # should be trapped
        rm -rf $(distdir)/
 
index 1b55b27d71ca28314972778ea498f0ef590b57e3..cfcf0e146c688fad513cb8b52dbd3ddacc993c27 100644 (file)
@@ -1,21 +1,22 @@
 Begin3
 Title: LilyPond
-Version: 0.0.76
-Entered-date: 07/28/97
+Version: 0.0.77.jcn1
+Entered-date: 07/29/97
 Description: 
 GNU LilyPond which converts music definition files into visual or
 audio output: it can typeset formatted sheet music to a TeX file and
 and (mechanical) performances to MIDI files. Features include multiple
-meters, clefs, keys, lyrics, versatile input-language, cadenzas
+staffs, meters, clefs, keys, lyrics, versatile input-language, cadenzas
 beams, slurs, triplets.
+
 Keywords: music typesetting midi notation
 Author: hanwen@stack.nl (Han-Wen Nienhuys)
        jan@digicash.com (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
-Primary-site: pcnov095.win.tue.nl /pub/lilypond/  
-       340k lilypond-0.0.76.tar.gz
-Alternate-site: prep.ai.gnu.mit.edu /pub/gnu 
-Original-site: 
+Primary-site: sunsite.unc.edu /pub/Linux/apps
+       340k lilypond-0.0.77.jcn1.tar.gz 
+Original-site: pcnov095.win.tue.nl /pub/lilypond/
+       340k lilypond-0.0.77.jcn1.tar.gz 
 Platform: Unix/win32, GNU C++
 Copying-policy: GPL
 End
index b9a6613f05ca7b41715a90b12addd0e2073f310a..03f416baf0d3591fbf83091b1b39a40b63a2d319 100644 (file)
@@ -6,16 +6,17 @@ Description:
 GNU LilyPond which converts music definition files into visual or
 audio output: it can typeset formatted sheet music to a TeX file and
 and (mechanical) performances to MIDI files. Features include multiple
-meters, clefs, keys, lyrics, versatile input-language, cadenzas
+staffs, meters, clefs, keys, lyrics, versatile input-language, cadenzas
 beams, slurs, triplets.
+
 Keywords: music typesetting midi notation
 Author: hanwen@stack.nl (Han-Wen Nienhuys)
        jan@digicash.com (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
-Primary-site: pcnov095.win.tue.nl /pub/lilypond/  
-       340k lilypond-@TOPLEVEL_VERSION@.tar.gz
-Alternate-site: prep.ai.gnu.mit.edu /pub/gnu 
-Original-site: 
+Primary-site: sunsite.unc.edu /pub/Linux/apps
+       340k lilypond-@TOPLEVEL_VERSION@.tar.gz 
+Original-site: pcnov095.win.tue.nl /pub/lilypond/
+       340k lilypond-@TOPLEVEL_VERSION@.tar.gz 
 Platform: Unix/win32, GNU C++
 Copying-policy: GPL
 End
index 6e271cb10861007cb596e85824689942a619885a..4aa7858d205fe64f3410bc4bb06461bafa9fbbe3 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 0.0.76
+Version: 0.0.77.jcn1
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.0.76.tar.gz
+Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.0.77.jcn1.tar.gz
 Summary: A preprocessor to make TeX typeset music.
 URL: http://www.stack.nl/~hanwen/lilypond
 Packager: Han-Wen Nienhuys <hanwen@stack.nl>
@@ -14,7 +14,7 @@ Buildroot: /tmp/lilypond_build
 GNU LilyPond which converts music definition files into visual or
 audio output: it can typeset formatted sheet music to a TeX file and
 and (mechanical) performances to MIDI files. Features include multiple
-meters, clefs, keys, lyrics, versatile input-language, cadenzas
+staffs meters, clefs, keys, lyrics, versatile input-language, cadenzas
 beams, slurs, triplets.
 
 %prep
@@ -27,7 +27,7 @@ rm -rf $RPM_BUILD_ROOT
 strip lily/out/lilypond mi2mu/out/mi2mu
 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/error.text Documentation/out/faq.text Documentation/out/gnu-music.text Documentation/out/index.text Documentation/out/language.text Documentation/out/lilygut.text Documentation/out/lilyliterature.text Documentation/out/lilypond.text Documentation/out/mi2mu.text Documentation/out/mudela-book.text Documentation/out/other-packages.text BUGS TODO NEWS DEDICATION ANNOUNCE README input/beams.ly input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/error.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.ly input/standchen.tex input/toccata-fuga-E.ly input/twinkle.ly input/wohltemperirt.ly Documentation/out/mudela-course.dvi Documentation/out/mudela-man.dvi Documentation/lelie_logo.gif
+%doc Documentation/out/AUTHORS.text Documentation/out/CodingStyle.text Documentation/out/INSTALL.text Documentation/out/MANIFESTO.text Documentation/out/convert-mudela.text Documentation/out/error.text Documentation/out/faq.text Documentation/out/gnu-music.text Documentation/out/index.text Documentation/out/language.text Documentation/out/lilygut.text Documentation/out/lilyliterature.text Documentation/out/lilypond.text Documentation/out/links.text Documentation/out/mi2mu.text Documentation/out/mudela-book.text Documentation/out/other-packages.text BUGS TODO NEWS DEDICATION ANNOUNCE README input/beams.ly input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/error.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.ly input/standchen.tex input/toccata-fuga-E.ly input/twinkle.ly input/wohltemperirt.ly Documentation/out/mudela-course.dvi Documentation/out/mudela-man.dvi Documentation/lelie_logo.gif
 /usr/bin/convert-mudela
 /usr/bin/mudela-book
 /usr/bin/lilypond
index 5cab6df5a71c0d8fe61bcbddf830faa34a9dea8e..a37f43022196756666ac60242f5fa12f31314946 100644 (file)
@@ -14,7 +14,7 @@ Buildroot: /tmp/lilypond_build
 GNU LilyPond which converts music definition files into visual or
 audio output: it can typeset formatted sheet music to a TeX file and
 and (mechanical) performances to MIDI files. Features include multiple
-meters, clefs, keys, lyrics, versatile input-language, cadenzas
+staffs meters, clefs, keys, lyrics, versatile input-language, cadenzas
 beams, slurs, triplets.
 
 %prep