]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge commit '2799dfc'
authorJoe Neeman <joeneeman@gmail.com>
Tue, 28 Aug 2007 22:00:41 +0000 (08:00 +1000)
committerJoe Neeman <joeneeman@gmail.com>
Tue, 28 Aug 2007 22:00:41 +0000 (08:00 +1000)
33 files changed:
Documentation/de/user/introduction.itely
Documentation/de/user/macros.itexi
Documentation/de/user/tutorial.itely
Documentation/de/user/working.itely
Documentation/es/user/lilypond.tely
Documentation/es/user/tutorial.itely
Documentation/index.html.in
Documentation/user/GNUmakefile
Documentation/user/basic-notation.itely
Documentation/user/convert-ly.txt [deleted file]
Documentation/user/converters.itely
Documentation/user/install.itely
Documentation/user/lilypond-book.itely
Documentation/user/lilypond-program.tely
Documentation/user/lilypond.tely
Documentation/user/music-glossary.tely
Documentation/user/running.itely
Documentation/user/setup.itely
Documentation/user/spacing.itely
ROADMAP
buildscripts/mf-to-table.py
input/bach-schenker.ly
input/lsr/scheme/semichoirstaff--choirstaff-with-spanbars-except---type-bars.ly [deleted file]
input/regression/trill-spanner-grace.ly [new file with mode: 0644]
input/regression/trill-spanner.ly
lily/arpeggio.cc
lily/include/arpeggio.hh
lily/line-spanner.cc
ly/init.ly
make/doclang-targets.make
scm/define-grob-properties.scm
scm/define-grobs.scm
scripts/musicxml2ly.py

index be65ef5ffc3b087d7e7f0539400bfd9a327c6d32..5645ab640723d2529e48f10604c3f203d70f0752 100644 (file)
@@ -777,18 +777,18 @@ demonstriert die Erstellung von musikalischen Funktionen.
 
 
 @item
-@emph{@ref{Running LilyPond}}
+@emph{@rprogram{Running LilyPond}}
 zeigt, wie LilyPond und die Hilfsprogramme gestartet werden. Zusätzlich 
 wird hier gezeigt, wie Quelldateien von älteren LilyPond-Versionen 
 aktualisiert werden können.
 
 @item
-@emph{@ref{LilyPond-book}} 
+@emph{@rprogram{LilyPond-book}}
 zeigt die Details der Integration von Noten in Texte wie etwa dieses 
 Handbuch.
 
 @item
-@emph{@ref{Converting from other formats}}
+@emph{@rprogram{Converting from other formats}}
 erklärt die Funktionsweise der Konvertierungsprogramme. Diese Programme 
 sind im LilyPond-Paket enthalten und können ein ganze Anzahl von Formaten 
 in das @code{.ly}-Format umwandeln.
index fb8e8360a3f45435c2cff09ee40ecad199884363..fd08e3afcd0040483ef39ea7ef82a37e2b07032b 100644 (file)
 @ref{\NAME\,,,music-glossary-big-page}
 @end macro
 
+@macro rprogram{NAME}
+@vindex \NAME\
+@ref{\NAME\,,,lilypond-program-big-page}
+@end macro
+
+@macro ruser{NAME}
+@vindex \NAME\
+@ref{\NAME\,,,lilypond-big-page}
+@end macro
+
 @end ifset
 
 
 @ref{\NAME\,,,music-glossary}
 @end macro
 
+@macro rprogram{NAME}
+@vindex \NAME\
+@ref{\NAME\,,,lilypond-program}
+@end macro
+
+@macro ruser{NAME}
+@vindex \NAME\
+@ref{\NAME\,,,lilypond}
+@end macro
+
 @end ifclear
 
 
 @ref{\NAME\,,,music-glossary}
 @end macro
 
+@macro rprogram{NAME}
+@vindex \NAME\
+@ref{\NAME\,,,lilypond-program}
+@end macro
+
+@macro ruser{NAME}
+@vindex \NAME\
+@ref{\NAME\,,,lilypond}
+@end macro
+
 @c to get decent German quotes in `foo'
 @macro q{TEXT}
 @html
 @inforef{\NAME\,,,music-glossary}
 @end macro
 
+@macro rprogram{NAME}
+@vindex \NAME\
+@ref{\NAME\,,,lilypond-program}
+@end macro
+
+@macro ruser{NAME}
+@vindex \NAME\
+@ref{\NAME\,,,lilypond}
+@end macro
+
 @macro usermanref{NAME}
 @inforef{\NAME\}
 @end macro
@@ -256,6 +296,12 @@ internals document, @internalsref{\NAME\}
 user manual, @internalsref{\NAME\}
 @end macro
 
+@macro rprogram{NAME}
+program usage manual, @internalsref{\NAME\}
+@end macro
+
+@alias ruser=usermanref
+
 @c to get decent German quotes in `foo'
 @macro q{TEXT}
 @quotesinglbase{}\TEXT\`
index 46c3828ec57c543ccacdb7f47bcaa5c5c7c5116c..4580edc6987211e755f1d55474f0af3ecb193f4d 100644 (file)
@@ -180,7 +180,7 @@ der Quelldatei gelesen hat. Sollten Fehler auftreten, hilft oft ein Blick in
 diese Datei.
 
 Es gibt einige andere Editoren mit besserer Unterstützung für LilyPond; Einzelheiten 
-dazu können Sie im Kapitel @ref{Editor support} nachlesen.
+dazu können Sie im Kapitel @rprogram{Editor support} nachlesen.
 
 @subsubheading Unix
 
@@ -190,7 +190,7 @@ Beispiel können Sie xterm öffnen und
 und es gibt einen @code{LilyPond-Modus} für Emacs.  Wenn diese noch
 nicht installiert sind, lesen Sie die Datei @file{INSTALL.txt}.}
 Die einfachste Bearbeitunsumgebung ist das  @file{LilyPondTool}.
-Siehe auch @ref{Editor support} für mehr Information. Geben Sie
+Siehe auch @rprogram{Editor support} für mehr Information. Geben Sie
 folgendes in Ihrem Editor ein und speichern Sie die Datei als @file{test.ly}:
 
 @verbatim
@@ -1436,7 +1436,7 @@ am Anfang der Textdatei eingefügt.
 Durch diese Versionsmarkierung werden zukünftige Aktualisierungen
 des LilyPond-Programmes einfacher gemacht. Syntax-Änderungen
 zwischen den Programmversionen werden von einem speziellen
-Programm, @file{convert-ly}, vorgenommen (siehe @ref{Updating
+Programm, @file{convert-ly}, vorgenommen (siehe @rprogram{Updating
 files with convert-ly}). Dieses Programm braucht @code{\version},
  um zu entscheiden, welche Regeln angewandt werden müssen.
 
index 9f09c1d3ac3dff1404d5b1a8003a6cc446006b1b..1a6762843d656ef3c3ab5cfb33219be147bf75b6 100644 (file)
@@ -576,16 +576,15 @@ Eigenschaften des Programmes benutzbar zu machen.
 
 LilyPond stellt ein Programm bereit, das Aktualisierungen 
 vereinfacht: @code{convert-ly}. Einzelheiten zur Programmbenutzung 
-finden sich in @ref{Updating files with convert-ly}.
-
-Leider kann @code{convert-ly} nicht alle Veränderungen der Syntax 
-berücksichtigen. Hier werden einfache @qq{Suchen und 
-Ersetzen}-Veränderungen
-vorgenommen (wie etwa  @code{raggedright} zu becoming @code{ragged-right}),
-aber einige Veränderungen sind zu kompliziert. Die 
-Syntax-Veränderungen, 
-die das Programm nicht berücksichtigt, sind im Kapitel  @ref{Updating 
-files with convert-ly} aufgelistet.
+finden sich in @rprogram{Updating files with convert-ly}.
+
+Leider kann @code{convert-ly} nicht alle Veränderungen der Syntax
+berücksichtigen. Hier werden einfache @qq{Suchen und
+Ersetzen}-Veränderungen vorgenommen (wie etwa @code{raggedright} zu
+becoming @code{ragged-right}), aber einige Veränderungen sind zu
+kompliziert. Die Syntax-Veränderungen, die das Programm nicht
+berücksichtigt, sind im Kapitel @rprogram{Updating files with
+convert-ly} aufgelistet.
 
 Zum Beispiel wurden in LilyPond 2.4 und früheren Versionen 
 Akzente und Umlaute mit LaTeX-Befehlen eingegeben, ein 
index fbdf7589cb4225368522b0b4a683fa72b126701c..e479d4704bf9a8b353dd6ab559abcb29e41ab5e7 100644 (file)
@@ -7,7 +7,7 @@
 @end ignore
 @setfilename lilypond.info
 @settitle Manual del usuario de GNU LilyPond
-@documentencoding utf-8
+@documentencoding UTF-8
 @documentlanguage es
 
 @iftex
index 6c277080c8691fd7637e074b80d8729964ced311..70f0c2280a20e7b0d525a2e2b42300243369231f 100644 (file)
@@ -157,8 +157,9 @@ Al hacer doble click sobre el archivo no sólo se obtiene como resultado un arch
 sino también un archivo @file{.log} que contiene cierta información acerca de lo que
 LilyPond ha hecho con el archivo. Si se produce algún error, examine este archivo de registro.
 
-Tenga en cuenta que hay disponibles varios editores de texto alternativos con un mejor
-apoyo para la realización de documentos de LilyPond, consulte @ref{Editor support} para ver más información.
+Tenga en cuenta que hay disponibles varios editores de texto
+alternativos con un mejor apoyo para la realización de documentos de
+LilyPond, consulte @rprogram{Editor support} para ver más información.
 
 @subsubheading Unix
 
index 43612aaad5f9e1115ed33d9aafce69f636b39124..a123ad027ec55181de3b8164d3820600455c845c 100644 (file)
@@ -80,7 +80,7 @@ in <a class="title" href="user/lilypond-program.pdf">PDF</a>)
 <a class="title" href="user/lilypond/index.html">User manual</a>
 (in <a class="title" href="user/lilypond-big-page.html">one big page</a> ~ 4 Mb,
 in <a class="title" href="user/lilypond.pdf">PDF</a>)
-     <br>(everything about LilyPond)
+     <br>(writing music in LilyPond)
 
        <li>
  <a  class="title" href="user/lilypond-internals/index.html">Program reference</a>
index 278061df3958f124cececaac1dd5893ff64d11c3..5de72002c744677ef9bad2a68a8fcfe80e50b937 100644 (file)
@@ -108,6 +108,7 @@ ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr)
 else
        -$(INSTALL) -d $(DESTDIR)$(package_infodir)
        -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond.info
+       -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-program.info
        install-info --info-dir=$(infodir) $(outdir)/lilypond.info
        @echo
        @echo "***************************************************************"
index c03e8901239ec3f41453b8b32ab533df936e0cd4..b156eca1ca06a04ace4943285072650b06ce6581 100644 (file)
@@ -2082,7 +2082,7 @@ for example, to tie a tremolo to a chord. For example,
 @lilypond[fragment,verbatim,relative=1,ragged-right,quote]
 \set tieWaitForNote = ##t
 \grace { c16[~ e~ g]~ } <c, e g>2
-\repeat "tremolo" 8 { c32~ c'~ } <c c,>1
+\repeat tremolo 8 { c32~ c'~ } <c c,>1
 e8~ c~ a~ f~ <e' c a f>2
 @end lilypond
 
@@ -2562,9 +2562,10 @@ care when you mix staves with grace notes and staves without, for example,
 This can be remedied by inserting grace skips of the corresponding
 durations in the other staves. For the above example
 
-@example
-\new Staff @{ c4 \bar "|:" \grace s16 d4 @}
-@end example
+@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
+<< \new Staff { e4 \bar "|:" \grace c16 d4 }
+   \new Staff { c4 \bar "|:" \grace s16 d4 } >>
+@end lilypond
 
 Grace sections should only be used within sequential music
 expressions.  Nesting or juxtaposing grace sections is not supported,
@@ -3248,7 +3249,7 @@ bracket only lasts one measure, which is a duration of 3/4.
   \time 3/4
   c c c
   \set Staff.voltaSpannerDuration = #(ly:make-moment 3 4)
-  \repeat "volta" 5 { d d d }
+  \repeat volta 5 { d d d }
   \alternative { { e e e f f f }
   { g g g } }
 }
@@ -3392,16 +3393,16 @@ To place tremolo marks between notes, use @code{\repeat} with tremolo
 style
 @lilypond[quote,verbatim,ragged-right]
 \new Voice \relative c' {
-  \repeat "tremolo" 8 { c16 d16 }
-  \repeat "tremolo" 4 { c16 d16 }
-  \repeat "tremolo" 2 { c16 d16 }
+  \repeat tremolo 8 { c16 d16 }
+  \repeat tremolo 4 { c16 d16 }
+  \repeat tremolo 2 { c16 d16 }
 }
 @end lilypond
 
 Tremolo marks can also be put on a single note.  In this case, the
 note should not be surrounded by braces.
 @lilypond[quote,verbatim,ragged-right]
-\repeat "tremolo" 4 c'16
+\repeat tremolo 4 c'16
 @end lilypond
 
 Similar output is obtained using the tremolo subdivision, described in
@@ -3459,8 +3460,8 @@ Percent repeats must be declared within a @code{Voice} context.
 
 @lilypond[quote,verbatim,ragged-right]
 \new Voice \relative c' {
-  \repeat "percent" 4 { c4 }
-  \repeat "percent" 2 { c2 es2 f4 fis4 g4 c4 }
+  \repeat percent 4 { c4 }
+  \repeat percent 2 { c2 es2 f4 fis4 g4 c4 }
 }
 @end lilypond
 
@@ -3470,7 +3471,7 @@ on the @code{countPercentRepeats} property,
 @lilypond[relative=2,fragment,quote,verbatim,ragged-right]
 \new Voice {
 \set countPercentRepeats = ##t
-  \repeat "percent" 4 { c1 }
+  \repeat percent 4 { c1 }
 }
 @end lilypond
 
diff --git a/Documentation/user/convert-ly.txt b/Documentation/user/convert-ly.txt
deleted file mode 100644 (file)
index 3f55cba..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-%future
-%
-
-There are a few things that the convert-ly cannot handle. Here's a list of limitations
-that the community has complained about.
-
-This bug report structure has been chosen because convert-ly has a structure that doesn't
-allow to smoothly implement all needed changes. Thus this is just a wishlist, placed
-here for reference.
-
-1.6->2.0:
- Doesn't always convert figured bass correctly, specifically things like {< >}. Mats' comment on working around this:
-   To be able to run convert-ly
-   on it, I first replaced all occurencies of '{<' to some dummy like '{#'
-   and similarly I replaced '>}' with '&}'. After the conversion, I could
-   then change back from '{ #' to '{ <' and from '& }' to '> }'.
- Doesn't convert all text markup correctly. In the old markup syntax,
- it was possible to group a number of markup commands together within parentheses, e.g.
-   -#'((bold italic) "string")
-   This will incorrectly be converted into
-   -\markup{{\bold italic} "string"}
-   instead of the correct
-   -\markup{\bold \italic "string"}
-2.0->2.2:
- Doesn't handle \partcombine
- Doesn't do \addlyrics => \lyricsto, this breaks some scores with multiple stanzas.
-2.0->2.4:
- \magnify isn't changed to \fontsize.
-    - \magnify #m => \fontsize #f, where f = 6ln(m)/ln(2)
- remove-tag isn't changed.
-    - \applymusic #(remove-tag '. . .) => \keepWithTag #'. . .
- firstpagenumber isn't changed.
-    - firstpagenumber no => printfirstpagenumber = ##f
- Line breaks in header strings aren't converted.
-    - \\\\  as line break in \header strings => \markup \center-align <
-      "First Line" "Second Line" >
- Crescendo and decrescendo terminators aren't converted.
-    - \rced => \!
-    - \rc => \!
-2.2->2.4:
- \turnOff (used in \set Staff.VoltaBracket = \turnOff) is not properly converted.
-2.4.2->2.5.9
- \markup{ \center-align <{ ... }> } should be converted to:
- \markup{ \center-align {\line { ... }} }
- but now, \line is missing.
-2.4->2.6
- Special LaTeX characters such as $~$ in text are not converted to UTF8.
index 2968d7fe007084827d46e439b02a7fc6b6104723..8b394782003af7efc84671e9e10fdf1c2249b8d1 100644 (file)
@@ -17,26 +17,20 @@ sequencers and XML converters.  Refer to the
 @uref{http://@/lilypond@/.org,website} for more details.
 
 These are separate programs from lilypond itself, and are run
-on the command-line.  By @q{command-line}, we mean the command
-line in the operating system.  Windows users
-might be more familiar with the terms @q{DOS shell} or
-@q{command shell}; OSX users might be more familiar with the
-terms @q{terminal} or @q{console}.  OSX users should also
-consult @ref{Notes for the MacOS X app}.
-
-Describing how to use
-this part of an operating system is outside the scope of this
-manual; please consult other documentation on this topic if
-you are unfamiliar with the command-line.
+on the command-line; see @ref{Command-line usage} for more information.
 
 
+@refbugs
+We unfortunately do not have the resources to maintain these
+programs; please consider them @qq{as-is}.  Patches are appreciated, but
+bug reports will almost certainly not be resolved.
 
 @menu
 * Invoking midi2ly::            Importing MIDI.
-* Invoking etf2ly::             Importing Finale.
-* Invoking musicxml2ly::        
+* Invoking musicxml2ly::        Importing MusicXML.
 * Invoking abc2ly::             Importing ABC.      
-* Generating LilyPond files::   
+* Invoking etf2ly::             Importing Finale.
+* Generating LilyPond files::   GUIs, transcribers, and algorithmic composition programs.
 @end menu
 
 
@@ -128,45 +122,6 @@ first note will be read and the others will be ignored.  Set them all
 to a single duration and add phrase markings or pedal indicators.
 
 
-@node Invoking etf2ly
-@section Invoking @command{etf2ly}
-
-@cindex ETF
-@cindex enigma
-@cindex Finale
-@cindex Coda Technology
-
-ETF (Enigma Transport Format) is a format used by Coda Music
-Technology's Finale product.  @command{etf2ly} will convert part of an ETF
-file to a ready-to-use LilyPond file.
-
-It is invoked from the command-line as follows.
-
-@example
-etf2ly [@var{option}]@dots{} @var{etf-file}
-@end example
-
-Note that by @q{command-line}, we mean the command line of the
-operating system.  See @ref{Converting from other formats}, for
-more information about this.
-
-The following options are supported by @command{etf2ly}:
-
-@table @code
-@item -h,--help
-this help
-@item -o,--output=FILE
-set output filename to FILE
-@item -v,--version
-version information
-@end table
-
-
-@refbugs
-
-The list of articulation scripts is incomplete.  Empty measures
-confuse @command{etf2ly}.  Sequences of grace notes are ended improperly.
-
 @node Invoking musicxml2ly
 @section Invoking @code{musicxml2ly}
 
@@ -191,6 +146,7 @@ set output filename to @var{file}. (default: print to stdout)
 print version information.
 @end table
 
+
 @node Invoking abc2ly
 @section Invoking @code{abc2ly}
 
@@ -252,6 +208,45 @@ ABC synchronizes words and notes at the beginning of a line;
 @command{abc2ly} ignores the ABC beaming.
 
 
+@node Invoking etf2ly
+@section Invoking @command{etf2ly}
+
+@cindex ETF
+@cindex enigma
+@cindex Finale
+@cindex Coda Technology
+
+ETF (Enigma Transport Format) is a format used by Coda Music
+Technology's Finale product.  @command{etf2ly} will convert part of an ETF
+file to a ready-to-use LilyPond file.
+
+It is invoked from the command-line as follows.
+
+@example
+etf2ly [@var{option}]@dots{} @var{etf-file}
+@end example
+
+Note that by @q{command-line}, we mean the command line of the
+operating system.  See @ref{Converting from other formats}, for
+more information about this.
+
+The following options are supported by @command{etf2ly}:
+
+@table @code
+@item -h,--help
+this help
+@item -o,--output=FILE
+set output filename to FILE
+@item -v,--version
+version information
+@end table
+
+
+@refbugs
+
+The list of articulation scripts is incomplete.  Empty measures
+confuse @command{etf2ly}.  Sequences of grace notes are ended improperly.
+
 
 @node Generating LilyPond files
 @section Generating LilyPond files
index 66c0281ef38ea34d9e7b22a3d7be864e33ade8f0..ba38c6a6a544b2337d562d3838afe48266c54d99 100644 (file)
@@ -60,6 +60,12 @@ mingw
 @end example
 
 
+@c TRANSLATORS:
+@c   Please **do not** translate anything below this line.  Users
+@c   should not be compiling LilyPond themselves; if they really 
+@c   want to do so, they should be able to read the English docs,
+@c   because they'll probably need to ask questions in English
+@c   on the -devel list.   -gp
 
 @node Compiling from source
 @section Compiling from source
@@ -207,7 +213,7 @@ make out=www web-install
 @node Building LilyPond
 @subsection Building LilyPond
 
-@subsubsection Compiling
+@unnumberedsubsubsec Compiling
 
 To install GNU LilyPond, type
 
@@ -227,7 +233,7 @@ points into your home directory, e.g.
 @end example
 
 
-@subsubsection Compiling for multiple platforms
+@unnumberedsubsubsec Compiling for multiple platforms
 
 If you want to build multiple versions of LilyPond with different
 configuration settings, you can use the @code{--enable-config=CONF}
@@ -263,7 +269,7 @@ From a fresh git checkout, do
 ./autogen.sh   % ignore any warning messages
 cp GNUmakefile.in GNUmakefile
 make -C python
-nice make LILYPOND_EXTERNAL_BINARY=~/Apps/LilyPond.app/Contents/Resources/bin/lilypond web
+nice make LILYPOND_EXTERNAL_BINARY=/path/to/bin/lilypond web
 % change the lilypond directory as appropriate
 @end example
 
@@ -344,17 +350,6 @@ $ make
 @end example
 
 
-@unnumberedsubsubsec MacOS X
-
-For Fink, use the following command to compile.
-
-@verbatim
-export GUILE=guile-1.6
-export GUILE_CONFIG=guile-1.6-config
-export PKG_CONFIG_PATH=/sw/lib/freetype219/lib/pkgconfig/:/sw/lib/fontconfig2/lib/pkgconfig/
-./configure
-@end verbatim
-
 @unnumberedsubsubsec Solaris
 
 Solaris7, ./configure
index 2cd9d52604fece29af701710b9cd6b55aee7019e..9234ab531d4c7a4254eab8d64c0d6b0502ddb9c0 100644 (file)
@@ -8,18 +8,6 @@
 @end ignore
 
 
-@ignore
-
-TODO: cleanup
-
-** AARGH.  We also have tutorial.itely: Integrating text and music.
-
-   Could also do with a cleanup.  Lost inspiration to fix this manual
-   where to describe what?
-
-@end ignore
-
-
 @c Note: keep this node named so that `info lilypond-book' brings you here.
 @node LilyPond-book
 @chapter @command{lilypond-book}: Integrating text and music
@@ -35,20 +23,30 @@ program extracts snippets of music from your document, runs
 substituted for the music.  The line width and font size definitions for
 the music are adjusted to match the layout of your document.
 
+This is a separate programs from lilypond itself, and is run
+on the command-line; see @ref{Command-line usage} for more information.
+
 This procedure may be applied to @LaTeX{}, HTML, Texinfo or DocBook documents.
 
+@cindex texinfo
+@cindex latex
+@cindex texinfo
+@cindex texi
+@cindex html
+@cindex docbook
+@cindex documents, adding music to
+@cindex HTML, music in
+@cindex Texinfo, music in
+@cindex DocBook, music in
+@cindex @LaTeX{}, music in
+
 @menu
 * An example of a musicological document::  
-* Integrating LaTeX and music::  
-* Integrating Texinfo and music::  
-* Integrating HTML and music::  
-* Integrating DocBook and music::  
+* Integrating music and text::  
 * Music fragment options::      
 * Invoking lilypond-book::      
 * Filename extensions::         
-* Many quotes of a large score::  
-* Inserting LilyPond output into OpenOffice.org::  
-* Inserting LilyPond output into other programs::  
+* Alternate methods of mixing text and music::  
 @end menu
 
 
@@ -56,10 +54,6 @@ This procedure may be applied to @LaTeX{}, HTML, Texinfo or DocBook documents.
 @section An example of a musicological document
 
 @cindex musicology
-@cindex @LaTeX{}, music in
-@cindex HTML, music in
-@cindex Texinfo, music in
-@cindex DocBook, music in
 Some texts contain music examples.  These texts are musicological
 treatises, songbooks, or manuals like this.  Such texts can be made by
 hand, simply by importing a PostScript figure into the word processor.
@@ -71,6 +65,8 @@ format them, and put back the resulting notation.  Here we show a small
 example for use with @LaTeX{}.  The example also contains explanatory
 text, so we will not comment on it further.
 
+@subheading Input
+
 @quotation
 @verbatim
 \documentclass[a4paper]{article}
@@ -101,6 +97,8 @@ Larger examples can be put into a separate file, and introduced with
 @end verbatim
 @end quotation
 
+@subheading Processing
+
 Under Unix, you can view the results as follows
 
 @example
@@ -141,6 +139,8 @@ different results in layout.}  This finishes the tutorial section.
 
 @page
 
+@subheading Output
+
 Documents for @command{lilypond-book} may freely mix music and text.
 For example,
 
@@ -161,19 +161,23 @@ Larger examples can be put into a separate file, and introduced with
 
 @lilypondfile[quote,noindent]{screech-boink.ly}
 
+
 @page
 
-@cindex texinfo
-@cindex latex
-@cindex texinfo
-@cindex texi
-@cindex html
-@cindex docbook
-@cindex documents, adding music to
+@node Integrating music and text
+@section Integrating music and text
+
+Here we explain how to integrate LilyPond with various output formats.
 
+@menu
+* LaTeX::                       
+* Texinfo::                     
+* HTML::                        
+* DocBook::                     
+@end menu
 
-@node Integrating LaTeX and music
-@section Integrating @LaTeX{} and music
+@node LaTeX
+@subsection @LaTeX{}
 
 @LaTeX{} is the de-facto standard for publishing layouts in the exact
 sciences.  It is built on top of the @TeX{} typesetting engine,
@@ -383,8 +387,8 @@ and then saying only how many systems you want before each fragment,
 @end example
 
 
-@node Integrating Texinfo and music
-@section Integrating Texinfo and music
+@node Texinfo
+@subsection Texinfo
 
 Texinfo is the standard format for documentation of the GNU project.  An
 example of a Texinfo document is this manual.  The HTML, PDF, and Info
@@ -451,8 +455,8 @@ generates bitmaps of the music (in PNG format), so you can make an HTML
 document with embedded music.
 
 
-@node Integrating HTML and music
-@section Integrating HTML and music
+@node HTML
+@subsection HTML
 
 Music is entered using
 
@@ -487,15 +491,15 @@ To include separate files, say
 @cindex preview image
 @cindex thumbnail
 
-@node Integrating DocBook and music
-@section Integrating DocBook and music
+@node DocBook
+@subsection DocBook
 
 For inserting LilyPond snippets it is good to keep the conformity of
 our DocBook document, thus allowing us to use DocBook editors,
 validation etc. So we don't use custom tags, only specify a convention
 based on the standard DocBook elements.
 
-@unnumberedsubsec Common conventions
+@subheading Common conventions
 
 For inserting all type of snippets we use the @code{mediaobject} and @code{inlinemediaobject} element, so our snippets can be
 formatted inline or not inline.
@@ -503,7 +507,7 @@ The snippet formatting options are always provided in the @code{role} property o
 chosen to allow DocBook editors format the content gracefully.
 The DocBook files to be processed with @command{lilypond-book} should have the extension @file{.lyxml}.
 
-@unnumberedsubsec Including a LilyPond file
+@subheading Including a LilyPond file
 
 This is the most simple case. We must use the @file{.ly} extension for the included file, and insert it as a standard @code{imageobject},
 with the following structure:
@@ -518,7 +522,7 @@ with the following structure:
 
 Note that you can use mediaobject or inlinemediaobject as the outermost element as you wish.
 
-@unnumberedsubsec Including LilyPond code
+@subheading Including LilyPond code
 
 Including LilyPond code is possible by using a @code{programlisting}, where the language is set to @code{lilypond} with the following structure:
 
@@ -537,11 +541,17 @@ Including LilyPond code is possible by using a @code{programlisting}, where the
 
 As you can see, the outermost element is a @code{mediaobject} or @code{inlinemediaobject}, and there is a @code{textobject} containing the @code{programlisting} inside.
 
-@unnumberedsubsec Processing the DocBook document
+@subheading Processing the DocBook document
+
+Running @command{lilypond-book} on our @file{.lyxml} file will create a
+valid DocBook document to be further processed with @file{.xml}
+extension.  If you use
+@uref{http://@/dblatex@/.sourceforge@/.net@/,dblatex}, it will create a
+PDF file from this document automatically.  For HTML (HTML Help,
+JavaHelp etc.) generation you can use the official DocBook XSL
+stylesheets, however, it is possible that you have to make some
+customization for it.
 
-Running @command{lilypond-book} on our @file{.lyxml} file will create a valid DocBook document to be further processed with @file{.xml} extension.
-If you use @uref{http://@/dblatex@/.sourceforge@/.net@/,dblatex}, it will create a PDF file from this document automatically. 
-For HTML (HTML Help, JavaHelp etc.) generation you can use the official DocBook XSL stylesheets, however, it is possible that you have to make some customization for it.
 
 @node Music fragment options
 @section Music fragment options
@@ -783,7 +793,7 @@ cd out
 ...
 @end example
 
-@itemx --padding=@var{amount}
+@itemx --left-padding=@var{amount}
 Pad EPS boxes by this much. @var{amount} is measured in milimeters,
 and is 3.0 by default.  This option should be used if the lines of
 music stick out of the right margin.
@@ -849,15 +859,24 @@ output format based on the input filename's extension.
 @end quotation
 
 
-@node Many quotes of a large score
-@section Many quotes of a large score
+@node Alternate methods of mixing text and music
+@section Alternative methods of mixing text and music
+
+@menu
+* Many quotes from a large score::  
+* Inserting LilyPond output into OpenOffice.org::  
+* Inserting LilyPond output into other programs::  
+@end menu
+
+@node Many quotes from a large score
+@subsection Many quotes from a large score
 
-If you need to quote many fragments of a large score, you can also use
+If you need to quote many fragments from a large score, you can also use
 the clip systems feature, see @ruser{Extracting fragments of notation}.
 
 
 @node Inserting LilyPond output into OpenOffice.org
-@section Inserting LilyPond output into OpenOffice.org
+@subsection Inserting LilyPond output into OpenOffice.org
 
 @cindex OpenOffice.org
 
@@ -866,7 +885,7 @@ LilyPond notation can be added to OpenOffice.org with
 
 
 @node Inserting LilyPond output into other programs
-@section Inserting LilyPond output into other programs
+@subsection Inserting LilyPond output into other programs
 
 To insert LilyPond output in other programs, use @code{lilypond}
 instead of @code{lilypond-book}.  Each example must be created
index 88359fefd43e4ad67f33d8399c297f158a72ff10..6fa9f3900be20626275a638c169fc08baee68217 100644 (file)
@@ -7,7 +7,7 @@
 @end ignore
 @setfilename lilypond-program.info
 @settitle GNU LilyPond program usage
-@documentencoding utf-8
+@documentencoding UTF-8
 @documentlanguage en
 
 @iftex
index ae4c536387055ac5ed36cbbec19138542f27302f..c5a85cdcfc8e79916e963655bf07d19e3d1dcd54 100644 (file)
@@ -7,7 +7,7 @@
 @end ignore
 @setfilename lilypond.info
 @settitle GNU LilyPond user manual
-@documentencoding utf-8
+@documentencoding UTF-8
 @documentlanguage en
 
 @iftex
@@ -46,7 +46,7 @@ Distributions will want to install lilypond.info in postinstall, doing:
 * abc2ly: (lilypond/lilypond-program)Invoking abc2ly.          Importing ABC.      
 * convert-ly: (lilypond/lilypond-program)Invoking convert-ly.  Older LilyPond versions.
 * etf2ly: (lilypond/lilypond-program)Invoking etf2ly.          Importing Finale.
-* lilypond-book: (lilypond/lilypond-program)LilyPond-book.     Itegrating text and music.
+* lilypond-book: (lilypond/lilypond-program)LilyPond-book.     Integrating text and music.
 * midi2ly: (lilypond/lilypond-program)Invoking midi2ly.        Importing MIDI.
 @end direntry
 
index 6ab71d3727b8658347a7288a5cb3752ed23c4342..46e4a6b72af7aeae84c6b03b16e9493d6be60a89 100644 (file)
@@ -4845,7 +4845,7 @@ a @aref{chord}, usually in the distance of a third
 \relative c' {
   e2:32_"a"
   f:32 [ e8:16 f:16 g:16 a:16 ] s4
-  \repeat "tremolo" 8 { e32_"b" g }
+  \repeat tremolo 8 { e32_"b" g }
 }
 @end lilypond
 
index 34eca21c202eb9af69c60b9a7938fe159cbb9f80..0b992069c119cda3091e249d79fd87630f9c39d5 100644 (file)
 
 This chapter details the technicalities of running LilyPond.
 
-Some of these commands are run from the command-line.  By
-@q{command-line}, we mean the command
-line in the operating system.  Windows users
-might be more familiar with the terms @q{DOS shell} or
-@q{command shell}; OSX users might be more familiar with the
-terms @q{terminal} or @q{console}.  OSX users should also
-consult @ref{Notes for the MacOS X app}.
-
-Describing how to use
-this part of an operating system is outside the scope of this
-manual; please consult other documentation on this topic if
-you are unfamiliar with the command-line.
-
 @menu
-* Invoking lilypond::           
+* Normal usage::                
+* Command-line usage::          
+* Error messages::              
 * Updating files with convert-ly::  
 * Reporting bugs::              
-* Error messages::              
 @end menu
 
-@node Invoking lilypond
-@section Invoking lilypond
+
+@node Normal usage
+@section Normal usage
+
+Most users run LilyPond through a GUI; see @ruser{First steps} if
+you have not read this already.
+
+
+@node Command-line usage
+@section Command-line usage
+
+This section contains extra information about using LilyPond on the
+command-line.  This may be desirable to pass extra options to the
+program.  In addition, there are certain extra @q{helper} programs (such
+as @code{midi2ly}) which are only available on the command-line.
+
+By @q{command-line}, we mean the command line in the operating system.
+Windows users might be more familiar with the terms @q{DOS shell} or
+@q{command shell}; OSX users might be more familiar with the terms
+@q{terminal} or @q{console}.  OSX users should also consult @ref{MacOS X
+on the command-line}.
+
+Describing how to use this part of an operating system is outside the
+scope of this manual; please consult other documentation on this topic
+if you are unfamiliar with the command-line.
+
+
+@subsection Invoking lilypond
+
 @cindex Invoking LilyPond
 @cindex command line options
 @cindex options, command line
@@ -375,6 +390,80 @@ uses more CPU time. The default value is @code{70}.
 @end table
 
 
+@node Error messages
+@section Error messages
+
+@cindex error messages
+Different error messages can appear while compiling a file:
+
+@table @emph
+
+@item Warning
+@cindex warning
+Something looks suspect.  If you are requesting something out of the
+ordinary then you will understand the message, and can ignore it.
+However, warnings usually indicate that something is wrong with the
+input file.
+
+@item Error
+Something is definitely wrong.  The current processing step (parsing,
+interpreting, or formatting) will be finished, but the next step will
+be skipped.
+
+@item Fatal error
+@cindex error
+@cindex fatal error
+Something is definitely wrong, and LilyPond cannot continue.  This
+happens rarely.  The most usual cause is misinstalled fonts.
+
+@item Scheme error
+@cindex trace, Scheme
+@cindex call trace
+@cindex Scheme error
+Errors that occur while executing Scheme code are caught by the Scheme
+interpreter.  If running with the verbose option (@code{-V} or
+@code{--verbose}) then a call trace of the offending
+function call is printed.
+
+@item Programming error
+@cindex Programming error
+There was some internal inconsistency.  These error messages are
+intended to help the programmers and debuggers.  Usually, they can be
+ignored.  Sometimes, they come in such big quantities that they obscure
+other output.
+
+@item Aborted (core dumped)
+This signals a serious programming error that caused the program to
+crash.  Such errors are considered critical.  If you stumble on one,
+send a bug-report.
+@end table
+
+@cindex errors, message format
+If warnings and errors can
+be linked to some part of the input file, then error messages have the
+following form
+
+@example
+@var{filename}:@var{lineno}:@var{columnno}: @var{message}
+@var{offending input line}
+@end example
+
+A line-break is inserted in the offending line to indicate the column
+where the error was found.  For example,
+
+@example
+test.ly:2:19: error: not a duration: 5:
+  @{ c'4 e'5
+             g' @}
+@end example
+
+These locations are LilyPond's best guess about where the warning or
+error occurred, but (by their very nature) warnings and errors occur
+when something unexpected happens.  If you can't see an error in the
+indicated line of your input file, try checking one or two lines
+above the indicated position.
+
+
 @node Updating files with convert-ly
 @section Updating with @command{convert-ly}
 
@@ -389,16 +478,21 @@ syntax changes between LilyPond versions.
 
 It uses @code{\version} statements in the input files to detect the
 old version number.  In most cases, to upgrade your input file it is
-sufficient to run@footnote{MacOS X users may execute this command
-under the menu entry @samp{Compile > Update syntax}.}
+sufficient to run
 
 @example
 convert-ly -e myfile.ly
 @end example
 
+@noindent
+MacOS X users may execute this command under the menu entry
+@samp{Compile > Update syntax}.
+
 If there are no changes to myfile.ly and file called myfile.ly.NEW
 is created, then myfile.ly is already updated.
 
+@subsection Command line options
+
 @command{convert-ly} always converts up to the last syntax change handled by
 it.  This means that the @code{\version} number left in the file is
 usually lower than the version of @command{convert-ly} itself.
@@ -456,39 +550,26 @@ Print usage help.
 @end table
 
 
-@refbugs
+@menu
+* Problems with convert-ly::    
+@end menu
+
+
+@node Problems with convert-ly
+@subsection Problems with @code{convert-ly}
 
 Not all language changes are handled.  Only one output option can be
 specified.  Automatically updating scheme and lilypond scheme
 interfaces is quite unlikely; be prepared to tweak scheme code
 manually.
 
-
-@c  We might want to make this a completely new section, along with more
-@c  info about how to upgrade old input files.  -gp
-
-@ignore
-Copy and paste from CVS, last updated
-Aug 18, 2005
-
-http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lily-bugs/bugs/
-convert-ly.txt?rev=HEAD&content-type=text/plain
-
-NEW: not exactly copied; this list has been modified.  Since we're
-changing the bug system, it doesn't make sense to copy from
-the bug CVS any more.  I'll figure out something else.  -gp
-@end ignore
 @verbatim
+There are a few things that the convert-ly cannot handle. Here's a list
+of limitations that the community has complained about.
 
-There are a few things that the convert-ly cannot handle. Here's a list of
-limitations
-that the community has complained about.
-
-This bug report structure has been chosen because convert-ly has a structure
-that doesn't
-allow to smoothly implement all needed changes. Thus this is just a wishlist,
-placed
-here for reference.
+This bug report structure has been chosen because convert-ly has a
+structure that doesn't allow to smoothly implement all needed changes.
+Thus this is just a wishlist, placed here for reference.
 
 1.6->2.0:
  Doesn't always convert figured bass correctly, specifically things like {<
@@ -557,80 +638,4 @@ Please construct submit @ruser{Minimal examples}, of bug reports.  We do not
 have the resources to investigate reports which are not as small as possible.
 
 
-@node Error messages
-@section Error messages
-
-@cindex error messages
-Different error messages can appear while compiling a file:
-
-@table @emph
-@cindex warning
-
-@item Warning
-Something looks suspect.  If you are requesting something out of the
-ordinary then you will understand the message, and can ignore it.
-However, warnings usually indicate that something is wrong with the
-input file.
-
-@item Error
-Something is definitely wrong.  The current processing step (parsing,
-interpreting, or formatting) will be finished, but the next step will
-be skipped.
-
-@cindex error
-@cindex fatal error
-@item Fatal error
-Something is definitely wrong, and LilyPond cannot continue.  This
-happens rarely.  The most usual cause is misinstalled fonts.
-
-@cindex trace, Scheme
-@cindex call trace
-@cindex Scheme error
-@item Scheme error
-Errors that occur while executing Scheme code are caught by the Scheme
-interpreter.  If running with the verbose option (@code{-V} or
-@code{--verbose}) then a call trace of the offending
-function call is printed.
-
-@cindex Programming error
-@item Programming error
-There was some internal inconsistency.  These error messages are
-intended to help the programmers and debuggers.  Usually, they can be
-ignored.  Sometimes, they come in such big quantities that they obscure
-other output.  In this case, file a bug-report.
-
-@item Aborted (core dumped)
-This signals a serious programming error that caused the program to
-crash.  Such errors are considered critical.  If you stumble on one,
-send a bug-report.
-
-
-@end table
-
-@cindex errors, message format
-If warnings and errors can
-be linked to some part of the input file, then error messages have the
-following form
-
-@example
-@var{filename}:@var{lineno}:@var{columnno}: @var{message}
-@var{offending input line}
-@end example
-
-A line-break is inserted in the offending line to indicate the column
-where the error was found.  For example,
-
-@example
-test.ly:2:19: error: not a duration: 5:
-  @{ c'4 e'5
-             g' @}
-@end example
-
-These locations are LilyPond's best guess about where the warning or
-error occurred, but (by their very nature) warnings and errors occur
-when something unexpected happens.  If you can't see an error in the
-indicated line of your input file, try checking one or two lines
-above the indicated position.
-
-
 
index 6d7bca23aa8daca06d49b295aab7614df235efc2..38d8f93b2b887eeed000c9d4dc31b3411d2e9570 100644 (file)
 @node Setup
 @chapter Setup
 
-This chapter discusses how to set up LilyPond to integrate with various
-programs.
+This chapter discusses various post-install configuration options for
+LilyPond and various other programs.  This chapter may be safely treated
+as a reference: only read a section if it applies to you.
 
 @menu
-* Notes for the MacOS X app::   
+* Setup for specific Operating Systems::  
 * Text editor support::         
 * Point and click::             
 @end menu
 
 
-@node Notes for the MacOS X app
-@section Notes for the MacOS X app
+@node Setup for specific Operating Systems
+@section Setup for specific Operating Systems
+
+This section explains how to perform additional setup for specific
+operating systems.
+
+@menu
+* MacOS X on the command-line::  
+@end menu
+
+
+@node MacOS X on the command-line
+@subsection MacOS X on the command-line
 
 The scripts (such as lilypond-book, convert-ly, abc2ly, and even
-lilypond itself) are also
-included inside MacOS X .app. They can be run from the command line by
-invoking them directly, e.g.
+lilypond itself) are included inside MacOS X .app. They can be run from
+the command line by invoking them directly, e.g.
 
 @example
 @var{path/to}/LilyPond.app/Contents/Resources/bin/lilypond
index d5aaca3ec4a397b4929d1f243c823ae7e1ed4b94..f7382e571ab8fa95df9db1558384c009636f0e69 100644 (file)
@@ -639,6 +639,10 @@ with the music.
 }
 @end lilypond
 
+Similarly, line breaks are normally forbidden when beams cross bar
+lines.  This behavior can be changed by setting 
+@code{\override Beam #'breakable = ##t}.
+
 
 @node Page breaking
 @subsection Page breaking
diff --git a/ROADMAP b/ROADMAP
index c88665095e29f5fe09b7aa254991011f9cbec598..0450cbd9f11e5b439fd5ab822354e8b1f91232f1 100644 (file)
--- a/ROADMAP
+++ b/ROADMAP
@@ -27,10 +27,12 @@ source files.
    flower/             A simple c++ library
        include/
    input/              Music input examples
-       lsr/             Snippets from the LilyPond Snippet Repository
+       lsr/         Snippets from the LilyPond Snippet Repository
+                    (auto-generated, do not modify!)
+       manual/      Examples from the manual
        mutopia/                Real music, more at www.mutopiaproject.org
+       new/         Snippets which are too new for LSR
        regression/     Testing of features, one test per file
-       test/           Tips and tricks
        tutorial/       Examples from the tutorial 
    lily/               C++ sources for LilyPond (lilypond-bin)
      include/
index 0cdcbf9d613dbff3fea7cc995ef6187f857392be..f6629328ce3c6ff712cb0b267b2ecdb401d79ae8 100644 (file)
@@ -108,7 +108,7 @@ def parse_logfile (fn):
 
 
 
-def write_character_lisp_table (file, global_info, charmetrics):
+def character_lisp_table (global_info, charmetrics):
 
     def conv_char_metric (charmetric):
         f = 1.0
@@ -129,11 +129,14 @@ def write_character_lisp_table (file, global_info, charmetrics):
 
         return s
 
+    s = ''
     for c in charmetrics:
-        file.write (conv_char_metric (c))
+        s += conv_char_metric (c)
 
+    return s
 
-def write_global_lisp_table (file, global_info):
+
+def global_lisp_table (global_info):
     str = ''
 
     keys = ['staffsize', 'stafflinethickness', 'staff_space',
@@ -145,29 +148,31 @@ def write_global_lisp_table (file, global_info):
         if global_info.has_key (k):
             str = str + "(%s . %s)\n" % (k,global_info[k])
 
-    file.write (str)
+    return str
 
     
-def write_ps_encoding (name, file, global_info, charmetrics):
+def ps_encoding (name, global_info, charmetrics):
     encs = ['.notdef'] * 256
     for m in charmetrics:
         encs[m['code']] = m['name']
 
-    file.write ('/%s [\n' % name)
-    for m in range (0, 256):
-        file.write ('  /%s %% %d\n' % (encs[m], m))
-    file.write ('] def\n')
 
+    s =  ('/%s [\n' % name)
+    for m in range (0, 256):
+        s += ('  /%s %% %d\n' % (encs[m], m))
+    s +=  ('] def\n')
+    return s
 
-def write_deps (file, deps, targets):
+def get_deps (deps, targets):
+    s = ''
     for t in targets:
         t = re.sub ( '^\\./', '', t)
-        file.write ('%s '% t)
-    file.write (": ")
+        s += ('%s '% t)
+    s += (": ")
     for d in deps:
-        file.write ('%s ' % d)
-    file.write ('\n')
-
+        s += ('%s ' % d)
+    s += ('\n')
+    return s
 
 def help ():
     sys.stdout.write(r"""Usage: mf-to-table [OPTIONS] LOGFILEs
@@ -233,11 +238,11 @@ for filenm in files:
     elif re.search ('feta-alphabet', filenm):
         enc_name = 'FetaAlphabetEncoding';
 
-    write_ps_encoding (enc_name, open (enc_nm, 'w'), g, m)
-    write_character_lisp_table (open (char_lisp_nm, 'w'), g, m)  
-    write_global_lisp_table (open (global_lisp_nm, 'w'), g)  
+    open (enc_nm, 'w').write (ps_encoding (enc_name, g, m))
+    open (char_lisp_nm, 'w').write (character_lisp_table (g, m))
+    open (global_lisp_nm, 'w').write (global_lisp_table (g))
     if depfile_nm:
-        write_deps (open (depfile_nm, 'wb'), deps,
-              [base + '.log', base + '.dvi', base + '.pfa',
-               depfile_nm,
-               base + '.pfb'])
+        open (depfile_nm, 'wb').write (get_deps (deps,
+                                                 [base + '.log', base + '.dvi', base + '.pfa',
+                                                  depfile_nm,
+                                                  base + '.pfb']))
index 1b731e7715c7b1796cd9aa1125349b51a3b8518d..ef282fb67efe3244293ace4a25376d7721492d29 100644 (file)
@@ -1,27 +1,26 @@
 % -*-coding: utf-8 -*-
 
 \header{
-
- composer ="J.S. Bach"
- title = "Wenn wir in hoechsten Noten sein"
- subtitle = "Analysis from Gene Biringer's Schenker Text, Ex. 5-27"
-%% "BWV641"
- enteredby = "Kris Shaffer"
+  composer = "J.S. Bach"
+  title = "Wenn wir in höchsten Nöten sein"
+  subtitle = "Analysis from Gene Biringer's Schenker Text, Ex. 5-27"
+% "BWV641"
+  enteredby = "Kris Shaffer"
 }
 
+%%
 %% See http://www.shaffermusic.com/doc/schenker/index.html for more information
-%% 
+%%
 
 
-\version "2.10.0"
+\version "2.11.30"
 
 staffPiano = \new PianoStaff {
   \set Score.timing = ##f
   \set PianoStaff.followVoice = ##t
 
   <<
-    \new Staff {  % Right hand 
+    \new Staff = "RH" {  % Right hand
       \clef treble
       \key g \major
       \relative c'' {
@@ -29,46 +28,42 @@ staffPiano = \new PianoStaff {
        #'merge-differently-headed = ##t
        <<
          {
-           \override Beam  #'positions = #'(8 . 8)
+           \override Beam #'positions = #'(8 . 8)
            \override NoteHead #'transparent = ##t
+           \override NoteHead #'duration-log = #1
            s1 b8[^\markup {
              \override #'(baseline-skip . 0.5)
              \column { \small {^ 3} }
            }
-                 s4. s1 a8^\markup {
-                   \override #'(baseline-skip . 0.5)
-                   \column { \small {^ 2} }
-                 } s4. s2 g8]^\markup {
-                   \override #'(baseline-skip . 0.5)
-                   \column {
-                     \small {^ 1}
-                   }
-                 }
+           s4. s1 a8^\markup {
+             \override #'(baseline-skip . 0.5)
+             \column { \small {^ 2} }
+           }
+           s4. s2 g8]^\markup {
+             \override #'(baseline-skip . 0.5)
+             \column { \small {^ 1} }
+           }
            s4.
            \revert Beam #'positions
            \revert NoteHead #'transparent
-         } 
+           \revert NoteHead #'duration-log
+         }
          \\
          {
            \override Stem #'transparent = ##t
-           \slurDown
-           \override Staff.Slur #'height-limit = #6
-           \slurDashed
-           s1 
+           s1
+           \once \override Slur #'height-limit = #6
            \once \override Slur #'extra-offset = #'(1.25 . 0)
-           b2( s2
-           \revert Staff.Slur #'height-limit
-           \override NoteHead #'transparent = ##t
-           b4) s 
-           \revert NoteHead #'transparent
-           \override Staff.Slur #'height-limit = #3.25
-           \once \override Slur #'extra-offset = #'(.75 . 0)
            \slurDashed
-           a2( s4
-           \override NoteHead #'transparent = ##t
-           a) 
-           \revert NoteHead #'transparent
-           g2 
+           b2_( s2
+           \once \override NoteHead #'transparent = ##t
+           b4) s
+           \once \override Slur #'height-limit = #3.25
+           \once \override Slur #'extra-offset = #'(.75 . 0)
+           a2_( s4
+           \once \override NoteHead #'transparent = ##t
+           a)
+           g2
            \revert Stem #'transparent
          }
          \\
@@ -76,17 +71,34 @@ staffPiano = \new PianoStaff {
          #'merge-differently-headed = ##t
          {
            \override Beam #'positions = #'(4 . -3.25)
-           \stemUp 
-           g8[ s s4 s2 
-               \stemDown 
-               \override NoteHead #'transparent = ##t
-               b8] s8
-           \revert NoteHead #'transparent
-           \override Beam #'positions = #'(3 . -2.75)
+           \stemUp
+           g8[ s s4 s2
+             \stemDown
+             \once \override NoteHead #'transparent = ##t
+             b8] s8
+           \override Beam #'positions = #'(3 . -2.25)
            \stemUp
            a8[ s s4
-               \stemDown
-               c8] s s2 s s
+             \stemDown
+             c8] s s2 s s
+         }
+         \\
+         {
+           \override Stem #'transparent = ##t
+           \override Stem #'length = #0
+           g4_\( fis^(_\markup { \tiny N } g)\)
+           a^(^\markup { \tiny P } b2)
+           b4^(^\markup { \tiny P }
+           \stemUp
+           \revert Stem #'transparent
+           \override Stem #'length = #10
+           c8)^( s
+           \override Stem #'length = #14
+           b4) s s
+           \override Stem #'length = #0
+           \override Stem #'transparent = ##t
+           \once \override Slur #'extra-offset = #'(0 . 0.35)
+           c4^\( b_(_\markup { \tiny P } a)\) s2
            \revert Stem #'length
          }
          \\
@@ -94,197 +106,152 @@ staffPiano = \new PianoStaff {
            \override Stem #'transparent = ##t
            \override NoteHead #'transparent = ##t
            \override Stem #'length = #0
-           \phrasingSlurDown
-           \slurUp            
-           g4\( 
-             \revert NoteHead #'transparent
-             \once \override TextScript #'padding = #1.5
-             \once\override Slur #'extra-offset = #'(0 . -0.35)
-             fis(_\markup { \tiny N } g)\) \slurUp a(^\markup { \tiny P } b2)
-           b4(^\markup { \tiny P }
-           \stemUp 
+           s1 s4 e4 s
+           \change Staff = "LH"
+           fis,4 s2
            \revert Stem #'transparent
-           \override Stem #'length = #10
-           c8[])( s 
-         \override Stem #'length = #14
-         b4) s s
-         \override Stem #'length = #0
-         \override Stem #'transparent = ##t
-         \phrasingSlurUp \slurDown 
-         \override Slur #'extra-offset = #'(0 . 0.35)
-         c4\(
-           \once \override TextScript #'padding = #1.25
-           b(_\markup { \tiny P } a)\) s2
-         \revert Stem #'length
-         \revert Slur #'extra-offset
-       }
-        \\
-        {
-          \override Stem #'transparent = ##t
-          \override NoteHead #'transparent = ##t
-          \override Stem #'length = #0
-          s1 s4 e4 s 
-          \change Staff=LH
-          fis,4 s2     
-          \revert Stem #'transparent
-          \revert NoteHead #'transparent
-          \revert Stem #'length
-        }
-        \\
-        {
-          \override Stem #'transparent = ##t
-          \override NoteHead #'transparent = ##t
-          \override Stem #'length = #0
-          s1 s s2
-          fis'4 s
-          \change Staff=LH
-          g,4 s s2
-          \revert Stem #'transparent
-          \revert NoteHead #'transparent
-          \revert Stem #'length
-        }
-       >>
-      \bar "|."
+           \revert NoteHead #'transparent
+           \revert Stem #'length
+         }
+         \\
+         {
+           \override Stem #'transparent = ##t
+           \override NoteHead #'transparent = ##t
+           \override Stem #'length = #0
+           s1 s s2
+           fis'4 s
+           \change Staff = "LH"
+           g,4 s s2
+           \revert Stem #'transparent
+           \revert NoteHead #'transparent
+           \revert Stem #'length
+         }
+       >>
+       \bar "|."
+      }
     }
-  }
-   \new Staff {  % Left hand                   
-     \clef bass
-     \key g \major
-     \relative c' {
-       \override Staff.NoteCollision
-       #'merge-differently-headed = ##t
-       <<
-        {
-          \override Beam  #'positions = #'(-8 . -8)
-          \override NoteHead #'transparent = ##t
-          \stemDown
-          g8[_\markup { \bold I } s4. s1 s s2
+
+    \new Staff = "LH" {  % Left hand
+      \clef bass
+      \key g \major
+      \relative c' {
+       \override Staff.NoteCollision
+       #'merge-differently-headed = ##t
+       <<
+         {
+           \override Beam #'positions = #'(-8 . -8)
+           \override NoteHead #'transparent = ##t
+           \stemDown
+           g8[_\markup { \bold I } s4. s1 s s2
              d8_\markup { \bold V } s4.
              g,8]_\markup { \bold I } s4.
-          \revert Beam #'positions
-          \revert NoteHead #'transparent
-        }
-        \\
-        {
-          \override Stem #'transparent = ##t
-          \stemDown
-          \override TextScript #'extra-offset = #'(-11.75 . -12.25)
-          g'2 s1 s s2 d2 g,2
-          \revert Stem #'transparent
-        }
-        \\
-        {
-          \override Stem #'transparent = ##t
-          \override NoteHead #'transparent = ##t
-          \override Stem #'length = #0
-          g'4
-          \revert NoteHead #'transparent
-          \slurDown
-          \once \override TextScript #'padding = #0.25
-          a4(^\markup { \tiny P } b)
-          \slurUp
-          fis4(^\markup { \tiny P } e)
-          \override NoteHead #'transparent = ##t
-          c4( 
-          \revert NoteHead #'transparent
-          d)^\markup { \tiny N }
-          \slurDown
-          \override NoteHead #'transparent = ##t
-          \once \override Slur #'extra-offset = #'(0 . 0.5)
-          fis,4(
-          \revert NoteHead #'transparent
-          \revert Stem #'transparent
-          \override Stem #'length = #12
-          \stemDown
-          g4) s
-          \override Stem #'length = #10
-          \once \override Slur #'extra-offset = #'(0 . 0.25)
-          c8( s
-          \override Stem #'transparent = ##t
-          \revert Stem #'length
-          a4)
-          \override NoteHead #'transparent = ##t
-          \slurUp
-          d4(
-          \revert NoteHead #'transparent
-          d,4) s2
-        }
-        \\
-        {
-          \override Stem #'transparent = ##t
-          \override NoteHead #'transparent = ##t
-          \slurUp
-          \override Staff.Slur #'height-limit = #3.5
-          g'4( s b) s2
-          \revert Staff.Slur #'height-limit
-          \revert Stem #'transparent
-          \revert NoteHead #'transparent
-          \override Beam #'positions = #'(-4 . 1)
-          \stemDown
-          c,8[ s s4
-               \stemUp
-               fis,8] s
-          \override Beam #'positions = #'(1 . -4)
-          g8[ s
-              \stemDown
-              b8] s
-          \revert Beam #'positions
-          \override Stem #'transparent = ##t
-          \override NoteHead #'transparent = ##t
-          \slurUp
-          c4( s d4) s s2
-        }
-        \\
-        {
-          \override Stem #'transparent = ##t
-          \override NoteHead #'transparent = ##t
-          \slurDown
-          \override Stem #'length = #0
-          \stemDown
-          \override Slur #'height-limit = #3
-          \once \override Slur #'extra-offset = #'(0 . 0.25)
-          g4( s2. e4) s2. s2 s1 s2
-          \revert Stem #'transparent
-          \revert NoteHead #'transparent
-          \revert Staff.Slur #'height-limit
-        }
-        \\
-        {
-          \override Stem #'transparent = ##t
-          \override NoteHead #'transparent = ##t
-          \slurDown \slurDashed        
-          \override Staff.Slur #'height-limit = #6.0
-          \override Slur #'extra-offset = #'(0.5 . -0.25)
-          \override Stem #'length = #0
-          g4( s2. s1 g,4) s s1 s2
-          \revert Stem #'transparent
-          \revert NoteHead #'transparent
-          \revert Staff.Slur #'height-limit
-        }
-       >>
-       \bar "|."
-     }
-   }
- >>
+           \revert Beam #'positions
+           \revert NoteHead #'transparent
+         }
+         \\
+         {
+           \override Stem #'transparent = ##t
+           \stemDown
+           \override TextScript #'extra-offset = #'(-11.75 . -12.25)
+           g'2 s1 s s2 d2 g,2
+           \revert Stem #'transparent
+         }
+         \\
+         {
+           \override Stem #'transparent = ##t
+           \once \override NoteHead #'transparent = ##t
+           \override Stem #'length = #0
+           g'4
+           \once \override TextScript #'padding = #0.25
+           a4_(^\markup { \tiny P } b)
+           fis4^(^\markup { \tiny P } e)
+           \once \override NoteHead #'transparent = ##t
+           \once \override Slur #'height-limit = #1.5
+           c4^(
+           d)^\markup { \tiny N }
+           \once \override NoteHead #'transparent = ##t
+           \once \override Slur #'extra-offset = #'(0 . 0.5)
+           fis,4_(
+           \revert Stem #'transparent
+           \override Stem #'length = #10
+           \stemDown
+           g4) s
+           \once \override Slur #'extra-offset = #'(0 . 0.25)
+           c8_( s
+           \override Stem #'transparent = ##t
+           \revert Stem #'length
+           a4)
+           \once \override NoteHead #'transparent = ##t
+           d4^( d,4) s2
+         }
+         \\
+         {
+           \override Stem #'transparent = ##t
+           \override NoteHead #'transparent = ##t
+           g'4^( s b) s2
+           \revert Stem #'transparent
+           \revert NoteHead #'transparent
+           \override Beam #'positions = #'(-4 . 1)
+           \stemDown
+           c,8[ s s4
+             \stemUp
+             fis,8] s
+           \override Beam #'positions = #'(1 . -4)
+           g8[ s
+             \stemDown
+             b8] s
+           \revert Beam #'positions
+           \override Stem #'transparent = ##t
+           \override NoteHead #'transparent = ##t
+           c4^( s d4) s s2
+         }
+         \\
+         {
+           \override Stem #'transparent = ##t
+           \override NoteHead #'transparent = ##t
+           \override Stem #'length = #0
+           \stemDown
+           \once \override Slur #'height-limit = #3
+           \once \override Slur #'extra-offset = #'(0 . 0.25)
+           g4_( s2. e4) s2. s2 s1 s2
+           \revert Stem #'transparent
+           \revert NoteHead #'transparent
+         }
+         \\
+         {
+           \override Stem #'transparent = ##t
+           \override NoteHead #'transparent = ##t
+           \slurDashed
+           \once \override Slur #'height-limit = #6.0
+           \once \override Slur #'extra-offset = #'(0.5 . -0.25)
+           \override Stem #'length = #0
+           g4_( s2. s1 g,4) s s1 s2
+           \revert Stem #'transparent
+           \revert NoteHead #'transparent
+         }
+       >>
+       \bar "|."
+      }
+    }
+  >>
 }
 
 
-
 \score {
   <<
     \staffPiano
   >>
-  
+
   \midi {
   }
 
-  \layout  {
+  \layout {
     indent = 0.0
     ragged-right = ##t
     \context { \Staff \remove "Time_signature_engraver" }
   }
 }
 
+
 \paper {
 }
-
diff --git a/input/lsr/scheme/semichoirstaff--choirstaff-with-spanbars-except---type-bars.ly b/input/lsr/scheme/semichoirstaff--choirstaff-with-spanbars-except---type-bars.ly
deleted file mode 100644 (file)
index 352ecad..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-%%  Do not edit this file; it is auto-generated from LSR!
-\version "2.10.12"
-
-\header { texidoc = "
-If you wish to typeset \"|.\", etc, style spanbars on a ChoirStaff, you
-can add the span_bar_engraver, and instruct it to omit the \"|\"-style
-bars. In this example I create a new context, SemiChoirStaff, that does
-this.
-" }
-
-\version "2.10.12"
-
-mus = { \clef F c d e f c d e f c d e f c d e f \bar "||"  c d e f c d e f c d e f \bar "|." }
-
-\layout {
-  \context {
-    \ChoirStaff
-    \name "SemiChoirStaff"
-    \consists "Span_bar_engraver"
-    \override SpanBar #'stencil =
-    #(lambda (a) 
-      (if (string=? (ly:grob-property a 'glyph-name) "|")
-       (set! (ly:grob-property a 'glyph-name) ""))
-      (ly:span-bar::print a))
-  }
-  \context {
-    \Score
-    \accepts SemiChoirStaff
-  }
-}
-
-\score {
-  \new SemiChoirStaff {
-    <<
-      \new Staff \mus
-      \new Staff \mus
-    >>
-  }
-}
-
diff --git a/input/regression/trill-spanner-grace.ly b/input/regression/trill-spanner-grace.ly
new file mode 100644 (file)
index 0000000..f7b3b59
--- /dev/null
@@ -0,0 +1,12 @@
+\header {
+    texidoc = "Trill spanner can end on a grace note"
+}
+
+\version "2.10.0"
+\layout {
+    ragged-right = ##T
+}
+\relative \new Voice {
+    << { c1 \startTrillSpan }
+       { s2. \grace { d16[\stopTrillSpan e] } } >>
+    c4 }
index 52fcbfad6287b14c4a6039361d1d205925a98492..40ca514768cd97688a4bbe3a1d1a6a1a44fa69bf 100644 (file)
@@ -1,12 +1,14 @@
+
 \header {
-    texidoc = "Trill spanner"
+  texidoc = "The trill symbol and the wavy line are neatly aligned:
+the wavy line should appear to come from the crook of the r"
+
 }
 
-\version "2.10.0"
-\layout {
-    ragged-right = ##T
+\version "2.11.30"
+\paper { ragged-right = ##t }
+\relative c'' {
+  c1\startTrillSpan
+  c\stopTrillSpan
 }
-\relative \new Voice {
-    << { c1 \startTrillSpan }
-       { s2. \grace { d16[\stopTrillSpan e] } } >>
-    c4 }
+
index b50111762498d5b941062e4d9b9c4534115ab790..5322a46c95fcdeceecb01cbc189f3903269d5a9d 100644 (file)
 #include "lookup.hh"
 #include "pointer-group-interface.hh"
 
-MAKE_SCHEME_CALLBACK (Arpeggio, print, 1);
-SCM
-Arpeggio::print (SCM smob)
+Grob *
+Arpeggio::get_common_y (Grob *me)
 {
-  Grob *me = unsmob_grob (smob);
-
   Grob *common = me;
 
   extract_grob_set (me, "stems", stems);
@@ -34,17 +31,27 @@ Arpeggio::print (SCM smob)
                                        Y_AXIS);
     }
 
+  return common;
+}
+
+MAKE_SCHEME_CALLBACK(Arpeggio, calc_positions, 1);
+SCM
+Arpeggio::calc_positions (SCM grob)
+{
+  Grob *me = unsmob_grob (grob);
+  Grob *common = get_common_y (me);
+  
   /*
     TODO:
 
     Using stems here is not very convenient; should store noteheads
     instead, and also put them into the support. Now we will mess up
     in vicinity of a collision.
-
   */
   Interval heads;
   Real my_y = me->relative_coordinate (common, Y_AXIS);
 
+  extract_grob_set (me, "stems", stems);
   for (vsize i = 0; i < stems.size (); i++)
     {
       Grob *stem = stems[i];
@@ -56,6 +63,20 @@ Arpeggio::print (SCM smob)
                   - my_y);
     }
 
+  heads *= 1/Staff_symbol_referencer::staff_space(me);
+
+  return ly_interval2scm (heads);
+}
+
+MAKE_SCHEME_CALLBACK (Arpeggio, print, 1);
+SCM
+Arpeggio::print (SCM smob)
+{
+  Grob *me = unsmob_grob (smob);
+  Interval heads = robust_scm2interval (me->get_property ("positions"),
+                                       Interval())
+    * Staff_symbol_referencer::staff_space (me);
+  
   if (heads.is_empty () || heads.length () < 0.5)
     {
       if (!to_boolean (me->get_property ("transparent")))
@@ -101,27 +122,9 @@ SCM
 Arpeggio::brew_chord_bracket (SCM smob)
 {
   Grob *me = unsmob_grob (smob);
-  Grob *common = me;
-
-  extract_grob_set (me, "stems", stems);
-  for (vsize i = 0; i < stems.size (); i++)
-    {
-      Grob *stem = stems[i];
-      common = common->common_refpoint (Staff_symbol_referencer::get_staff_symbol (stem),
-                                       Y_AXIS);
-    }
-
-  Interval heads;
-  Real my_y = me->relative_coordinate (common, Y_AXIS);
-
-  for (vsize i = 0; i < stems.size (); i++)
-    {
-      Grob *stem = stems[i];
-      Grob *ss = Staff_symbol_referencer::get_staff_symbol (stem);
-      Interval iv = Stem::head_positions (stem);
-      iv *= Staff_symbol::staff_space (ss) / 2.0;
-      heads.unite (iv + ss->relative_coordinate (common, Y_AXIS) - my_y);
-    }
+  Interval heads = robust_scm2interval (me->get_property ("positions"),
+                                       Interval())
+    * Staff_symbol_referencer::staff_space (me);
 
   Real lt = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness"));
   Real sp = 1.5 * Staff_symbol_referencer::staff_space (me);
@@ -170,7 +173,8 @@ ADD_INTERFACE (Arpeggio,
 
               /* properties */
               "arpeggio-direction "
-              "stems "
+              "positions "
               "script-priority " // TODO: make around-note-interface
+              "stems "
               );
 
index c18eb10c3ebf121199adb49e120e1583f639530b..7db201bb0004f5fba9b6e7373a2125a04036d82c 100644 (file)
@@ -16,7 +16,9 @@
 class Arpeggio
 {
 public:
+  static Grob *get_common_y (Grob *);
   DECLARE_SCHEME_CALLBACK (print, (SCM));
+  DECLARE_SCHEME_CALLBACK (calc_positions, (SCM));
   DECLARE_SCHEME_CALLBACK (brew_chord_bracket, (SCM));
   DECLARE_SCHEME_CALLBACK (width, (SCM));
   DECLARE_SCHEME_CALLBACK (height, (SCM));
index 8c4354dae881afe734fcbf9620c8011e65fdf0e9..08dfbe700137233a033f3bab69074f15863930b7 100644 (file)
@@ -283,7 +283,7 @@ Line_spanner::print (SCM smob)
         SCM align = ly_assoc_get (ly_symbol2scm ("stencil-align-dir-y"),
                                   bounds[d], SCM_BOOL_F);
         SCM off = ly_assoc_get (ly_symbol2scm ("stencil-offset"),
-                                  bounds[d], SCM_BOOL_F);
+                                bounds[d], SCM_BOOL_F);
 
         if (scm_is_number (align)) 
           s.align_to (Y_AXIS, scm_to_double (align));
index 6dc602828cbdc95eee9ec3354a840b50307a9057..a4bd1c3a3985a466f1c888ac2a58e30197739ae8 100644 (file)
@@ -16,7 +16,7 @@
 #(define version-seen #f)
 #(define expect-error #f) 
 #(define output-empty-score-list #f)
-
+#(define output-suffix #f)
 #(use-modules (scm clip-region))
 \maininput
 %% there is a problem at the end of the input file
index 7e9b7ed74089328eeb1f5c6b79ed45071321497a..a04b0c67cc95456f4284b8df39e6d632a43964df 100644 (file)
@@ -16,12 +16,12 @@ MAKEINFO_FLAGS += --force
 
 $(outdir)/%/index.html: $(outdir)/%.nexi $(outdir)/user-ln doc-po
        mkdir -p $(dir $@)
-       -$(MAKEINFO) -I$(outdir) --output=$(outdir)/$* --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
+       -$(MAKEINFO) $(MAKEINFO_FLAGS) -I$(outdir) --output=$(outdir)/$* --css-include=$(top-src-dir)/Documentation/texinfo.css --html $<
 
 # we don't make the big page until the whole manual is translated
 # if this happens, we'll have to define local-WWW differently for this language
 #$(outdir)/lilypond.html: $(outdir)/lilypond.nexi
-#      -$(MAKEINFO) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $< 
+#      -$(MAKEINFO) $(MAKEINFO_FLAGS) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $< 
 
 $(outdir)/%.pdf: $(outdir)/%.texi $(outdir)/user-ln doc-po
        $(PYTHON) $(buildscript-dir)/texi-gettext.py $(buildscript-dir) $(top-build-dir)/Documentation/po/$(outdir) $(ISOLANG) $<
index 1319cf645d225343d4f39f149284d135534dbbd2..754ebcb00e5682ea7b6824bc86e56b244ef250cd 100644 (file)
@@ -406,11 +406,12 @@ at a column with a negative penalty.")
 whether to put a page turn at this column.  Can be @code{force} or
 @code{allow}.")
      (parenthesized ,boolean? "Parenthesize this grob.")
-     (positions ,pair? "Pair of staff coordinates @code{(@var{left}
+     (positions ,number-pair? "Pair of staff coordinates @code{(@var{left}
 . @var{right})}, where both @var{left} and @var{right} are in
-@code{staff-space} units of the current staff.  LilyPond uses these
-values to select which slur candidate positions to use; if extreme
-positions are requested, LilyPond selects the closest positions.")
+@code{staff-space} units of the current staff.
+
+For slurs, this value selects which slur candidate
+to use; if extreme positions are requested, the closest one is taken.")
 
      (ratio ,number? "Parameter for slur shape.  The higher this
 number, the quicker the slur attains its @code{height-limit}.")
index ce76c346f861aae96b3daefcb6446e497e5621f2..72a31eddbc87768fb4cb5c3c8c045fd39177e7ef 100644 (file)
        (Y-offset . ,ly:staff-symbol-referencer::callback)
        (X-offset . ,ly:side-position-interface::x-aligned-side)
        (direction . ,LEFT)
+       (positions . ,ly:arpeggio::calc-positions)
        (padding . 0.5)
        (script-priority . 0)
        (side-axis . ,X)
      . (
        (stencil . ,ly:time-signature::print)
        (break-align-symbol . time-signature)
-       (break-align-anchor . ,ly:break-aligned-interface::calc-extent-aligned-anchor)
+       (break-align-anchor
+        . ,ly:break-aligned-interface::calc-extent-aligned-anchor)
        (break-visibility . ,all-visible)
        (avoid-slur . inside)
        (space-alist . (
        (right-bound-info . ,ly:line-spanner::calc-right-bound-info)
 
        (bound-details . ((left . ((text . ,(make-translate-scaled-markup
-                                            '(0.5 . -0.6)
+                                            '(0.0 . -1.0)
                                             (make-musicglyph-markup "scripts.trill")))
                                   (Y . 0)
-                                  (padding . 0.25)
+                                  (stencil-offset . (-0.5 . 0))
+                                  (padding . 1.5)
                                   (attach-dir . ,LEFT)
                                   ))
                          (right . ((Y . 0)))
index 9a09fa2dc50e90150293d806c44a23ad003d875a..373dd5d1f10e25e78f84dea438388df5c6d4a91e 100644 (file)
@@ -495,9 +495,9 @@ def musicxml_voice_to_lily_voice (voice):
         
         # The <notation> element can have the following children (+ means implemented, ~ partially, - not):
         # +tied | +slur | +tuplet | glissando | slide | 
-             # ornaments | technical | articulations | dynamics |
-             # +fermata | arpeggiate | non-arpeggiate | 
-             # accidental-mark | other-notation
+        #    ornaments | technical | articulations | dynamics |
+        #    +fermata | arpeggiate | non-arpeggiate | 
+        #    accidental-mark | other-notation
         if notations:
             if notations.get_tuplet():
                 tuplet_event = notations.get_tuplet()
@@ -611,12 +611,12 @@ def musicxml_voice_to_lily_voice (voice):
 
 
 def musicxml_id_to_lily (id):
-    digits = ['Zero', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight',
-              'Nine', 'Ten']
+    digits = ['Zero', 'One', 'Two', 'Three', 'Four', 'Five',
+              'Six', 'Seven', 'Eight', 'Nine', 'Ten']
     
-    for dig in digits:
-        d = digits.index (dig)
-        id = re.sub ('%d' % d, dig, id)
+    for digit in digits:
+        d = digits.index (digit)
+        id = re.sub ('%d' % d, digit, id)
 
     id = re.sub  ('[^a-zA-Z]', 'X', id)
     return id