* 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.
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
+++ /dev/null
-\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
@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
Two notes, intervals, or scales are enharmonic if they have different names
but equal pitch.
-@
@mudela[13pt,eps]
\property Score.barNonAuto = ##t
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"
"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;
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
longa notes which are square shaped as in the @code{'mensural}
style.
- @mudela[center,verbatim]
+@mudela[center,verbatim]
\score {
\notes {
\property Staff.barNonAuto = 1
The different time signature characters are shown below with its
names:
- @mudela[center,verbatim]
+@mudela[center,verbatim]
\score {
\notes\relative c'' {
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.
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
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],
package = @package@
PACKAGE_NAME = @PACKAGE_NAME@
stepmake = @stepmake@
-state-vector = @STATE_VECTOR@
CONFIGSUFFIX = @CONFIGSUFFIX@
MAKEINFO = @MAKEINFO@
ICFLAGS = @ICFLAGS@
TFM_PATH = @TFM_PATH@
RANLIB = @RANLIB@
DEFS = @DEFS@
-#SET_MAKE = @SET_MAKE@
DEFINES = @DEFS@ @DEFINES@
COMPILEINFO = @COMPILEINFO@
DOTEXE = @DOTEXE@
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
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
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
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
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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
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.
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
{ 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
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
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
# 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=
# 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
:
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
:
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
:
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*
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>
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
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
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
:
# 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
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.
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
{ 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
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
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
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*
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; };
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
# 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
# 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
# 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
# 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
# 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
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;;
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
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
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
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. */
; 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
# 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
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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
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
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
#
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
# 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
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"
## 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
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
## 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; }
# 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
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*
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
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
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
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. */
; 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
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
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
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);
}
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
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. */
; 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
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. */
; 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
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. */
; 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
# 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
# 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
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
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
+++ /dev/null
-# 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
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
\<
\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
}
>
void
A2_engraver::do_process_music ()
{
+ if (!to_boolean (get_property ("combineParts")))
+ return ;
if (!text_p_)
{
SCM unison = get_property ("unison");
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_))
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;
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 *
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;
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));
}
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
-}
{
}
-void
-Audio_element::print () const
-{
-#ifndef NPRINT
- DEBUG_OUT << classname (this) << "{ ";
- do_print ();
- DEBUG_OUT << "}";
-#endif
-}
-void
-Audio_element::do_print ()const
-{
-}
// 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
-}
+
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))
{
}
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)
{
{
Score_element * me = (Score_element*)b;
- Real space = Staff_symbol_referencer::staff_space (b);
Direction d = Directional_element_interface::get (b);
if (!d)
{
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
-void
-Change_translator::do_print () const
-{
- DEBUG_OUT << "change " << change_to_type_str_ << " to " << change_to_id_str_ ;
-}
-
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 ();
}
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)
#include "item.hh"
/*
-FIXME: should use symbol.
+FIXME: should use symbol for #'style.
*/
MAKE_SCHEME_CALLBACK(Clef,before_line_breaking);
return b;
}
-void
-Clef_change_req::do_print () const
-{
-#ifndef NPRINT
- DEBUG_OUT << clef_str_ ;
-#endif
-}
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
{
dur_. durlog_i_ = 2;
}
-void
-Tempo_req::do_print () const
-{
- DEBUG_OUT << dur_.str () << " = " << metronome_i_;
-}
bool
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);
}
~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 ();
{
}
-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
*/
/*
urg, code duplication:: staff_performer
*/
- s = get_property ("midiInstrument");
+ SCM s = get_property ("midiInstrument");
if (!gh_string_p(s))
s = get_property ("instrument");
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;
{
w = iter->pending_moment();
- DEBUG_OUT << "proccing: " << w << '\n';
}
w = sneaky_insert_extra_moment (w);
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) \
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 \
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
Audio_column* audio_column_l_;
-protected:
- virtual void do_print () const;
private:
Audio_item (Audio_item const&);
protected:
VIRTUAL_COPY_CONS(Music);
- void do_print () const;
};
Tempo_req();
protected:
- virtual void do_print () const;
+
VIRTUAL_COPY_CONS(Music);
bool do_equal_b (Request const *) const;
};
Time_signature_change_req();
protected:
- virtual void do_print () const;
+
bool do_equal_b (Request const *) const;
VIRTUAL_COPY_CONS(Music);
};
String clef_str_;
Clef_change_req (String);
protected:
- virtual void do_print () const;
+
VIRTUAL_COPY_CONS(Music);
};
{
protected:
Array<Score_element_info> announce_info_arr_;
+
+
+
public:
VIRTUAL_COPY_CONS(Translator);
DECLARE_SMOBS(Identifier, foo);
protected:
- virtual void do_print () const;
+
virtual String do_str () const;
};
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; \
}\
*/
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);
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;\
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); \
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);
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 ();
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;
protected:
virtual Musical_pitch to_relative_octave (Musical_pitch);
- virtual void do_print() const;
+
};
#endif
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;
Music (Music const &m);
Music();
protected:
- virtual void do_print() const;
+
DECLARE_SMOBS(Music,);
SCM immutable_property_alist_;
SCM mutable_property_alist_;
void up_to (int);
void down_to (int);
String str () const;
- void print () const;
+
SCM to_scm () const;
};
class Rhythmic_req : public virtual Request {
public:
Duration duration_;
- virtual void do_print () const;
+
bool do_equal_b (Request const*) const;
void compress (Moment);
VIRTUAL_COPY_CONS (Music);
Tremolo_req ();
int type_i_;
- virtual void do_print () const;
+
};
*/
class Lyric_req : public Rhythmic_req {
public:
- virtual void do_print () const;
+
String text_str_;
VIRTUAL_COPY_CONS(Music);
};
String articulation_str_;
protected:
virtual bool do_equal_b (Request const*) const;
- virtual void do_print () const;
+
VIRTUAL_COPY_CONS(Music);
};
protected:
VIRTUAL_COPY_CONS(Music);
virtual bool do_equal_b (Request const*)const;
- virtual void do_print () const;
+
};
/// 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);
};
bool cautionary_b_;
Note_req();
protected:
- virtual void do_print () const;
+
bool do_equal_b (Request const*) const;
VIRTUAL_COPY_CONS(Music);
};
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 ();
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();
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);
public:
Musical_pitch last_pitch_;
- void do_print () const;
+
Relative_octave_music (Music*, Musical_pitch);
VIRTUAL_COPY_CONS(Music);
bool equal_b (Request const*) const;
protected:
virtual bool do_equal_b (Request const*) const;
- virtual void do_print() const;
+
};
Span_req();
protected:
virtual bool do_equal_b (Request const*) const;
- virtual void do_print() const;
+
VIRTUAL_COPY_CONS(Music);
};
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;
void process();
void add_output (Music_output_def *def_p);
- void print() const;
private:
void run_translator (Music_output_def*);
};
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*);
--- /dev/null
+/*
+ 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
~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 ();
~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 ();
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);
Translator_group * daddy_trans_l_ ;
- void print () const;
+
/**
try to fit the request in this engraver
*/
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 () ;
public:
Musical_pitch transpose_to_pitch_;
- void do_print () const;
+
Transposed_music (Music*, Musical_pitch);
VIRTUAL_COPY_CONS(Music);
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);
+ }
}
/* 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
return gh_symbol2scm ((char *)s);
}
+
String
ly_symbol2string (SCM s)
{
{
assert (gh_number_p (s));
- char str[100]; // ugh.
+ char str[400]; // ugh.
if (scm_integer_p (s) == SCM_BOOL_F)
{
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
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;
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));
lyrics_l () ->transpose (p);
}
-void
-Lyric_combine_music::do_print () const
-{
- music_l ()->print();
- lyrics_l () ->print ();
-}
Moment
Lyric_combine_music::length_mom () const
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 ()
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);
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;
}
return dynamic_cast <Global_translator *> (tg);
}
-void
-Music_output_def::print () const
-{
-}
+
String
Music_output_def::get_default_output () const
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
-}
#include "music-wrapper.hh"
-void
-Music_wrapper::do_print () const
-{
- element ()->print ();
-}
+
void
Music_wrapper::transpose (Musical_pitch p)
{
}
-void
-Music::do_print() const
-{
-}
+
Moment
Music::length_mom () const
}
-void
-Music::print ()const
-{
-}
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)
#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)
return Musical_pitch::compare (m1.pitch_, m2.pitch_);
}
-void
-Melodic_req::do_print () const
-{
- pitch_.print ();
-}
return rh && !compare (*this, *rh);
}
-void
-Rhythmic_req::do_print () const
-{
-#ifndef NPRINT
- DEBUG_OUT << "duration { " <<duration_.str () << "}";
-#endif
-}
Moment
duration_.compress (m);
}
-void
-Lyric_req::do_print () const
-{
-#ifndef NPRINT
- Rhythmic_req::do_print ();
- DEBUG_OUT << "text = " << text_str_;
-#endif
-}
bool
-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
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
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
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;
}
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))
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);
}
}
{
}
-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 ()
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);
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
{
second_l () ->transpose (p);
}
-void
-Part_combine_music::do_print () const
-{
- first_l ()->print();
- second_l () ->print ();
-}
+
Moment
Part_combine_music::length_mom () const
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 ())
{
#include "dictionary.hh"
#include "score-element.hh"
#include "scm-hash.hh"
+#include "translator-group.hh"
/*
JUNKME: should use pushproperty everywhere.
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);
{
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);
{
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))
{
; // 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
/*
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 ();
-}
#include "request.hh"
#include "debug.hh"
-void
-Request::do_print() const
-{
-}
+
bool
Request::equal_b (Request const* r) const
{
return id_dict_->to_alist ();
}
+
+bool
+Scope::try_retrieve (SCM k , SCM *v)const
+{
+ return id_dict_->try_retrieve (k, v);
+}
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
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));
}
if (!unsmob_music (music_))
return;
- print();
+
for (int i=0; i < def_p_arr_.size (); i++)
{
if (no_paper_global_b
-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)
}
else
{
- if (flower_dstream && !flower_dstream->silent_b ("do_scores"))
- is_p->print ();
is_p->process();
}
}
{
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'",
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;
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 ();
<? 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);
}
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)
{
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.
--- /dev/null
+/*
+ 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
+
+
{
}
-void
-Tempo_performer::do_print () const
-{
-#ifndef NPRINT
- if (tempo_req_l_)
- tempo_req_l_->print ();
-#endif
-}
void
Tempo_performer::do_process_music ()
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
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
`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);
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)
{
kern_arr_p->push (kern_element);
-#ifdef PRINT
- DEBUG_OUT << format_str ("kern %f.\n", kern_element.kern);
-#endif
}
else
{
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);
}
{
}
-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 ()
static_each (trans_group_list_, method);
}
-void
-Translator_group::do_print() const
-{
-#ifndef NPRINT
-#endif
-}
+
void
Translator_group::do_add_processing ()
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
{
}
-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
-{
-}
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)
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_)
{
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"));
}
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);
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"));
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.
(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)
(interfaces . (break-align-interface))
(stacking-dir . 1)
(axes 0)
+ (space-alist . ,default-break-align-space-alist)
(name . "break alignment")
)
basicBreakAlignGroupProperties = #`(
(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 = #`(
(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)
(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")
(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)
\accepts RhythmicStaff;
\accepts ChordNames;
\consists "Swallow_performer";
+
+ dynamicAbsoluteVolumeFunction = #default-dynamic-absolute-volume
+ instrumentEqualizer = #default-instrument-equaliser
};
\translator { \ScoreContext }
% 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
onevoice = {
- \stemboth \shiftoff
+ \stemboth
+ \tieBoth
}
-voiceone = \stemup
-voicetwo = \stemdown
+voiceone = { \stemup
+ \tieUp
+}
+voicetwo = { \stemdown
+ \tieDown
+ }
+
voicethree = {
\stemup
\shifton
% 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
tupleton =
\property Voice.tupletVisibility = 3
+%}
+
tiny =
\property Voice.fontSize= -2
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
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
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:
%%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 |
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 |
\dux
{ \comes \bar "|."; }
\time 4/4;
- \property Score.timeSignatureStyle = "C"
>
\context Staff = bass <
\key c \minor;
\paper {
linewidth = 18.0 \cm;
- \translator{ \OrchestralScoreContext }
+ \translator{ \OrchestralScoreContext
+ timeSignatureStyle \push #'style = #"C"
+
+ }
+
}
\header{
opus = "BWV 847";
+++ /dev/null
-;; (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)
- )
-
;;
;; 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))
+ )
+)
;; 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)
(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)
)
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))))
)
instrument-equaliser-alist))
-(define (instrument-equaliser s)
+(define (default-instrument-equaliser s)
(let ((entry (assoc s instrument-equaliser-alist)))
(if entry
(cdr entry))))
;;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)
)
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 ()
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
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)
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)
= 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):
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:
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]
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)
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]]
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],
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
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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
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;;
# 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
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