<table align=left>
<tr><td bgcolor="#e8e8ff"><a href="@INDEX@"><b>Home</b></a></td></tr>
<tr><td><font size=-1>
- <a href="http://www.cs.uu.nl/~hanwen/lilypond">Development</a><br>
- <a href="http://appel.lilypond.org/wiki?LilyPond">WikiWikiWeb</a><br>
+ <a href="http://www.lilypond.org/">LilyPond website</a><br>
+ <a href="http://www.lilypond.org/wiki">WikiWikiWeb</a><br>
<a href="http://www.gnu.org">GNU Project</a><br>
<a href="http://www2.iro.umontreal.ca/~pinard/po/registry.cgi?domain=lilypond">Translations</a><br>
- <a href="http://www.lilypond.org">LilyPond dot org</a><br>
+ <a href="http://www.cs.uu.nl/~hanwen/lilypond/">Han-Wen's site</a><br>
<br>
</td></tr>
<tr><td bgcolor="#e8e8ff">
</td></tr>
<tr><td><font size=-1>
<a href="@TOP@Documentation/out-www/CHANGES.html">Change Log</a><br>
- <a href="@TOP@Documentation/topdocs/out-www/FAQ.html">Small FAQ</a><br>
- <a href="http://appel.lilypond.org/wiki?LilyPondFaqs">Full FAQ</a><br>
+ <a href="http://appel.lilypond.org/wiki?LilyPondFaqs">FAQ</a><br>
<a href="@TOP@Documentation/user/out-www/lilypond/lilypond.html">User manual</a><br>
<a href="@TOP@Documentation/out-www/regression-test.html">Regression Test</a><br>
<a href="@TOP@Documentation/user/out-www/lilypond-internals/lilypond-internals.html">Documentation of internals</a><br>
<br>
</td></tr>
<tr><td bgcolor="#e8e8ff">
- <a href="@INDEX@#download-source"><b>Download Source</b></a>
+ <b>Download </b>
</td></tr>
<tr><td><font size=-1>
- <a href="ftp://ftp.gnu.org/pub/gnu/lilypond">Stable</a><br>
- <a href="ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development">Development</a><br>
- <br>
- </td></tr>
- <tr><td bgcolor="#e8e8ff">
- <a href="@INDEX@#download-binary"><b>Download Binary</b></a>
- </td></tr>
- <tr><td><font size=-1>
- <a href="ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/RPMS/">RedHat i386</a><br>
- <a href="ftp://appel.lilypond.org/pub/gnu/LilyPond/linuxppc-2000-Q4">LinuxPPC</a><br>
- <a href="ftp://ftp.debian.org/debian/pool/main/l/lilypond">Debian Stable</a><br>
- <a href="ftp://ftp.debian.org/debian/pool/main/l/lilypond1.3">Debian Unstable</a><br>
- <a href="http://home.austin.rr.com/jbr/jeff/lilypond/">Windows Stable</a><br>
- <a href="http://appel.lilypond.org/lilypond/gnu-windows">Windows Unstable</a><br>
- <br>
+<a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-source">Source</a><br>
+ <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-binaries">Binary</a> <br>
</td></tr>
<tr><td bgcolor="#e8e8ff">
<a href="@INDEX@#music"><b>Music</b></a>
@top
-@unnumberedsubsec General information
+@unnumberedsubsec Documentation for everyone
@itemize @bullet
-@item @uref{DEDICATION.html,Dedication}
-@item @uref{../topdocs/out-www/AUTHORS.html, Authors}
-@item @uref{../topdocs/out-www/README.html, Readme file}
-@item @uref{../topdocs/out-www/INSTALL.html, Installation instructions}
-@item @uref{../topdocs/out-www/WINDOWS.html, LilyPond for Windows}
-@item @uref{CHANGES.html, Things recently done}
-@item @uref{../topdocs/out-www/FAQ.html,Very Frequently Asked Questions}, with answers
-@item @uref{http://appel.lilypond.org/wiki?LilyPondFaqs,Full Frequently asked questions}, with answers
+@item @uref{DEDICATION.html,Dedication} Lily is dedicated to our friends.
+@item @uref{http://www.gnu.org/copyleft/gpl.html,GPL} it is released under
+ the GNU GPL.
@end itemize
-@unnumberedsubsec Manuals
-
+@unnumberedsubsec Information for new users
@itemize @bullet
-@item @uref{../user/out-www/lilypond/lilypond.html,LilyPond full documentation}
-@item @uref{../user/out-www/lilypond/Tutorial.html#Tutorial,LilyPond Tutorial}
-@item @uref{../user/out-www/lilypond/Reference-Manual.html#Reference Manual,LilyPond Reference manual}
-also available in @uref{../user/out-www/lilypond.ps.gz,PostScript}
-@item @uref{../user/out-www/lilypond/Tricks.html#Tricks, LilyPond
-features and tricks}
-@item @uref{../user/out-www/lilypond/Index.html#Index,LilyPond
-documentation master index}
-@item
-@uref{../user/out-www/lilypond-internals/lilypond-internals.html,Autogenerated
-documentation of internals}
-@item @uref{../user/out-www/glossary.html,A glossary of musical
-terms}, includes translations. Also available in @uref{../user/out-www/glossary.ps.gz,Postscript})
-@item @uref{../user/out-www/lilypond-book.html,lilypond-book}, a tool for
-integrating text and music in LaTeX and texinfo; also available in
-@uref{../user/out-www/lilypond-book.ps.gz,Postscript}
-@item @uref{../user/out-www/lilypond/ly2dvi.html#ly2dvi,ly2dvi} does page layout for
-LilyPond printout.
-@item @uref{../user/out-www/lilypond/midi2ly.html#midi2ly,midi2ly}
-converts MIDI files to LilyPond input
-@item @uref{regression-test.html, LilyPond test document}
-Also available in @uref{regression-test.ps.gz,Postscript}
+@item @uref{../../index.html,index} What is Lilypond?
+@item @uref{../topdocs/out-www/README.html, README} general information
+@item @uref{../topdocs/out-www/INSTALL.html, INSTALL}
+ How install on Unix.
+@item @uref{../windows/out-www/installing.html, WINDOWS}
+How to install on Windows.
+@item @uref{http://appel.lilypond.org/wiki?LilyPondFaqs,FAQ} Frequently
+asked questions, with answers.
+@item @uref{http://appel.lilypond.org/wiki?MailingLists,MailingLists} Subscribe to
+the mailing lists
+@item @uref{../out-www/lilypond/Tutorial.html,Tutorial} Learn how to use LilyPond.
@end itemize
+@unnumberedsubsec Information for other users
-@unnumberedsubsec Logo
@itemize @bullet
-@item @uref{../pictures/out-www/lelieblond.png, logo} in large size
-@item @uref{../pictures/out-www/lelie-logo.png, logo} in medium size
-@item @uref{../pictures/out-www/lelie-icon.png, logo} in small size
+@item @uref{CHANGES.html, CHANGES} things recently done
+
+@c download sites?
+
+@c NEWS
+
+@c archives?
+
+@item @uref{../user/out-www/lilypond-internals/lilypond-internals.html,lilypond-internals}
+Documentation of internals, generated from the sources.
+
+@item @uref{../user/out-www/lilypond/lilypond.html,lilypond}
+ The user manual, (in @uref{../user/out-www/lilypond.ps.gz,PostScript})
+@item @uref{../user/out-www/glossary.html,glossary} A glossary of musical
+terms, including translations. (in
+@uref{../user/out-www/glossary.ps.gz,Postscript})
@end itemize
-@unnumberedsubsec Literature
+@unnumberedsubsec Information for developers
@itemize @bullet
-@item @uref{../bibliography/out-www/colorado.html,University of
-Colorado Engraving music bibliography}. Books refered from the
-@uref{http://www.cc.colorado.edu/Dept/MU/Musicpress/,Big Site of Music
-Notation and Engraving} at University of Colorado.
-@item References on
-@uref{../bibliography/out-www/engraving.html,engraving and music
-notation}.
-@item Papers on
-@uref{../bibliography/out-www/computer-notation.html,music notation
-by computer}.
+@item @uref{../out-www/regression-test.html,regression-test} A glossary
+of musical terms, including translations. (in
+@uref{../out-www/regression-test.ps.gz,Postscript})
@end itemize
-@unnumberedsubsec Background information
+@unnumberedsubsec Logo
+@itemize @bullet
+@item @uref{../pictures/out-www/lelieblond.png, logo} in large size
+@item @uref{../pictures/out-www/lelie-logo.png, logo} in medium size
+@item @uref{../pictures/out-www/lelie-icon.png, logo} in small size
+@end itemize
+@unnumberedsubsec Background information
@itemize @bullet
+@item @uref{../topdocs/out-www/AUTHORS.html, Authors} documents who did
+what on LilyPond.
+
@item @uref{../misc/out-www/CHANGES-0.0.html, Change logs from 0.0 till 0.1 }
@item @uref{../misc/out-www/CHANGES-0.1.html, Change logs from 0.1 till 1.0 }
@item @uref{../misc/out-www/CHANGES-1.0.html, Change logs from 1.0 till 1.1 }
@item @uref{../windows/out-www/lily-wins.html, Lily Wins}
@end itemize
+@unnumberedsubsec Literature
+
+@itemize @bullet
+@item @uref{../bibliography/out-www/colorado.html,University of
+Colorado Engraving music bibliography}. Books refered from the
+@uref{http://www.cc.colorado.edu/Dept/MU/Musicpress/,Big Site of Music
+Notation and Engraving} at University of Colorado.
+@item References on
+@uref{../bibliography/out-www/engraving.html,engraving and music
+notation}.
+@item Papers on
+@uref{../bibliography/out-www/computer-notation.html,music notation
+by computer}.
+@end itemize
@bye
@chapter INSTALL - compiling and installing GNU LilyPond
-@section Obtaining
+@section Downloading source code
-You can get the latest version of LilyPond at
-@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/,
-ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/}.
+@html
+<a name="download-source">
+@end html
-There are three options for downloading sources.
+If you want to compile LilyPond from source, download here:
+@itemize @bullet
+@item Download stable releases at
+@uref{ftp://ftp.gnu.org/gnu/lilypond/,GNU}
+@item Download development releases from
+@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/, by FTP} and
+@uref{http://ftp.cs.uu.nl/pub/GNU/LilyPond/development/, by HTTP}.
+@item @uref{ftp://sca.uwaterloo.ca/pub/, ftp (Canadian mirror)}
+@item at @code{lilypond.org} by
+@uref{ftp://ftp.lilypond.org/pub/LilyPond/, FTP} and
+@uref{http://www.lilypond.org/ftp/, HTTP}.
+@end itemize
+
+Installing and compiling requires many additional packages, which are
+listed in the @uref{Documentation/topdocs/out-www/INSTALL.html,
+installation instructions}.
-@itemize
-@item if you don't have any version, then you can download
- the entire @file{.tar.gz} file.
-@item if you have an unpacked source tree of a previous version, you
-may use the diffs .
+@section Downloading binaries
+
+@html
+<a name="download-binary">
+@end html
+Binaries are available, but are not updated for every version released.
+@itemize @bullet
+@item @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/RPMS/, RedHat i386}
+@item @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/linuxppc, LinuxPPC}
+@item
+@uref{ftp://ftp.debian.org/debian/pool/main/l/lilypond,
+Debian GNU/Linux Stable}
+@item
+@uref{ftp://ftp.debian.org/debian/pool/main/l/lilypond1.3,
+Debian GNU/Linux Unstable}
+@item @uref{http://home.austin.rr.com/jbr/jeff/lilypond/, Windows Stable}
+@item @uref{ftp://ftp.lilypond.org/pub/lilypond/gnu-windows, Windows
+Testing}
+@end itemize
+
+@section Upgrading
+
+There are two options for upgrading sources.
+
+@itemize
+@item if you have an unpacked source tree of a previous version, you
+may the patches.
+
@emph{If you upgrade by patching do remember to rerun autoconf after
applying the patch}.
-
@item if you have the @code{.tar.gz} file of a previous release, you can
use
@uref{ftp://ftp.xcf.berkeley.edu/pub/xdelta/, xdelta}.
- This is much safer than using normal diffs, and is the recommended way.
+ This is much safer than using patches, and is the recommended way.
The following command produces @file{lilypond-1.3.122.tar.gz} from
@file{lilypond-1.3.121} identical (up to compression dates) to the .122
This document describes how to build LilyPond on Unix platforms. It is
also known to run and compile on Windows NT/95/98 as well. More
information on this topic can be found at the
-@uref{http://appel.lilypond.org/lilypond/gnu-windows/, LilyPond on Windows
+@uref{ftp://ftp.lilypond.org/pub/LilyPond/gnu-windows/, LilyPond on Windows
page}.
You need the following packages to compile Lilypond.
are `stable'. The webpages for the stable version (1.2) reside
@uref{http://www.gnu.org/software/lilypond, on the GNU servers}. Big
enhancements go into the latest odd numbered version (1.3), whose
-webpages are on @uref{http://www.cs.uu.nl/~hanwen/lilypond/,Han-Wen's
-site}. Information on the latest and greatest features can be found in
-the @uref{Documentation/out-www/CHANGES.html, Change Log}.
+webpages are on @uref{http://www.lilypond.org/,the lilypond site}.
+Information on the latest and greatest features can be found in the
+@uref{Documentation/out-www/CHANGES.html, Change Log}.
If want more information, you can browse the
@uref{Documentation/user/out-www/lilypond.html, manual} or other
in PostScript, and LilyPond input. Others use LilyPond too, and have put
scores on the web. Head over to @uref{http://appel.lilypond.org/wiki?DownloadLilyPondScores}
-@html
-<a name="download-source">
-@end html
-@unnumberedsec Download
-
-If you want to compile LilyPond from source, download here:
-@itemize @bullet
-@item Download stable releases at
-@uref{ftp://ftp.gnu.org/gnu/lilypond/,GNU}
-@item Download development releases from
-@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/, by FTP} and
-@uref{http://ftp.cs.uu.nl/pub/GNU/LilyPond/development/, by HTTP}.
-@item @uref{ftp://sca.uwaterloo.ca/pub/, ftp (Canadian mirror)}
-@item @uref{ftp://ftp.lilypond.org/pub/LilyPond/, mirror (Europe)}
-@end itemize
-
-Installing and compiling requires many additional packages, which are
-listed in the @uref{Documentation/topdocs/out-www/INSTALL.html,
-installation instructions}.
-
-@html
-<a name="download-binary">
-@end html
-Binaries are available, but are not updated for every version released.
-@itemize @bullet
-@item @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/RPMS/, RedHat i386}
-@item @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/RPMS/ppc, LinuxPPC}
-@item
-@uref{ftp://ftp.debian.org/debian/pool/main/l/lilypond,
-Debian GNU/Linux Stable}
-@item
-@uref{ftp://ftp.debian.org/debian/pool/main/l/lilypond1.3,
-Debian GNU/Linux Unstable}
-@item @uref{http://home.austin.rr.com/jbr/jeff/lilypond/, Windows Stable}
-@item @uref{http://appel.lilypond.org/lilypond/gnu-windows, Windows
-Testing}
-@end itemize
-
@html
<a name="mailing-lists">
@node Literature
@chapter Literature
-If you need to know more about music notation, here are some interesting titles to read
+If you need to know more about music notation, here are some interesting
+titles to read. The source archive includes a more elaborate
+bibliography of over 100 entries in @file{Documentation/bibliography/}.
@table @cite
@item Banter 1987
@chapter Reference Manual
This document describes GNU LilyPond and its input format. The last
-revision of this document was made for LilyPond 1.3.145.
+revision of this document was made for LilyPond 1.3.145. It supposes a
+passing familiarity with how LilyPond input works. New users are
+encouraged to study the tutorial first.
@menu
The time signature is changed by the @code{\time} command. Syntax:
@example
- \time @var{numerator}@code{/}@var{denominator}
+ \time @var{n}@code{/}@var{d}
@end example
Internally, this is a shortcut for doing
@example
- \property Score.timeSignatureFraction = #'(@var{numerator} . @var{denominator})
+\property Score.timeSignatureFraction = #'(@var{n} . @var{d})
+\property Score.beatLength = #(make-moment 1 @var{d})
+\property Score.measureLength = #(make-moment @var{n} @var{d})
@end example
-The property @code{timeSignatureFraction} is used to determine where bar
-lines should be inserted, and how automatic beams should be generated.
+These properties @code{timeSignatureFraction} determine where bar lines
+should be inserted, and how automatic beams should be
+generated.
-The grob is @code{TimeSignature}. There are many options for the layout
-of this grob. They are selected through the @code{style} grob
-property. See @file{input/test/time.ly} for examples.
+Changing the value of @code{timeSignatureFraction} also causes a
+fraction to be printed. This grob is @code{TimeSignature}. There are
+many options for the layout of this grob. They are selected through the
+@code{style} grob property. See @file{input/test/time.ly} for examples.
@c . {Partial}
@subsection Partial
Ending a staff or score with grace notes may also generate a run-time
error, since there will be no main note to attach the grace notes to.
+Combining grace notes and clef changes will prints note heads on
+erroneous vertical positions.
The present implementation of grace notes is not robust and generally
kludgey. We expect it to change after LilyPond 1.4. Syntax changes might
@example
\translator Staff = @var{staffname} @var{music}
@end example
-The string @var{staffname} is the name of the staff. Typically it is
-@code{"up"} or @code{"down"}.
-
-Formally, this construct is a music expression indicating that the
-context which is a direct child of the context of type
-@var{contexttype} should be shifted to a context of type
-@var{contexttype} and the specified name.
+The string @var{staffname} is the name of the staff. It switches the
+current voice from its current staff to the Staff called
+@var{staffname}. Typically @var{staffname} is @code{"up"} or
+@code{"down"}.
+The formal definition of this construct is obtuse, but for the sake of
+completeness we give it here.
@cindex @code{\translator}
@example
\translator @var{contexttype} = @var{name}
@end example
+Formally, this construct is a music expression indicating
+that the context which is a direct child of the context of type
+@var{contexttype} should be shifted to a context of type
+@var{contexttype} and the specified name.
@c . {Pedals}
To demonstrate what LilyPond input looks like, we start off with a
full-fledged, yet simple example. It is a convoluted version
-of the famous menuet in J. S. Bach's @emph{Klavierb@"uchlein}. The file
-is included in the distribution as @file{menuet.ly}.
+of the famous minuet in J. S. Bach's @emph{Klavierb@"uchlein}. The file
+is included in the distribution as @file{minuet.ly}.
@cindex Bach, Johann Sebastian
@lilypond[verbatim]
mkdir my-project
cd my-project
cp /usr/share/lilypond/make/ly.make GNUmakefile
-cp /usr/share/doc/lilypond/examples/input/tutorial/menuet.ly .
-make menuet
+cp /usr/share/doc/lilypond/examples/input/tutorial/minuet.ly .
+make minuet
[..]
-Generated out/menuet.ps for target menuet.
+Generated out/minuet.ps for target minuet.
@end example
Type @samp{make help} to see possible targets.
--- /dev/null
+@section Obtaining LilyPond
+
+You can get the latest version of LilyPond at
+@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/,
+ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/}.
+
+@section Windows build requirements
+You need the following packages to compile Lilypond on Windows.
+
+@table @code
+@item The GNU + Cygnus tools, 1.1.7 or newer.
+Check out the @uref{http://sources.redhat.com/cygwin,Cygwin webpage}.
+You can get the latest version of the GNU + Cygnus tools from cygnus
+@uref{http://sources.redhat.com/cygwin/mirrors.html,mirror site}.
+Install everything, including tetex.
+@item GUILE 1.4, or newer.
+Check out the @uref{http://www.gnu.org/software/guile.html,GUILE
+webpage}. You may need the patch @file{guile-1.4-gnu-windows.patch}
+included in LilyPond's source distribution.
+@end table
+
+These binaries are cross compiled for Windows on a GNU/Linux box. You
+may want to check out the
+@uref{http://appel.lilypond.org/lilypond/gnu-windows/cross-1.1.8.tar.gz,cross
+compilation scripts}.
--- /dev/null
+\input texinfo @c -*-texinfo-*-
+@setfilename installing.info
+@settitle LilyPond on Windows
+
+@node Top
+@top
+
+@chapter WINDOWS - Installing GNU LilyPond on Windows
+
+This document explains how to install the binary release for windows
+on a Microsoft Windows 95, 98, NT or 2000 machine.
+
+This release is a free extra service of the developers to assist windows
+users. Please remember that we (the developers) rather dislike windows,
+and none of us use it. Don't complain to us that installing LilyPond is
+too difficult; rather, send us code that works better.
+
+You must install the following software:
+
+@table @asis
+@item LilyPond
+Download and run
+@uref{ftp://ftp.lilypond.org/pub/LilyPond/gnu-windows/setup.exe, setup.exe}
+to install LilyPond.
+
+This will install the minimal set of cygwin tools needed to run
+LilyPond. If you already have cygwin installed, don't worry: nothing
+will be installed twice. To expand on this minimal set, click
+@uref{http://sources.redhat.com/cygwin/setup.exe,here},
+or visit a Cygwin
+@uref{http://sources.redhat.com/cygwin/mirrors.html,mirror site}.
+
+@item A full TeX installation.
+
+For example, download and install
+@uref{http://prdownloads.sourceforge.net/miktex/miktex-2.0-lvl-1.zip,MikTeX},
+or visit @uref{http://www.miktex.org,www.miktex.org}.
+@c See @file{/usr/doc/cygwin/tetex-beta-20001218.README} for details.
+
+@item Ghostview.
+
+You can use GSView-2.6. This old package has two advantages. It has
+gsview and ghostscript bundeled, and it doesn't popup @emph{Register
+Now|Cancel} windows all the time. It doesn't work together with Yap to
+display PostScript specials.
+
+Click @uref{ftp://ftp.cs.wisc.edu/ghost/ghostgum/gsv26w32.exe,here} to
+install GSView-2.6 (GhostView for Windows), or visit
+@uref{ftp://ftp.cs.wisc.edu/ghost/ghostgum,ftp.cs.wisc.edu}.
+
+You can also use the newer versions GSView-3.6 and GhostScript-6.50 If
+you install both these packages, Yap will display PostScript specials.
+You get annoying @emph{Register Now|Cancel} popups, though.
+
+Click @uref{ftp://ftp.cs.wisc.edu/ghost/ghostgum/gsv36w32.exe,here} for
+GSview and
+Click @uref{ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/gs650/gs650w32.exe
+,here} for GhostScript.
+@uref{ftp://ftp.cs.wisc.edu/ghost/ghostgum,ftp.cs.wisc.edu}.
+or visit the
+@uref{http://www.cs.wisc.edu/~ghost/,Ghostscript, Ghostview and GSview site}.
+
+@item Python
+Click @uref{http://www.python.org/ftp/python/win32/py152.exe,here} to
+install Python-1.5.2, or visit
+@uref{http://www.python.org,www.python.org}.
+
+We have not tried using newer versions than 1.5.2.
+@end table
+
+
+@section Windows running setup
+
+If you're lucky, after running @file{setup.exe} you're all set up.
+
+Open a LilyPond shell (or any bash shell), and type
+@example
+lilypond --help
+@end example
+
+If you don't see something similar to
+@example
+Usage: lilypond [OPTION]... [FILE]...
+
+Typeset music and or play MIDI from FILE
+
+LilyPond is a music typesetter. It produces beautiful sheet music
+using a high level description file as input. LilyPond is part of
+the GNU Project.
+
+Options:
+ -h,--help this help
+[..]
+@end example
+
+you should try adding @file{/usr/lilypond-x.y.z/bin} to your @var{PATH},
+do:
+@example
+PATH=/usr/lilypond-1.3.147/bin:$PATH
+@end example
+
+and try again.
+
+[TODO:
+
+
+* emacs-mode installation, figure out and describe proper
+emacs-on-cygwin setup.
+
+* talk about /etc/profile.d/lilypond-profile.sh
+
+* GUILE errors, simple guile test
+
+* (La)TEX errors, simple tex test
+
+
+]
+@ignore
+
+ guile -v
+ Guile 1.4.1
+
+ guile -e %load-path
+ ERROR: Wrong type to apply: ("/usr/share/guile/site" /usr/share/guile/1.4.1")
+
+
+
+Mats?
+
+Let's take this step by step.
+
+It should not be critical which MikTeX version you use.
+Let's first verify that your MikTeX works as it should.
+Open a DOS window. Run the commands
+>> latex sample2e
+ Should produce some lines of output
+>> yap sample2e
+ Should display a three page document.
+
+Next step; verify that the geometry package is in place.
+Save the attached file to the directory where you run
+your DOS window. Run the commands
+>> latex geometrytest
+>> yap geometrytest
+This one you should get a single page document with some text
+in each corner.
+]
+
+@end ignore
+
+
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=3
-PATCH_LEVEL=149
+PATCH_LEVEL=150
MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
--- /dev/null
+\score {\notes\context Voice {
+c4 \clef bass \grace c'8 c4
+ }}
--- /dev/null
+
+\score { \notes { c^#`(rows ";" (lines "1" (bold "2") "3"))}}
+
--- /dev/null
+
+\score { \notes { c^#`(rows ";" (lines "1" (bold "2") "3"))}}
+
\header {
- texidoc="Jazz chord names, but with lower case names for minor chords";
+ texidoc="Jazz chord names, but with lower case names for minor chords"
}
#(assoc-set! chord::names-alist-jazz
--- /dev/null
+\header {
+
+texidoc = "You can move around Bar_engraver and
+Span_bar_engraver if you want bar lines on lyrics." }
+
+
+\score {
+\notes \relative c' \context StaffGroup = groupie <
+ \context Staff = SA { c1 c1 c1}
+ \context Lyrics \lyrics <
+ { bla1 die bla }
+ { foo bar foo }
+ { foo bar foo }
+ >
+ \context Staff = SB { c1 c1 c1}
+
+ >
+
+
+\paper {
+\translator {
+ \LyricsVoiceContext
+ \consists Bar_engraver
+ % need procedure, since lyrics doesn't have a staff_sym engraver.
+ BarLine \override #'bar-size-procedure = #(lambda (x) 3.0)
+}
+
+\translator {
+ \LyricsContext
+ \consists "Span_bar_engraver"
+}
+\translator{
+ \StaffGroupContext
+ \remove "Span_bar_engraver"
+}
+}}
-\version "1.3.146"
-%
-% TODO: junkme.
-%
+\header {
+texidoc = "The full orchestra plays a notes, where groups stop one after another. USe this to tune equalizer settings. "
+}
+\version "1.3.146"
flauti = \notes \relative c' {
\property Staff.midiInstrument = #"flute"
R1*6 c1 R1*4
}
-violinoB = \notes \relative c' {
+violinoI = \notes \relative c' {
\property Staff.midiInstrument = #"violin"
\property Staff.instrument = #"Violino I"
\property Staff.instr = #"Vl. I"
R1*7 c1 R1*3
}
-violinoC = \notes \relative c' {
+violinoII = \notes \relative c' {
\property Staff.midiInstrument = #"violin"
\property Staff.instrument = #"Violino II"
\property Staff.instr = #"Vl. II"
>
\context StaffGroup ="archi" <
\context GrandStaff ="violini" <
- \context Staff ="violino1" \violino1
- \context Staff ="violino2" \violino2
+ \context Staff ="violino1" \violinoI
+ \context Staff ="violino2" \violinoII
>
\context Staff ="viola" \viola
\context Staff ="violoncello" \violoncello
c'4 c4
\property Voice.fontSize= #-2
- b16 (*1/2
+ b16*1/2 (
\property Voice.fontSize= #0
) g4 *31/32
+
+\header {
+texidoc = "some instruments (notably: cello and double bass) are alternatively written on one and two staves. This is the way to do it:"
+}
\version "1.3.146"
\translator { \VoiceContext noAutoBeaming = ##t }
\translator { \HaraKiriStaffContext }
- \translator { \OrchestralScoreContext skipBars = 1 }
+ \translator { \OrchestralScoreContext skipBars = ##t }
}
}
+
+\header {
+texidoc = "note heads for improvisation have a different shape. "
+}
+
+%{ TODO: the construct with separet SquashVoice context is a little
+ gory. FIXME. %}
+
\version "1.3.146"
improOn = \notes {\translator Voice = impro }
\score {
<
- \context ChordNames \chords {e8:m7*7 a2.:m7 bes4:m7 b1:m7 e8:m }
+ \context ChordNames \chords {e8*7:m7 a2.:m7 bes4:m7 b1:m7 e8:m }
\context Staff \notes <
\context SquashVoice = impro { \global }
\context Voice = melo \transpose c'' {
\alias Voice
\consists Pitch_squash_engraver
\consists Local_key_engraver
- squashedPosition = 6
+ squashedPosition = #0
NoteHead \override #'style = #'slash
Accidentals \override #'transparent = ##t
}
-4\version "1.3.146"
+\version "1.3.146"
somewhatLong = \lyrics{
}
\context Voice=four {
\stemDown\slurDown\tieDown
- \property Voice.horizontalNoteShift=-1
+ \property Voice .NoteColumn \override #'horizontal-shift = #-1
fis
}
>
c( d e )c |
\slurDotted
c( d e )c |
- \slurNoDots
+ \slurSolid
c( d e )c |
- \property Voice.slurDash = #0.0
+ \property Voice. Slur \set #'dashed = #0.0
c( d e )c |
- \slurNoDots
+ \slurSolid
c( d e )c |
}
\paper{
+\header {
+texidoc = " the transposing property leaves output invariant, but has effect on MIDI."
+
+}
\version "1.3.146"
\score {
\context Voice \notes\relative c {
% btw: this is not how transposing is done in mudela,
% this is a transposing performer, i.e. for midi-output only
- \property Staff.transposing = 0 c
- \property Staff.transposing = 2 c
- \property Staff.transposing = 4 c
- \property Staff.transposing = 5 c
- \property Staff.transposing = 7 c
- \property Staff.transposing = 9 c
- \property Staff.transposing = 11 c
- \property Staff.transposing = 12 c
+ \property Staff.transposing = #0 c
+ \property Staff.transposing = #2 c
+ \property Staff.transposing = #4 c
+ \property Staff.transposing = #5 c
+ \property Staff.transposing = #7 c
+ \property Staff.transposing = #9 c
+ \property Staff.transposing = #11 c
+ \property Staff.transposing = #12 c
}
\paper { }
>
\paper {
- font_normal = 12.
\translator {
\StaffContext
\consists Instrument_name_engraver
+% DOCUMENTME!
+
\version "1.3.146"
>
\paper {
- font_normal = 12.
\translator {
\StaffContext
TimeSignature \override #'style = #'C
- \consists Instrument_name_engraver
}
}
}
--- /dev/null
+
+% lines preceded by a percent sign are comments.
+\include "paper16.ly"
+\score {
+ \notes
+ \relative c''
+ \sequential {
+ \key g \major
+ \time 3/4
+
+ \repeat "volta" 2 \sequential {
+ d4 g,8 a b c d4 g, g |
+ e'4 c8 d e fis g4 g, g |
+ c4 d8( )c b a( )b4 c8 b a g |
+ a4 [b8 a] [g fis] g2. |
+ }
+
+ b'4 g8 a b g
+ a4 d,8 e fis d |
+ g4 e8 fis g d cis4 b8 cis a4 |
+ a8-. b-. cis-. d-. e-. fis-.
+ g4 fis e |
+ fis a, r8 cis8
+ d2.-\fermata
+ \bar "|."
+ }
+ \paper {
+ linewidth = 10.0 \cm % standard settings are too wide for a book
+ }
+}
Grob * me = unsmob_grob (smob);
SCM s = me->get_grob_property ("glyph");
- SCM barsiz_proc = me->get_grob_property ("barsize-procedure");
+ SCM barsiz_proc = me->get_grob_property ("bar-size-procedure");
if (gh_string_p (s) && gh_procedure_p (barsiz_proc))
{
String str =ly_scm2string (s);
#include "side-position-interface.hh"
#include "item.hh"
-/// where is c-0 in the staff?
+
class Clef_engraver : public Engraver
{
public:
virtual void start_translation_timestep ();
virtual void process_music ();
virtual void acknowledge_grob (Grob_info);
-
+ virtual void do_creation_processing ();
private:
Item * clef_p_;
Item * octavate_p_;
void create_clef ();
void set_central_c (SCM, SCM, SCM);
void set_glyph ();
+ void inspect_clef_properties ();
};
Clef_engraver::Clef_engraver ()
void
Clef_engraver::process_music ()
+{
+ inspect_clef_properties ();
+}
+
+/*
+ this must be done in creation_proc() since grace notes will be
+ processed before Clef_engraver::prcoess_music()
+
+ Grace notes and clef changes are still broken.
+*/
+void
+Clef_engraver::do_creation_processing ()
+{
+ inspect_clef_properties ();
+}
+
+void
+Clef_engraver::inspect_clef_properties ()
{
SCM glyph = get_property ("clefGlyph");
SCM clefpos = get_property ("clefPosition");
int major_i_;
int minor_i_;
int patch_i_;
+ String extra_patch_str_;
};
extern Lilypond_version oldest_version;
extern Sources* source_global_l;
#include <iostream.h> /* gcc 3.0 */
-void print_lilypond_versions (ostream &os);
+
#endif /* MAIN_HH */
class Timing_translator : public virtual Translator
{
-
- SCM last_time_sig_;
public:
VIRTUAL_COPY_CONS (Translator);
Timing_translator ();
public:
Moment measure_position () const;
Moment measure_length () const;
- void set_time_signature ();
+
};
#endif // TIMING_TRANSLATOR_HH
*/
if (gh_string_p (s) || gh_pair_p (s))
create_text (s);
-
}
if (dynamic_cast<Spanner*> (i.elem_l_)
*/
#include <stdio.h>
+#include <string.h>
#include "config.h"
#include "string.hh"
ly_init_kpath (char *av0)
{
#if KPATHSEA && HAVE_KPATHSEA_KPATHSEA_H
+
+ /*
+ Remove the setting for TFMFONTS if we have kpathsea, because
+ kpathsea can find TFM fonts anyway.
+
+ If we don't lily will want to make tfms for cmr fonts, even if
+ there is a :: entry in the TFMFONTS path.
+
+ This will fail if a user has special fonts (outside of feta) that
+ can not be found by kpath.
+
+ If TFMFONTS is unset, TFMs of feta will be generated on the
+ fly. The risk is that this will cause checksum mismatch errors,
+ but MF is reasonably deterministic (so we hope not).
+
+ The advantage is that the PK font will also be generated under
+ /var/texmf/fonts, reducing clutter and compilation time.
+
+ */
+ unsetenv ("TFMFONTS");
+
/*
initialize kpathsea
*/
*/
+
+SCM scan_fraction (String);
+
%}
%option c++
AA {A}|_
N [0-9]
AN {AA}|{N}
-PUNCT [?!:']
+PUNCT [?!:'`]
ACCENT \\[`'"^]
NATIONAL [\001-\006\021-\027\031\036\200-\377]
TEX {AA}|-|{PUNCT}|{ACCENT}|{NATIONAL}
ALPHAWORD {A}+
DIGIT {N}
UNSIGNED {N}+
+FRACTION {N}+\/{N}+
INT -?{UNSIGNED}
REAL ({INT}\.{N}*)|(-?\.{N}+)
KEYWORD \\{WORD}
{NOTECOMMAND} {
return scan_escaped_word (YYText () + 1);
}
+ {FRACTION} {
+ yylval.scm = scan_fraction (YYText ());
+ return FRACTION;
+ }
{DIGIT} {
yylval.i = String_convert::dec2_i (String (YYText ()));
\" {
start_quote ();
}
+ {FRACTION} {
+ yylval.scm = scan_fraction (YYText ());
+ return FRACTION;
+ }
{UNSIGNED} {
yylval.i = String_convert::dec2_i (String (YYText ()));
return UNSIGNED;
{NOTECOMMAND} {
return scan_escaped_word (YYText () + 1);
}
+ {FRACTION} {
+ yylval.scm = scan_fraction (YYText ());
+ return FRACTION;
+ }
{UNSIGNED} {
yylval.i = String_convert::dec2_i (String (YYText ()));
return UNSIGNED;
+Lilypond_version oldest_version ("1.3.59");
+
+void
+print_lilypond_versions (ostream &os)
+{
+ os << _f ("Oldest supported input version: %s", oldest_version.str ())
+ << endl;
+}
+
bool
valid_version_b (String s)
return s;
}
+
+/*
+Convert "NUM/DEN" into a '(NUM . DEN) cons.
+*/
+SCM
+scan_fraction (String frac)
+{
+ int i = frac.index_i ('/');
+ int l = frac.length_i ();
+ String left = frac.left_str (i);
+ String right = frac.right_str (l - i - 1);
+
+ int n = String_convert::dec2_i (left);
+ int d = String_convert::dec2_i (right);
+ return gh_cons (gh_int2scm (n), gh_int2scm (d));
+}
+
{
Array<String> version;
version = String_convert::split_arr (str, '.');
- assert (version.size () == 3);
+
major_i_ = version[0].value_i ();
minor_i_ = version[1].value_i ();
- patch_i_ = version[2].value_i ();
+ patch_i_ = 0;
+ if (version.size () >= 3)
+ patch_i_ = version[2].value_i ();
+
+ if (version.size () >= 4)
+ extra_patch_str_ = version[3];
}
String
me->get_grob_property ("bracket-thick"),
SCM_UNDEFINED);
- /*
+/*
TODO: sort this out.
Another thing:
(arc_height changes the x-axis-size of arc ; arc_width changes the
y-axis-size)
Will not fix it since I'm not sure.
-
--Rune
*/
+
Real h = height + 2 * arc_height;
Box b (Interval (0, 1.5), Interval (-h/2, h/2));
Molecule mol (b, at);
Time_signature_performer::create_audio_elements ()
{
SCM fr = get_property ("timeSignatureFraction");
- if (gh_pair_p (fr)
- && scm_equal_p (fr, prev_fraction_) != SCM_BOOL_T)
+ if (gh_pair_p (fr) && !gh_equal_p (fr, prev_fraction_))
{
prev_fraction_ = fr;
int b = gh_scm2int (gh_car (fr));
if (!to_boolean (get_property ("barCheckNoSynchronize")))
daddy_trans_l_->set_property ("measurePosition", zero.smobbed_copy ());
}
-
- SCM fr = get_property ("timeSignatureFraction");
-
- if (scm_equal_p (fr, last_time_sig_) == SCM_BOOL_F)
- {
- last_time_sig_ = fr;
- set_time_signature ();
- }
}
daddy_trans_l_->set_property ("timeSignatureFraction",
gh_cons (gh_int2scm (4), gh_int2scm (4)));
- set_time_signature ();
+ daddy_trans_l_->set_property ("measureLength", Moment (1).smobbed_copy ());
+ daddy_trans_l_->set_property ("beatLength", Moment (1,4).smobbed_copy ());
}
Moment
}
-void
-Timing_translator::set_time_signature ()
-{
- SCM fr = get_property ("timeSignatureFraction");
- int l = gh_scm2int (gh_car (fr));
- int o = gh_scm2int (gh_cdr (fr));
-
- Moment one_beat = Moment (1)/Moment (o);
- Moment len = Moment (l) * one_beat;
-
- daddy_trans_l_->set_property ("measureLength", len.smobbed_copy ());
- daddy_trans_l_->set_property ("beatLength", one_beat.smobbed_copy ());
-}
Timing_translator::Timing_translator ()
{
- last_time_sig_ = SCM_BOOL_F;
}
% weird effects when doing instrument names for
% piano staffs
- instrument = #""
- instr = #""
+ instrument = ##f
+ instr = ##f
\accepts "Voice"
}
\name "PianoStaff"
\consists "Vertical_align_engraver"
-
+ \consists "Instrument_name_engraver"
+ instrument = ##f
+ instr = ##f
verticalAlignmentChildCallback = #Align_interface::fixed_distance_alignment_callback
VerticalAlignment \override #'forced-distance = #12
--- /dev/null
+%!PS-Adobe-1.0: lily.ps
+%
+% Functions for direct and embedded PostScript
+
+% round cappings
+1 setlinecap
+
+/euclidean_length
+{
+ 1 copy mul exch 1 copy mul add sqrt
+} bind def
+
+/draw_beam % width slope thick
+{
+ 2 div /beam_thick exch def
+ /beam_slope exch def
+ /beam_wd exch def
+ beam_slope beam_wd mul /beam_ht exch def
+ 0 beam_thick neg moveto
+ beam_wd beam_ht rlineto
+ 0 beam_thick 2 mul rlineto
+ 0 beam_thick lineto
+ closepath fill
+} bind def
+
+/draw_repeat_slash % width slope thick
+{
+ /beamthick exch def
+ /slope exch def
+ /width exch def
+ beamthick beamthick slope div euclidean_length
+ /xwid exch def
+ 0 0 moveto
+ xwid 0 rlineto
+ width slope width mul rlineto
+ xwid neg 0 rlineto
+% width neg width angle sin mul neg rlineto
+ closepath fill
+} bind def
+
+/draw_hairpin % width start_h end_h thick
+{
+ setlinewidth
+ /end_h exch def
+ /start_h exch def
+ /wid exch def
+ 0 start_h moveto
+ wid end_h lineto
+ stroke
+ 0 start_h neg moveto
+ wid end_h neg lineto
+ stroke
+} bind def
+
+/draw_tuplet % height gap dx dy thick dir
+{
+ /dir exch def
+ setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ /tuplet_dy exch def
+ /tuplet_dx exch def
+ /tuplet_gapx exch def
+ /tuplet_h exch def
+ tuplet_dy tuplet_dx div tuplet_gapx mul /tuplet_gapy exch def
+
+
+ 0 0 moveto
+ 0 tuplet_h dir mul lineto
+ tuplet_dx tuplet_gapx sub 2 div
+ tuplet_dy tuplet_gapy sub 2 div tuplet_h dir mul add lineto
+ tuplet_dx tuplet_gapx add 2 div
+ tuplet_dy tuplet_gapy add 2 div tuplet_h dir mul add moveto
+ tuplet_dx tuplet_dy tuplet_h dir mul add lineto
+ tuplet_dx tuplet_dy lineto
+ stroke
+} bind def
+
+/difficult_draw_ez_ball % ch letter_col ball_col font
+{
+ % font
+ findfont 0.7 scalefont setfont
+ 0.1 setlinewidth
+ 0 0 moveto
+ 0 setgray
+ 0.5 0 0.5 0 360 arc closepath fill stroke
+ % ball_col
+ 1 eq {
+ 0.01 setlinewidth
+ 1 setgray
+ 0.5 0 0.4 0 360 arc closepath
+ fill stroke
+ } if
+ % letter_col
+ setgray
+ % 0.25 is empiric centering. Change to taste
+ 0.25 -0.25 moveto
+ % ch
+ show
+} bind def
+
+% Simple, but does it work everywhere?
+% The filled circles are drawn by setting the linewidth
+% to 2*radius and drawing a point. Is that (defined to be)
+% a nice filled circle?
+/draw_ez_ball % ch letter_col ball_col font
+{
+ % font
+ findfont 0.85 scalefont setfont
+ /origin { 0.45 0 } def
+ 0 setgray
+ 1.1 setlinewidth
+ origin moveto
+ origin lineto stroke
+ % ball_col
+ setgray
+ 0.9 setlinewidth
+ origin moveto
+ origin lineto stroke
+ % letter_col
+ setgray
+ % 0.25 is empiric centering. Change to taste
+ origin moveto
+ -0.28 -0.30 rmoveto
+ % ch
+ show
+} bind def
+
+/draw_volta % h w thick vert_start vert_end
+{
+ /vert_end exch def
+ /vert_start exch def
+ setlinewidth
+ /volta_w exch def
+ /volta_h exch def
+ 1 setlinecap
+ 1 setlinejoin
+ vert_start 0 eq {
+ 0 0 moveto
+ 0 volta_h lineto
+ } if
+ 0 volta_h moveto
+ volta_w volta_h lineto
+ vert_end 0 eq {
+ volta_w 0 lineto
+ } if
+ stroke
+} bind def
+
+% this is for drawing slurs.
+/draw_bezier_sandwich % thickness controls
+{
+ setlinewidth
+ moveto
+ curveto
+ lineto
+ curveto
+ gsave
+ fill
+ grestore
+ stroke
+} bind def
+
+/draw_dashed_line % dash thickness dx dy
+{
+ 1 setlinecap
+ 1 setlinejoin
+ setdash
+ setlinewidth
+ 0 0 moveto
+ lineto
+ stroke
+} bind def
+
+/draw_dashed_slur % dash thickness controls
+{
+ 1 setlinecap
+ 1 setlinejoin
+ setdash
+ setlinewidth
+ 8 -2 roll
+ moveto
+ curveto
+ stroke
+} bind def
+
+
+
+/bracket_traject
+{
+ /traject_ds exch def
+ /traject_alpha exch def
+ traject_ds traject_alpha sin mul add
+ exch
+ traject_ds traject_alpha cos mul add
+ exch
+} bind def
+
+
+
+/half_bracket
+{
+%6
+ 0 0
+%5a
+ bracket_thick arch_height add half_height arch_thick sub arch_width add
+ arch_angle arch_height -0.15 mul bracket_traject
+%5b
+ bracket_thick 0.5 mul half_height
+ 0 arch_height 0.5 mul bracket_traject
+%5c
+ 0 half_height
+%4a
+ bracket_thick half_height arch_thick sub
+ 0 arch_height 0.4 mul bracket_traject
+%4b
+ bracket_thick arch_height add half_height arch_thick sub arch_width add
+ arch_angle arch_height -0.25 mul bracket_traject
+%4c
+ bracket_thick arch_height add half_height arch_thick sub arch_width add
+%3
+ bracket_thick half_height arch_thick sub
+%2
+ bracket_thick 0
+%1
+ 0 0
+} bind def
+
+/draw_half_bracket {
+ moveto
+ lineto
+ lineto
+ curveto
+ curveto
+ lineto
+ gsave
+ fill
+ grestore
+} bind def
+
+/draw_bracket % arch_angle arch_width arch_height bracket_height arch_thick bracket_thick
+{
+ % urg
+
+ /bracket_thick exch def
+ /arch_thick exch def
+ /bracket_height exch def
+ /arch_height exch def
+ /arch_width exch def
+ /arch_angle exch def
+
+ bracket_height 2 div bracket_thick add /half_height exch def
+ bracket_thick 0.5 mul setlinewidth
+ 1 setlinecap
+ 1 setlinejoin
+ half_bracket
+ 20 copy
+ 1 -1 scale
+ draw_half_bracket
+ stroke
+ 1 -1 scale
+ draw_half_bracket
+ stroke
+} bind def
+
(break-align-symbol . Staff_bar)
(glyph . "|")
(break-glyph-function . ,default-break-barline)
- (barsize-procedure . ,Bar::get_staff_bar_size)
+ (bar-size-procedure . ,Bar::get_staff_bar_size)
(molecule-callback . ,Bar::brew_molecule)
(visibility-lambda . ,all-visible)
(breakable . #t)
(Script . (
;; don't set direction here: it breaks staccato.
(molecule-callback . ,Script::brew_molecule)
+ (padding . 0.3)
(X-offset-callbacks . (,Side_position_interface::centered_on_parent))
(before-line-breaking-callback . ,Script::before_line_breaking)
(meta . ,(grob-description "Script" script-interface side-position-interface font-interface))
))
(SpanBar . (
(break-align-symbol . Staff_bar)
- (barsize-procedure . ,Span_bar::get_bar_size)
+ (bar-size-procedure . ,Span_bar::get_bar_size)
(molecule-callback . ,Bar::brew_molecule)
(visibility-lambda . ,begin-of-line-invisible)
(X-extent-callback . ,Span_bar::width_callback)
In the case of alignment grobs, this should contain only one number.")
(grob-property-description 'bar-size number? "size of a bar line.")
(grob-property-description 'bars list? "list of barline pointers.")
-(grob-property-description 'barsize-procedure procedure? "Procedure that computes the size of a bar line.")
+(grob-property-description 'bar-size-procedure procedure? "Procedure that computes the size of a bar line.")
(grob-property-description 'baseline-skip number? "Baseline skip to use for multiple lines of text.")
(grob-property-description 'bass list? " musical-pitch, optional.")
(grob-property-description 'beam ly-grob? "pointer to the beam, if applicable.")
but a line break is allowed at that spot.
"
- '( barsize-procedure kern thin-kern hair-thickness thick-thickness glyph bar-size break-glyph-function ))
+ '(bar-size-procedure kern thin-kern hair-thickness thick-thickness glyph bar-size break-glyph-function ))
(lily-interface
;; URG: now we can't use scm output without Lily
(ly-gulp-file "lilyponddefs.ps")
" {exch pop //systemdict /run get exec} "
- (ly-gulp-file "lily.ps")
+ (ly-gulp-file "music-drawing-routines.ps")
"{ exch pop //systemdict /run get exec } "
))
(ly-number->string thick)
" draw_bezier_sandwich"))
+; TODO: use HEIGHT argument
(define (start-line height)
- "\nstart-line {
+ (string-append
+ "\n"
+ (ly-number->string height)
+ " start-line {
lilypondpaperoutputscale lilypondpaperoutputscale scale
-")
+"))
(define (stem breapth width depth height)
(string-append (numbers->string (list breapth width depth height))
(if use-regex
;; fixed in 1.3.4 for powerpc -- broken on Windows
(regexp-substitute/global #f "\n"
- (ly-gulp-file "lily.ps") 'pre " %\n" 'post)
- (ly-gulp-file "lily.ps"))
+ (ly-gulp-file "music-drawing-routines.ps") 'pre " %\n" 'post)
+ (ly-gulp-file "music-drawing-routines.ps"))
"}"
"\\input lilyponddefs\\newdimen\\outputscale \\outputscale=\\lilypondpaperoutputscale pt\\turnOnPostScript"))
count if this property is set to zero.
")
(translator-property-description 'beamMelismaBusy boolean? "Signal if a beam is set when automaticMelismata is set")
+(translator-property-description 'beatLength moment? "The length of one beat in this time signature.")
(translator-property-description 'breakAlignOrder list? "Defines the order in which
prefatory matter (clefs, key signatures) appears, eg. this puts the
key signatures after the bar lines:
if 1:
def conv (str):
str = re.sub ('\(align', '(axis', str)
- str = re.sub ('\(row', '(columns', str)
+ str = re.sub ('\(rows', '(columns', str)
return str
- conversions.append (((1,3,148), conv, '(align -> (axis, (row -> columns'))
+ conversions.append (((1,3,148), conv, '"(align" -> "(axis", "(rows" -> "(columns"'))
################################