]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.3.93 release/1.3.93
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 3 Oct 2000 23:07:05 +0000 (01:07 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 3 Oct 2000 23:07:05 +0000 (01:07 +0200)
===========

* Added some error messages for toplevel and stray string parse errors.

* Don't start more than one slur at a time.

* Set direction of Slur too in a2-engraver.

1.3.92.h

117 files changed:
CHANGES
Documentation/bibliography/engraving.bib
Documentation/faq.texi [deleted file]
Documentation/index.texi
Documentation/user/glossary.tely
Documentation/user/properties.itely
VERSION
aclocal.m4
config.make.in
configure
configure.in
dstreamrc [deleted file]
input/trip.ly
lily/a2-engraver.cc
lily/all-font-metrics.cc
lily/audio-column.cc
lily/audio-element.cc
lily/audio-item.cc
lily/bar.cc
lily/break-align-item.cc
lily/breathing-sign.cc
lily/change-translator.cc
lily/chord-name.cc
lily/clef-engraver.cc
lily/clef-item.cc
lily/command-request.cc
lily/dots.cc
lily/dynamic-performer.cc
lily/global-translator.cc
lily/identifier.cc
lily/include/audio-element.hh
lily/include/audio-item.hh
lily/include/change-translator.hh
lily/include/command-request.hh
lily/include/engraver-group-engraver.hh
lily/include/identifier.hh
lily/include/lily-guile.hh
lily/include/lyric-combine-music.hh
lily/include/lyric-performer.hh
lily/include/music-output-def.hh
lily/include/music-sequence.hh
lily/include/music-wrapper.hh
lily/include/music.hh
lily/include/musical-pitch.hh
lily/include/musical-request.hh
lily/include/note-performer.hh
lily/include/paper-def.hh
lily/include/part-combine-music.hh
lily/include/relative-music.hh
lily/include/request.hh
lily/include/scope.hh
lily/include/score.hh
lily/include/staff-symbol-referencer.hh
lily/include/symbol-cache.hh [new file with mode: 0644]
lily/include/tempo-performer.hh
lily/include/time-signature-performer.hh
lily/include/translator-group.hh
lily/include/translator.hh
lily/include/transposed-music.hh
lily/key-engraver.cc
lily/lily-guile.cc
lily/line-group-group-engraver.cc
lily/lookup.cc
lily/lyric-combine-music.cc
lily/lyric-performer.cc
lily/moment.cc
lily/music-output-def.cc
lily/music-sequence.cc
lily/music-wrapper.cc
lily/music.cc
lily/musical-pitch.cc
lily/musical-request.cc
lily/my-lily-lexer.cc
lily/note-head.cc
lily/note-performer.cc
lily/paper-def.cc
lily/part-combine-music.cc
lily/performance.cc
lily/property-engraver.cc
lily/relative-octave-music.cc
lily/request.cc
lily/scope.cc
lily/score-element.cc
lily/score-engraver.cc
lily/score.cc
lily/scores.cc
lily/script-engraver.cc
lily/side-position-interface.cc
lily/slur-bezier-bow.cc
lily/staff-symbol-referencer.cc
lily/stanza-number-engraver.cc
lily/symbol-cache.cc [new file with mode: 0644]
lily/tempo-performer.cc
lily/tfm-reader.cc
lily/time-signature-performer.cc
lily/translator-group.cc
lily/translator.cc
lily/transposed-music.cc
lily/unfolded-repeat-iterator.cc
lily/volta-engraver.cc
lily/volta-spanner.cc
ly/engraver.ly
ly/performer.ly
ly/property.ly
make/out/lilypond.lsm
make/out/lilypond.spec
make/toplevel.make.in
mutopia/J.S.Bach/wtk1-fugue2.ly
scm/accordion-script.scm [deleted file]
scm/basic-properties.scm
scm/chord-names.scm
scm/lily.scm
scm/midi.scm
scm/script.scm
scripts/etf2ly.py
stepmake/aclocal.m4
stepmake/configure

diff --git a/CHANGES b/CHANGES
index 06efe0291be7a8d83b156a0a4ff5b86f90f21144..7165bea58744f79ea3618c667baa2feed2a686fd 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -7,8 +7,32 @@
 
 * Set direction of Slur too in a2-engraver.
 
-1.3.91.uu1
-==========
+1.3.92.hwn1
+===========
+* Removed calls to global GUILE namespace.
+
+* Added \property: scriptDefinitions, explicitClefVisibility,
+explicitKeySignatureVisibility, instrumentEqualizer,
+dynamicAbsoluteVolumeFunction
+
+* Added element properties Bar::break-glyph-function,
+Break_align_item::space-alist, Chord_name::chord-name-function
+
+* Added \property combineParts: part combiner switched off by default.
+
+
+* Remove all print methods.
+
+* Use Scope::try_retrieve if possible.
+
+* Remove FAQ in favor of URL.
+
+* etf2ly.py robustness fixes.
+
+* Don't compensate for left edge in broken volta spanner.
+
+1.3.92
+======
 
 * RPM .spec fixes.
 
index 743b93f3fd07c669da31a779dbfb3337729dc526..7d65243b3b980270023af1843e8775785dfbc704 100644 (file)
@@ -31,7 +31,7 @@
   title =       {Music notation},
   year =        1991,
   publisher={Hal Leonard Publishing Corporation},
-isbn ={0793508479}
+isbn ={0793508479},
 note={HWN writes: `Book' edition of lecture notes from XXX school of
 music.  The book looks like it is xeroxed from bad printouts.  The
 content has nothing you won't find in other books like\cite{read} or
diff --git a/Documentation/faq.texi b/Documentation/faq.texi
deleted file mode 100644 (file)
index ad43f36..0000000
+++ /dev/null
@@ -1,825 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@setfilename faq.info
-@settitle FAQ - GNU LilyPond FAQs
-
-@node Top, , , (dir)
-@top
-@menu
-* Miscellaneous::                 Miscellaneous
-* Installing::                    Installing
-* Documentation::                 Documentation
-* Language- mudela::              Language- mudela
-* Do you support -::              Do you support -
-* How do I -::                    How do I -
-* Development::                   Development
-* Running::                       Running
-* Copyright::                     Copyright
-* Windows32::                     Windows32
-@end menu
-@chapter FAQ - GNU LilyPond FAQs
-
-
-@node Miscellaneous, ,,top
-@section Miscellaneous
-
-[FIXME: rewrite FAQ, include general questions] 
-
-@subsubsection HELP! I'm stuck!
-
-Please read this document carefully.  If you are still at loss, send
-your questions to the @strong{mailing list}, and not to authors
-directly.
-
-Note: relative paths are meant to be relative to the source directory
-
-@subsubsection I've got a simple question, but this FAQ doesn't help!
-
-Please have a look in the searchable mail archives of gnu-music-discuss
-and help-gnu-music (see next FAQ entry).  Your question may well have
-been answered before.
-
-@subsubsection Are there archives of the mailing list?
-
-Yes. Currently, all information on the mailing lists is available at
-gnu.org:
-
-@itemize
-@item @uref{http://mail.gnu.org/mailman/listinfo/gnu-music-discuss}
-@item @uref{http://mail.gnu.org/mailman/listinfo/info-gnu-music}
-@item @uref{http://mail.gnu.org/mailman/listinfo/bug-gnu-music}
-@item @uref{http://mail.gnu.org/mailman/listinfo/help-gnu-music}
-@end itemize
-
-Archives of mail before September 12, 2000 are at
-@code{mail-archive.com}:
-
-@itemize
-@item @uref{http://www.mail-archive.com/info-gnu-music@@gnu.org}
-@item @uref{http://www.mail-archive.com/help-gnu-music@@gnu.org}
-@item @uref{http://www.mail-archive.com/bug-gnu-music@@gnu.org})
-@item @uref{http://www.mail-archive.com/gnu-music-discuss@@gnu.org}
-@end itemize
-
-@node Installing,, ,top
-@section Installing
-
-
-@subsubsection If I install the .exe file on my DOS/windows 3.11 machine, it doesn't work
-
-The NT port is done with the Cygnus GNU/Windows32 port of the GNU utils.
-It does @emph{not} work with windows 3.x; you need Windows-NT (95/98?).
-
-@subsubsection Where is guile-config
-
-Old RedHat RPMS don't include guile-config.  You need guile-config as it
-was produced during the RPM build run.  Build the RPM from source
-(@file{.src.rpm}), and use the guile-config that is in
-@file{/usr/src/redhat/BUILD/guile-1.3/guile-config/}.
-
-@subsubsection I get all kinds of errors while  compiling @file{parser.cc}
-
-LilyPond uses features of bison version 1.25. Please confirm that
-you are using a version 1.25 or better, that is @strong{GNU} bison
-@strong{1.25}. Don't forget to do "make clean" after installing it. Don't
-forget to remove the stale @file{bison.simple} as well.
-
-If the problem persists, then please send a bug report to the mailing list.
-
-@subsubsection I upgraded by applying a patch, and now my configure/build breaks.
-
-Patches don't include automatically generated files, i.e. 
-@file{configure} and files generated by @file{configure}.  Regenerate them 
-yourself:
-@example 
-
-    autoconf
-    configure
-@end example 
-
-
-@subsubsection Is there an emacs mode?
-
-Yes.  It is included with the source archive as @file{lilypond-mode.el}.
-If you have an RPM it is in @file{/usr/doc/lilypond-X/}.  You have to
-install it yourself.
-
-@subsubsection How do I create the @file{.tfm} files?
-
-You don't.  The @file{.tfm} files should be generated automatically by
-Metafont when you run TeX.  Check your TeX installation, or ask
-your local TeX guru.  The supplied @file{.afm} files are intended to
-be used by LilyPond, not by any other programs.
-
-@node Documentation,, ,top
-@section Documentation
-
-@subsubsection What a sober website/manual you have there!
-
-LilyPond development is moving fast, so the documentation will often be out
-of date.  But don't hesitate to point out inaccuracies. Whip up your
-mail reader and write to the mailing list.
-
-@subsubsection Please take me off your mailing list, I get  so much mail!
-
-Don't ask Han-wen, don't ask David. Instead, read about
-@uref{../../index.html#mailing-lists,  the mailing lists} here.
-
-
-
-@node Language- mudela,, ,top
-@section Language: mudela
-
-@subsubsection Why do I have to type the accidentals to the note if I
-specified them in the keysignature?
-
-Take this example
-@example 
-
-    cis cis
-@end example 
-
-Independently of how it was written and what the current key was, you
-would say that you are playing and reading "two C-sharp" notes, so you
-have to enter C-sharp twice.
-
-@subsubsection What is @code{cis} anyway
-
-@code{cis} is the dutch naming for C-sharp. The notes are named
-a, b,.., g. The suffix -is means sharp, and -es flat. This system is
-common in a number of languages (such as swedish, dutch, german.)
-Certain other languages (such as English, French and Italian) just add
-the word for "sharp" to the notename.
-
-We chose the Dutch system, because we're dutch. You are free to chose
-whatever names you like; they are user definable.
-
-@subsubsection Why are [] around the notes, and () inbetween?
-
-[] designate beams, a note can only be in one beam at the same
-time. () is a slur, which connects notes.  You need to be able to 
-specify
-@example 
-
-    a()a()a
-@end example 
-
-@subsubsection I want to insert some TeX commands.
-
-You shouldn't: it's against LilyPond philosophy to have typesetting
-commands in the mudela source. Moreover, this would be difficult.
-LilyPond uses TeX like a glorified output engine: the output consists
-of (x,y) positions and symbols.  You can only sensibly do TeX stuff in
-the symbol string.  You can access the symbol string easily for some
-symbols (notably lyrics and @code{^"text"} commands).
-
-@node Do you support -,, ,top
-@section Do you support ...
-
-@subsubsection Do you support pop songs (chords, single staff, lyrics)?
-
-Yes, see the @file{twinkle-pop} example.
-
-@subsubsection Do you support guitar fret diagrams?
-
-No. We ourselves don't play guitar, and don't know the fine points of
-this notation.  We would welcome anyone who could give this a try.
-
-@subsubsection Do you support TAB notation?
-
-No. The same as for the previous question goes.
-
-@subsubsection Do you support multiple staff-sizes?
-
-Yes.  At this time you can choose between 11, 13, 16, 19, 20, 23 and 20
-pt staff-size.  Use the @code{staffSpace} property for setting the
-size of the staff, and @code{fontSize} for setting the size of the
-glyphs.
-
-@subsubsection Do you support Gregorian chant notation?
-
-No.
-
-
-@subsubsection Do you support grace notes?
-
-Yes. See @file{input/test/grace.ly}.
-
-@node How do I -,, ,top
-@section How do I ....
-
-@subsubsection How do I change the page layout?
-
-The height and width of the music on each page is set 
-using the paper variables @code{textheight} and @code{linewidth} in
-the input file. 
-If you want to change the placement of the page number or the 
-layout of the title, you could run @code{lilypond infile.ly} and 
-include the generated @file{infile.tex} file in your own LaTeX 
-wrapper file. The easiest way is to start from the ly2dvi default
-layout, using the following steps (assuming that the input file 
-is @file{infile.ly}:
-
-@itemize @bullet
-
-  @item @code{ly2dvi -kK infile.ly}
-
-  @item Edit the generated LaTeX file @file{infile_lyN.tex} (@code{N} is 
-  some number) to get the desired layout. Some aspects are determined in 
-  the file titledefs.tex. 
-
-  @item Run @code{latex infile_lyN.tex}
-
-  @item If you update the Mudela file, run @code{lilypond infile.ly}
-        and then @code{latex infile_lyN.tex}.
-@end itemize
-Another alternative is to use @command{mudela-book}, where smaller or
-larger music examples can be included in a LaTeX or Texinfo file.
-
-@subsubsection The tagline is visible in the .dvi file but is not printed on paper.
-
-The default page size is A4. If you use letter sized papers, 
-add the following at the top of your Mudela file.
-@example
-\paper@{
-  papersize="letter";
-@}
-\include "paper20.ly"
-@end example 
-(Note that setting the papersize in the ordinary paper section inside
-a score declaration will not have the desired effect.)
-The default paper size can be set globally for the installation
-in the file @file{declarations.ly}.
-
-@subsubsection How do I place lyrics under @emph{each} of the staves in a score, as choral music. I can work out how to put lyrics for each line all under the top line, or at the bottom but not between!
-
-You change the order lyrics and staves.  You have to name all
-staves (lyric and melodic), otherwise they will end up in the same
-staff/lyricline
-@example 
-       \score @{
-               < \melodic \type Staff = "treble" \trebleMelody
-                 \lyric \type Lyrics = "tlyrics" \trebtext
-                 \type Staff = "bass" \melodic \bassMelody        
-                 \lyric \type Lyrics = "blyrics" \basstext      
-               >
-               \paper @{  @}
-       @}
-@end example 
-
-@subsubsection How do I put more than one marking on a note?
-
-You can stack them 
-@example 
-
-       c4^"a"^"b"
-@end example 
-
-or use spacing-notes to put markings at different horizontal positions 
-@example 
-
-       < c1
-         @{ s4\ff s4^"text" s4-\marcato s4 @}
-       >
-@end example 
-
-This also works for crescendi, eg,
-@example 
-
-       < c1
-         @{ s4\< s2 \! s4 @}
-       >
-@end example 
-
-@subsubsection How do I get a fermata on a barline
-
-The trick is to specify the fermata as a \mark.  Use the following macro
-before the bar line where you want the fermata:
-
-@example
-barFermata = \mark "\\font\\fetafont=feta20\\fetafont\\char40";
-@end example
-
-The problem is that marks that occur at a line break are typeset only at
-the beginning of the next line, opposite to what you want for the
-fermata. This can be corrected by the following code
-
-@example
-        \property basicMarkProperties \push #'visibility-lambda  = #begin-of-line-i\nvisible
-@end example
-
-You can use a similar trick to put coda signs and comma's on barline.
-
-@subsubsection How do I combine multiple pieces into one document?
-
-There are several solutions:
-
-@itemize @bullet
-@item  
-@example 
-
-       ly2dvi foo.ly bar.ly
-@end example 
-produces one combined @file{foo.dvi}
-@item  make a toplevel @file{.ly} file that contains al pieces:
-@example 
-
-       % booklet.ly
-       \input "piece-1.ly"
-       \input "piece-2.ly"
-       \input "piece-3.ly"
-@end example 
-@item  make a hybrid TeX/LilyPond @file{.doc} document (see the
-     @file{Documentation/tex} directory).
-@end itemize
-
-For the first two solutions, you will need to move @code{\header} info 
-in each individual piece from toplevel into the @code{\paper} block.
-
-There are several examples in the @file{mutopia} directory.
-
-@subsubsection How do I change the tagline 'Lily was here'?
-
-In the @code{\header} field, add a @code{tagline} entry, e.g.
-@example 
-
-tagline="Typeset by GNU LilyPond"
-@end example 
-
-@subsubsection Can I make blank manuscript paper with LilyPond?
-
-Theoretically, yes but it is easier to do with (La)TeX. This LaTeX file
-will do the trick for you:
-
-
-@example
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% notepaper.tex
-% Mats Bengtsson, 18/5 2000
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[a4paper]@{article@}
-
-\usepackage@{ifthen@}
-\usepackage[noheadfoot,hmargin=15mm,vmargin=20mm]@{geometry@}
-
-\pagestyle@{empty@}
-
-\newcounter@{staffnumber@}
-\newlength@{\interstaffline@}
-
-\newcommand@{\drawline@}@{\hbox@{\rule@{\textwidth@}@{0.5pt@}@}
-  \nointerlineskip\vskip\interstaffline\nointerlineskip@}
-
-\newcommand@{\printstaff@}@{\vfill
-  \vbox@{\drawline\drawline\drawline\drawline\drawline@}
-  \vfill@}
-
-\begin@{document@}
-\typeout@{@}\typeout@{@}
-\typein[\staffsize]@{Type in the staff size (20pt is a common value):@}
-\setlength@{\interstaffline@}@{\staffsize@}
-\setlength@{\interstaffline@}@{.25\interstaffline@}
-\typeout@{@}
-\typein[\num]@{Type in the number of staffs:@}
-\setcounter@{staffnumber@}@{\num@}
-
-\mbox@{@} % To get a starting point for the \vfill
-\whiledo@{\value@{staffnumber@}>0@}@{%
-  \printstaff \addtocounter@{staffnumber@}@{-1@}@}
-
-\end@{document@}
-@end  example
-
-
-@node Development,, ,top
-@section Development
-
-@subsubsection Could you implement feature XXXX? It is really easy, just extend the syntax to allow YYYY!
-
-In general finding a cute syntax (such as YYYY) isn't very hard. The
-complicated issue how to adapt the internals to do XXXX. The parser is
-really a simple front end to the complicated internals.
-
-@subsubsection Can I join in on LilyPond development?  How do I do this?
-
-Yes, we do frequent releases, you are welcome to send in a patch or do
-suggestions.  Join the list @email{gnu-music-discuss@@gnu.org} to
-participate.
-
-
-@subsubsection Is there a GUI frontend?  Should I start building one?
-
-Matthew Hiller has extended Midiscore and Koobase to handle mudela, He
-is now working on @uref{http://denemo.sourceforge.net/,Denemo}, a GTK
-based notation program. This is the most advanced LilyPond front-end
-currently available.
-
-Chris Cannam is working a rewrite of Rosegarden.  The new design should
-be more modular, and could conceivably be used to output
-mudela. However, the not much seems to have happened the past year. See
-@uref{http://www.all-day-breakfast.com/rosegarden/development.html}.
-
-@subsubsection I want to implement XXXX!  How should I do this?
-
-Your best bet of getting us to include code, is to present it as a
-"fait accompli", i.e., to send a patch to the mailing list.
-
-Please use the diff command to generate a patch, and don't send complete
-files, even if the diff is larger than the whole file.
-
-Don't forget to put your name and e-mail address in the file
-@file{Documentation/topdocs/AUTHORS.texi}, or you won't get credits
-:-)
-
-
-@subsubsection Your make system does not adhere to GNU coding standards, could you please fix it?
-
-No.  We have evaluated the standard GNU combination for compiling
-programs (autoconf, automake, libtool) and found to be inadequate for
-our needs.
-
-@subsubsection How do I inspect @code{String}s and @code{SCM} values in GDB?
-
-Use the following command definitions, which can be put in 
-the file ~/.gdbinit.
-
-@example
-define printstr
-    print $arg0->ch_C()
-end
-
-define printscm
-    call gh_display($arg0)
-    call gh_newline()
-end
-@end example
-
-@subsubsection GDB crashes when I debug!
-
-Upgrade/downgrade to 4.17.
-
-@node Running,, ,top
-@section Running
-
-@subsubsection LilyPond takes ages to run, what am I doing wrong?
-
-LilyPond uses a lot CPU time, and insane amounts of memory. The amount
-of memory it requires is proportional to the size of the score, in other
-words. For a moderately complex piano scores of 5 pages, the footprint
-can easily become 20 megs. (Our favorite test is the coriolan:
-approx. 100 megs for a 50 page orchestral score). If your system has not
-got enough memory, it can easily start swapping.
-
-A part of the memory is used as temporary storage, and is reclaimed
-through GUILE's garbage collection.  A way to trade in CPU time for
-storage is by decreasing the environment variable
-@var{GUILE_MAX_SEGMENT_SIZE} (default 8388608, which is 8 megs).
-
-
-@subsubsection Correcting errors is so tedious. Is there a better way?
-
-As of 1.3.73, lilypond provides support for the xdvi @code{src:}
-special. This can be used with Xdvik (22.16 or better) and xdvi (22.28
-or better) to go to the place in the input that corresponds to a symbol
-in the output: click on the note, and your editor jumps to the place
-where it was defined
-
-lilypond:
-
-Decide if you want column positioning, and edit @file{lily.scm}
-according to the comments at the function @code{define-origin}.
-
-emacs:
-
-Put this in @file{~/.emacs}:
-@example
-(server-start)
-@end example
-
-For column positioning, apply
-@uref{http://www.cs.uu.nl/~hanwen/software/emacsclient-column, this
-patch} to @code{emacsclient.c} and @code{server.el}. Stick the compiled
-emacsclient into a bin directory, and put @code{server.el} into a elisp
-directory (eg. @file{~/usr/share/emacs/}). Add the following to your
-@file{.emacs} init file, before invoking server-start.
-@example
-(setq load-path (cons (concat (getenv "HOME") "/usr/share/emacs")
- load-path))
-@end example
-
-Xdvik:
-
-Warning: @uref{Xdvik,ftp://ftp.cs.uu.nl/pub/tex-archive/dviware/xdvik/},
-which is shipped with most TeX distributions, doesn't work very well for
-src specials. You're better off using plain xdvi.
-@example
-       xdvi -srcmode -srcvisibility output.dvi
-@end example
-
-Click control-mouse button 2 for making emacs jump to the appropriate place.
-
-For column positioning you must install
-@uref{http://www.cs.uu.nl/~hanwen/software/xdvik-src, this patch} to
-make Xdvik emit column numbers. Add the command line option
-@code{-srceditorcommand "emacsclient --no-wait +%l:%c %f"}
-
-Xdvi
-
-@uref{Xdvi,ftp://ftp.math.berkeley.edu/pub/Software/TeX/xdvi.tar.gz} has
-better support for src specials. Apply
-@uref{http://www.cs.uu.nl/~hanwen/software/xdvi-src, this patch}. Before
-starting, set the environment variable @code{XEDITOR} to
-@code{"emacsclient --no-wait +%d %s"}.  When viewing,
-control-mousebutton 1 will take you to the correct
-line/column. Control-mousebutton 2 will show all clickable boxes.
-
-dvips:
-
-dvips will complain about the specials, but the complaints are harmless.
-
-
-@subsubsection I use dvilj4, and there are lots of warning messages for the printing
-
-You should use dvips and ghostscript to print the @code{dvi} output: the
-slurs and beams are PS @code{\special} commands.
-
-
-@subsubsection My symbols are all messed up after I upgraded, I get the wrong symbols and dvi-checksum errors!
-
-We obviously mucked with the fonts in the upgrade.  Remove @emph{all}
-previous fonts, including the @file{.pk} and @file{.tfm} fonts in
-@file{/var/lib/texmf}.  A script automating this has been included, see
-@file{buildscripts/clean-fonts.sh}.
-
-@subsubsection all the pk and tfm fonts are created in the directory where the mudela file is, not in "/var/spool/texmf" where I think they should be.
-
-Mats Bengtsson <mats.bengtsson@@s3.kth.se> writes:
-
-The simple solution used by Anthony Fok in the Debian distribution of
-Lilypond is to link the mf/ directory to
-/usr/lib/texmf/fonts/source/public/lilypond Depending on what
-distribution of teTeX and Linux you have installed, there might also
-be other places like /usr/local/lib/texmf/fonts/source/public/lilypond
-or /var/spool/texmf//fonts/source/public/lilypond
-
-Wherever you put it, don't forget to run mktexlsr (or texhash for
-older installations) afterwards, so that TeX will find the files.
-Also, don't forget to remove all old .tfm and .*pk files when the font
-is updated (as it will be in version 1.1.40, for example).
-
-@subsubsection Are there scalable versions of the font?
-
-Yes, they are type-3 fonts.  In the @file{mf/} 
-subdirectory, issue:
-@example 
-
-       make pfa
-@end example 
- in the mf/ subdirectory.  This will also  make @file{mfplain} for metapost.
-The @file{pfa}s will be in the subdirectory @file{out/}.
-
-@subsubsection How does PS output work?
-
-@itemize @bullet
- @item 
-Generate the PostScript Type-3 fonts. 
-@item 
-Run lilypond with option @code{-f ps}:
-@example 
-
-    lilypond -fps foo.ly
-@end example 
-
-@item  To view the @file{.ps} output with GhostView, set GS_FONTPATH to the 
-directory containing the @file{pfa}s.  In the source tree, this is @file{mf/out/}.
-
-i.e. do something like:
-@example 
-
-   export GS_FONTPATH=$HOME/usr/src/lilypond/mf/out
-   gv foo.ps &
-@end example 
-
-@end itemize
-
-Direct PS output is not used often, and therefore likely to exhibit
-bugs.  For creating nice looking ps output, use TeX and @code{dvips}.
-
-  
-@subsubsection The beams and slurs are gone when using the XDvi magnifying glass!?
-
-Various dynamic symbols, such as beams, crescendi, slurs are done in
-PostScript.  XDvi doesn't show PostScript in the magnifying glass.
-Complain to the XDvi maintainers.
-
-
-@subsubsection Beams, slurs and crescendi are not displayed at all!
-
-See previous answer.  XDvi uses GhostScript for displaying PostScript,
-check that you have GhostScript installed.  If you use a different
-DVI viewer, check if it will display embedded PostScript.  Don't worry,
-the symbols should appear on the printout.
-
-@subsubsection A lot of musical stuff doesn't make it to the MIDI file, eg.  dynamics, articulation, etc.
-
-The MIDI output was originally put in as a proof that MIDI could be
-done, and as a method of proof"reading" the input.  The MIDI support
-is by no means finished.  Patches appreciated.
-
-@node Copyright,, ,top
-@section Copyright
-
-@subsubsection What is Urtext?  Critical Edition?
-
-Werner Lemberg:
-
-It may be translated best as `that what the composer intended to tell
-the reader'
-
-Peter Chubb <peterc@@aurema.com> writes:
-
-An Urtext is a reconstruction of the earliest form of a text,
-including mistakes the original author wrote.  Where there is no
-available facsimile of the original, creating this can involve some
-inspired detective work (in comparing various later editions and
-trying to deduce what the original form was).  As far as copyright
-goes, my guess is that, for works that are otherwise out of copyright,
-an Urtext is copyright to the person who reconstructed it, as a
-derived work from the editions s/he consulted.  If the edition is
-created directly from a facsimile, as would be the case for most
-Urtext editions of music, then the amount of new (copyright) material
-is minimal.
-
-A critical edition is an edition that is designed for critical
-study of a text.  It'll usually have lots of footnotes, alternative
-readings, possible realisations of bass parts and harmonies, etc.  It
-aims to elucidate the author's original intentions, as opposed to
-reproduce exactly what was written.  The critical apparatus will be
-copyright to its author.
-
-A playing edition is one that has been edited for modern usage.
-It'll have fewer or no alternative readings, it'll be in modern
-notation, it may have additional editorial marks (phrase marks, slurs,
-etc.) will often have a fully realised basso continuo part (if oone
-was present in the original) and may have had key changes, time
-signature changes, time compression (original in 4/1, playing edition
-in 4/4, for example, with all semibreves replaced with crotchets)
-Copyright is in the arranger/editor.
-
-@subsubsection How does copyright for sheet music work? Can I enter and spread my newly bought Bach urtext?
-
-Silas S. Brown <ssb22@@hermes.cam.ac.uk>:
-
-@quotation
-
-There are several aspects to sheet music copyright:
-
-1.  The music itself - copyright for the composer's life plus 70 years (so
-not applicable to Bach).
-
-2.  If the music is an arrangement, then the arranger holds copyright on
-that arrangement.  However, you can produce your own arrangement using
-that arrangement as a reference point.  Obviously your arrangement must be
-sufficently different to be called your own arrangement - you need to do
-more than change one note!
-
-3.  In some countries, the same applies for editions.  This could be
-relevant to the Bach example.  If a modern person has edited the music,
-then they hold the copyright on the edition.  This does not stop you from
-removing the editorial features - remove all editorial slurs, phrasemarks,
-ornaments etc and only leave those that you know to be original.  You can
-then add some of your own if you want to be your own editor.
-
-4.  If there are lyrics, then the lyricist also holds copyright.  This
-does not stop you from using the music without the lyrics if it is
-otherwise out of copyright.
-
-5.  The copyright of the printed page is held by the publisher for 30
-years after printing (25 in some countries).  This stops you from
-photocopying (unless it's "fair use" eg. you're partially sighted and need
-to enlarge the music) or otherwise reproducing the typesetting that is
-used on it.  But the copyright is only held over the typesetting work, not
-the music itself.  Since Mudela specifies the notes, independently of any
-typesetting work that went into your reference copy, you are not
-duplicating any of the publisher's work.
-
-6.  If you want to violate copyright, there are two main cases where you
-may do so: fair use, and with permission.  The former is rather fuzzily
-defined, but it includes such things as including small extracts of a
-score in a critique, and making a large print or Braille copy for a blind
-or partially-sighted performer (many people argue that in this case it
-should always be kept with the original copy and/or destroyed after it is
-no longer needed).  The latter is obvious: You can always write to the
-composer, arranger, editor, lyricist or publisher in subsubsection and ask if
-you can do whatever it is you're trying to do.  Some will respond more
-readily than others, but anything that they say will override any copying 
-restrictions imposed on you.
-
-References - best one I know is the UK-based Performing Right Society,
-@uref{http://www.prs.co.uk/} (especially "membership") and their links to other
-international equivalents.  
-@end quotation
-
-Werner Lemberg @email{wl@@gnu.org} writes:
-
-@quotation
-
-Typesetting [at least in Austria or Germany, but not in France] [..]
-isn't copyrighted -- typesetting is a handcraft, not an
-art.
-
-What's copyrighted in an Urtext edition is the editor's comment or
-the revision remarks, cadenzas added by the editor, etc.
-
-Urtext editions per se are @emph{not} copyrighted -- if you print
-exactly what the composer has written, how can there some copyright be
-added?  Copyrighted are usually only the `Critical notes', the foreword,
-and the cadenzas some editors have added.
-
-This means that the `Photocopying forbidden' sign in many scores is not
-always correct for e.g. J.S. Bach -- you are allowed to copy the pages
-which don't contain editorial stuff which is probably copyrighted.
-
-A very unfortunate situation for the publishers.
-
-@end  quotation
-
-
-Glen Prideaux, @email{glenprideaux@@MailAndNews.com}:
-
-@quotation
-One has to be careful. In Australia typesetting IS covered by copyright, but
-only for 25 years (as opposed to 50 years from the death of the
-author/composer/artist for virtually any other copyright). If the
-typesetting originates in a country that does not protect typesetting then
-there may indeed be no copyright protection available to control the use of
-mudela files.
-@end quotation
-
-Juergen Reuter @email{reuterj@@ira.uka.de}
-
-[More information can be had at: ]
-
-@uref{http://lcweb.loc.gov/copyright/}
-(USA copyright law)
-
-@uref{http://fairuse.stanford.edu/}
-(meta site about copyright with many links to other resources)
-
-@uref{http://host.mpa.org/crc.html}
-(copyright from the viewpoint of the USA music publishers' association)
-
-@uref{http://www.wipo.int}
-(World Intellectual Property Organization (a UNO agency); with
-information about international copyright)
-
-John Sankey:
-
-See @uref{http://www.geocities.com/Vienna/Studio/1714/harpsichord.html}
-for a summary of copyright relative to old music, also for the
-expert forum for such subsubsections.
-
-Benjy (benjy@@indiansprings.org)
-
-@quotation
-(In the UK, the typesetting of a piece of music goes out of copyright 25 year\s
-after it is published.  Maybe you can tell me what copyright law says in othe\r
-countries.)
-@end quotation
-
-The US has had several schemes over the last century meaning that
-anything published after January 1, 1923 and before 1964 requires that
-you put in some work to determine its status. However, anything
-published before 1923 is fair game in the US. See
-@uref{http://www.loc.gov/copyright/circs/circ22.html} for the whole
-twisted tale.
-
-
-@node Windows32,, ,top
-@section Windows32
-
-@subsubsection I downloaded the windows32 port, and it doesn't match the website!
-
-The website is usually made from the latest snapshots.  Binary releases,
-in particular the windows32 binaries, are only made every once in a while.
-They may lag several versions behind the latest version. 
-
-@subsubsection But i want a native DOS/Windows-NT/95 port
-
-Reconsider.  Try Linux.  It's fun!
-
-@bye
index 27708ff5ebc6ea8315c4b67d14e3701df986ba6e..3b1f3e2258533804ad1559964489c63de2b1aac7 100644 (file)
@@ -14,7 +14,7 @@
 @item @uref{../topdocs/out-www/README.html, Readme file}
 @item @uref{../topdocs/out-www/INSTALL.html, Installation instructions}
 @item @uref{CHANGES.html, Things recently done}
-@item @uref{faq.html,FAQ: Frequently asked questions}, with answers
+@item @uref{http://appel.lilypond.org/wiki/index.php3?LilyPondFaqs,Frequently asked questions}, with answers
 @end itemize
 
 @unnumberedsubsec Manuals
index 96f04614f27ae44eb83cfcc0478e9756fdec28d3..056942f976b655ad197849cd876c7c19576fce6e 100644 (file)
@@ -1003,7 +1003,6 @@ enharmonisk, S: enharmonisk, N: .
 Two notes, intervals, or scales are enharmonic if they have different names
 but equal pitch.
 
-@
 
 @mudela[13pt,eps]
 \property Score.barNonAuto = ##t
@@ -1044,9 +1043,7 @@ clef symbol indicates that the notes must be played an octave higher (for
 example bass recorder) while 8 below the clef symbol indicates playing an
 octave lower (for example on double bass @w{@ar{}@strong{strings}}).
 
-@
 
-@c @ignore
 @mudela[13pt,eps] 
 \property Score.barNonAuto = ##t 
 \property Staff.clefStyle = #"fullSizeChanges"
@@ -1075,14 +1072,12 @@ octave lower (for example on double bass @w{@ar{}@strong{strings}}).
   "octaved down" 
 }
 @end mudela
-@c @end ignore
 
 @item fermata
 I: corona, F: pause, D: Fermate, NL: fermate, DK: fermat, S: fermat, N: .
 
 Prolonged note or rest of indefinite duration.
 
-@
 
 @mudela[13pt,eps]
 \time 4/4;
@@ -1112,7 +1107,6 @@ DK: fane, S: flagga, N: .
 Ornament at the end of the stem of a note used for notes with values less than
 a quarter note. The number of flags determines the @w{@ar{}@strong{note value}}.
 
-@
 
 @mudela[13pt,eps]
 \property Score.barNonAuto = ##t
index 6bb4426d224cc779b239a94251a5c3687ab29b35..9d8e5c1bf1c032b24316da1148d6b155c944ac1b 100644 (file)
@@ -56,7 +56,7 @@ TODO:
     longa notes which are square shaped as in the @code{'mensural} 
     style.
 
-    @mudela[center,verbatim]
+@mudela[center,verbatim]
       \score {
         \notes { 
           \property Staff.barNonAuto = 1
@@ -540,7 +540,7 @@ no clef is printed upon creation.
     The different time signature characters are shown below with its
     names:
 
-    @mudela[center,verbatim]
+@mudela[center,verbatim]
 
       \score {
         \notes\relative c'' {
diff --git a/VERSION b/VERSION
index 9e33a40e75234c18ce0d7ffe9dd44a47bd5899c8..95d13cc81394f5eb5b0cbb75ef226e5a8b1439b4 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
-PATCH_LEVEL=92
-MY_PATCH_LEVEL=jcn1
+PATCH_LEVEL=93
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index d1220794a6556252cd1e021bd4316df0149ef426..a32e3bc02a6f91d4a39e77feaec9a9484a17e51a 100644 (file)
@@ -1,5 +1,7 @@
 dnl WARNING WARNING WARNING WARNING
 dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
+dnl WARNING WARNING WARNING WARNING
+dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
 dnl aclocal.m4   -*-shell-script-*-
 dnl StepMake subroutines for configure.in
 
@@ -292,12 +294,6 @@ AC_DEFUN(AC_STEPMAKE_INIT, [
     AUTOGENERATE="This file was automatically generated by configure"
     AC_SUBST(AUTOGENERATE)
 
-    STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
-    if test "x$STATE_VECTOR" != "x"; then
-       STATE_VECTOR="\$(depth)/$STATE_VECTOR"
-    fi
-    AC_SUBST(STATE_VECTOR)
-
     CONFIGSUFFIX=
     AC_ARG_ENABLE(config,
     [  enable-config=FILE      put configure settings in config-FILE.make],
index bd7a13c04272c65318a99806944c213042632644..0676f025c06bdb998ce5cfd54a105cd10c1919fd 100644 (file)
@@ -16,7 +16,6 @@ PACKAGE = @PACKAGE@
 package = @package@
 PACKAGE_NAME = @PACKAGE_NAME@
 stepmake = @stepmake@
-state-vector = @STATE_VECTOR@
 CONFIGSUFFIX = @CONFIGSUFFIX@
 MAKEINFO = @MAKEINFO@
 ICFLAGS = @ICFLAGS@
@@ -42,7 +41,6 @@ EXTRA_LIBES = @EXTRA_LIBES@ @LIBS@
 TFM_PATH = @TFM_PATH@
 RANLIB = @RANLIB@
 DEFS = @DEFS@
-#SET_MAKE = @SET_MAKE@
 DEFINES = @DEFS@ @DEFINES@
 COMPILEINFO = @COMPILEINFO@
 DOTEXE = @DOTEXE@
index 488d2dcbd70d15a3facc919cebec680d86a2716b..6f9cf8625550cce90dd76678fbb2648a08e2120d 100755 (executable)
--- a/configure
+++ b/configure
@@ -76,8 +76,6 @@ ac_help="$ac_help
   enable-debugging        set debug info. Default: on"
 ac_help="$ac_help
   enable-mingw-prefix=DIR set the mingw32 directory (standalone windows32 exes)"
-ac_help="$ac_help
-  enable-printing         turn on debug printing. Default: off"
 ac_help="$ac_help
   with-localedir=LOCALE   use LOCALE as locale dir. Default: PREFIX/share/locale "
 ac_help="$ac_help
@@ -629,7 +627,7 @@ fi
     fi
 
     echo $ac_n "checking Package""... $ac_c" 1>&6
-echo "configure:633: checking Package" >&5
+echo "configure:631: checking Package" >&5
     if test "x$PACKAGE" = "xSTEPMAKE"; then
        echo "$ac_t""Stepmake package!" 1>&6
 
@@ -681,7 +679,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
        fi
 
        echo $ac_n "checking for stepmake""... $ac_c" 1>&6
-echo "configure:685: checking for stepmake" >&5
+echo "configure:683: checking for stepmake" >&5
        # Check for installed stepmake
        if test -d $stepmake; then
            echo "$ac_t""$stepmake" 1>&6
@@ -779,12 +777,6 @@ EOF
     AUTOGENERATE="This file was automatically generated by configure"
     
 
-    STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
-    if test "x$STATE_VECTOR" != "x"; then
-       STATE_VECTOR="\$(depth)/$STATE_VECTOR"
-    fi
-    
-
     CONFIGSUFFIX=
     # Check whether --enable-config or --disable-config was given.
 if test "${enable_config+set}" = set; then
@@ -803,7 +795,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:807: checking host system type" >&5
+echo "configure:799: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -828,7 +820,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:832: checking for $ac_word" >&5
+echo "configure:824: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKE'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -863,7 +855,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:867: checking for $ac_word" >&5
+echo "configure:859: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_FIND'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -900,7 +892,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:904: checking for $ac_word" >&5
+echo "configure:896: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_TAR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -935,7 +927,7 @@ test -n "$TAR" || TAR="error"
        # Extract the first word of "bash", so it can be a program name with args.
 set dummy bash; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:939: checking for $ac_word" >&5
+echo "configure:931: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -975,7 +967,7 @@ fi
        # Extract the first word of "bash", so it can be a program name with args.
 set dummy bash; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:979: checking for $ac_word" >&5
+echo "configure:971: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_SHELL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1012,7 +1004,7 @@ fi
        # Extract the first word of "bash", so it can be a program name with args.
 set dummy bash; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1016: checking for $ac_word" >&5
+echo "configure:1008: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1053,7 +1045,7 @@ fi
     # Extract the first word of "${PYTHON:-python}", so it can be a program name with args.
 set dummy ${PYTHON:-python}; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1057: checking for $ac_word" >&5
+echo "configure:1049: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PYTHON'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1278,7 +1270,7 @@ EOF
     # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1282: checking for $ac_word" >&5
+echo "configure:1274: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1308,7 +1300,7 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1312: checking for $ac_word" >&5
+echo "configure:1304: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1359,7 +1351,7 @@ fi
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1363: checking for $ac_word" >&5
+echo "configure:1355: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1391,7 +1383,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1395: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1387: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -1402,12 +1394,12 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext << EOF
 
-#line 1406 "configure"
+#line 1398 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:1411: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1433,12 +1425,12 @@ if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1437: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1429: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1442: checking whether we are using GNU C" >&5
+echo "configure:1434: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1447,7 +1439,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1451: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1443: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1466,7 +1458,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1470: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1462: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1512,7 +1504,7 @@ fi
 
 # AC_HAVE_HEADERS(limits.h malloc.h string.h unistd.h values.h)
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1516: checking how to run the C preprocessor" >&5
+echo "configure:1508: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1527,13 +1519,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1531 "configure"
+#line 1523 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1537: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1529: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1544,13 +1536,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1548 "configure"
+#line 1540 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1554: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1546: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1561,13 +1553,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 1565 "configure"
+#line 1557 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1571: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1563: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1595,17 +1587,17 @@ for ac_hdr in assert.h sys/stat.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1599: checking for $ac_hdr" >&5
+echo "configure:1591: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1604 "configure"
+#line 1596 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1609: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1601: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1632,12 +1624,12 @@ fi
 done
 
 echo $ac_n "checking whether stat file-mode macros are broken""... $ac_c" 1>&6
-echo "configure:1636: checking whether stat file-mode macros are broken" >&5
+echo "configure:1628: checking whether stat file-mode macros are broken" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stat_broken'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1641 "configure"
+#line 1633 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -1688,14 +1680,6 @@ EOF
 fi
 
 
-printing_b=no
-# Check whether --enable-printing or --disable-printing was given.
-if test "${enable_printing+set}" = set; then
-  enableval="$enable_printing"
-  printing_b=$enableval
-fi
-
-
 if test "$optimise_b" = yes; then
     DEFINES="$DEFINES -DSTRING_UTILS_INLINED"
     cat >> confdefs.h <<\EOF
@@ -1704,17 +1688,9 @@ EOF
 
 fi
 
-if test "$printing_b" = no; then
-    # ugh
-    cat >> confdefs.h <<\EOF
-#define NPRINT 1
-EOF
-
-    DEFINES="$DEFINES -DNPRINT"
-fi
 
 echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:1718: checking how to run the C++ preprocessor" >&5
+echo "configure:1694: checking how to run the C++ preprocessor" >&5
 if test -z "$CXXCPP"; then
 if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1727,12 +1703,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
   CXXCPP="${CXX-g++} -E"
   cat > conftest.$ac_ext <<EOF
-#line 1731 "configure"
+#line 1707 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1736: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1712: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1769,7 +1745,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1773: checking for $ac_word" >&5
+echo "configure:1749: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1801,7 +1777,7 @@ test -n "$CXX" || CXX="gcc"
 
 
 echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1805: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+echo "configure:1781: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
 
 ac_ext=C
 # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -1812,12 +1788,12 @@ cross_compiling=$ac_cv_prog_cxx_cross
 
 cat > conftest.$ac_ext << EOF
 
-#line 1816 "configure"
+#line 1792 "configure"
 #include "confdefs.h"
 
 int main(){return(0);}
 EOF
-if { (eval echo configure:1821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cxx_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1843,12 +1819,12 @@ if test $ac_cv_prog_cxx_works = no; then
   { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1847: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1823: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
 cross_compiling=$ac_cv_prog_cxx_cross
 
 echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:1852: checking whether we are using GNU C++" >&5
+echo "configure:1828: checking whether we are using GNU C++" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1857,7 +1833,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1861: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1837: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gxx=yes
 else
   ac_cv_prog_gxx=no
@@ -1876,7 +1852,7 @@ ac_test_CXXFLAGS="${CXXFLAGS+set}"
 ac_save_CXXFLAGS="$CXXFLAGS"
 CXXFLAGS=
 echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:1880: checking whether ${CXX-g++} accepts -g" >&5
+echo "configure:1856: checking whether ${CXX-g++} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1910,17 +1886,17 @@ fi
 
     ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6
-echo "configure:1914: checking for FlexLexer.h" >&5
+echo "configure:1890: checking for FlexLexer.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1919 "configure"
+#line 1895 "configure"
 #include "confdefs.h"
 #include <FlexLexer.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1924: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1900: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1971,12 +1947,12 @@ fi
 
 
     echo $ac_n "checking whether explicit instantiation is needed""... $ac_c" 1>&6
-echo "configure:1975: checking whether explicit instantiation is needed" >&5
+echo "configure:1951: checking whether explicit instantiation is needed" >&5
 if eval "test \"`echo '$''{'lily_cv_need_explicit_instantiation'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1980 "configure"
+#line 1956 "configure"
 #include "confdefs.h"
 
     template <class T> struct foo { static int baz; };
@@ -1986,7 +1962,7 @@ int main() {
  return foo<int>::baz; 
 ; return 0; }
 EOF
-if { (eval echo configure:1990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   lily_cv_need_explicit_instantiation=no
 else
@@ -2013,7 +1989,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2017: checking for $ac_word" >&5
+echo "configure:1993: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2056,7 +2032,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2060: checking for $ac_word" >&5
+echo "configure:2036: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2091,7 +2067,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2095: checking for $ac_word" >&5
+echo "configure:2071: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2159,7 +2135,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2163: checking for $ac_word" >&5
+echo "configure:2139: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2192,7 +2168,7 @@ test -n "$AR" || AR="error"
     # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2196: checking for $ac_word" >&5
+echo "configure:2172: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2248,7 +2224,7 @@ fi
 
 
     echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:2252: checking language" >&5    
+echo "configure:2228: checking language" >&5    
     case "$language" in
       En* | en* | Am* | am* | US* | us*)
            lang=English;;
@@ -2284,7 +2260,7 @@ EOF
 
 
     echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
-echo "configure:2288: checking for gettext in -lintl" >&5
+echo "configure:2264: checking for gettext in -lintl" >&5
 ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2292,7 +2268,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2296 "configure"
+#line 2272 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -2306,7 +2282,7 @@ int main() {
 gettext()
 ; return 0; }
 EOF
-if { (eval echo configure:2310: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2336,12 +2312,12 @@ fi
     for ac_func in gettext
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2340: checking for $ac_func" >&5
+echo "configure:2316: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2345 "configure"
+#line 2321 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2367,7 +2343,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2347: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2399,7 +2375,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2403: checking for $ac_word" >&5
+echo "configure:2379: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2430,7 +2406,7 @@ done
 test -n "$MSGFMT" || MSGFMT="\$(SHELL) \$(step-bindir)/fake-msgfmt.sh "
 
     echo $ac_n "checking whether msgfmt accepts -o""... $ac_c" 1>&6
-echo "configure:2434: checking whether msgfmt accepts -o" >&5
+echo "configure:2410: checking whether msgfmt accepts -o" >&5
     msgfmt_output="`msgfmt -o bla 2>&1 | grep usage`"
     if test "$msgfmt_output" = ""; then
        echo "$ac_t""yes" 1>&6
@@ -2458,7 +2434,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2462: checking for $ac_word" >&5
+echo "configure:2438: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_METAFONT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2494,7 +2470,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2498: checking for $ac_word" >&5
+echo "configure:2474: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MFONT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2532,7 +2508,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2536: checking for $ac_word" >&5
+echo "configure:2512: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_METAPOST'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2568,7 +2544,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2572: checking for $ac_word" >&5
+echo "configure:2548: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MPOST'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2607,7 +2583,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2611: checking for $ac_word" >&5
+echo "configure:2587: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_INIMETAFONT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2643,7 +2619,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2647: checking for $ac_word" >&5
+echo "configure:2623: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_INIMFONT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2681,7 +2657,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2685: checking for $ac_word" >&5
+echo "configure:2661: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_INIMETAPOST'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2717,7 +2693,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2721: checking for $ac_word" >&5
+echo "configure:2697: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_INIMPOST'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2751,7 +2727,7 @@ test -n "$INIMPOST" || INIMPOST="-echo no inimp or inimpost"
     fi
 
     echo $ac_n "checking for working metafont mode""... $ac_c" 1>&6
-echo "configure:2755: checking for working metafont mode" >&5
+echo "configure:2731: checking for working metafont mode" >&5
     modelist='ljfour lj4 lj3 lj2 ljet laserjet'
     for MFMODE in $modelist; do
        $METAFONT "\mode:=$MFMODE; mode_setup; end." > /dev/null 2>&1
@@ -2762,7 +2738,7 @@ echo "configure:2755: checking for working metafont mode" >&5
     echo "$ac_t""$MFMODE" 1>&6
 
     echo $ac_n "checking for mfplain.mp""... $ac_c" 1>&6
-echo "configure:2766: checking for mfplain.mp" >&5
+echo "configure:2742: checking for mfplain.mp" >&5
     #
     # For now let people define these in their environments
     #
@@ -2770,7 +2746,7 @@ echo "configure:2766: checking for mfplain.mp" >&5
     echo "$ac_t""$MFPLAIN_MP" 1>&6
 
     echo $ac_n "checking for inimetapost flags""... $ac_c" 1>&6
-echo "configure:2774: checking for inimetapost flags" >&5
+echo "configure:2750: checking for inimetapost flags" >&5
     if test  ${INIMETAPOST} = "inimp" ; then
        : ${INIMETAPOST_FLAGS=''}
     else
@@ -2803,7 +2779,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2807: checking for $ac_word" >&5
+echo "configure:2783: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_KPSEWHICH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2834,7 +2810,7 @@ done
 test -n "$KPSEWHICH" || KPSEWHICH="no"
 
     echo $ac_n "checking for tfm path""... $ac_c" 1>&6
-echo "configure:2838: checking for tfm path" >&5
+echo "configure:2814: checking for tfm path" >&5
 
     TFM_FONTS="cmr msam"
 
@@ -2862,13 +2838,13 @@ echo "configure:2838: checking for tfm path" >&5
 
     ## First, let's just see if we can find Guile at all.
     echo $ac_n "checking "for guile-config"""... $ac_c" 1>&6
-echo "configure:2866: checking "for guile-config"" >&5
+echo "configure:2842: checking "for guile-config"" >&5
     for guile_config in guile-config $target-guile-config $build-guile-config; do
        echo "$ac_t"""$guile_config"" 1>&6
        if ! $guile_config --version > /dev/null 2>&1 ; then
            echo "configure: warning: "cannot execute $guile_config"" 1>&2
            echo $ac_n "checking "if we are cross compiling"""... $ac_c" 1>&6
-echo "configure:2872: checking "if we are cross compiling"" >&5
+echo "configure:2848: checking "if we are cross compiling"" >&5
            guile_config=error
        else
            break
@@ -2879,7 +2855,7 @@ echo "configure:2872: checking "if we are cross compiling"" >&5
        exit 1
     fi
     echo $ac_n "checking "Guile version"""... $ac_c" 1>&6
-echo "configure:2883: checking "Guile version"" >&5
+echo "configure:2859: checking "Guile version"" >&5
     need_guile_version="1.3.4"
     guile_version=`expr "\`$guile_config --version 2>&1\`" : ".*\($need_guile_version\).*"`
     echo "$ac_t"""$guile_version"" 1>&6
@@ -2892,7 +2868,7 @@ echo "configure:2883: checking "Guile version"" >&5
     
 ## The GUILE_FLAGS macro.
   echo $ac_n "checking for Guile""... $ac_c" 1>&6
-echo "configure:2896: checking for Guile" >&5
+echo "configure:2872: checking for Guile" >&5
   if ! $guile_config link > /dev/null ; then
       echo "$ac_t"""cannot execute $guile_config"" 1>&6
       { echo "configure: error: "cannot find guile-config; is Guile installed?"" 1>&2; exit 1; }
@@ -2907,7 +2883,7 @@ echo "configure:2896: checking for Guile" >&5
     # Extract the first word of "guile", so it can be a program name with args.
 set dummy guile; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2911: checking for $ac_word" >&5
+echo "configure:2887: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_GUILE'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2957,17 +2933,17 @@ fi
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2961: checking for $ac_hdr" >&5
+echo "configure:2937: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2966 "configure"
+#line 2942 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2971: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2947: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2994,7 +2970,7 @@ fi
 done
 
        echo $ac_n "checking for kpse_find_file in -lkpathsea""... $ac_c" 1>&6
-echo "configure:2998: checking for kpse_find_file in -lkpathsea" >&5
+echo "configure:2974: checking for kpse_find_file in -lkpathsea" >&5
 ac_lib_var=`echo kpathsea'_'kpse_find_file | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3002,7 +2978,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lkpathsea  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3006 "configure"
+#line 2982 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -3016,7 +2992,7 @@ int main() {
 kpse_find_file()
 ; return 0; }
 EOF
-if { (eval echo configure:3020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3049,12 +3025,12 @@ fi
        for ac_func in kpse_find_file
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3053: checking for $ac_func" >&5
+echo "configure:3029: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3058 "configure"
+#line 3034 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3080,7 +3056,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3109,7 +3085,7 @@ done
 
     fi
     echo $ac_n "checking whether to use kpathsea""... $ac_c" 1>&6
-echo "configure:3113: checking whether to use kpathsea" >&5
+echo "configure:3089: checking whether to use kpathsea" >&5
     if test $kpathsea_b = yes; then
         echo "$ac_t""yes" 1>&6
        KPATHSEA=1
@@ -3127,7 +3103,7 @@ EOF
 
 
 echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:3131: checking for 8-bit clean memcmp" >&5
+echo "configure:3107: checking for 8-bit clean memcmp" >&5
 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3135,7 +3111,7 @@ else
   ac_cv_func_memcmp_clean=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 3139 "configure"
+#line 3115 "configure"
 #include "confdefs.h"
 #ifdef __cplusplus
 extern "C" void exit(int);
@@ -3148,7 +3124,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:3152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3128: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_memcmp_clean=yes
 else
@@ -3166,12 +3142,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
 
 echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:3170: checking for vprintf" >&5
+echo "configure:3146: checking for vprintf" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3175 "configure"
+#line 3151 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vprintf(); below.  */
@@ -3197,7 +3173,7 @@ vprintf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_vprintf=yes"
 else
@@ -3221,12 +3197,12 @@ fi
 
 if test "$ac_cv_func_vprintf" != yes; then
 echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:3225: checking for _doprnt" >&5
+echo "configure:3201: checking for _doprnt" >&5
 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3230 "configure"
+#line 3206 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _doprnt(); below.  */
@@ -3252,7 +3228,7 @@ _doprnt();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3256: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3232: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func__doprnt=yes"
 else
@@ -3279,12 +3255,12 @@ fi
 for ac_func in memmem snprintf vsnprintf gettext isinf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3283: checking for $ac_func" >&5
+echo "configure:3259: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3288 "configure"
+#line 3264 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3310,7 +3286,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3314: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3349,7 +3325,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3353: checking for $ac_word" >&5
+echo "configure:3329: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3382,7 +3358,7 @@ test -n "$MAKEINFO" || MAKEINFO="error"
 # Extract the first word of "perl", so it can be a program name with args.
 set dummy perl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3386: checking for $ac_word" >&5
+echo "configure:3362: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3556,7 +3532,6 @@ s%@PACKAGE@%$PACKAGE%g
 s%@PACKAGE_NAME@%$PACKAGE_NAME%g
 s%@package_depth@%$package_depth%g
 s%@AUTOGENERATE@%$AUTOGENERATE%g
-s%@STATE_VECTOR@%$STATE_VECTOR%g
 s%@CONFIGSUFFIX@%$CONFIGSUFFIX%g
 s%@host@%$host%g
 s%@host_alias@%$host_alias%g
index aa3f16f08f51dc0d967ac316fbac7d82375225cc..c4cf39588c485feaaaab00bb2d2b2ca39a42e1d5 100644 (file)
@@ -17,21 +17,11 @@ AC_STEPMAKE_COMPILE
 AC_HAVE_HEADERS(assert.h sys/stat.h)
 AC_HEADER_STAT
 
-printing_b=no
-AC_ARG_ENABLE(printing,
-    [  enable-printing         turn on debug printing. Default: off],
-    [printing_b=$enableval])
-
 if test "$optimise_b" = yes; then
     DEFINES="$DEFINES -DSTRING_UTILS_INLINED"
     AC_DEFINE(STRINGS_UTILS_INLINED)
 fi
 
-if test "$printing_b" = no; then
-    # ugh
-    AC_DEFINE(NPRINT)
-    DEFINES="$DEFINES -DNPRINT"
-fi
 
 AC_STEPMAKE_CXX
 AC_STEPMAKE_GXX
diff --git a/dstreamrc b/dstreamrc
deleted file mode 100644 (file)
index 479e6c5..0000000
--- a/dstreamrc
+++ /dev/null
@@ -1,157 +0,0 @@
-# This file controls which classes produce debugging output
-# rename to .dstreamrc and place in the directory where you're doing
-# the debugging.
-
-# Set this to 1 to get default silence for unlisted classes
-Dstream_default_silence 0
-
-# In any case: for listed classes:  
-# 0: verbose
-# 1: silent
-
-# class name           silence?
-
-Dstream                        0
-
-# yydebug
-InitParser             1
-Parser                 1
-InitDeclarations       1
-Declarations           1
-yyparse                        1
-# FlexLexer debug
-InitLexer              1
-Lexer                  1
-
-My_lily_lexer          1
-
-walking                1
-
-# flower lib
-File_path              1
-Matrix                 1
-Vector                 1
-
-# lily
-Absolute_dynamic_req   1
-Atom                   1
-Axis_group_administration      1
-Axis_group_spanner     1
-Articulation_req       1
-Auto_beam_engraver     1
-Audio_column           1
-Audio_element          1
-Audio_item             1
-Audio_note             1
-Bar                    1
-Bar_req                        1
-Beam                   1
-Bezier                 1
-Bezier_bow             1
-Bezier_bow_controls    1
-Bezier_controls                1
-Bow                    1
-Change_iterator                1
-Change_translator      1
-Chord                  1
-Chord_iterator         1
-Clef_item              1
-Clef_change_req                1
-Col_configuration      1
-Col_hpositions         1
-Collision              1
-Column_info            1
-Column_rod             1
-Duration_identifier    1
-Engraver               1
-Engraver_group_engraver 1
-General_script_def     1
-Global_translator      1
-Graphical_element      1
-Graphical_axis_group   1
-Group_change_req       1
-Guile                  1
-Head_column            1
-Horizontal_align_item  1
-Horizontal_group_item  1 
-Idealspacing           1
-Identifier             1
-Ineq_constrained_qp    1
-Input_translator       1
-int_identifier         1
-Item                   1
-Key_item               1
-Lookup                 1
-Line_spacer            1
-Melodic_req            1
-Midi_def               1
-Midistrings            1
-Mixed_qp               1
-Music                  1
-Musical_pitch          1
-Music_iterator         1
-Music_output_def       1
-Note_column            1
-Note_head              1
-Note_performer         1
-Note_req               1
-Paper_column           1
-Paper_outputter                1
-Paper_score                    1
-Paper_def              1
-Partial_measure_req    1
-Performance            1
-Performer              1
-Performer_group_performer      1
-Real_identifier                1
-Request                        1
-Request_iterator       1
-Rest_collision         1
-Rest_collision_engraver 1
-Rest_req               1
-Rhythmic_head  1
-Rhythmic_req           1
-Scope                  1
-Score                  1
-Score_column           1
-Score_element          1
-Score_engraver         1
-Score_performer                1
-Script_column          1
-Script_def             1
-Script_req             1
-Single_malt_grouping_item      1
-Slur                   1
-Spacer_rod             1
-Spacing_problem        1
-Span_req               1
-Span_dynamic_req       1
-Spanner                        1
-Spring_spacer          1
-Skip_req               1
-Staff_commands         1
-Staff_symbol           1
-Stem                   1
-Stem_info              0
-Stem_req               1
-String_identifier      1
-Relative_octave_music  1
-Symtable               1
-Symtables              1
-
-Text_def               1
-Text_item              1
-Text_req               1
-Text_script_req                1
-Time_description       1
-Time_signature_change_req      1
-Translation_property   1
-Translator             1
-Translator_group       1
-Voice                  1
-Voice_iterator         1
-Word_wrap              1
-
-delete_identifiers     1
-parse_duration         1
-parse_pitchmod         1
index ed3e877acdf544cbab247394f4fff577e60b3dcd..7f55ece974f4ed2ef3f404d9b961e8b4e729991c 100644 (file)
@@ -67,7 +67,7 @@ praeludiumLeft = \notes \relative c {
       dis2 cis4 r8 cis }
     \context Voice = one { \stemup bis2 }
     \context Voice = three {
-    \property Voice.dynamicDirection  = \down
+    \property Voice.basicDynamicLineSpannerProperties \push #'direction  = #-1
     \stemup \shifton r4 gis ~ [gis8
       \<
 
@@ -98,23 +98,23 @@ fugaIIRight = \notes   \relative c''   {
 
   \context Staff \notes\relative c''<
        \context Voice=one {
-         \property Voice.horizontalNoteShift=0
-         \property Voice.verticalDirection=1 
+       \shiftoff
+       \stemup
          e4 
        }
        \context Voice=two {
-         \property Voice.verticalDirection=1 
-         \property Voice.horizontalNoteShift=1
+         \shifton
+         \stemup
          cis
        }
        \context Voice=three {
-         \property Voice.horizontalNoteShift=2
-         \property Voice.verticalDirection=1 
+         \shiftonn
+         \stemup
          ais
        }
        \context Voice=four {
-         \property Voice.verticalDirection=-1 
-         \property Voice.horizontalNoteShift=-1
+         \shiftonnn
+         \stemup
          fis
        }
   >
index 88d86648c6e2c4ef500cede3e81459e5f13cadb0..34039b43ea8289db0c0b2d754d206a026e0d3658 100644 (file)
@@ -43,6 +43,8 @@ A2_engraver::A2_engraver ()
 void
 A2_engraver::do_process_music ()
 {
+  if (!to_boolean (get_property ("combineParts")))
+    return ;
   if (!text_p_)
     {
       SCM unison = get_property ("unison");
@@ -89,6 +91,9 @@ A2_engraver::do_process_music ()
 void
 A2_engraver::acknowledge_element (Score_element_info i)
 {
+  if (!to_boolean (get_property ("combineParts")))
+    return ;
+  
   if (text_p_)
     {
       if (Note_head::has_interface (i.elem_l_))
index d7ec2a94fb565bc40986424eacac9fb011e1cbc5..ab4d17759ca92e9a28006b771eda3a7e0f018eb5 100644 (file)
@@ -44,7 +44,10 @@ Adobe_font_metric *
 All_font_metrics::find_afm (String name)
 {
   SCM sname = ly_symbol2scm (name.ch_C ());
-  if (!afm_p_dict_->elem_b (sname))
+
+  SCM val;
+  
+  if (!afm_p_dict_->try_retrieve  (sname, &val))
     {
       String path;
 
@@ -63,17 +66,19 @@ All_font_metrics::find_afm (String name)
       
       if (verbose_global_b)
        progress_indication ("[" + path);
-      SCM  afm = read_afm_file (path);
+      val = read_afm_file (path);
 
-      unsmob_metrics (afm)->name_ = sname;
+      unsmob_metrics (val)->name_ = sname;
 
       if (verbose_global_b)
        progress_indication ("]");
 
-       afm_p_dict_->set (sname,afm);
+      afm_p_dict_->set (sname,val);
+
+      
     }
   
-  return dynamic_cast<Adobe_font_metric*> (unsmob_metrics (afm_p_dict_->get (sname)));
+  return dynamic_cast<Adobe_font_metric*> (unsmob_metrics (val));
 }
 
 Scaled_font_metric * 
@@ -82,25 +87,26 @@ All_font_metrics::find_scaled (String nm, int m)
   String index =  nm + "@" + to_str (m);
   SCM sname = ly_symbol2scm (index.ch_C ());
 
-  Font_metric *fm =0;
-  if (!scaled_p_dict_->elem_b (sname))
+  SCM val;
+
+  if (!scaled_p_dict_->try_retrieve  (sname, &val))
     {
       Font_metric *f = find_font (nm);
-      SCM s =  Scaled_font_metric::make_scaled_font_metric (f, m);
-      scaled_p_dict_->set (sname, s);
-      fm =  unsmob_metrics (s);
+      val =  Scaled_font_metric::make_scaled_font_metric (f, m);
+      scaled_p_dict_->set (sname, val);
     }
-  else
-    fm = unsmob_metrics (scaled_p_dict_->get (sname));
+  
 
-  return dynamic_cast<Scaled_font_metric*> (fm);
+  return dynamic_cast<Scaled_font_metric*> (unsmob_metrics (val));
 }
 
 Tex_font_metric *
 All_font_metrics::find_tfm (String name)
 {
-  SCM sname = ly_symbol2scm (name.ch_C ());  
-  if (!tfm_p_dict_->elem_b (sname))
+  SCM sname = ly_symbol2scm (name.ch_C ());
+
+  SCM val;
+  if (!tfm_p_dict_->try_retrieve (sname, &val))
     {
       String path;
       
@@ -118,17 +124,16 @@ All_font_metrics::find_tfm (String name)
 
       if (verbose_global_b)
        progress_indication ("[" + path);
-      SCM tfm = Tex_font_metric::make_tfm (path);
+      val = Tex_font_metric::make_tfm (path);
       if (verbose_global_b)
        progress_indication ("]");
 
-      Font_metric *fm = unsmob_metrics (tfm);
-      fm->name_ = sname;
-      tfm_p_dict_->set (sname, tfm);
+      unsmob_metrics (val)->name_ = sname;
+      tfm_p_dict_->set (sname, val);
     }
     
   return
-    dynamic_cast<Tex_font_metric*> (unsmob_metrics (tfm_p_dict_->get(sname)));
+    dynamic_cast<Tex_font_metric*> (unsmob_metrics (val));
 }
 
 
index 1dde79a5e98d63ed0a3105e87855046615c2b7d7..b29f09982c74a579c2a21233b78453914424eaa5 100644 (file)
@@ -31,15 +31,4 @@ Audio_column::at_mom() const
   return at_mom_;
 }
 
-void
-Audio_column::print() const
-{
-#ifndef NPRINT
-  DEBUG_OUT << "Audio_column {";
-  DEBUG_OUT << "at: " << at_mom_ << ". Contains:";
-  for (int i =0; i < audio_item_l_arr_.size (); i++)
-    DEBUG_OUT << classname (audio_item_l_arr_[i]) << ", ";
-  DEBUG_OUT << "\n}\n";
-#endif 
-}
 
index 39fbe8f1788d54f75ef03ff6fce5fbe136ee03ea..9eff747eb458f011fe9ff3bf088245d93dc032e3 100644 (file)
@@ -18,17 +18,4 @@ Audio_element::~Audio_element()
 {
 }
 
-void
-Audio_element::print () const
-{
-#ifndef NPRINT
-  DEBUG_OUT << classname (this) << "{ ";
-  do_print ();
-  DEBUG_OUT << "}";
-#endif
-}
 
-void
-Audio_element::do_print ()const
-{
-}
index 4e771ca08e23aaadfbd3ac325971a3333e1d345e..b4d358c7f7fe9c176902cfce58f1ace95f6233fd 100644 (file)
@@ -83,14 +83,5 @@ Audio_tie::set_note (Direction d, Audio_note* note_l)
   //  add_dependency (head_l);
 }
 
-void
-Audio_item::do_print () const
-{
-#ifndef NPRINT
-  if (audio_column_l_)
-    {
-      DEBUG_OUT << "at: "<< audio_column_l_->at_mom ();
-    }
-#endif
-}
+
 
index 721c807da494a5c251e0f4ce218a717d79843f0e..80dad453c00c6fe8375e0a856f3f6754c1365690 100644 (file)
@@ -133,22 +133,12 @@ Bar::before_line_breaking  (SCM smob)
   SCM g = me->get_elt_property ("glyph");
   SCM orig = g;
   Direction bsd = item->break_status_dir ();
-  if (gh_string_p (g))
+  if (gh_string_p (g) && bsd)
     {
-      if (bsd)
-       {
-         SCM breakdir = gh_int2scm (bsd);
-         g = scm_eval2 (gh_list (ly_symbol2scm ("break-barline"),
-                                g,
-                                breakdir,
-                                SCM_UNDEFINED),
-                        SCM_EOL);
-       }
-    }
-  else
-    {
-      g = SCM_EOL;
+      SCM proc = me->get_elt_property ("break-glyph-function");
+      g = gh_call2 (proc, g, gh_int2scm (bsd));
     }
+
   
   if (!gh_string_p (g))
     {
index d8c5f6d2b230a10982e0b7319f37f6df00b8d1ce..ad1f1cbb47a1599fc5e4426b55e10030a297974f 100644 (file)
@@ -110,12 +110,12 @@ Break_align_interface::do_alignment (Score_element *me)
        }
       else
        next_origin = ly_symbol2scm ("begin-of-note");
-      
+
+      SCM alist = me->get_elt_property ("space-alist");
       SCM e = scm_assoc (scm_listify (current_origin,
                                      next_origin,
-                                     SCM_UNDEFINED),
-                        scm_eval2 (ly_symbol2scm ("space-alist"), SCM_EOL));
-      
+                                     SCM_UNDEFINED), alist);
+          
       SCM extra_space;
       if (e != SCM_BOOL_F)
        {
index f6225e51e17cc4e302a8764ed87e4734d957f283..4810dec72ef05f24311c7ea4bf71d3fa3a4fc268 100644 (file)
@@ -42,7 +42,6 @@ Breathing_sign::offset_callback (Score_element * b, Axis a)
 {
   Score_element * me = (Score_element*)b;
   
-  Real space = Staff_symbol_referencer::staff_space (b);
   Direction d = Directional_element_interface::get (b);
   if (!d)
     {
@@ -50,7 +49,9 @@ Breathing_sign::offset_callback (Score_element * b, Axis a)
       Directional_element_interface::set (me, d);
     }
 
-  return 2.0 * space * d;
+  Real inter_f = Staff_symbol_referencer::staff_space (me)/2;
+  int sz = Staff_symbol_referencer::line_count (me)-1;
+  return inter_f * sz * d;
 }
 
 void
index b0144488be8f262e5bac9cb032ac689bbbe3e2cd..144aefd229b2f43d20089d49a1b8c23031791a8c 100644 (file)
@@ -11,9 +11,3 @@
 
 
 
-void
-Change_translator::do_print () const
-{
-  DEBUG_OUT << "change " << change_to_type_str_ << " to " << change_to_id_str_ ;
-}
-  
index 3d786acc8182ae746c968ba96db344292d4f8278..80955b20d7404b1063057bbb156dae20f685fd0d 100644 (file)
@@ -152,27 +152,23 @@ MAKE_SCHEME_CALLBACK (Chord_name, brew_molecule);
 SCM
 Chord_name::brew_molecule (SCM smob) 
 {
-  Score_element *sc = unsmob_element (smob);
-  SCM style = sc->get_elt_property ("style");
+  Score_element *me = unsmob_element (smob);
+  SCM style = me->get_elt_property ("style");
 
   if (!gh_string_p (style))
     style = ly_str02scm ("banter");
 
-  SCM inversion = sc-> get_elt_property ("inversion");
+  SCM inversion = me-> get_elt_property ("inversion");
   if (inversion == SCM_EOL)
     inversion = SCM_BOOL_F;
 
-  SCM bass =  sc->get_elt_property ("bass");
+  SCM bass =  me->get_elt_property ("bass");
   if (bass == SCM_EOL)
     bass = SCM_BOOL_F;
 
-  SCM pitches =  sc->get_elt_property ("pitches");
-  SCM text = scm_eval2 (gh_list (ly_symbol2scm ("chord::user-name"),
-                               style,
-                               ly_quote_scm (pitches),
-                               ly_quote_scm (gh_cons (inversion, bass)),
-                               SCM_UNDEFINED),
-                       SCM_EOL);
+  SCM pitches =  me->get_elt_property ("pitches");
+  SCM func = me->get_elt_property (ly_symbol2scm ("chord-name-function"));
+  SCM text = gh_call3 (func, style, ly_quote_scm (pitches), ly_quote_scm (gh_cons (inversion, bass)));
 
-  return ly_text2molecule (sc, text).create_scheme ();
+  return ly_text2molecule (me, text).create_scheme ();
 }
index d448e716483d2ad86b9846e0cc1a9296a85e5c5c..64443eb18b6f187c1aa790d0725a312a8f95976b 100644 (file)
@@ -219,8 +219,7 @@ Clef_engraver::do_pre_move_processing()
       SCM vis = 0; 
       if(to_boolean (clef_p_->get_elt_property("non-default")))
        {
-         vis = ly_symbol2scm ("all-visible");
-         vis = scm_eval2 (vis, SCM_EOL);
+         vis = get_property ("explicitClefVisibility");
        }
 
       if (vis)
index 1b3adc4d4cd03aa9e2f2b39c850b7a686eb9ef77..b3ce53051e9a8993c8841f4d66aca9b4dd9aeb10 100644 (file)
@@ -13,7 +13,7 @@
 #include "item.hh"
 
 /*
-FIXME: should use symbol.
+FIXME: should use symbol for #'style.
 
 */
 MAKE_SCHEME_CALLBACK(Clef,before_line_breaking);
index 1aaaea84eac453af8abe05465444adbe3ba44aac..8ea0ef54dd175a2b63e1f3f7e40702d9137d5f14 100644 (file)
@@ -23,13 +23,6 @@ Barcheck_req::do_equal_b (Request const *r) const
   return b;
 }
 
-void
-Clef_change_req::do_print () const
-{
-#ifndef NPRINT
-  DEBUG_OUT << clef_str_ ;
-#endif
-}
 
 Clef_change_req::Clef_change_req (String s)
 {
@@ -37,14 +30,6 @@ Clef_change_req::Clef_change_req (String s)
 }
 
 
-void
-Time_signature_change_req::do_print () const
-{
-#ifndef NPRINT
-  DEBUG_OUT << beats_i_ << "/" << one_beat_i_;
-#endif
-}
-
 bool
 Time_signature_change_req::do_equal_b (Request const *r) const
 {
@@ -68,11 +53,6 @@ Tempo_req::Tempo_req ()
   dur_. durlog_i_ = 2;
 }
 
-void
-Tempo_req::do_print () const
-{
-  DEBUG_OUT << dur_.str () << " = " << metronome_i_;
-}
 
 
 bool
index c249d6a1cf969967cc4cfd360892e915df9e4278..25e4cec7dd18b0233ad477d6e37c782fe97ce5fe 100644 (file)
@@ -26,9 +26,7 @@ Dots::quantised_position_callback (Score_element * me, Axis a)
       if (!Directional_element_interface::get (me))
        Directional_element_interface::set (me, UP);
 
-
-      int pos = int (Staff_symbol_referencer::position_f (me));
-      if (!(pos % 2))
+      if (Staff_symbol_referencer::on_staffline (me))
        return Staff_symbol_referencer::staff_space (me) / 2.0 * Directional_element_interface::get (me);
     }
 
index 1a7ac9e2c618c3717cf968c2d1f0de98bff4f69a..2ab1550fdb437b1dcb898ff0c4ce56f46b530d0a 100644 (file)
@@ -28,7 +28,6 @@ public:
   ~Dynamic_performer ();
 
 protected:
-  void do_print () const;
   virtual bool do_try_music (Music* req_l);
   virtual void do_process_music ();
   virtual void do_pre_move_processing ();
@@ -50,31 +49,24 @@ Dynamic_performer::~Dynamic_performer ()
 {
 }
 
-void
-Dynamic_performer::do_print () const
-{
-#ifndef NPRINT
-  if (text_script_req_l_)
-    text_script_req_l_->print ();
-#endif
-}
 
 void
 Dynamic_performer::do_process_music ()
 {
   if (text_script_req_l_)
     {
-      
-      SCM s = scm_eval2
-       (gh_list
-        (ly_symbol2scm ("dynamic-absolute-volume"),
-         ly_quote_scm (ly_str02scm (text_script_req_l_->text_str_.ch_C ())),
-         SCM_UNDEFINED),
-        SCM_EOL);
-      Real volume = gh_scm2double (scm_eval2 (ly_symbol2scm ("dynamic-default-volume"), SCM_EOL));
-      if (gh_number_p (s))
-       volume = gh_scm2double (s);
-      
+      SCM proc = get_property ("dynamicAbsoluteVolumeFunction");
+
+      SCM svolume  = SCM_EOL;
+      if (gh_procedure_p (proc))
+       {
+         svolume = gh_call1 (proc, ly_str02scm (text_script_req_l_->text_str_.ch_C ())); 
+       }
+
+      Real volume = 0.5; 
+      if (gh_number_p (svolume))
+       volume = gh_scm2double (svolume);
+
       /*
        properties override default equaliser setting
        */
@@ -94,7 +86,7 @@ Dynamic_performer::do_process_music ()
          /*
            urg, code duplication:: staff_performer
          */
-         s = get_property ("midiInstrument");
+         SCM s = get_property ("midiInstrument");
          
          if (!gh_string_p(s))
            s = get_property ("instrument");
@@ -103,9 +95,12 @@ Dynamic_performer::do_process_music ()
            s = ly_str02scm ("piano");
          
          
-         s = scm_eval2 (gh_list (ly_symbol2scm ("instrument-equaliser"),
-                                s, SCM_UNDEFINED),
-                        SCM_EOL);
+         SCM eq = get_property ("instrumentEqualizer");
+         if (gh_procedure_p (eq))
+           {
+             s = gh_call1 (eq, s);
+           }
+
          if (gh_pair_p (s))
            {
              Interval iv;
index 1713ce373637844343ec828a977c3c9b08e7d7b1..ad3b7d0a8aa066d6101975600393f18ec5611cf4 100644 (file)
@@ -92,7 +92,6 @@ Global_translator::run_iterator_on_me (Music_iterator * iter)
        {
          w = iter->pending_moment();
       
-         DEBUG_OUT << "proccing: " << w << '\n';
        }
 
       w = sneaky_insert_extra_moment (w);
index bedc2f9dfd9bfa7bea3ce2e3adf85e58da856df3..d46460f71b03306f8d23fe4a82a8cd272993cc5c 100644 (file)
@@ -61,28 +61,6 @@ Identifier::do_str () const
   return "";
 }
 
-void
-Identifier::print () const
-{
-  DEBUG_OUT << "identifier ";
-  do_print ();
-}
-void
-Identifier::do_print () const
-{
-}
-
-/* ugh. */
-#define DEFAULT_PRINT(Class) \
-void \
-Class ## _identifier::do_print () const { \
-  Class *cl = ((Class ## _identifier *)this)->access_content_ ## Class(false);\
-  cl->print (); \
-}
-
-
-DEFAULT_PRINT(Score);
-DEFAULT_PRINT(Music_output_def);
 
 /* ugh. */
 #define DUMMY_STR(Class) \
@@ -95,15 +73,6 @@ DUMMY_STR(Score);
 DUMMY_STR(Music_output_def);
 DUMMY_STR(Duration);
 
-#define STRING_PRINT(Class) \
-void \
-Class ## _identifier::do_print () const\
-{\
-  DEBUG_OUT << do_str () << '\n';\
-}\
-
-
-STRING_PRINT(Duration);
   
 #define DEFAULT_STR(Class) \
 String \
index 6dff0e01f7129523d570ec620e71eff715ef39dd..a8d79fc0e57d1e358e875702ba86293cdaea9491 100644 (file)
@@ -19,13 +19,12 @@ public:
   Audio_element ();
   virtual ~Audio_element ();
 
-  void print () const;
+
 
   // should we use a scm list?
   bool grace_b_;
   
 protected:
-  virtual void do_print () const;
 };
 
 #endif // AUDIO_ELEMENT_HH
index b06ab920c997de089f03ce7e4640a707ec258f51..e8ced6a64bdbc6a039be4412a8b8e5c7f0e2a099 100644 (file)
@@ -29,8 +29,6 @@ public:
 
   Audio_column* audio_column_l_;
 
-protected:
-  virtual void do_print () const;
   
 private:
   Audio_item (Audio_item const&);
index af18db7eb32d8df27cbb1784388a08aad0bbb811..7dc774ca37ded7086228138632469fe593c760bf 100644 (file)
@@ -20,7 +20,6 @@ public:
   
 protected:
   VIRTUAL_COPY_CONS(Music);
-  void do_print () const;
 };
 
 
index 875024650c7bf7f2d1f20eddb60d6b46a43e03b8..078e02dd2f07e109ff913db02fa5fb0852662c46 100644 (file)
@@ -48,7 +48,7 @@ public:
 
   Tempo_req();
 protected:
-  virtual void do_print () const;
+
   VIRTUAL_COPY_CONS(Music);
   bool do_equal_b (Request const *) const;
 };
@@ -64,7 +64,7 @@ public:
 
   Time_signature_change_req();
 protected:
-  virtual void do_print () const;
+
   bool do_equal_b (Request const *) const;
   VIRTUAL_COPY_CONS(Music);
 };
@@ -111,7 +111,7 @@ public:
   String clef_str_;
   Clef_change_req (String);
 protected:
-  virtual void do_print () const;
+
   VIRTUAL_COPY_CONS(Music);
 };
 
index dffbfd18ef389d88f712e91202a46e450503b185..dd378bf0e0edff94ba29b391340985582f1d39ff 100644 (file)
@@ -27,6 +27,9 @@ class Engraver_group_engraver : public Engraver,
 {
 protected:
   Array<Score_element_info> announce_info_arr_;
+
+  
+  
 public:
   VIRTUAL_COPY_CONS(Translator);
     
index 2e39b1ff47479651488f7a16cd9bdaad503b6ed2..7f87c08b8f7c8e8a3d9cd06888bc3fea787b000c 100644 (file)
@@ -49,7 +49,7 @@ struct Identifier : public Input {
 
   DECLARE_SMOBS(Identifier, foo);
 protected:
-  virtual void do_print () const;
+
   virtual String do_str () const;
 };
 
@@ -62,7 +62,7 @@ struct Class ## _identifier : Identifier {\
                             VIRTUAL_COPY_CONS(Identifier);\
                             virtual Class* access_content_ ## Class (bool copy_b) const;\
                             ~Class ## _identifier();\
-                            virtual void do_print () const; \
+                           \
                             virtual String do_str () const; \
 }\
 
index 7d5bef226521ab959069bc79cb846eabeeb46ef3..bc9287c7639d79a39bd969ce204270234e4aa3ad 100644 (file)
@@ -33,8 +33,6 @@
  */
 SCM ly_str02scm (char const*c);
 SCM ly_deep_copy (SCM);
-
-
 SCM ly_symbol2scm (char const *);
 String ly_scm2string (SCM s);
 String ly_symbol2string (SCM);
@@ -83,6 +81,13 @@ SCM index_set_cell (SCM cellp, Direction d, SCM val);
 void add_scm_init_func (void (*)());
 
 
+typedef SCM(*Scheme_function_unknown)();
+
+#if __GNUC_MINOR__ >= 96
+typedef SCM(*Scheme_function_1)(SCM);   
+#else
+typedef SCM(*Scheme_function_1)(...);
+#endif
 
 #define MAKE_SCHEME_CALLBACK(TYPE, FUNC) \
 static SCM TYPE ## _ ## FUNC ## _proc;\
@@ -90,7 +95,7 @@ void                                                          \
 TYPE ## _ ## FUNC ## _init_functions ()                                        \
 {                                                              \
   TYPE ## _ ## FUNC ## _proc = gh_new_procedure1_0 (#TYPE "::" #FUNC, \
-  (SCM(*)(SCM))TYPE :: FUNC);                          \
+  ((Scheme_function_1)TYPE :: FUNC));                          \
 }                                                              \
                                                                \
 ADD_SCM_INIT_FUNC(TYPE ## _ ## FUNC ## _callback, TYPE ## _ ## FUNC ## _init_functions);       \
index a4a47c2a43941b4b9255c85002b0c0ad7578c5ea..9b121ff0d7816c5e026f7a8048bf9664a75f6a77 100644 (file)
@@ -20,7 +20,7 @@ public:
   
   Lyric_combine_music (Music*, Music*);
   virtual void transpose (Musical_pitch);
-  virtual void do_print () const;
+
   VIRTUAL_COPY_CONS(Music);
   virtual Moment length_mom () const;
   virtual Musical_pitch to_relative_octave (Musical_pitch);
index 89890b498231a732555aa2e600e4c1b03e06cbe1..9bb48d0b749eda7ccfd08b1b1f2f4916efa23516 100644 (file)
@@ -20,7 +20,7 @@ public:
  Lyric_performer ();
 
 protected:
-  void do_print() const;
+
   virtual bool do_try_music (Music* req_l);
   virtual void do_process_music();
   virtual void do_pre_move_processing ();
index a5c5c8d15206891d05377564ec7feb3e25540bd9..e60743cb2561c8fd79d87427bf7de48b294314ae 100644 (file)
@@ -29,7 +29,7 @@ public:
   Music_output_def ();
   virtual ~Music_output_def ();
   virtual int get_next_default_count () const;
-  virtual void print () const;
+
 
   Global_translator *get_global_translator_p ();
   Translator_group *get_group_translator_p (String type) const;
index 736d4abf98a988a84511c28e41daf437f4a2130a..6e88236e3375bf9e8cd34a2739ac4e02b1de1055 100644 (file)
@@ -34,7 +34,7 @@ public:
   
 protected:
   virtual Musical_pitch to_relative_octave (Musical_pitch);
-  virtual void do_print() const;
+
 
 };
 #endif
index 76987deac5827e9dadaa45efe388fdb664105cc5..d5227830a7a33daf7f0d26bb1bb1ce2f628a74ca 100644 (file)
@@ -25,7 +25,7 @@ public:
   Music_wrapper (Music*);
   Music * element () const;
   virtual void transpose (Musical_pitch);
-  virtual void do_print () const;
+
   
   VIRTUAL_COPY_CONS(Music);
   virtual Moment length_mom () const;
index 9e50aa0998d47ef547b9d722efb9de174e59208b..dbcfccf68747cec00214272ee45e721e1afe064f 100644 (file)
@@ -59,7 +59,7 @@ public:
   Music (Music const &m);
   Music();
 protected:
-  virtual void do_print() const;
+
   DECLARE_SMOBS(Music,);
   SCM immutable_property_alist_;
   SCM mutable_property_alist_;
index 079de76c8f650127501de88e1a6d82c7bdccc512..ed9f63857ab48a74cab2aed1a71133518005cdb8 100644 (file)
@@ -46,7 +46,7 @@ struct Musical_pitch : public Input
   void up_to (int);
   void down_to (int);
   String str () const;
-  void print () const;
+
   SCM to_scm () const;
 };
 
index ee5728441c41752f5e6f4828c3c9f0f66c84a084..0c2d6f928dd3c925434307227503c64ca8a1a394 100644 (file)
@@ -23,7 +23,7 @@
 class Rhythmic_req  : public virtual Request  {
 public:
   Duration duration_;
-  virtual void do_print () const;
+
 
   bool do_equal_b (Request const*) const;
   void compress (Moment);
@@ -42,7 +42,7 @@ struct Tremolo_req : public Request {
   VIRTUAL_COPY_CONS (Music);
   Tremolo_req ();
   int type_i_;
-  virtual void do_print () const;
+
 };
 
 
@@ -50,7 +50,7 @@ struct Tremolo_req : public Request {
   */
 class Lyric_req  : public  Rhythmic_req  {
 public:
-  virtual void do_print () const;
+
   String text_str_;
   VIRTUAL_COPY_CONS(Music);
 };
@@ -62,7 +62,7 @@ public:
   String articulation_str_;
 protected:
   virtual bool do_equal_b (Request const*) const;
-  virtual void do_print () const;
+
   VIRTUAL_COPY_CONS(Music);
 };
 
@@ -75,7 +75,7 @@ public:
 protected:
   VIRTUAL_COPY_CONS(Music);
   virtual bool do_equal_b (Request const*)const;
-  virtual void do_print () const;
+
 };
 
 
@@ -90,7 +90,7 @@ protected:
   /// transpose. #delta# is relative to central c.
   virtual void transpose (Musical_pitch delta);
   virtual bool do_equal_b (Request const*) const;
-  virtual void do_print () const;
+
   VIRTUAL_COPY_CONS(Music);
 };
 
@@ -122,7 +122,7 @@ public:
   bool cautionary_b_;
   Note_req();
 protected:
-  virtual void do_print () const;
+
   bool do_equal_b (Request const*) const;
   VIRTUAL_COPY_CONS(Music);
 };
index 6b0f607ade41087c1525f9da63b095d678abaa35..574e6952244f0547267e0ce6f2541e8a3219a15e 100644 (file)
@@ -23,7 +23,7 @@ public:
 protected:
   virtual void do_process_music ();
   virtual bool do_try_music (Music *req_l) ;
-  virtual void do_print () const;
+
   virtual void do_pre_move_processing ();
   virtual void process_acknowledged ();
   Global_translator* global_translator_l ();
index 3898a1ae18c89fc186fcfe9b7d272c2d68726f39..17847564c689ab44e6e793ebb5430250e1410065 100644 (file)
@@ -66,7 +66,7 @@ public:
   Paper_def (Paper_def const&);
 
   Interval line_dimensions_int (int) const;
-  void print () const;
+
   Lookup const * lookup_l (int sz) const;      // TODO naming
   virtual int get_next_default_count () const;
   static void reset_default_count();
index 102de3ad06dff1ca8f655204f1d2cf98323f0f10..1c91b340f29887e58dd26a4161dba7c8a87ab6d0 100644 (file)
@@ -23,7 +23,7 @@ public:
   Music * second_l () const;
   
   virtual void transpose (Musical_pitch);
-  virtual void do_print () const;
+
   virtual Moment length_mom () const;
   virtual Musical_pitch to_relative_octave (Musical_pitch);
   virtual void compress (Moment);
index 53e770f76a6f8440ac004597ae11edc467c3c4cd..a861d451bc0a23e0f6534e77813252ed28bd768e 100644 (file)
@@ -17,7 +17,7 @@ class Relative_octave_music : public Music_wrapper
 public:
   Musical_pitch last_pitch_;
 
-  void do_print () const;
+
   Relative_octave_music (Music*, Musical_pitch);
   
   VIRTUAL_COPY_CONS(Music);
index 35401d75d7c38b662c88067ce66abcf18ab3f4cf..f1cd68f48301f949e49e364fe264b87f3617b159 100644 (file)
@@ -30,7 +30,7 @@ public:
   bool equal_b (Request const*) const;
 protected:
   virtual bool do_equal_b (Request const*) const;
-  virtual void do_print() const;
+
 };
 
 
@@ -60,7 +60,7 @@ public:
   Span_req();
 protected:
   virtual bool do_equal_b (Request const*) const;
-  virtual void do_print() const;
+
   VIRTUAL_COPY_CONS(Music);
 };
 
index f1f4d8a1dc6619659161a5c57d7825c0a1ef76d1..cf16c0564b872b3556a380a38261e64fc8e5982b 100644 (file)
@@ -20,6 +20,9 @@ public:
   SCM to_alist () const; 
   bool elem_b (String ) const;
   bool elem_b (SCM s) const;
+
+  bool try_retrieve (SCM key, SCM *val) const;
+  
   Identifier *elem (String) const;
   Identifier *elem (SCM) const;
 
index b7515dc32abfcebdf7d6a5bc5e4ec426be1d0f40..b315574933032e378b2037c776e798b0fe139ad9 100644 (file)
@@ -32,7 +32,6 @@ public:
 
   void process();
   void add_output (Music_output_def *def_p);
-  void print() const;
 private:
   void run_translator (Music_output_def*);
 };
index 82c84cfc6acb9cb266363fb2584c2a91470418a6..129848172bbeddab67f690890c38e69b75e58b9e 100644 (file)
@@ -33,6 +33,8 @@ public:
  
   static Real staff_space (Score_element*);
   static Score_element * staff_symbol_l (Score_element*);
+  static bool on_staffline (Score_element*);
+  static bool on_staffline (Score_element*,int);
   static int line_count (Score_element*);
   static Real position_f (Score_element*);
   static Real staff_radius (Score_element*);
diff --git a/lily/include/symbol-cache.hh b/lily/include/symbol-cache.hh
new file mode 100644 (file)
index 0000000..e07b603
--- /dev/null
@@ -0,0 +1,79 @@
+/*   
+  symbol-cache.hh -- declare Symbol cacher.
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef SYMBOL_CACHE_HH
+#define SYMBOL_CACHE_HH
+
+#if 1
+
+/*
+  A per file cache: for each compilation unit, there is a separate
+  cache that maps the address of a string directly to a SCM value
+
+ */
+struct Symbol_cache_pair{
+  const char * key;
+  SCM val ;
+};
+
+static Symbol_cache_pair *private_symbol_cache;
+static Symbol_cache_pair *private_symbol_cache_end;
+
+static SCM
+symbol (const char *ch) __attribute__ ((unused));
+
+ SCM
+symbol (const char *ch)
+{
+  Symbol_cache_pair * lo = private_symbol_cache;
+  Symbol_cache_pair * hi = private_symbol_cache_end -1;
+
+  if (lo)
+    {
+      do
+       {
+         Symbol_cache_pair * mid = lo + (hi - lo) / 2 ;
+         if (mid->key > ch)
+           hi = mid;
+         else
+           lo = mid;
+       }
+      while ((hi - lo) > 1);
+      if (lo->key== ch)
+       return lo->val;
+    }
+
+  
+  Symbol_cache_pair * p = private_symbol_cache;
+  for (; p < private_symbol_cache_end
+        && p->key < ch ; p++)
+    ;
+
+  int idx = p - private_symbol_cache;
+  
+  SCM sym = gh_symbol2scm ((char*) ch);
+  scm_permanent_object (sym);
+  
+  int sz = private_symbol_cache_end - private_symbol_cache;
+  sz ++ ;
+  private_symbol_cache
+    = (Symbol_cache_pair*) realloc (private_symbol_cache,
+                                   sizeof (Symbol_cache_pair)* sz);
+  private_symbol_cache_end = private_symbol_cache + sz;
+  for (p = private_symbol_cache_end -1;
+       p != private_symbol_cache + idx; p --)
+    *p = *(p - 1);
+
+  p->key = ch;
+  p->val = sym;
+    
+  return sym;
+}
+#endif /* SYMBOL_CACHE_HH */
+#endif
index 086b731cd3804bbcfa99d3adce3d24faf7c019cc..c4a6d0f7c894d8168e6e3e365ef4b57d3d6868cb 100644 (file)
@@ -21,7 +21,7 @@ public:
   ~Tempo_performer();
 
 protected:
-  void do_print() const;
+
   virtual bool do_try_music (Music* req_l);
   virtual void do_process_music();
   virtual void do_pre_move_processing ();
index 7226d1c086897e22a0f17512823d591a7af376fd..ef3d20bb27551a616209e0ed64c7de6d75967b35 100644 (file)
@@ -21,7 +21,7 @@ public:
   ~Time_signature_performer();
 
 protected:
-  void do_print() const;
+
   virtual bool do_try_music (Music* req_l);
   virtual void do_process_music();
   virtual void do_pre_move_processing ();
index 507ff124b4a86e32d9167f83b54963bf75f20507..5d24929d5b53cc1c6af83655ebbb07694d462374 100644 (file)
@@ -69,7 +69,7 @@ public:
 protected:
   bool try_music_on_nongroup_children (Music *m);
   
-  virtual void do_print () const;
+
   virtual void do_process_music ();
   virtual void do_add_processing ();
   virtual bool do_try_music (Music* req_l);       
index 74a46a1fd2c503ce8986933bfb0c21741e6cd55b..2eb5023cc3bbe5394868d6dee5fed0149e9fb49b 100644 (file)
@@ -37,7 +37,7 @@ public:
   
   Translator_group * daddy_trans_l_ ;
  
-  void print () const;
+
   
   /**
     try to fit the request in this engraver
@@ -96,7 +96,7 @@ protected:
        */
   virtual void do_add_processing ();
   virtual bool do_try_music (Music *req_l);
-  virtual void do_print () const;
+
   virtual void do_pre_move_processing();
   virtual void do_post_move_processing();
   virtual void do_process_music () ;
index 7ae1db5595e27837e8368e045e27d46f2dcfe6cb..a559feb2bb7a1894cb3d34f0c28ed41a7f56a5a8 100644 (file)
@@ -18,7 +18,7 @@ class Transposed_music : public Music_wrapper
 public:
   Musical_pitch transpose_to_pitch_;
 
-  void do_print () const;
+
   Transposed_music (Music*, Musical_pitch);
   
   VIRTUAL_COPY_CONS(Music);
index 104687dbd5ef2046e18932904a97d9dc88fb28dd..110e6717e1e2fcb4ee929f6ee6a261fce852a605 100644 (file)
@@ -84,11 +84,13 @@ Key_engraver::create_key (bool def)
       announce_element (item_p_,keyreq_l_);
     }
 
-  if (!def)
-    item_p_->set_elt_property ("visibility-lambda",
-                              scm_eval2 (ly_symbol2scm  ("all-visible"),
-                                         SCM_EOL));
 
+  if (!def)
+    {
+      SCM vis = get_property ("explicitKeySignatureVisibility"); 
+      if (gh_procedure_p (vis))
+       item_p_->set_elt_property ("visibility-lambda",vis);
+    }
 }      
 
 
index 69fef2e645d1632a6fb93c3329c07f25f7a35d2a..4a6e26d5d1ae1077af7dd7cf815c849bbb4eafce 100644 (file)
@@ -53,7 +53,7 @@ ly_parse_scm (char const* s, int* n)
 
   /* Read expression from port */
   if (!SCM_EOF_OBJECT_P (form = scm_read (port)))
-    answer = scm_eval_3 (form, 1, SCM_EOL);
+    answer = scm_eval_3 (form, 1, SCM_EOL); // guh?
 
   /*
    After parsing
@@ -100,6 +100,7 @@ ly_symbol2scm(const char *s)
   return gh_symbol2scm ((char *)s);
 }
 
+
 String
 ly_symbol2string (SCM s)
 {
@@ -345,7 +346,7 @@ ly_number2string (SCM s)
 {
   assert (gh_number_p (s));
 
-  char str[100];                       // ugh.
+  char str[400];                       // ugh.
 
   if (scm_integer_p (s) == SCM_BOOL_F)
     {
@@ -399,11 +400,11 @@ undefd ()
 static void
 init_functions ()
 {
-  scm_make_gsubr ("ly-warn", 1, 0, 0, (SCM(*)())ly_warning);
-  scm_make_gsubr ("ly-gulp-file", 1,0, 0, (SCM(*)())ly_gulp_file);
-  scm_make_gsubr ("dir?", 1,0, 0, (SCM(*)())ly_isdir_p);
-  scm_make_gsubr ("undefd", 0,0, 0, (SCM(*)())undefd);  
-  scm_make_gsubr ("ly-number->string", 1, 0,0, (SCM(*)()) ly_number2string);
+  scm_make_gsubr ("ly-warn", 1, 0, 0, (Scheme_function_unknown)ly_warning);
+  scm_make_gsubr ("ly-gulp-file", 1,0, 0, (Scheme_function_unknown)ly_gulp_file);
+  scm_make_gsubr ("dir?", 1,0, 0, (Scheme_function_unknown)ly_isdir_p);
+  scm_make_gsubr ("undefd", 0,0, 0, (Scheme_function_unknown)undefd);  
+  scm_make_gsubr ("ly-number->string", 1, 0,0, (Scheme_function_unknown) ly_number2string);
 
 
 #ifdef TEST_GC 
index a03c8b6a064b99428010ce793cc8054a22947deb..a705daddb653517cc972919e01003f5f86b420df 100644 (file)
@@ -37,7 +37,6 @@ Line_group_engraver_group::do_removal_processing()
   Score_element *  it
     = unsmob_element (get_property (ly_symbol2scm ("currentCommandColumn")));
 
-
   staffline_p_->set_bound(RIGHT,it);
   Engraver_group_engraver::typeset_element (staffline_p_);
   staffline_p_ = 0;
index ab81aa4284d499048da21d6281e3d2c2dad99573..62ad7fbb916c52c9ead74cba161b23784bee3172 100644 (file)
@@ -266,6 +266,10 @@ Lookup::text (String style, String text, Paper_def *paper_l)
       font_mag = (int)paper_l->get_var ("magnification_" + style);
     }
 
+  /*
+    FIXME !
+   */
+  
   SCM l = scm_assoc (ly_str02scm (style.ch_C()),
                     scm_eval2 (ly_symbol2scm ("cmr-alist"), SCM_EOL));
 
index 0b1f86b332836e5d207d0f9164dea67942bceb97..2059314b2545a4802ca97249422caa089b5074e6 100644 (file)
@@ -24,12 +24,6 @@ Lyric_combine_music::transpose (Musical_pitch p)
   lyrics_l () ->transpose (p);
 }
 
-void
-Lyric_combine_music::do_print () const  
-{
-  music_l ()->print();
-  lyrics_l () ->print ();
-}
 
 Moment
 Lyric_combine_music::length_mom () const
index e07fe0f4fe1df5dfd3495d024f494861ff69da71..4569505c4adb4738c0a6a2b682f1b70c9fe05fe7 100644 (file)
@@ -17,14 +17,6 @@ Lyric_performer::Lyric_performer ()
   audio_p_ = 0;
 }
 
-void 
-Lyric_performer::do_print () const
-{
-#ifndef NPRINT
-  if (lreq_arr_.size ())
-    lreq_arr_[0]->print ();
-#endif
-}
 
 void
 Lyric_performer::do_process_music ()
index b2f588e4af7f790216a44a5cb6559ee6b3a92cb8..c3ebbf02c9028f252210701d462d6b7b4cf94e28 100644 (file)
@@ -66,7 +66,7 @@ make_rational (SCM n, SCM d)
 void
 init_moments ()
 {
-  scm_make_gsubr ("make-moment", 2 , 0, 0,  (SCM(*)()) make_rational);
+  scm_make_gsubr ("make-moment", 2 , 0, 0, (Scheme_function_unknown) make_rational);
 }
 
 ADD_SCM_INIT_FUNC(moms,init_moments);
index 438ea4cca67281bc5da761db69c2f43d1586469c..d2ddb4a9af0fa2205b153736935f8944db95133e 100644 (file)
@@ -56,10 +56,11 @@ SCM
 Music_output_def::find_translator_l (SCM name) const
 {
   String s = ly_scm2string (name);
+  
+  SCM val  =SCM_EOL;
   if (translator_p_dict_p_->elem_b (s))
     return translator_p_dict_p_->scm_elem (s);
-
-  return SCM_EOL;
+  return val;
 }
 
 
@@ -77,10 +78,7 @@ Music_output_def::get_global_translator_p ()
   return dynamic_cast <Global_translator *> (tg);
 }
 
-void
-Music_output_def::print () const
-{
-}
+
 
 String
 Music_output_def::get_default_output () const
index 3ff7f4a235d20fe6879a1f59b7f774997fc8d813..2e5243f6b5915d09a71f95aba34f94511d16d051 100644 (file)
@@ -63,14 +63,6 @@ Music_sequence::transpose (Musical_pitch rq)
     unsmob_music (gh_car (s))->transpose (rq);    
 }
 
-void
-Music_sequence::do_print() const
-{
-#ifndef NPRINT
-  for (SCM s = music_list (); gh_pair_p (s);  s = gh_cdr (s))
-    unsmob_music (gh_car (s))->print();
-#endif 
-}
 
 
 
index 8a2d66f5bd4f459328e7552cf47796e74e154ac7..ffcba963366d7dc7fdd934377b0aa158dcd28319 100644 (file)
 #include "music-wrapper.hh"
 
 
-void
-Music_wrapper::do_print () const
-{
-  element ()->print ();
-}
+
 
 void
 Music_wrapper::transpose (Musical_pitch p)
index 8ce821e0124a6685535ec471a33dcbd6b92bf95b..c9e001482cb6e5e53aa292d50513d6065c848eac 100644 (file)
@@ -64,10 +64,7 @@ Music::compress (Moment)
 {
 }
 
-void
-Music::do_print() const
-{
-}
+
 
 Moment
 Music::length_mom () const
@@ -177,10 +174,6 @@ Music::origin () const
 }
 
 
-void
-Music::print ()const
-{
-}
 
 
 
index bb22b41291b59ad70833b4850dc8bf0c7cbe1d26..5a834db780a0f6d28a521edd612e8f47905b979f 100644 (file)
@@ -55,13 +55,6 @@ Musical_pitch::Musical_pitch (int n, int a, int o)
   octave_i_ = o;
 }
 
-void
-Musical_pitch::print () const
-{
-#ifndef NPRINT
-  DEBUG_OUT << str ();
-#endif
-}
 
 int
 Musical_pitch::compare (Musical_pitch const &m1, Musical_pitch const &m2)
index cdcda7ac0160ae4c634aa92163c461e23d9a774b..dccf2e3fd5b82cd97be0fc70c0effd0cc7f5efca 100644 (file)
 #include "debug.hh"
 #include "music-list.hh"
 
-void
-Span_req::do_print () const
-{
-#ifndef NPRINT
-  DEBUG_OUT << span_dir_;
-#endif
-}
 
 Tremolo_req::Tremolo_req ()
 {
   type_i_ = 0;
 }
 
-void
-Tremolo_req::do_print () const
-{
-#ifndef NPRINT
-  DEBUG_OUT << "type " << type_i_ << '\n';
-#endif
-}
 
 void
 Melodic_req::transpose (Musical_pitch delta)
@@ -59,11 +45,6 @@ Melodic_req::compare (Melodic_req const &m1 , Melodic_req const&m2)
   return Musical_pitch::compare (m1.pitch_, m2.pitch_);
 }
 
-void
-Melodic_req::do_print () const
-{
-  pitch_.print ();
-}
 
 
 
@@ -82,13 +63,6 @@ Rhythmic_req::do_equal_b (Request const* r) const
   return rh && !compare (*this, *rh);
 }
 
-void
-Rhythmic_req::do_print () const
-{
-#ifndef NPRINT
-  DEBUG_OUT << "duration { " <<duration_.str () << "}";
-#endif
-}
 
 
 Moment
@@ -103,14 +77,6 @@ Rhythmic_req::compress (Moment m)
   duration_.compress (m);
 }
 
-void
-Lyric_req::do_print () const
-{
-#ifndef NPRINT
-  Rhythmic_req::do_print ();
-  DEBUG_OUT <<  "text = " << text_str_;
-#endif
-}
 
 
 bool
@@ -129,22 +95,6 @@ Note_req::Note_req ()
 
 
 
-void
-Note_req::do_print () const
-{
-#ifndef NPRINT
-  Melodic_req::do_print ();
-  if (cautionary_b_)
-    {
-       DEBUG_OUT << " force cautionary accidental\n";
-    }
-  else if (forceacc_b_)
-    {
-       DEBUG_OUT << " force accidental\n";
-    }
-  Rhythmic_req::do_print ();
-#endif
-}
 
 
 bool
@@ -159,12 +109,6 @@ Span_req::Span_req ()
   span_dir_ = CENTER;
 }
 
-void
-Text_script_req::do_print () const
-{
-  DEBUG_OUT << "text" << text_str_
-       << ", style = " << style_str_;
-}
 
 bool
 Text_script_req::do_equal_b (Request const* r) const
@@ -173,11 +117,6 @@ Text_script_req::do_equal_b (Request const* r) const
   return t && t->text_str_ == text_str_ && t->style_str_ == style_str_;
 }
 
-void
-Articulation_req::do_print () const
-{
-  DEBUG_OUT << articulation_str_;
-}
 
 bool
 Articulation_req::do_equal_b (Request const* r) const
index a3dc6043aca070ade02c649293d54baa3a82fa0d..44843e402adc9850319b45cae997752afe73fee5 100644 (file)
@@ -104,8 +104,11 @@ My_lily_lexer::lookup_identifier (String s)
   SCM sym = ly_symbol2scm (s.ch_C());
   
   for (int i = scope_l_arr_.size (); i--; )
-    if (scope_l_arr_[i]->elem_b (sym))
-      return scope_l_arr_[i]->scm_elem(sym);
+    {
+      SCM val = SCM_UNSPECIFIED;
+      if (scope_l_arr_[i]->try_retrieve (sym, &val))
+       return val;
+    }
   return SCM_UNSPECIFIED;
 }
 
index b0b97cb9a7b10b1200e3ae7ff116fc174523077a..847799f180c1ad23c14549a6b16904ef35fe1e51 100644 (file)
@@ -60,10 +60,10 @@ Note_head::brew_molecule (SCM smob)
   
   Real inter_f = Staff_symbol_referencer::staff_space (me)/2;
   int sz = Staff_symbol_referencer::line_count (me)-1;
-  Real p = Staff_symbol_referencer::position_f (me);
+  int p = (int)Staff_symbol_referencer::position_f (me);
   int streepjes_i = abs (p) < sz 
     ? 0
-    : (abs((int)p) - sz) /2;
+    : (abs(p) - sz) /2;
 
   SCM style  = me->get_elt_property ("style");
   if (!gh_symbol_p (style))
@@ -89,13 +89,15 @@ Note_head::brew_molecule (SCM smob)
       
 
       ledger.set_empty (true);
-      int parity =  abs(int (p)) % 2;
-      
+      Real offs = (Staff_symbol_referencer::on_staffline (me))
+       ? 0.0
+       : -dir * inter_f;
+
       for (int i=0; i < streepjes_i; i++)
        {
          Molecule s (ledger);
-         s.translate_axis (-dir * inter_f * (i*2 + parity),
-                          Y_AXIS);
+         s.translate_axis (-dir * inter_f * i*2 + offs,
+                           Y_AXIS);
          out.add_molecule (s);
        }
     }
index 782b4848a2b5f393dc8a32341f970f68e8f444e6..9433e8714cd4faab68ef2bfbad65cf840dc0d39f 100644 (file)
@@ -20,15 +20,7 @@ Note_performer::Note_performer ()
 {
 }
 
-void 
-Note_performer::do_print () const
-{
-#ifndef NPRINT
-  if (note_req_l_arr_.size()>0)
-    for(int i=0;i<note_req_l_arr_.size();i++)
-      note_req_l_arr_[i]->print ();
-#endif
-}
+
 
 void 
 Note_performer::do_process_music () 
index fb01b677857a6be81ceb0b2cef4c4c8407990197..7300edd6a60553c66ffca95412ec0df76634e7e0 100644 (file)
@@ -56,12 +56,13 @@ Paper_def::get_scmvar (String s) const
 Real
 Paper_def::get_realvar (SCM s) const
 {
-  if (!scope_p_->elem_b (s))
+  SCM val ;
+  if (!scope_p_->try_retrieve (s, &val))
     {
       programming_error ("unknown paper variable: " +  ly_symbol2string (s));
       return 0.0;
     }
-  SCM val = scope_p_->scm_elem (s);
+
   if (gh_number_p (val))
     {
       return gh_scm2double (val);
@@ -93,18 +94,6 @@ Paper_def::set_lookup (int i, SCM l)
   lookup_alist_ = scm_assq_set_x(lookup_alist_, gh_int2scm (i), l);
 }
 
-
-
-void
-Paper_def::print () const
-{
-#ifndef NPRINT
-  Music_output_def::print ();
-  if (flower_dstream)
-    gh_display (lookup_alist_);
-#endif
-}
-
 Lookup const *
 Paper_def::lookup_l (int i) const
 {
index d9e98329b3be75126a6068f0c7d1a424eaf255bb..c6ee7713043c36f271f20a362623d6093795c281 100644 (file)
@@ -27,12 +27,7 @@ Part_combine_music::transpose (Musical_pitch p)
   second_l () ->transpose (p);
 }
 
-void
-Part_combine_music::do_print () const  
-{
-  first_l ()->print();
-  second_l () ->print ();
-}
+
 
 Moment
 Part_combine_music::length_mom () const
index f6ff1cb5c7fc06874b385d269959f8fe74200e97..9da4c7dc38caaae621456bcc1594cb0d54d015cc 100644 (file)
@@ -137,23 +137,10 @@ Performance::add_element (Audio_element *p)
   audio_elem_p_list_ = new Killing_cons<Audio_element> (p, audio_elem_p_list_);
 }
 
-void
-Performance::print() const
-{
-#ifndef NPRINT
-  DEBUG_OUT << "Performance { ";
-  DEBUG_OUT << "Items: ";
-  for (Cons<Audio_element>* i =audio_elem_p_list_; i; i = i->next_)
-    i->car_->print ();
-  DEBUG_OUT << "}";
-#endif
-}
 
 void
 Performance::process()
 {
-  print ();
-
   String out = midi_l_->get_default_output ();
   if (out.empty_b ())
     {
index 1e5a16b931ae2e849ee3e21873a86ad3fb325130..312e1022be9019c9bc9d6019aa8590a2e9cabb97 100644 (file)
@@ -12,6 +12,7 @@
 #include "dictionary.hh"
 #include "score-element.hh"
 #include "scm-hash.hh"
+#include "translator-group.hh"
 
 /*
   JUNKME: should use pushproperty everywhere.
@@ -23,7 +24,7 @@ class Property_engraver : public Engraver
     UGH. Junk Dictionary
   */
   Scheme_hash_table *prop_dict_;       // junkme
-  void apply_properties (SCM, Score_element*);
+  void apply_properties (SCM, Score_element*, Translator_group *origin);
 
 protected:
   virtual void acknowledge_element (Score_element_info ei);
@@ -58,7 +59,7 @@ Property_engraver::do_creation_processing ()
 {
   prop_dict_ = new Scheme_hash_table;
 
-  SCM plist = get_property ("Generic_property_list");
+  SCM plist = get_property (ly_symbol2scm ("Generic_property_list"));
   for (; gh_pair_p (plist); plist = gh_cdr (plist))
     {
       SCM elt_props = gh_car (plist);
@@ -75,19 +76,19 @@ Property_engraver::acknowledge_element (Score_element_info i)
     {      
       if (prop_dict_->try_retrieve (gh_car (ifs), &props))
        {
-         apply_properties (props,i.elem_l_);
+         apply_properties (props,i.elem_l_, i.origin_trans_l_->daddy_trans_l_);
        }
     }
 
   if (prop_dict_->try_retrieve (ly_symbol2scm ("all"), &props))
     {
-      apply_properties (props, i.elem_l_);
+      apply_properties (props, i.elem_l_, i.origin_trans_l_->daddy_trans_l_);
     }
 }
 
 
 void
-Property_engraver::apply_properties (SCM p, Score_element *e)
+Property_engraver::apply_properties (SCM p, Score_element *e, Translator_group*origin)
 {
   for (; gh_pair_p (p); p = gh_cdr (p))
     {
@@ -112,7 +113,18 @@ Property_engraver::apply_properties (SCM p, Score_element *e)
        ;                       // Not defined in context.
       else if (gh_apply (type_p, scm_listify (val, SCM_UNDEFINED))
               == SCM_BOOL_T)   // defined and  right type: do it
-       e->set_elt_property (elt_prop_sym, val);
+       {
+         e->set_elt_property (elt_prop_sym, val);
+
+         String msg = "Property_engraver is deprecated. Use\n \\property "
+           + origin->type_str_
+           + ".basicXXXXProperties"
+           + " \\push #'"
+           + ly_symbol2string (elt_prop_sym)
+           + " = #";
+         warning (msg);
+         scm_display (val, scm_current_error_port ());
+       }
       else
 
        /*
index f786e7b0edcbd9e590c18a8d4fb00b2a5e4b9bec..5f8081afa0c177e1b908c1e1c1bcae14cdf8a7a9 100644 (file)
@@ -23,11 +23,5 @@ Relative_octave_music::Relative_octave_music(Music*p,Musical_pitch def)
   last_pitch_ = element ()->to_relative_octave (def);
 }
 
-void
-Relative_octave_music::do_print () const
-{
-  Music_wrapper::do_print ();
-  DEBUG_OUT << "default pitch: " << last_pitch_.str ();
-}
 
 
index 14eb23856c8ccec738065fcdbf60bb4cf0bd9650..ad9223d274ecda7f476561074ee6c4fc648ddc41 100644 (file)
@@ -9,10 +9,7 @@
 #include "request.hh"
 #include "debug.hh"
 
-void
-Request::do_print() const
-{
-}
+
 
 bool
 Request::equal_b (Request const* r) const
index 85837e5d0979ca048aa9872620b6d74bb1bf9e6a..ba18c1f44c707362c82048ec295597da4f4e5be4 100644 (file)
@@ -80,3 +80,9 @@ Scope::to_alist () const
 {
   return id_dict_->to_alist ();
 }
+
+bool
+Scope::try_retrieve (SCM k , SCM *v)const
+{
+  return id_dict_->try_retrieve (k, v);
+}
index f1974fe63abd5b622d3cb2c7b7a114c33d0cd61f..c4d43ca0b8d2633442b7cd73847257b40920b762 100644 (file)
@@ -832,15 +832,14 @@ spanner_get_bound (SCM slur, SCM dir)
 
 
 static SCM interfaces_sym;
-#define UNDEFINED_ARG 
 static void
 init_functions ()
 {
   interfaces_sym = scm_permanent_object (ly_symbol2scm ("interfaces"));
   
-  scm_make_gsubr ("ly-get-elt-property", 2, 0, 0, (SCM(*)(UNDEFINED_ARG))ly_get_elt_property);
-  scm_make_gsubr ("ly-set-elt-property", 3, 0, 0, (SCM(*)(UNDEFINED_ARG))ly_set_elt_property);
-  scm_make_gsubr ("ly-get-spanner-bound", 2 , 0, 0, (SCM(*)(UNDEFINED_ARG)) spanner_get_bound);
+  scm_make_gsubr ("ly-get-elt-property", 2, 0, 0, (Scheme_function_unknown)ly_get_elt_property);
+  scm_make_gsubr ("ly-set-elt-property", 3, 0, 0, (Scheme_function_unknown)ly_set_elt_property);
+  scm_make_gsubr ("ly-get-spanner-bound", 2 , 0, 0, (Scheme_function_unknown) spanner_get_bound);
 }
 
 bool
index 66b759e7d237bc7c9cd31c67ce45afd7fbdd1b35..e2fa641da3d104d305dd7300a0006653dc973762 100644 (file)
@@ -269,7 +269,7 @@ Score_engraver::do_add_processing ()
   pscore_p_ = new Paper_score;
   pscore_p_->paper_l_ = dynamic_cast<Paper_def*>(output_def_l_);
 
-  SCM props = get_property(ly_symbol2scm ("basicLineOfScoreProperties"));
+  SCM props = get_property (ly_symbol2scm ("basicLineOfScoreProperties"));
 
   pscore_p_->typeset_line (new Line_of_score (props));
 }
index 4f33c853f1a37edded37c8a7bd8cc60374478e0f..ed53e2b0d1c5183b456110fb94b4785ed85d92f3 100644 (file)
@@ -121,7 +121,7 @@ Score::process()
   if (!unsmob_music (music_))
     return;
 
-  print();
+
   for (int i=0; i < def_p_arr_.size (); i++)
     {
       if (no_paper_global_b 
@@ -133,17 +133,6 @@ Score::process()
 
 
 
-void
-Score::print() const
-{
-#ifndef NPRINT
-  DEBUG_OUT << "score {\n";
-  // music_p_ -> print ();
-  for (int i=0; i < def_p_arr_.size (); i++)
-    def_p_arr_[i]->print();
-  DEBUG_OUT << "}\n";
-#endif
-}
 
 void
 Score::add_output (Music_output_def *pap_p)
index 0a075e5bc7da3e11f5458a8b04be2f57e041ecc9..7d611e494aa3489f1e7d20a5e925cfeab8ac66d6 100644 (file)
@@ -81,8 +81,6 @@ do_scores()
        }
       else
        {
-         if (flower_dstream && !flower_dstream->silent_b ("do_scores"))
-             is_p->print ();
          is_p->process();
        }
     }
index bac852ce5582402b1310f26d5e05ffaa51e018c7..059d14dd08d159d4049c99d4c58da92cbbc36ae5 100644 (file)
@@ -57,10 +57,9 @@ Script_engraver::do_process_music()
     {
       Articulation_req* l=script_req_l_arr_[i];
 
-      SCM list = scm_assoc (ly_str02scm (l->articulation_str_.ch_C ()),
-                           scm_eval2 (ly_symbol2scm ("script-alist"),
-                                      SCM_EOL));
-      
+      SCM alist = get_property ("scriptDefinitions");
+      SCM list = scm_assoc (ly_str02scm (l->articulation_str_.ch_C ()), alist);
+
       if (list == SCM_BOOL_F)
        {
          l->origin ()->warning (_f ("Don't know how to interpret articulation `%s'",
index 7c2c974c7e9e6e8f895e84a5ef318b77729360ff..efbaf148448e2767809656e712b4022014f5fe21 100644 (file)
@@ -166,7 +166,7 @@ Side_position::quantised_position (Score_element *me, Axis )
       Real rad = Staff_symbol_referencer::staff_radius (me) *2 ;
       int ip = int  (rp);
 
-      if (abs (ip) < rad && (ip % 2) == 0)
+      if (abs (ip) < rad && Staff_symbol_referencer::on_staffline (me,ip))
        {
          ip += d;
          rp += d;
index 0240e99f87a2dbc45c1aa0c560e481788f45ce34..b9f3396206ed96215e8d5a5bafff1de7e002ae0c 100644 (file)
@@ -149,10 +149,6 @@ Slur_bezier_bow::minimise_enclosed_area (Paper_def* paper_l, Real beauty)
   Real length = curve_.control_[3][X_AXIS]; 
   Real beautiful = beauty * length * slur_height (length, h_inf_, r_0_);
 
-  DEBUG_OUT << to_str ("Beautiful: %f\n", beautiful);
-  DEBUG_OUT << to_str ("Length: %f\n", length);
-  //  DEBUG_OUT << to_str ("D-height: %f\n", default_height);
-  DEBUG_OUT << to_str ("FitFac: %f\n", fit_factor ());
 
   if (fit_factor () > 1.0)
     blow_fit ();
@@ -186,20 +182,11 @@ Slur_bezier_bow::minimise_enclosed_area (Paper_def* paper_l, Real beauty)
                <? abs ((curve_.control_[3][X_AXIS]
                         - curve_.control_[2][X_AXIS]) / da[1]));
 
-      DEBUG_OUT << to_str ("pct: %f\n", pct);
-      DEBUG_OUT << to_str ("u: %f\n", u);
-
-      DEBUG_OUT << to_str ("da: (%f, %f)\n", da[0], da[1]);
-      DEBUG_OUT << to_str ("da*u: (%f, %f)\n", da[0]*u*pct, da[1]*u*pct);
-      DEBUG_OUT << to_str ("cx: (%f, %f)\n", curve_.control_[1][X_AXIS],
-                          curve_.control_[2][X_AXIS]);
-
       curve_.control_[1][X_AXIS] -= da[0] * u * pct;
       curve_.control_[2][X_AXIS] -= da[1] * u * pct;
     }
 
   Real area = enclosed_area_f ();
-  DEBUG_OUT << to_str ("Exarea: %f\n", area);
 }
 
 
index b4a2351ea3348aa9a3e69596f87f607b468bf1ec..4e70b158b6b58d2e1611076e5a5c25a4ebc080a8 100644 (file)
@@ -39,6 +39,19 @@ Staff_symbol_referencer::line_count (Score_element*me)
   return st  ?  Staff_symbol::line_count (st) : 0;
 }
 
+bool
+Staff_symbol_referencer::on_staffline (Score_element*me)
+{
+  return on_staffline (me, (int) position_f (me));
+}
+
+bool
+Staff_symbol_referencer::on_staffline (Score_element*me, int pos)
+{
+  int sz = line_count (me)-1;
+  return ((pos + sz) % 2) == 0;
+}
+
 Score_element*
 Staff_symbol_referencer::staff_symbol_l (Score_element*me) 
 {
index 86d62e4fbd525bd89f98b62a4f32b2b8a69b961c..e21d7c4fc96c2dd1ad9d12f05a16a689b7607db9 100644 (file)
@@ -48,12 +48,12 @@ Stanza_number_engraver::acknowledge_element(Score_element_info i)
   
   if (gh_string_p (s))
     {
-//       if (i.elem_l_->has_interface (ly_symbol2scm ("lyric-syllable-interface")))
+//       if (i.elem_l_->has_interface (symbol ("lyric-syllable-interface")))
         // Tried catching lyric items to generate stanza numbers, but it spoils lyric spacing.
        if (Bar::has_interface (i.elem_l_) || now_mom() == Moment(0))
        // Works, but requires bar_engraver in LyricVoice context apart from at beginning.
        // Is there any score element we can catch that will do the trick?
-//       if (! i.elem_l_->has_interface (ly_symbol2scm ("lyric-syllable-interface")) ||
+//       if (! i.elem_l_->has_interface (symbol ("lyric-syllable-interface")) ||
 //       now_mom() == Moment(0))
        // What happens if we try anything at all EXCEPT a lyric? Is there anything else?
         // Not sure what it's catching, but it still mucks up lyrics.
diff --git a/lily/symbol-cache.cc b/lily/symbol-cache.cc
new file mode 100644 (file)
index 0000000..ed801f2
--- /dev/null
@@ -0,0 +1,77 @@
+/*   
+  symbol-cache.cc --  implement a cache for literal symbols, eg
+    symbol("foo-bar")
+    
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include <map>
+#include "lily-guile.hh" 
+
+#if 0
+
+typedef map<const char*, SCM> Literal_symbol_map;
+Literal_symbol_map literal_map;
+
+
+SCM
+symbol (const char*s)
+{
+  Literal_symbol_map::const_iterator i = literal_map.find (s);
+  if (i != literal_map.end())
+    return (*i).second;
+
+  SCM sym = gh_symbol2scm ((char*)s);
+  scm_permanent_object (sym);
+  literal_map[s] = sym;
+  return sym;
+}
+
+
+/*
+  This is a gory trick to cache the value gh_symbol2scm (), without
+  cluttering up the C code with snarf macros.
+  
+  You should *ONLY* use symbol() for arguments that are literal
+  strings!
+  
+  without (wtk1-fugue2)
+
+       real    0m20.157s
+       user    0m19.800s
+       sys     0m0.140s
+
+  with: (per file.)
+
+       real    0m19.284s
+       user    0m18.630s
+       sys     0m0.190s
+
+
+  global with STL map
+
+       real    0m20.616s
+       user    0m19.360s
+       sys     0m0.080s
+
+  global with binsearch.
+
+
+       real    0m19.352s
+       user    0m18.710s
+       sys     0m0.230s
+  local binsearch
+
+   user 18.8
+
+   local with binsearch, and other optimizations.
+
+   17.7
+*/
+#endif
+
+
index b728730947e1093b77cbe9470cb78e98f1a7122c..e4066580ca7da4d61d7e0262b7d145b858706a45 100644 (file)
@@ -22,14 +22,6 @@ Tempo_performer::~Tempo_performer ()
 {
 }
 
-void 
-Tempo_performer::do_print () const
-{
-#ifndef NPRINT
-  if (tempo_req_l_)
-    tempo_req_l_->print ();
-#endif
-}
 
 void
 Tempo_performer::do_process_music ()
index 176ecd195ac7a03f8b0be7d973240c84ccf3fee4..70472b8020f3227211a55a9fc346070550f0232b 100644 (file)
@@ -113,10 +113,6 @@ Tex_font_metric_reader::read_header ()
   info_.coding_scheme = header_length > 2
     ? get_bcpl_str () : "unspecified";
 
-  DEBUG_OUT << format_str ("TFM checksum = %u, design_size = %fpt, coding scheme = `%s'.\n",
-                     info_.checksum,
-                     info_.design_size,
-                     info_.coding_scheme.ch_C ());
 }
 
 /* Although TFM files are only usable by TeX if they have at least seven
@@ -154,10 +150,6 @@ Tex_font_metric_reader::read_params ()
   for (Char_code i = 2; i <= header_.param_word_count; i++)
     info_.parameters[i - 1] = get_U32_fix_scaled_f ();
 
-#ifdef PRINT
-  for (Char_code i = 1; i <= header_.param_word_count; i++)
-    DEBUG_OUT << format_str ("TFM parameter %d: %.3f", i, info_.parameters[i - 1]);
-#endif
 }
 
 /* Read every character in the TFM file, storing the result in the
@@ -246,13 +238,6 @@ Tex_font_metric_reader::read_char ()
      `char_info_word').  */
   tfm_char.exists_b_ = width_index != 0;
 
-#ifdef PRINT
-  DEBUG_OUT << format_str ("   width = %f, height = %f, ",
-                     tfm_char.width_, tfm_char.height_);
-  DEBUG_OUT << format_str ("depth = %f, ic = %f.\n",
-                     tfm_char.depth, tfm_char.italic_correction); 
-#endif
-
   if (tag == 1)
     {
       input_.seek_ch_C (header_.lig_kern_pos + remainder * 4);
@@ -283,9 +268,6 @@ Tex_font_metric_reader::read_lig_kern_program (Array <Tfm_ligature>* ligature_ar
       bool kern_step_b = input_.get_U8 () >= KERN_FLAG;
       U8 remainder = input_.get_U8 ();
 
-#ifdef PRINT
-      DEBUG_OUT << format_str ("   if next = %u (%c), ", next_char, next_char);
-#endif
 
       if (kern_step_b)
        {
@@ -299,9 +281,6 @@ Tex_font_metric_reader::read_lig_kern_program (Array <Tfm_ligature>* ligature_ar
 
          kern_arr_p->push (kern_element);
 
-#ifdef PRINT
-         DEBUG_OUT << format_str ("kern %f.\n", kern_element.kern);
-#endif
        }
       else
        {
@@ -310,11 +289,6 @@ Tex_font_metric_reader::read_lig_kern_program (Array <Tfm_ligature>* ligature_ar
          ligature_element.ligature = remainder;
          ligature_arr_p->push (ligature_element);
 
-#ifdef PRINT
-         DEBUG_OUT format_str ("ligature %d (hex %x).\n",
-                          ligature_element.ligature,
-                          ligature_element.ligature);
-#endif
        }
   } while (!end_b);
 }
index aeed66b8068da901e47692ff22e45fbc0db73fdb..709087e42b416b475487d10c86cff9e1b21cab7b 100644 (file)
@@ -22,14 +22,6 @@ Time_signature_performer::~Time_signature_performer ()
 {
 }
 
-void 
-Time_signature_performer::do_print () const
-{
-#ifndef NPRINT
-  if (time_signature_req_l_)
-    time_signature_req_l_->print ();
-#endif
-}
 
 void
 Time_signature_performer::do_process_music ()
index a13eb4901b3803190a5208bbf39cef12e8130508..24416817d00941fb8a32113d78cbf357e636f99a 100644 (file)
@@ -272,12 +272,7 @@ Translator_group::each (Method_pointer method)
   static_each (trans_group_list_, method);
 }
 
-void
-Translator_group::do_print() const
-{
-#ifndef NPRINT
-#endif
-}
+
 
 void
 Translator_group::do_add_processing ()
@@ -307,15 +302,14 @@ Translator_group::where_defined (SCM sym) const
 SCM
 Translator_group::get_property (SCM sym) const
 {
-  if (properties_dict ()->elem_b (sym))
-    {
-      return properties_dict ()->get (sym);
-    }
+  SCM val =SCM_UNDEFINED;
+  if (properties_dict ()->try_retrieve (sym, &val))
+    return val;
 
   if (daddy_trans_l_)
     return daddy_trans_l_->get_property (sym);
   
-  return SCM_UNDEFINED;
+  return val;
 }
 
 void
index 90edc46fbbaa3423bc62f94c9b6612f2a3346e04..905266cbeab94cdc7e07db923ebfa4f7a7935c6d 100644 (file)
@@ -88,22 +88,6 @@ Translator::do_add_processing ()
 {
 }
 
-void
-Translator::print () const
-{
-#ifndef NPRINT
-  DEBUG_OUT << classname (this) << " {";
-  if (classname (this) != type_str_)
-    DEBUG_OUT << "type = " << type_str_;
-  do_print ();
-  DEBUG_OUT << "}\n";
-#endif
-}
-
-void
-Translator::do_print () const
-{
-}
 
 
 
index 2bcb37086552f5e4ef1f9216a30770f942b2fc83..7c7f38ac2dbb601e746330bb18ed3250721479af 100644 (file)
@@ -17,12 +17,6 @@ Transposed_music::Transposed_music (Music *p, Musical_pitch pit)
   p->transpose (pit);
 }
 
-void
-Transposed_music::do_print () const
-{
-  Music_wrapper::do_print ();
-  DEBUG_OUT << "transposition pitch: " << transpose_to_pitch_.str ();
-}
 
 Musical_pitch
 Transposed_music::to_relative_octave (Musical_pitch p)
index 6e6b665f011d82a642422b3b4997ff7525fe58d1..f9ac9ea0c451a35172ef5dc58ff7c1fb1c132ff2 100644 (file)
@@ -71,7 +71,7 @@ Unfolded_repeat_iterator::next_element (bool side_effect)
              String repstr = to_str (done_count_ + 1);
              if (do_repcommands)
                add_repeat_command (gh_list (ly_symbol2scm ("volta"),
-                                            gh_str02scm (repstr.ch_C()), SCM_UNDEFINED));
+                                            ly_str02scm (repstr.ch_C()), SCM_UNDEFINED));
            }     
        }
       else if (done_count_ <  repmus->repeats_i_ && !repmus->volta_fold_b_) 
@@ -125,7 +125,7 @@ Unfolded_repeat_iterator::next_element (bool side_effect)
            {
              String repstr = to_str (done_count_ + 1);
              add_repeat_command (gh_list (ly_symbol2scm ("volta"),
-                                          gh_str02scm (repstr.ch_C()), SCM_UNDEFINED));
+                                          ly_str02scm (repstr.ch_C()), SCM_UNDEFINED));
              add_repeat_command (ly_symbol2scm ("end-repeat"));
            }
 
index 4f5baf6b24170c912b2875f8000059211e556cfd..ed97955f7c46c73fbc3f52003bb4d85c022b890d 100644 (file)
@@ -105,7 +105,7 @@ Volta_engraver::do_process_music ()
          volta_span_p_ = 0;
        }
 
-      volta_span_p_ = new Spanner (get_property ("basicVoltaSpannerProperties"));
+      volta_span_p_ = new Spanner (get_property ("basicVoltaBracketProperties"));
       Volta_spanner::set_interface (volta_span_p_);
       announce_element (volta_span_p_,0);
       volta_span_p_->set_elt_property ("text", str);
index 1ce8128d9deac1de3198314a34e33befddb22e49..34a4016c28ea8cba5bd1d379f3ed5f859b64f059 100644 (file)
@@ -66,7 +66,12 @@ Volta_spanner::brew_molecule (SCM smob)
   Real staff_space = me->paper_l ()->get_var ("staffspace");
   Real staff_thick = me->paper_l ()->get_var ("stafflinethickness");  
   Real half_space = staff_space / 2;
-  Real left = dynamic_cast<Spanner*>(me)->get_broken_left_end_align ();
+
+  /*
+    the volta spanner is attached to the bar-line, which is moved
+    to the right. We don't need to compensate for the left edge.
+   */
+  Real left = 0.0;
   Real w = dynamic_cast<Spanner*>(me)->spanner_length () - left - half_space;
   Real h = staff_space * gh_scm2double (me->get_elt_property ("height"));
   Real t = staff_thick * gh_scm2double (me->get_elt_property ("thickness"));
index b3fa68374f2d846177210525e84a5bcbf1610630..d5b947bf3d28852f6fb1c90f6e20f5f15bba2bb3 100644 (file)
@@ -397,7 +397,10 @@ ScoreContext = \translator {
        defaultClef = #"treble"
        defaultBarType = #"|"
        systemStartDelimiterGlyph = #'bar-line
-
+       explicitClefVisibility = #all-visible
+       explicitKeySignatureVisibility = #all-visible
+       
+       scriptDefinitions = #default-script-alist
        %
        % what order to print accs.  We could compute this, 
        % but computing is more work than putting it here.
@@ -432,6 +435,7 @@ ScoreContext = \translator {
                (interfaces . (bar-interface staff-bar-interface))
                (break-align-symbol . Staff_bar)
                (glyph . "|")
+               (break-glyph-function . ,default-break-barline)
                (barsize-procedure . ,Bar::get_staff_bar_size)
                (molecule-callback . ,Bar::brew_molecule)          
                (visibility-lambda . ,all-visible)
@@ -462,6 +466,7 @@ ScoreContext = \translator {
                (interfaces . (break-align-interface))
                (stacking-dir . 1)
                (axes 0)
+               (space-alist . ,default-break-align-space-alist) 
                (name . "break alignment")              
        )
        basicBreakAlignGroupProperties = #`(
@@ -490,6 +495,7 @@ ScoreContext = \translator {
                (molecule-callback . ,Chord_name::brew_molecule)
                (interfaces . (chord-name-interface))
                (after-line-breaking-callback . ,Chord_name::after_line_breaking)
+               (chord-name-function . ,default-chord-name-function)
                (name . "chord name")  
        )
        basicCollisionProperties = #`(
@@ -784,13 +790,6 @@ ScoreContext = \translator {
                (name  . "sostenuto pedal")
                                
        )
-       basicStemTremoloProperties = #`(
-               (molecule-callback . ,Stem_tremolo::brew_molecule)
-               (beam-width . 2.0) ; staff-space
-               (beam-thickness . 0.42) ; staff-space
-               (beam-space-function . ,default-beam-space-function)
-               (name . "stem tremolo")
-       )
        basicStemProperties = #`(
                (interfaces . (stem-interface))
                (before-line-breaking-callback . ,Stem::before_line_breaking)
@@ -809,6 +808,14 @@ ScoreContext = \translator {
                (default-neutral-direction . 1)
                (name . "stem")
        )
+
+       basicStemTremoloProperties = #`(
+               (molecule-callback . ,Stem_tremolo::brew_molecule)
+               (beam-width . 2.0) ; staff-space
+               (beam-thickness . 0.42) ; staff-space
+               (beam-space-function . ,default-beam-space-function)
+               (name . "stem tremolo")
+       )
        basicSeparationItemProperties = #`(
                (interfaces . (separation-item-interface))
                (name . "separation item")
@@ -832,8 +839,7 @@ ScoreContext = \translator {
                (self-alignment-X . 0)
                (name . "una chorda pedal")
        )
-
-       basicVoltaSpannerProperties = #`(
+       basicVoltaBracketProperties = #`(
                (molecule-callback . ,Volta_spanner::brew_molecule)
                (interfaces . (volta-spanner-interface side-position-interface))
                (direction . 1)
index 0ad41e658f534a9a1663547ce231aa525341aa3b..2b731e183cd8bea2143c1a6a1fb102e371c84231 100644 (file)
@@ -120,6 +120,9 @@ ScoreContext = \translator {
        \accepts RhythmicStaff;
        \accepts ChordNames;
        \consists "Swallow_performer";
+
+       dynamicAbsoluteVolumeFunction = #default-dynamic-absolute-volume
+       instrumentEqualizer = #default-instrument-equaliser
 };
 \translator { \ScoreContext }
 
index 0ac31ec8c632622e91d65a7790decad9f36447a4..3c255916de52bab875babfb4dff7bdeadf54bc32 100644 (file)
@@ -1,31 +1,23 @@
 % property.ly
-% list of properties that lily recognises
-% and some shorthands (ugh)
-
-%{
-
-SEE THE REFERENCE MANUAL FOR EXPLANATIONS.
-
-%}
 
 \version "1.3.59";
 
-
-%{
-stemup =        \property Voice.verticalDirection = \up 
-stemboth=      \property Voice.verticalDirection = \center
-stemdown =     \property Voice.verticalDirection = \down
-%}
-
 stemup = \property Voice.basicStemProperties \push #'direction = #1
 stemdown = \property Voice.basicStemProperties \push #'direction = #-1 
 stemboth= \property basicStemProperties \pop #'direction
 
-slurup   = \property Voice.slurVerticalDirection = \up 
-slurboth = \property Voice.slurVerticalDirection = \center
-slurdown = \property Voice.slurVerticalDirection = \down
-shifton  = \property Voice.horizontalNoteShift = #1
-shiftoff = \property Voice.horizontalNoteShift = #0
+slurup   = \property Voice.basicSlurProperties \push #'direction = #1
+slurboth = \property basicSlurProperties \pop #'direction 
+slurdown = \property Voice.basicSlurProperties \push #'direction = #-1
+shifton  = \property Voice.basicNoteColumnProperties \push #'horizontal-shift = #1
+shiftonn  = \property Voice.basicNoteColumnProperties \push #'horizontal-shift = #2
+shiftonnn  = \property Voice.basicNoteColumnProperties \push #'horizontal-shift = #3
+shiftoff  = \property basicNoteColumnProperties \pop #'horizontal-shift 
+
+
+tieUp = \property Voice.basicTieProperties \push #'direction = #1
+tieDown = \property Voice.basicTieProperties \push #'direction = #-1
+tieBoth = \property basicTieProperties \pop #'direction 
 
 cadenzaOn = \property Score.timing = ##f
 cadenzaOff = { \property Score.timing = ##t
@@ -34,11 +26,17 @@ cadenzaOff = { \property Score.timing = ##t
 
        
 onevoice = {   
-       \stemboth \shiftoff     
+       \stemboth
+       \tieBoth
 }
 
-voiceone = \stemup
-voicetwo = \stemdown
+voiceone = { \stemup
+   \tieUp
+}
+voicetwo = { \stemdown
+   \tieDown
+   }
+   
 voicethree = {
        \stemup
        \shifton
@@ -53,31 +51,7 @@ voicefour = {
 
 % ugh2. 
 infinity=10000
-
-beamslopeproportional = 
-       \property Score.beamSlopedamping = 0
-
-beamslopedamped = 
-       \property Score.beamSlopedamping = 1
-
-
-beamslopezero = 
-       \property Score.beamSlopedamping = \infinity
-
-
-% this sucks, you'd want to pass an array, at least
-% (or embedded code: you still can't dictate the slope / stemlength)
-beamposfree = 
-       \property Score.beamQuantisation = 0
-
-
-beamposnormal = 
-       \property Score.beamQuantisation = 1
-
-
-beampostraditional = 
-       \property Score.beamQuantisation = 2
-
+%{
 
 slurnormal = 
        \property Voice.slurDash = ##f
@@ -92,7 +66,9 @@ tupletoff =
 
 tupleton = 
        \property Voice.tupletVisibility = 3
+%}
 
+       
 tiny  = 
        \property Voice.fontSize= -2
 
index ab443a8d2bc2ae1cba13536f28546983da59eb05..86774d55b9f8c86f7017afb2d011c5a44091b331 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.3.92
-Entered-date: 01OCT00
+Version: 1.3.93
+Entered-date: 04OCT00
 Description: 
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       1000k lilypond-1.3.92.tar.gz 
+       1000k lilypond-1.3.93.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.3.92.tar.gz 
+       1000k lilypond-1.3.93.tar.gz 
 Copying-policy: GPL
 End
index 317cbcf18d60d76552989fe882ea8b5dd03ecc02..6951325425ca7d372a68c12143feef1921b0b7c9 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.3.92
+Version: 1.3.93
 Release: 1
 License: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.92.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.93.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 # Icon: lilypond-icon.gif
index 59d033d477b14745cdac75e5bfb0e1e38e6fd4d6..13019ee8f2189159a390d4b6c6686009158959ab 100644 (file)
@@ -17,7 +17,7 @@ SCRIPTS = configure aclocal.m4
 README_FILES =  DEDICATION COPYING NEWS CHANGES ROADMAP
 README_TXT_FILES = AUTHORS.txt README.txt INSTALL.txt 
 IN_FILES := $(wildcard *.in)
-EXTRA_DIST_FILES = dstreamrc lilypond-mode.el vimrc VERSION $(README_FILES)  $(SCRIPTS) $(IN_FILES) 
+EXTRA_DIST_FILES = lilypond-mode.el vimrc VERSION $(README_FILES)  $(SCRIPTS) $(IN_FILES) 
 NON_ESSENTIAL_DIST_FILES = $(README_TXT_FILES)
 
 # bootstrap stepmake:
index fe76c4887120672cab334d89ff21d5d358204914..56393684cf30e7fc0261e7da1a37a6d8a6bc747c 100644 (file)
@@ -50,14 +50,21 @@ dux = \context Voice=two \notes \relative c''{
 %%15
   g8
   g'16 fis g8 c, 
-  es \translator Staff = treble \stemdown g16 fis! g8 a |
+  es \translator Staff = treble
+  \stemboth
+  \stemdown
+  g16 fis! g8 a |
   d, g16 fis g8 a! c,16 d es4 d16 c |  % forced accident!
   bes8 r8 r16 d e fis g a bes8 ~ bes16 e, f g |
   a bes c8 ~ c16 fis,16 g a bes8 es,!16 d es8 g, |
   as f'16 es f8 a,8 bes g'16 f g8 b, |
 %%20
-  c16 f \translator Staff = bass \stemup es d c bes! as g 
-  f8 \translator Staff = treble \stemdown as' g f |
+  c16 f \translator Staff = bass
+  \stemboth \stemup
+     es d c bes! as g 
+  f8 \translator Staff = treble
+  \stemboth \stemdown
+  as' g f |
   es d es f b, c d b |
   c4 r8 e8 f f16 e f8 c |
   d4 r8 d8 es8 es16 d es8 bes |
@@ -142,7 +149,7 @@ bassdux = \context Voice=three \notes \relative c' {
   c16 d es8~ es16 a, bes c d es f8~ f16 b, c d |
 %%20 
 % es8 r r e f f, es! d |     % -> \classic_accidentals
-  es8 r r e \stemdown f f, es! d \stemboth |
+  es8 r r e \stemboth \stemdown f f, es! d \stemboth |
   r as' g f g f16 es f8 g |
   c16 d es d c bes as g f bes' as g f es d c |
   bes c d c bes as g f es as' g f es d c bes |
@@ -169,7 +176,6 @@ bassdux = \context Voice=three \notes \relative c' {
            \dux
            { \comes \bar "|."; }
              \time 4/4;
-             \property Score.timeSignatureStyle = "C"
          >
        \context Staff = bass <
            \key c \minor;
@@ -179,7 +185,11 @@ bassdux = \context Voice=three \notes \relative c' {
 
     \paper {
         linewidth = 18.0 \cm;
-       \translator{ \OrchestralScoreContext }
+       \translator{ \OrchestralScoreContext
+        timeSignatureStyle \push #'style = #"C"
+
+       }
+       
     }
     \header{
        opus = "BWV 847";
diff --git a/scm/accordion-script.scm b/scm/accordion-script.scm
deleted file mode 100644 (file)
index 6387753..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-;; (name . '((downindexstring . upindexstring)
-;;           follow-into-staff :: bool
-;;           dir-relative-to-stem :: int
-;;           force-dir :: int
-;;           priority :: int
-
-
-(set! script-alist
-      (append 
-      '(("accDiscant" . ((accordion "Discant" "") #f 0 1 0))
-       ("accDiscantF" . ((accordion "Discant" "F") #f 0 1 0))
-       ("accDiscantE" . ((accordion "Discant" "E") #f 0 1 0))
-       ("accDiscantEh" . ((accordion "Discant" "Eh") #f 0 1 0))
-       ("accDiscantFE" . ((accordion "Discant" "FE") #f 0 1 0))
-       ("accDiscantFEh" . ((accordion "Discant" "FEh") #f 0 1 0))
-       ("accDiscantEE" . ((accordion "Discant" "EE") #f 0 1 0))
-       ("accDiscantFEE" . ((accordion "Discant" "FEE") #f 0 1 0))
-       ("accDiscantEEE" . ((accordion "Discant" "EEE") #f 0 1 0))
-       ("accDiscantFEEE" . ((accordion "Discant" "FEEE") #f 0 1 0))
-       ("accDiscantS" . ((accordion "Discant" "S") #f 0 1 0))
-       ("accDiscantFS" . ((accordion "Discant" "FS") #f 0 1 0))
-       ("accDiscantES" . ((accordion "Discant" "ES") #f 0 1 0))
-       ("accDiscantEhS" . ((accordion "Discant" "EhS") #f 0 1 0))
-       ("accDiscantFES" . ((accordion "Discant" "FES") #f 0 1 0))
-       ("accDiscantFEhS" . ((accordion "Discant" "FEhS") #f 0 1 0))
-       ("accDiscantEES" . ((accordion "Discant" "EES") #f 0 1 0))
-       ("accDiscantFEES" . ((accordion "Discant" "FEES") #f 0 1 0))
-       ("accDiscantEEES" . ((accordion "Discant" "EEES") #f 0 1 0))
-       ("accDiscantFEEES" . ((accordion "Discant" "FEEES") #f 0 1 0))
-       ("accDiscantSS" . ((accordion "Discant" "SS") #f 0 1 0))
-       ("accDiscantESS" . ((accordion "Discant" "ESS") #f 0 1 0))
-       ("accDiscantEESS" . ((accordion "Discant" "EESS") #f 0 1 0))
-       ("accDiscantEEESS" . ((accordion "Discant" "EEESS") #f 0 1 0))
-       ("accFreebase" . ((accordion "Freebase" "") #f 0 -1 0))
-       ("accFreebaseF" . ((accordion "Freebase" "F") #f 0 -1 0))
-       ("accFreebaseE" . ((accordion "Freebase" "E") #f 0 -1 0))
-       ("accFreebaseFE" . ((accordion "Freebase" "FE") #f 0 -1 0))
-       ("accBayanbase" . ((accordion "Bayanbase" "") #f 0 -1 0))
-       ("accBayanbaseT" . ((accordion "Bayanbase" "T") #f 0 -1 0))
-       ("accBayanbaseE" . ((accordion "Bayanbase" "E") #f 0 -1 0))
-       ("accBayanbaseTE" . ((accordion "Bayanbase" "TE") #f 0 -1 0))
-       ("accBayanbaseEE" . ((accordion "Bayanbase" "EE") #f 0 -1 0))
-       ("accBayanbaseTEE" . ((accordion "Bayanbase" "TEE") #f 0 -1 0))
-       ("accStdbase" . ((accordion "Stdbase" "") #f 0 -1 0))
-       ("accStdbaseFE" . ((accordion "Stdbase" "FE") #f 0 -1 0))
-       ("accStdbaseTFE" . ((accordion "Stdbase" "TFE") #f 0 -1 0))
-       ("accStdbaseMES" . ((accordion "Stdbase" "MES") #f 0 -1 0))
-       ("accStdbaseTFMES" . ((accordion "Stdbase" "TFMES") #f 0 -1 0))
-
-       ("accSB" . ((accordion "SB" "") #f 0 -1 0))
-       ("accBB" . ((accordion "BB" "") #f 0 -1 0))
-       ("accOldEE" . ((accordion "OldEE" "") #f 0 -1 0))
-       ("accOldEES" . ((accordion "OldEES" "") #f 0 -1 0)))
-      script-alist)
-      )
-
index 3dadb920c01d054832691d0f6eef98c325962dbc..d07db3311eac5938d54468348e560e80f105bd4d 100644 (file)
 ;;     
 ;; We have our doubts, so we simply provide all sensible alternatives.
 
-
-
-
-
 ;; array index multiplicity, last if index>size
 ;; beamed stems
 
 ;;  - take #forced stems into account (now done in C++)?
 ;;  - take y-position of chord or beam into account
 
-;;;;;;;;;;;;;;;;;;;;;;;
-
-
 ;
 ; todo: clean this up a bit: the list is getting rather long.
 ; 
     (name . "beam")
     )
   )
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Bar lines.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;
+; How should a  bar line behave at a break? 
+;
+(define (default-break-barline glyph dir)
+   (let ((result (assoc glyph 
+                       '((":|:" . (":|" . "|:"))
+                         ("|" . ("|" . ""))
+                         ("|s" . (nil . "|"))
+                         ("|:" . ("|" . "|:"))
+                         ("|." . ("|." . nil))
+                         (".|" . (nil . ".|"))
+                         (":|" . (":|" . nil))
+                         ("||" . ("||" . nil))
+                         (".|." . (".|." . nil))
+                         ("brace" . (nil . "brace"))
+                         ("bracket" . (nil . "bracket"))  
+                         )
+                       )))
+
+     (if (equal? result #f)
+        (ly-warn (string-append "Unknown bar glyph: `" glyph "'"))
+        (index-cell (cdr result) dir))
+     )
+   )
+     
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;  Prefatory matter: break align item.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Spacing constants 
+;;
+;; rules for this spacing are much more complicated than this. 
+;; See [Wanske] page 126 -- 134, [Ross] pg 143 -- 147
+;;
+
+;; (Measured in staff space)
+(define default-break-align-space-alist
+ '(
+   ((none Instrument_name) . (extra-space 1.0))
+   ((Instrument_name Left_edge_item) . (extra-space 1.0))
+   ((Left_edge_item Clef_item) . (extra-space 1.0))
+   ((Left_edge_item Key_item) . (extra-space 0.0))   
+   ((Left_edge_item begin-of-note) . (extra-space 1.0))
+   ((none Left_edge_item) . (extra-space 0.0))
+   ((Left_edge_item Staff_bar) . (extra-space 0.0))
+;   ((none Left_edge_item) . (extra-space -15.0))
+;   ((none Left_edge_item) . (extra-space -15.0))
+   ((none Clef_item) . (minimum-space 1.0))
+   ((none Staff_bar) . (minimum-space 0.0))
+   ((none Clef_item) . (minimum-space 1.0))
+   ((none Key_item) . (minimum-space 0.5))
+   ((none Time_signature) . (extra-space 0.0))
+   ((none begin-of-note) . (minimum-space 1.5))
+   ((Clef_item Key_item) . (minimum-space 4.0))
+   ((Key_item Time_signature) . (extra-space 1.0))
+   ((Clef_item  Time_signature) . (minimum-space 3.5))
+   ((Staff_bar Clef_item) .   (minimum-space 1.0))
+   ((Clef_item  Staff_bar) .  (minimum-space 3.7))
+   ((Time_signature Staff_bar) .  (minimum-space 2.0))
+   ((Key_item  Staff_bar) .  (extra-space 1.0))
+   ((Staff_bar Time_signature) . (minimum-space 1.5)) 
+   ((Time_signature begin-of-note) . (extra-space 2.0)) 
+   ((Key_item begin-of-note) . (extra-space 2.5))
+   ((Staff_bar begin-of-note) . (extra-space 1.0))
+   ((Clef_item begin-of-note) . (minimum-space 5.0))
+   ((none Breathing_sign) . (minimum-space 0.0))
+   ((Breathing_sign Key_item) . (minimum-space 1.5))
+   ((Breathing_sign begin-of-note) . (minimum-space 1.0))
+   ((Breathing_sign Staff_bar) . (minimum-space 1.5))
+   ((Breathing_sign Clef_item) . (minimum-space 2.0))
+   )
+)
index ce6e539944a3390584a13d894f9519dc6ea7f7af..27f4314bfb3147cff75c0f18dfe1dc7ce922fe47 100644 (file)
 ;; parts, complete the missing user-override matched part with normal
 ;; chord to be name-calculated.
 ;;
-(define (chord::user-name style pitches base-and-inversion)
+(define (default-chord-name-function style pitches base-and-inversion)
   ;(display "pitches:") (display  pitches) (newline)
   ;(display "style:") (display  style) (newline)
   ;(display "b&i:") (display  base-and-inversion) (newline)
index 2ac90b215594829be858ac75ba1eff069d6c6a37..d15c8bd11aabd0fb6fe60eca55886c002d6a0970 100644 (file)
 
 (define security-paranoia #f)
 
-;; Spacing constants for prefatory matter.
-;;
-;; rules for this spacing are much more complicated than this. See [Wanske] page 126 -- 134, [Ross] pg 143 -- 147
-;;
-;;
-
-;; (Measured in staff space)
-(define space-alist
- '(
-   ((none Instrument_name) . (extra-space 1.0))
-   ((Instrument_name Left_edge_item) . (extra-space 1.0))
-   ((Left_edge_item Clef_item) . (extra-space 1.0))
-   ((Left_edge_item Key_item) . (extra-space 0.0))   
-   ((Left_edge_item begin-of-note) . (extra-space 1.0))
-   ((none Left_edge_item) . (extra-space 0.0))
-   ((Left_edge_item Staff_bar) . (extra-space 0.0))
-;   ((none Left_edge_item) . (extra-space -15.0))
-;   ((none Left_edge_item) . (extra-space -15.0))
-   ((none Clef_item) . (minimum-space 1.0))
-   ((none Staff_bar) . (minimum-space 0.0))
-   ((none Clef_item) . (minimum-space 1.0))
-   ((none Key_item) . (minimum-space 0.5))
-   ((none Time_signature) . (extra-space 0.0))
-   ((none begin-of-note) . (minimum-space 1.5))
-   ((Clef_item Key_item) . (minimum-space 4.0))
-   ((Key_item Time_signature) . (extra-space 1.0))
-   ((Clef_item  Time_signature) . (minimum-space 3.5))
-   ((Staff_bar Clef_item) .   (minimum-space 1.0))
-   ((Clef_item  Staff_bar) .  (minimum-space 3.7))
-   ((Time_signature Staff_bar) .  (minimum-space 2.0))
-   ((Key_item  Staff_bar) .  (extra-space 1.0))
-   ((Staff_bar Time_signature) . (minimum-space 1.5)) ;double check this.
-   ((Time_signature begin-of-note) . (extra-space 2.0)) ;double check this.
-   ((Key_item begin-of-note) . (extra-space 2.5))
-   ((Staff_bar begin-of-note) . (extra-space 1.0))
-   ((Clef_item begin-of-note) . (minimum-space 5.0))
-   ((none Breathing_sign) . (minimum-space 0.0))
-   ((Breathing_sign Key_item) . (minimum-space 1.5))
-   ((Breathing_sign begin-of-note) . (minimum-space 1.0))
-   ((Breathing_sign Staff_bar) . (minimum-space 1.5))
-   ((Breathing_sign Clef_item) . (minimum-space 2.0))
-   )
-)
 
 ;; silly, use alist? 
 (define (find-notehead-symbol duration style)
        )
   )
             
-(define script-alist '())
+(define default-script-alist '())
 
 (define font-name-alist  '())
 (define (font-command name-mag)
      ; line numbers only:
     ;(string-append "\\special{src:" (number->string line) " " file "}")
 )
+    ; no origin  info: return empty string
+    ; ""
   ; no-origin not yet supported by Xdvi
   (define (no-origin) "")
   
       (cdr cell)
       (car cell)))
 
-;
-; How should a  bar line behave at a break? 
-;
-(define (break-barline glyph dir)
-   (let ((result (assoc glyph 
-                       '((":|:" . (":|" . "|:"))
-                         ("|" . ("|" . ""))
-                         ("|s" . (nil . "|"))
-                         ("|:" . ("|" . "|:"))
-                         ("|." . ("|." . nil))
-                         (".|" . (nil . ".|"))
-                         (":|" . (":|" . nil))
-                         ("||" . ("||" . nil))
-                         (".|." . (".|." . nil))
-                         ("scorebar" . (nil . "scorepostbreak"))
-                         ("brace" . (nil . "brace"))
-                         ("bracket" . (nil . "bracket"))  
-                         )
-                       )))
-
-     (if (equal? result #f)
-        (ly-warn (string-append "Unknown bar glyph: `" glyph "'"))
-        (index-cell (cdr result) dir))
-     )
-   )
-     
-
 (define major-scale
   '(
     (0 . 0)
index 94ceeb50e243360443f6daf9c7dc9f05fb6e1cc2..fbfdff6cd7590203afd6765fcab0ab4231b20cb0 100644 (file)
@@ -23,7 +23,7 @@
        )
       absolute-volume-alist))
 
-(define (dynamic-absolute-volume s)
+(define (default-dynamic-absolute-volume s)
   (let ((entry (assoc s absolute-volume-alist)))
     (if entry
        (cdr entry))))
@@ -47,7 +47,7 @@
         )
        instrument-equaliser-alist))
 
-(define (instrument-equaliser s)
+(define (default-instrument-equaliser s)
   (let ((entry (assoc s instrument-equaliser-alist)))
     (if entry
        (cdr entry))))
index 534cffef89221bc0de85cabd20f47d24da80d92d..47d61ab91ca2c894d772994b58afdf9d9f7d4216 100644 (file)
@@ -6,7 +6,7 @@
 
 ;;TODO?      extra padding :: Real (given in staff spaces)
 
-(set! script-alist
+(set! default-script-alist
       (append 
       '(("thumb" . ((feta . ("thumb"  . "thumb")) #f 0 1 0))
        ("accent" . ((feta . ("sforzato" .  "sforzato")) #f -1 0 0))
        ("downprall" . ((feta . ("downprall" . "downprall")) #f 0 1 0))
        ("segno" . ((feta . ("segno" . "segno")) #f 0 1 0))
        ("coda" . ((feta . ("coda" . "coda")) #f 0 1 0)))
-      script-alist)
+      default-script-alist)
+      )
+
+
+
+
+(set! default-script-alist
+      (append 
+      '(("accDiscant" . ((accordion "Discant" "") #f 0 1 0))
+       ("accDiscantF" . ((accordion "Discant" "F") #f 0 1 0))
+       ("accDiscantE" . ((accordion "Discant" "E") #f 0 1 0))
+       ("accDiscantEh" . ((accordion "Discant" "Eh") #f 0 1 0))
+       ("accDiscantFE" . ((accordion "Discant" "FE") #f 0 1 0))
+       ("accDiscantFEh" . ((accordion "Discant" "FEh") #f 0 1 0))
+       ("accDiscantEE" . ((accordion "Discant" "EE") #f 0 1 0))
+       ("accDiscantFEE" . ((accordion "Discant" "FEE") #f 0 1 0))
+       ("accDiscantEEE" . ((accordion "Discant" "EEE") #f 0 1 0))
+       ("accDiscantFEEE" . ((accordion "Discant" "FEEE") #f 0 1 0))
+       ("accDiscantS" . ((accordion "Discant" "S") #f 0 1 0))
+       ("accDiscantFS" . ((accordion "Discant" "FS") #f 0 1 0))
+       ("accDiscantES" . ((accordion "Discant" "ES") #f 0 1 0))
+       ("accDiscantEhS" . ((accordion "Discant" "EhS") #f 0 1 0))
+       ("accDiscantFES" . ((accordion "Discant" "FES") #f 0 1 0))
+       ("accDiscantFEhS" . ((accordion "Discant" "FEhS") #f 0 1 0))
+       ("accDiscantEES" . ((accordion "Discant" "EES") #f 0 1 0))
+       ("accDiscantFEES" . ((accordion "Discant" "FEES") #f 0 1 0))
+       ("accDiscantEEES" . ((accordion "Discant" "EEES") #f 0 1 0))
+       ("accDiscantFEEES" . ((accordion "Discant" "FEEES") #f 0 1 0))
+       ("accDiscantSS" . ((accordion "Discant" "SS") #f 0 1 0))
+       ("accDiscantESS" . ((accordion "Discant" "ESS") #f 0 1 0))
+       ("accDiscantEESS" . ((accordion "Discant" "EESS") #f 0 1 0))
+       ("accDiscantEEESS" . ((accordion "Discant" "EEESS") #f 0 1 0))
+       ("accFreebase" . ((accordion "Freebase" "") #f 0 -1 0))
+       ("accFreebaseF" . ((accordion "Freebase" "F") #f 0 -1 0))
+       ("accFreebaseE" . ((accordion "Freebase" "E") #f 0 -1 0))
+       ("accFreebaseFE" . ((accordion "Freebase" "FE") #f 0 -1 0))
+       ("accBayanbase" . ((accordion "Bayanbase" "") #f 0 -1 0))
+       ("accBayanbaseT" . ((accordion "Bayanbase" "T") #f 0 -1 0))
+       ("accBayanbaseE" . ((accordion "Bayanbase" "E") #f 0 -1 0))
+       ("accBayanbaseTE" . ((accordion "Bayanbase" "TE") #f 0 -1 0))
+       ("accBayanbaseEE" . ((accordion "Bayanbase" "EE") #f 0 -1 0))
+       ("accBayanbaseTEE" . ((accordion "Bayanbase" "TEE") #f 0 -1 0))
+       ("accStdbase" . ((accordion "Stdbase" "") #f 0 -1 0))
+       ("accStdbaseFE" . ((accordion "Stdbase" "FE") #f 0 -1 0))
+       ("accStdbaseTFE" . ((accordion "Stdbase" "TFE") #f 0 -1 0))
+       ("accStdbaseMES" . ((accordion "Stdbase" "MES") #f 0 -1 0))
+       ("accStdbaseTFMES" . ((accordion "Stdbase" "TFMES") #f 0 -1 0))
+
+       ("accSB" . ((accordion "SB" "") #f 0 -1 0))
+       ("accBB" . ((accordion "BB" "") #f 0 -1 0))
+       ("accOldEE" . ((accordion "OldEE" "") #f 0 -1 0))
+       ("accOldEES" . ((accordion "OldEES" "") #f 0 -1 0)))
+      default-script-alist)
       )
 
index d469cc1775c1d1c9e4ea0e5321ee9983d7944885..44ca2adec6faf1fd21e993cec60d4e2bdc23b01d 100644 (file)
@@ -38,10 +38,17 @@ import re
 import string
 import os
 
-finale_clefs= ['treble', 'alto', 'tenor', 'bass', 'percussion', 'treble8vb', 'bass8vb', 'baritone']
+finale_clefs= ['treble', 'alto', 'tenor', 'bass', 'percussion', 'treble_8', 'bass_8', 'baritone']
 
 def lily_clef (fin):
-       return finale_clefs[fin]
+       try:
+               return finale_clefs[fin]
+       except IndexError:
+               sys.stderr.write ( '\nHuh? Found clef number %d\n' % fin)
+
+       return 'treble'
+       
+       
 
 def gulp_file(f):
        return open (f).read ()
@@ -289,6 +296,7 @@ class Articulation:
                        a = articulation_dict[self.type]
                except KeyError:
                        sys.stderr.write ("\nUnknown articulation no. %d on note no. %d" % (self.type, self.notenumber))
+                       sys.stderr.write ("\nPlease add an entry to articulation_dict in the Python source")
                        a = '"art"'
                        
                c.note_suffix = '-' + a + c.note_suffix
@@ -457,22 +465,25 @@ class Staff:
                        
                        g = m.global_measure
                        e = ''
-                       if last_key <> g.keysignature:
+                       if g and last_key <> g.keysignature:
                                e = e + "\\key %s \\major; " % lily_notename (g.keysignature)
                                last_key = g.keysignature
-                       if last_time <> g.timesig :
+                       if g and last_time <> g.timesig :
                                e = e + "\\time %d/%d; " % g.timesig
                                last_time = g.timesig
+
+                       
                        if last_clef <> m.clef :
-                               e = e + '\\clef %s;' % lily_clef (m.clef)
+                               e = e + '\\clef "%s";' % lily_clef (m.clef)
                                last_clef = m.clef
                        if e:
                                if gap <> (0,1):
                                        k = k +' ' + rat_to_lily_duration (gap) + '\n'
                                gap = (0,1)
                                k = k + e
-                       
-                       gap = rat_add (gap, g.length ())
+                               
+                       if g:
+                               gap = rat_add (gap, g.length ())
 
                                
                k = '%sglobal = \\notes  { %s }\n\n ' % (self.staffid (), k)
@@ -505,8 +516,12 @@ class Staff:
                                                gap = (0,1)
                                        laystr = laystr + fr.dump ()
                                else:
-                                       gap = rat_add (gap, m.global_measure.length ())
-
+                                       if m.global_measure :
+                                               gap = rat_add (gap, m.global_measure.length ())
+                                       else:
+                                               sys.stderr.write ( \
+                                                       "No global measure for staff %d measure %d\n"
+                                                       % (self.number, m.number))
                        if first_frame:
                                l = self.layerid (x)
                                laystr = '%s =  \\notes { { %s } }\n\n' % (l, laystr)
@@ -756,14 +771,13 @@ class Etf_file:
                          = tuple (map (string.atoi, [no,prev,next,dur,pos,extended,follow]))
 
                        entryflag = string.atol (entryflag,16)
-                       if no > len (self.entries):
-                               sys.stderr.write ("\nHuh? Entry number to large,\nexpected %d got %d. Filling with void entries.\n" % (len(self.entries), no  ))
-                               while len (self.entries) <> no:
-                                       c = ((len (self.entries), 0, 0, 0, 0, 0L, 0, 0), [])
-                                       self.entries.append (c)
+                       if len (self.entries) <= no:
+                               # missing entries seem to be quite common.
+                               # we fill'em up with None.
+                               self.entries = self.entries + [None] * (no - len (self.entries) + 1)
                                        
                        current_entry = ((no, prev, next, dur, pos, entryflag, extended, follow), [])
-                       self.entries.append (current_entry)
+                       self.entries[no] = current_entry
                return m
 
        def try_Sx(self,l):
@@ -801,14 +815,13 @@ class Etf_file:
                if m:
                        (frameno, startnote, endnote, foo, bar) = m.groups ()
                        (frameno, startnote, endnote)  = tuple (map (string.atoi, [frameno, startnote, endnote]))
-                       if frameno > len (self.frames):
-                               sys.stderr.write ("Frame no %d missing, filling up to %d\n" % (len(self.frames), frameno))
-                               while frameno <> len (self.frames):
-                                       self.frames.append (Frame ((len (self.frames), 0,0) ))
+                       if len (self.frames) <= frameno:
+                               self.frames = self.frames + [None]  * (frameno - len(self.frames) + 1)
                        
-                       self.frames.append (Frame ((frameno, startnote, endnote)))
+                       self.frames[frameno] = Frame ((frameno, startnote, endnote))
                        
                return m
+       
        def try_MS (self, l):
                m = MSre.match (l)
                if m:
@@ -878,7 +891,7 @@ class Etf_file:
                                try:
                                        m.global_measure = self.measures[mno]
                                except IndexError:
-                                       sys.stderr.write ("non-existent global measure %d" % mno)
+                                       sys.stderr.write ("Non-existent global measure %d" % mno)
                                        continue
                                
                                frame_obj_list = [None]
@@ -899,10 +912,12 @@ class Etf_file:
                                mno = mno + 1
 
                for c in self.chords[1:]:
-                       c.calculate()
+                       if c:
+                               c.calculate()
 
                for f in self.frames[1:]:
-                       f.calculate ()
+                       if f:
+                               f.calculate ()
                        
                for t in self.tuplets[1:]:
                        t.calculate (self.chords)
@@ -962,9 +977,14 @@ class Etf_file:
        def unthread_entries (self):
                self.chords = [None]
                for e in self.entries[1:]:
-                       self.chords.append (Chord (e))
-
+                       ch = None
+                       if e:           
+                               ch = Chord (e)
+                       self.chords.append (ch)
+                               
                for e in self.chords[1:]:
+                       if not e:
+                               continue
                        e.prev = self.chords[e.finale[0][1]]
                        e.next = self.chords[e.finale[0][2]]
 
index d1220794a6556252cd1e021bd4316df0149ef426..35ffdbd78f5a1046d07bdbaa7178e3ac7293e67d 100644 (file)
@@ -292,12 +292,6 @@ AC_DEFUN(AC_STEPMAKE_INIT, [
     AUTOGENERATE="This file was automatically generated by configure"
     AC_SUBST(AUTOGENERATE)
 
-    STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
-    if test "x$STATE_VECTOR" != "x"; then
-       STATE_VECTOR="\$(depth)/$STATE_VECTOR"
-    fi
-    AC_SUBST(STATE_VECTOR)
-
     CONFIGSUFFIX=
     AC_ARG_ENABLE(config,
     [  enable-config=FILE      put configure settings in config-FILE.make],
index 8af41ada7968ac79ad92048bd9ef2cc8a607f085..3414e05b34b3a0880476dee23cbd8de135201004 100755 (executable)
@@ -763,12 +763,6 @@ EOF
     AUTOGENERATE="This file was automatically generated by configure"
     
 
-    STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
-    if test "x$STATE_VECTOR" != "x"; then
-       STATE_VECTOR="\$(depth)/$STATE_VECTOR"
-    fi
-    
-
     CONFIGSUFFIX=
     # Check whether --enable-config or --disable-config was given.
 if test "${enable_config+set}" = set; then
@@ -787,7 +781,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:791: checking host system type" >&5
+echo "configure:785: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -812,7 +806,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:816: checking for $ac_word" >&5
+echo "configure:810: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKE'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -847,7 +841,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:851: checking for $ac_word" >&5
+echo "configure:845: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_FIND'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -884,7 +878,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:888: checking for $ac_word" >&5
+echo "configure:882: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_TAR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -919,7 +913,7 @@ test -n "$TAR" || TAR="error"
        # Extract the first word of "bash", so it can be a program name with args.
 set dummy bash; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:923: checking for $ac_word" >&5
+echo "configure:917: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -959,7 +953,7 @@ fi
        # Extract the first word of "bash", so it can be a program name with args.
 set dummy bash; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:963: checking for $ac_word" >&5
+echo "configure:957: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_SHELL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -996,7 +990,7 @@ fi
        # Extract the first word of "bash", so it can be a program name with args.
 set dummy bash; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1000: checking for $ac_word" >&5
+echo "configure:994: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1037,7 +1031,7 @@ fi
     # Extract the first word of "${PYTHON:-python}", so it can be a program name with args.
 set dummy ${PYTHON:-python}; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1041: checking for $ac_word" >&5
+echo "configure:1035: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PYTHON'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1204,7 +1198,7 @@ fi
 
 
     echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:1208: checking language" >&5    
+echo "configure:1202: checking language" >&5    
     case "$language" in
       En* | en* | Am* | am* | US* | us*)
            lang=English;;
@@ -1239,7 +1233,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1243: checking for $ac_word" >&5
+echo "configure:1237: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1410,7 +1404,6 @@ s%@PACKAGE@%$PACKAGE%g
 s%@PACKAGE_NAME@%$PACKAGE_NAME%g
 s%@package_depth@%$package_depth%g
 s%@AUTOGENERATE@%$AUTOGENERATE%g
-s%@STATE_VECTOR@%$STATE_VECTOR%g
 s%@CONFIGSUFFIX@%$CONFIGSUFFIX%g
 s%@host@%$host%g
 s%@host_alias@%$host_alias%g