+1.3.139.jcn1
+============
+
+* Allow markup text for crecscendoText and decrescendoText.
+
+* Changed part combiner's a due text: `a2 to a2.
+
+* Renamed FollowThread into VoiceFollower, followThread into
+followVoice.
+
+* lilypond-book: changed nonfragment into nofragment
+
+* Bugfix: info direntries.
+
+* Bugfix; don't create RhythmicStaff if asking for Staff.
+
+* Automated fixing of info structure. Build now stops on info errors.
+This should robustify documentation and website builds. To undo this,
+remove the target `info: check-info' from Documentation/user/GNUmakefile.
+
+* Move Multi_measure_rest up/down in combined parts.
+
+* Cleanups for ledgered rests.
+
+1.3.139
+=======
+
1.3.138.jcn1
============
@lilypondfile[printfilename]{rest.ly}
+@lilypondfile[printfilename]{rest-ledger.ly}
+
@lilypondfile[printfilename]{noteheadstyle.ly}
@lilypondfile[printfilename]{easy-notation.ly}
LATEX_FILES =$(wildcard *.latex)
-
# todo: add latex.
DVI_FILES = $(addprefix $(outdir)/, $(TELY_FILES:.tely=.dvi))
STEPMAKE_TEMPLATES=tex texinfo documentation
LOCALSTEPMAKE_TEMPLATES=lilypond ly
+# Hmm, what about?
+# local-dist: check-info
+
+info: check-info
+
include $(depth)/make/stepmake.make
+# Ugh,ugh.
+# emacs cannot fix the menu structure when @mbinclude is used
+# lilypond.tely uses mbinclude
+TEXINFO_SOURCES := $(filter-out lilypond.tely, $(TEXINFO_SOURCES))
+
dvi: $(DVI_FILES)
ps: $(PS_FILES)
default:
# Info is now built by default via texinfo-rules.
-# We must build them by default, otherwise they get built during make install
+# We must build them by defaulbt, otherwise they get built during make install
info: $(INFO_FILES)
# Generic rule using % twice not possible?
# $(outdir)/%/%.html: $(outdir)/%.texi
$(outdir)/lilypond/lilypond.html: $(outdir)/lilypond.texi
- -$(MAKEINFO) --force --output=$@ --html $<
+ $(MAKEINFO) --output=$@ --html $<
-cp -f $(outdir)/*.png $(outdir)/lilypond
-cp -f $(outdir)/lilypond/index.html $@
$(deep-footify) $(shell find $(outdir)/$(*F)/*.html)
$(outdir)/lilypond-internals/lilypond-internals.html: $(outdir)/lilypond-internals.texi
- -$(MAKEINFO) --force --output=$@ --html $<
+ $(MAKEINFO) --output=$@ --html $<
-cp -f $(outdir)/*.png $(outdir)/lilypond-internals
-cp -f $(outdir)/lilypond-internals/index.html $@
$(deep-footify) $(shell find $(outdir)/$(*F)/*.html)
@chapter Development
@menu
-* CodingStyle::
-* Making patches::
-* Localisation::
-* Helping with development::
+* CodingStyle::
+* Making patches::
+* Localisation::
+* Helping with development::
+* ETF format::
@end menu
@node CodingStyle
@c @pagesizes 10.3in
@c @everyheading @| @thispage @|
-@evenheading @thispage @| @|
-@oddheading @| @| @thispage @|
+@c @evenheading @thispage @| @|
+@c @oddheading @| @| @thispage @|
@itemize
@item multiline
linewidth = textwidth
@item fragment
-@item nonfragment
+@item nofragment
Override @command{lilypond-book} autodetection of what type of code is in the
lilypond block, voice contents or complete code.
@end table
@dircategory GNU music project
@direntry
@c ;; prepend GNU for dir, must be unique
-* GNU LilyPond (lilypond). The GNU music typesetter.
+* GNU LilyPond: (lilypond). The GNU music typesetter.
@c * install-info: (texinfo)Invoking install-info. Update info/dir entries.
@c * texi2dvi: (texinfo)Format with texi2dvi. Print Texinfo documents.
@end direntry
@macro c__ {word}
\word\
+@menu
+* \word\::
+@end menu
+
@node \word\
@subsection \word\
@end macro
@node Preface
@chapter Preface
-Some six years ago I was in the EJE (Eindhoven Youth Orchestra), and
-Jan, one of the cranked violists told me about the grand new project he
-was working on. It was an automated system for printing music (to be
-precise, it was MPP, a preprocessor for MusiXTeX). Accidentally, I also
-wanted to print out some parts from a score, so I started looking at his
-software, and quickly got hooked. The rest is, as they say, history.
+
+It must have been during a rehearsal of the EJE (Eindhoven Youth
+Orchestra), somewhere in 1994 that Jan, one of the cranked violists
+told Han-Wen, one of the distorted french horn players, about the
+grand new project he was working on. It was an automated system for
+printing music (to be precise, it was MPP, a preprocessor for
+MusiXTeX). As it happened, Han-Wen accidentally wanted to print out
+some parts from a score, so he started looking at the software, and he
+quickly got hooked. We soon realised that MPP was fundamentally
+broken by design and it slowly died during 1995. We debated a lot
+about the requirements to an inputformat, but that didn't produce any
+new code. In 1996, Han-Wen started LilyPond. This time, Jan got
+sucked into Han-Wen's new project. The rest is, as they say, history.
You're reading the preface of the manual for LilyPond 1.4, which is in
all honesty, the first release of LilyPond that combines stability,
-flexibility and good documentation. I hope you have as much fun in using
-LilyPond as I had when hacking it.
+flexibility and good documentation. We hope you will have as much fun
+in using LilyPond as we have when hacking it.
+
+This manual was written to help you learn LilyPond, but as you might
+imagine, we don't have much to learn about it. Therefore, we can't
+really judge whether the manual is clear for a newbie, but maybe you
+can! So, should you find any part of the manual vague or outdated,
+please tell us your suggestions: if you don't, we'll never know.
+
+Han-Wen and Jan
+
+Utrecht/Amsterdam, The Netherlands, March 2001.
+
-This manual was written to help you learn lily, but as you might
-imagine, I don't have anything learn about it. It's hard for me as a
-writer to judge whether the manual is clear for a newbie, but you can!
-So, should you find any part of the manual vague or outdated, please let
-us know: if you don't tell us, we'll never know.
+@ignore
+appendix?
+[details from lilypond-1.0.0]
-Han-Wen Nienhuys
+GNU LilyPond's roots lie in MPP, a preprocessor to the rather arcane
+MusiXTeX macro package for TeX. A friend of mine, Jan Nieuwenhuizen
+wrote the first 44 versions (0.01 to 0.44), then his program caught my
+attention, and I was slowly sucked in to the interesting problem of
+easily producing beautifully printed music. I contributed some
+code. We soon realised that MPP's design was too fundamentally broken
+to be repaired, so it was decided to rewrite MPP. We debated a lot about
+the requirements to an inputformat (fall 1995). I sat down and started
+with a parser-first, bottom-up rewrite called mpp95 (which totally
+failed, obviously).
-Utrecht, The Netherlands, March 2001.
+After long and hard thinking, I came up with an algorithm for the
+horizontal spacing of multiple staffs (april 1996) I coded it (and did
+not test it). After starting with this fundamental piece, I slowly
+added the stages which come before spacing, and after. A half year
+later, I had a first working version, (october 1996). I announced
+Patchlevel 0.0.7 (or 8) to the mutex list after asking some technical
+details on spacing; it was downloaded approximately 4 times. Then I
+got the hang of it, and in the subsequent two months, I coded until it
+had doubled in size (pl 23).
+Most the other history is described in the NEWS file. The first large
+scale release (0.1) was done after approximately 78 patchlevels on
+August 1, 1997.
-[preface jcn here? ]
+@end ignore
@c before saving changes
-@ignore
- TODO:
-
-@end ignore
-
-
@macro refbugs
@unnumberedsubsec Bugs
@example
\pitch @var{scmpitch}
@end example
-
+9
@var{scmpitch} is a pitch scheme object, see @ref{Pitch data type}.
In Note and Chord mode, pitches may be designated by names. The default
@cindex Polyphony
[TODO: collisions, rest-collisinos, voiceX identifiers, how to
-which contexts to instantiate.]
+which contexts to instantiate. some small examples? ]
@table @code
@code{\tieDown},
@code{\tieUp}.
+@cindex @code{\voiceOne}
+@cindex @code{\voiceTwo}
+@cindex @code{\voiceThree}
+@cindex @code{\voiceFour}
+@cindex @code{\oneVoice}
+@cindex @code{\shiftOn}
+@cindex @code{\shiftOff}
+
+If two voices sharing one staff have the same stem directions, their
+note heads may collide. You can shift the note heads of one voice by
+setting @code{\shiftOn}. This can be undone by setting
+@code{\shiftOff}.
+
+For simple polyphonic music, shorthands are available that combine
+directions and shift settings: @code{\voiceOne}, @code{\voiceTwo},
+@code{\voiceThree}, @code{\voiceFour} and @code{\oneVoice}.
+
@node Beaming
@section Beaming
@end quotation
@cindex @code{stemRightBeamCount}
+The beam symbol can be tweaked through @code{Voice.Beam}'s
+grob-properties @code{height} and @code{staff-position},
+in staff-spaces.
+
+Set @code{height} to zero, to get horizontal beams:
+
+@quotation
+@lilypond[fragment,relative,verbatim]
+ \property Voice.Beam \set #'direction = #1
+ \property Voice.Beam \set #'height = #0
+ [a''8 e' d c]
+@end lilypond
+@end quotation
-[TODO: explain common tweaks.]
+Here's how you'd specify a weird looking beam that instead of being
+horizontal, falls two staff spaces:
+@quotation
+@lilypond[fragment,relative,verbatim]
+ \property Voice.Beam \set #'staff-position = #2
+ \property Voice.Beam \set #'height = #-2
+ [c'8 c]
+@end lilypond
+@end quotation
+@cindex @code{default-neutral-direction}
@node Expressive marks
@section Expressive marks
* Phrasing slur::
* Breath marks::
* Tempo::
+* Text spanner::
@end menu
@node Slur
Similarly, the curvature of a slur is adjusted to stay clear of note
heads and stems. When that would increase the curvature too much, the
slur is reverted to its default shape. The threshold for this decision
-is in @code{Voice.Slur}'s grob-property @code{beautiful}. In some
-cases, you may prefer curved slurs to vertically moved ones. You can
+is in @code{Voice.Slur}'s grob-property @code{beautiful}. It is loosely
+related to the enclosed area between the slur and the notes. Usually,
+the default setting works well, but in some cases you may prefer a
+curved slur when LilyPond decides for a vertically moved one. You can
express this by increasing the @code{beautiful} value:
-[hoe gedefd?? wat betekent beautiful = X?]
+@lilypond[verbatim,singleline,relative]
+ \property Voice.Beam \override #'direction = #-1
+ \property Voice.Slur \override #'direction = #1
+ c'16( a' f' a a f a, )c,
+ c( a' f' a a f d, )c
+ \property Voice.Slur \override #'beautiful = #5.0
+ c( a' f' a a f d, )c
+@end lilypond
-[dit voorbeeld is te lang: junken, of inkorten]
+@refbugs
-@quotation
-@lilypond[verbatim,singleline]
-\score {
- \notes \context PianoStaff <
- \time 6/4;
- \context Staff=up { s1 * 6/4 }
- \context Staff=down <
- \clef bass;
- \autochange Staff \context Voice
- \notes \relative c {
- d,8( a' d f a d f d a f d )a
- }
- >
- >
- \paper {
- \translator {
- \VoiceContext
- Slur \override #'beautiful = #5.0
- Slur \override #'direction = #1
- Stem \override #'direction = #-1
- autoBeamSettings \override #'(end * * * *)
- = #(make-moment 1 2)
- }
- \translator {
- \PianoStaffContext
- VerticalAlignment \override #'threshold = #'(5 . 5)
- }
- }
-}
-@end lilypond
-@end quotation
+The definition for @code{beautiful} is vague, the default setting is
+experimental computer science.
@cindex Adusting slurs
@end lilypond
-
-[TODO: explain perc notation, if it's finished in time.]
-
-
-
@c . {Piano music}
@node Piano music
@section Piano music
* Manual staff switches::
* Pedals::
* Arpeggio::
-* Follow Thread::
+* VoiceFollower::
@end menu
connected arpeggios and unconnected arpeggios at the same time.
-@c . {Follow Thread}
-@node Follow Thread
-@subsection Follow Thread
+@c . {VoiceFollower}
+@node VoiceFollower
+@subsection VoiceFollower
-@cindex follow thread
+@cindex follow voice
@cindex staff switching
@cindex cross staff
-[todo: figure out different name, eg. voice line, switch indicator ? ]
-
-@cindex @code{followThread}
+@cindex @code{followVoice}
Whenever a voice switches to another staff a line connecting the notes
can be printed automatically. This is enabled if the property
-@code{PianoStaff.followThread} is set to true:
+@code{PianoStaff.followVoice} is set to true:
@quotation
@lilypond[fragment,relative,verbatim]
\context PianoStaff <
- \property PianoStaff.followThread = ##t
+ \property PianoStaff.followVoice = ##t
\context Staff \context Voice {
c'1
\translator Staff=two
staff in an intelligent way. It is aimed primarily at typesetting Hymns
and orchestral scores. When the two parts are identical for a period of
time, only one is shown. In places where the two parts differ, stem
-directions are set automatically. Also, soli and @`{a} due parts can be
+directions are set automatically. Also, soli and @emph{a due} parts can be
identified and marke.
The syntax for part combining is
Notice that the first @code{g} appears only once, although it was
specified twice (once in each Thread). Also note that stem, slur and tie
directions are set automatically, depending whether there is a solo or
-unisono.
-
-There is actually a third engraver involved in part combining; the
-@code{Voice_devnull_engraver}. This one takes care of removing
-redundant spanners such as beams, slurs, ties, crescendi, etc. Note that
-the Thread called one always gets up stems, and "solo", while @code{two}
-always gets down stems and "Solo II".
+unisono. The Thread called @code{one} always gets up stems, and "solo",
+while @code{two} always gets down stems and "Solo II".
If you just want the splitting of Threads and setting of directions, and
not the textual markings, you may set the property @var{soloADue} to
false. There are a number of other properties that you can use to tweak
the behavior of part combining, refer to the automatically generated
documentation. Look for @code{Thread_devnull_engraver}
-@code{Voice_engraver} and @code{A2_engraver}.
+@code{Voice_devnull_engraver} and @code{A2_engraver}.
@cindex @code{Thread_devnull_engraver}
@cindex @code{Voice_engraver}
@subsection Hara-kiri staffs
-[TODO]@footnote{Harakiri, also called Seppuku, is the ritual suicide of
+[TODO]
+
+@footnote{Harakiri, also called Seppuku, is the ritual suicide of
the Japanese Samourai warriors.}
@itemize
@item
@uref{ftp://ftp.math.berkeley.edu/pub/Software/TeX/xdvi.tar.gz,plain
-Xdvi} version 22.28 or better.
+Xdvi} version 22.36 or newer.
Note that most @TeX{} distributions ship with xdvik, which is a
different and less well maintained program. To find out which xdvi you
If you want emacs to jump to the exact spot (and not just the line) on a
click, you must enable column positioning. To do so, you need to patch
-emacsclient. Apply @uref{this patch,
-http://www.cs.uu.nl/~hanwen/public/software/emacsclient-column} to
-@file{emacsclient.c} and @file{server.el} from the emacs source
-code. Stick the compiled emacsclient into a bin directory, and put
-@file{server.el} into a elisp directory
+emacsclient. Apply @file{emacsclient.patch} (included with the source
+package) to @file{emacsclient.c} and @file{server.el} from the emacs
+source code. Recompile and stick the recompiled emacsclient into a bin
+directory, and put @file{server.el} into a elisp directory
(eg. @file{~/usr/share/emacs/}). Add the following to your @file{.emacs}
-init file, before invoking server-start.
+init file, beifore invoking server-start.
@example
- (setq load-path (cons (concat (getenv "HOME") "/usr/share/emacs")
- load-path))
+ (setq load-path (cons "~/usr/share/emacs" load-path))
@end example
Xdvi must be configured to use the emacs editor. Before starting, set
-the environment variable @code{XEDITOR} to @code{emacsclient --no-wait
-+%c:%l %f}. Xdvi also must be configured to find the fonts. Refer to the
+the environment variable @code{XEDITOR} to
+@example
+emacsclient --no-wait +%c:%l %f
+@end example
+Xdvi also must be configured to find the fonts. Refer to the
xdvi documentation for more information.
-[TODO: is that so?]
+When viewing, control-mousebutton 1 will take you to the originating
+line and column. Control-mousebutton 2 will show all clickable boxes.
-When viewing, control-mousebutton 1 will take you to the correct
-line/column. Control-mousebutton 2 will show all clickable boxes.
+@refbugs
When you convert the TeX file to PostScript using dvips, dvips
will complain about not finding @code{src:X:Y} files. Those complaints are
@end lilypond
@end quotation
-The beam symbol can be tweaked through @code{Voice.Beam}'s
-grob-properties @code{height} and @code{staff-position},
-in staff-spaces.
-
-Set @code{height} to zero, to get horizontal beams:
-
-@quotation
-@lilypond[fragment,relative,verbatim]
- \property Voice.Beam \set #'direction = #1
- \property Voice.Beam \set #'height = #0
- [a''8 e' d c]
-@end lilypond
-@end quotation
-
-Here's how you'd specify a weird looking beam that instead of being
-horizontal, falls two staff spaces:
-
-@quotation
-@lilypond[fragment,relative,verbatim]
- \property Voice.Beam \set #'staff-position = #2
- \property Voice.Beam \set #'height = #-2
- [c'8 c]
-@end lilypond
-@end quotation
-@cindex @code{default-neutral-direction}
-
The direction of a perfectly centred beams can be
controlled through @code{Voice.Beam}'s grob-property
@code{default-neutral-direction}
@chapter Tutorial
@menu
-* Introduction:: Introduction
+* Introduction::
* Running LilyPond:: Getting started
* The first tune:: The first tune
* Lyrics and chords:: Lyrics and chords
timpani = \notes\relative c, @{
\times 2/3 @{ f4 f f @}
\times 4/5 @{ as8 as as as as @}
+ R1
@}
corno = \notes\relative c' @{
bes4 d f, bes d f, bes d
@}
\translator@{
\VoiceContext
- \remove "Rest_engraver";
+ \remove "Rest_engraver";
+ \consists "Multi_measure_rest_engraver";
+ \consists "Bar_engraver";
@}
\translator@{
\HaraKiriStaffContext
+ \remove "Multi_measure_rest_engraver";
+ \remove "Bar_engraver";
@}
\translator @{
\OrchestralScoreContext
\translator@{
\VoiceContext
\remove "Rest_engraver";
+ \consists "Multi_measure_rest_engraver";
+ \consists "Bar_engraver";
@}
@end example
@example
\translator@{
\HaraKiriStaffContext
+ \remove "Multi_measure_rest_engraver";
+ \remove "Bar_engraver";
@}
@end example
That's all folks. From here, you can either try fiddling with input
files, or you can read the reference manual.
+
+
+@c @lilypond[nofragment]
+@c #(set! point-and-click #f)
+@c @end lilypond
README_FILES = DEDICATION COPYING NEWS CHANGES ROADMAP
README_TXT_FILES = AUTHORS.txt README.txt INSTALL.txt FAQ.txt
IN_FILES := $(wildcard *.in)
-EXTRA_DIST_FILES = lilypond-font-lock.el lilypond-mode.el vimrc VERSION $(README_FILES) $(SCRIPTS) $(IN_FILES)
+EXTRA_DIST_FILES = lilypond-font-lock.el lilypond-mode.el vimrc VERSION $(README_FILES) $(SCRIPTS) $(IN_FILES) emacsclient.patch
NON_ESSENTIAL_DIST_FILES = $(README_TXT_FILES)
INSTALLATION_DIR=$(datadir)
-INSTALLATION_FILES=$(builddir)/config.make VERSION
+INSTALLATION_FILES=$(configuration) VERSION
# bootstrap stepmake:
#
MAJOR_VERSION=1
MINOR_VERSION=3
PATCH_LEVEL=139
-MY_PATCH_LEVEL=
+MY_PATCH_LEVEL=jcn1
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
--- /dev/null
+diff -ur emacs-20.5/lib-src/ChangeLog emacs-hanwen/lib-src/ChangeLog
+--- emacs-20.5/lib-src/ChangeLog Fri Dec 10 17:25:36 1999
++++ emacs-hanwen/lib-src/ChangeLog Sun Jul 16 23:00:54 2000
+@@ -1,3 +1,7 @@
++2000-07-16 Han-Wen Nienhuys <hanwen@cs.uu.nl>
++
++ * emacsclient.c: Added support for +LINE:COLUMN style arguments.
++
+ 1999-12-04 Gerd Moellmann <gerd@gnu.org>
+
+ * Version 20.5 released.
+Only in emacs-hanwen/lib-src: ChangeLog~
+diff -ur emacs-20.5/lib-src/emacsclient.c emacs-hanwen/lib-src/emacsclient.c
+--- emacs-20.5/lib-src/emacsclient.c Wed Nov 3 14:12:46 1999
++++ emacs-hanwen/lib-src/emacsclient.c Sun Jul 16 22:10:35 2000
+@@ -27,6 +27,7 @@
+ #undef close
+ #undef signal
+
++#include <ctype.h>
+ #include <stdio.h>
+ #include <getopt.h>
+ #ifdef STDC_HEADERS
+@@ -323,7 +324,7 @@
+ if (*argv[i] == '+')
+ {
+ char *p = argv[i] + 1;
+- while (*p >= '0' && *p <= '9') p++;
++ while (isdigit (*p) || *p == ':') p++;
+ if (*p != 0)
+ fprintf (out, "%s/", quote_file_name (cwd));
+ }
+@@ -466,7 +467,8 @@
+ if (*modified_arg == '+')
+ {
+ char *p = modified_arg + 1;
+- while (*p >= '0' && *p <= '9') p++;
++ while (isdigit (*p) || *p == ':')
++ p++;
+ if (*p != 0)
+ need_cwd = 1;
+ }
+Only in emacs-hanwen/lib-src: emacsclient.c~
+diff -ur emacs-20.5/lib-src/emacsserver.c emacs-hanwen/lib-src/emacsserver.c
+--- emacs-20.5/lib-src/emacsserver.c Mon Feb 22 21:44:14 1999
++++ emacs-hanwen/lib-src/emacsserver.c Sun Jul 16 22:09:52 2000
+@@ -61,6 +61,7 @@
+ #include <errno.h>
+ #include <sys/stat.h>
+
++
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+Only in emacs-hanwen/lib-src: emacsserver.c~
+Only in emacs-hanwen/lib-src: suf.el~
+diff -ur emacs-20.5/lisp/ChangeLog emacs-hanwen/lisp/ChangeLog
+--- emacs-20.5/lisp/ChangeLog Fri Dec 10 17:25:02 1999
++++ emacs-hanwen/lisp/ChangeLog Sun Jul 16 23:00:04 2000
+@@ -1,3 +1,8 @@
++2000-07-16 Han-Wen Nienhuys <hanwen@cs.uu.nl>
++
++ * server.el (server-process-filter,server-visit-files): add support for "LINE:COLUMN"
++ style emacsclient calls.
++
+ 1999-12-04 Gerd Moellmann <gerd@gnu.org>
+
+ * Version 20.5 released.
+Only in emacs-hanwen/lisp: ChangeLog~
+diff -ur emacs-20.5/lisp/server.el emacs-hanwen/lisp/server.el
+--- emacs-20.5/lisp/server.el Sat Mar 13 01:20:25 1999
++++ emacs-hanwen/lisp/server.el Sun Jul 16 23:04:41 2000
+@@ -215,7 +215,8 @@
+ default-file-name-coding-system)))
+ client nowait
+ (files nil)
+- (lineno 1))
++ (lineno 1)
++ (columnno 0))
+ ;; Remove this line from STRING.
+ (setq string (substring string (match-end 0)))
+ (if (string-match "^Error: " request)
+@@ -232,9 +233,17 @@
+ (setq request (substring request (match-end 0)))
+ (if (string-match "\\`-nowait" arg)
+ (setq nowait t)
+- (if (string-match "\\`\\+[0-9]+\\'" arg)
+- ;; ARG is a line number option.
+- (setq lineno (read (substring arg 1)))
++ (cond
++ ;; ARG is a line number option.
++ ((string-match "\\`\\+[0-9]+\\'" arg)
++ (setq lineno (read (substring arg 1)))
++ )
++ ;; ARG is line number / column option.
++ ((string-match "\\`\\+[0-9]+:[0-9]+\\'" arg)
++ (setq lineno (read (substring arg 1 (string-match ":" arg))))
++ (setq columnno (read (substring arg (+ 1 (string-match ":" arg)))))
++ )
++ (t
+ ;; ARG is a file name.
+ ;; Collapse multiple slashes to single slashes.
+ (setq arg (command-line-normalize-file-name arg))
+@@ -253,9 +262,11 @@
+ (if coding-system
+ (setq arg (decode-coding-string arg coding-system)))
+ (setq files
+- (cons (list arg lineno)
++ (cons (list arg lineno columnno)
+ files))
+- (setq lineno 1)))))
++ (setq lineno 1)
++ (setq columnno 0)
++ )))))
+ (server-visit-files files client nowait)
+ ;; CLIENT is now a list (CLIENTNUM BUFFERS...)
+ (or nowait
+@@ -267,9 +278,11 @@
+ ;; Save for later any partial line that remains.
+ (setq server-previous-string string))
+
++
++
+ (defun server-visit-files (files client &optional nowait)
+ "Finds FILES and returns the list CLIENT with the buffers nconc'd.
+-FILES is an alist whose elements are (FILENAME LINENUMBER).
++FILES is an alist whose elements are (FILENAME LINENUMBER COLUMNNUMBER).
+ NOWAIT non-nil means this client is not waiting for the results,
+ so don't mark these buffers specially, just visit them normally."
+ ;; Bind last-nonmenu-event to force use of keyboard, not mouse, for queries.
+@@ -297,6 +310,7 @@
+ (set-buffer (find-file-noselect filen))
+ (run-hooks 'server-visit-hook)))
+ (goto-line (nth 1 (car files)))
++ (move-to-column (nth 2 (car files)))
+ (if (not nowait)
+ (setq server-buffer-clients
+ (cons (car client) server-buffer-clients)))
+@@ -304,6 +318,7 @@
+ (setq files (cdr files)))
+ (set-buffer obuf))
+ (nconc client client-record)))
++
+ \f
+ (defun server-buffer-done (buffer &optional for-killing)
+ "Mark BUFFER as \"done\" for its client(s).
+Only in emacs-hanwen/lisp: server.el.orig
+Only in emacs-hanwen/lisp: server.el~
--- /dev/null
+%
+% mmrests of second voice should not disappear
+%
+% the problem is more complex: the mmrest-engraver lives at staff level,
+% but it seems that we need one per voice.
+%
+\score {
+ \notes <
+ \context Staff = Viole <
+ \context Voice=one \partcombine Voice
+
+ % ordering significant ??
+ \context Thread=two \relative c''{ R1 c2 c2 }
+ \context Thread=one { R1*2 }
+ >
+ >
+ \paper {
+% {
+ \translator {
+ \StaffContext
+ \remove Multi_measure_rest_engraver;
+ \remove Bar_engraver;
+ }
+ \translator {
+ \VoiceContext
+ \consists Multi_measure_rest_engraver;
+ \consists Bar_engraver;
+ }
+% }
+ }
+}
\ No newline at end of file
--- /dev/null
+
+%
+% huh? wat gaat er nu fout in os-score.ly, hier issie okede?
+%
+global = {
+ \time 2/4;
+ \skip 2*4; \bar "|.";
+}
+Key = \notes \key as \major;
+
+\score {
+ <
+ \global
+ \context StaffGroup = timpani <
+ \context Staff = timpani <
+ \Key
+ \notes\relative c {
+ \times 2/3 { f4 f f }
+ \times 4/5 { as8 as as as as }
+ R1
+ }
+ > >
+ >
+ \paper {
+ linewidth = -1.;
+ \translator {
+ \HaraKiriStaffContext
+ }
+ }
+}
--- /dev/null
+\header {
+texidoc = "whole and half rests moving outside the staff should get
+ledger lines";
+}
+
+
+\score {
+\notes {
+ \property Voice.Rest \set #'staff-position = #4
+ r1 \property Voice.Rest \set #'staff-position = #5
+ r1 \property Voice.Rest \set #'staff-position = #6
+
+ r1 \property Voice.Rest \set #'staff-position = #-6
+ r1 \property Voice.Rest \set #'staff-position = #-7
+ r1 \property Voice.Rest \set #'staff-position = #-8
+ r1
+
+ \property Voice.Rest \set #'staff-position = #6
+ r2 \property Voice.Rest \set #'staff-position = #7
+ r2 \property Voice.Rest \set #'staff-position = #8
+
+ r2 \property Voice.Rest \set #'staff-position = #-4
+ r2 \property Voice.Rest \set #'staff-position = #-5
+ r2 \property Voice.Rest \set #'staff-position = #-6
+ r2
+
+
+
+
+}}
-% followThread: connect note heads with line when thread switches staff
+% followVoice: connect note heads with line when thread switches staff
\score{
\context PianoStaff <
linewidth = 70.\mm;
\translator {
\ScoreContext
- followThread = ##t
+ followVoice = ##t
}
}
}
--- /dev/null
+\header {
+ texidoc = ""
+
+ }
\ No newline at end of file
}
}
+
+% switch off settings of -score file, so the rest of the
+% tutorial isn't \special
+#(set! point-and-click #f)
\ No newline at end of file
timpani = \notes\relative c, {
\times 2/3 { f4 f f }
\times 4/5 { as8 as as as as }
+ R1
}
corno = \notes\relative c' {
bes4 d f, bes d f, bes d
\translator{
\VoiceContext
\remove "Rest_engraver";
+ \consists "Multi_measure_rest_engraver";
+ \consists "Bar_engraver";
}
\translator{
\HaraKiriStaffContext
+ \remove "Multi_measure_rest_engraver";
+ \remove "Bar_engraver";
}
\translator {
\OrchestralScoreContext
}
}
+
#include "translator-group.hh"
#include "side-position-interface.hh"
#include "directional-element-interface.hh"
-
+#include "multi-measure-rest.hh"
class A2_engraver : public Engraver
{
else if (unirhythm)
state_ = UNIRHYTHM;
+ Direction d = CENTER;
+ if (daddy_trans_l_->id_str_.left_str (3) == "one")
+ d = UP;
+ else if (daddy_trans_l_->id_str_.left_str (3) == "two")
+ d = DOWN;
+
/* Must only set direction for VoiceCombines, not for StaffCombines:
we can't detect that here, so, ugh, yet another property */
if (!to_boolean (get_property ("noDirection"))
|| (unirhythm == SCM_BOOL_T && split_interval == SCM_BOOL_T
&& (unison != SCM_BOOL_T || solo_adue != SCM_BOOL_T)))
{
- if (daddy_trans_l_->id_str_.left_str (3) == "one")
- {
- i.elem_l_->set_grob_property ("direction", gh_int2scm (1));
- }
- else if (daddy_trans_l_->id_str_.left_str (3) == "two")
- {
- i.elem_l_->set_grob_property ("direction", gh_int2scm (-1));
- }
+
+ /*
+ Blunt axe method: every grob gets a propertysetting.
+ */
+ i.elem_l_->set_grob_property ("direction", gh_int2scm (d));
}
}
+
+ /*
+ todo: should we have separate state variable for being "rest while
+ other has solo?" */
+ if ( Multi_measure_rest::has_interface (i.elem_l_) && d )
+ if (state_ == UNIRHYTHM
+ && unisilence != SCM_BOOL_T)
+ {
+ i.elem_l_->set_grob_property ("staff-position", gh_int2scm (d * 6));
+ }
}
void
daddy_trans_l_->set_property (start_type
+ "Spanner", SCM_UNDEFINED);
s = get_property ((start_type + "Text").ch_C ());
- if (gh_string_p (s))
+ /*
+ FIXME: use markup_p () to check type.
+ */
+ if (gh_string_p (s) || gh_pair_p (s))
{
cresc_p_->set_grob_property ("edge-text",
gh_cons (s, ly_str02scm ("")));
#endif
#ifndef YY_START
-#define YY_START() ((yy_start - 1) / 2)
+#define YY_START\
+ ((yy_start - 1) / 2)
#define YYSTATE YY_START
#endif
public:
DECLARE_SCHEME_CALLBACK (after_line_breaking, (SCM ));
static bool has_interface (Grob*);
+ static String glyph_name (Grob*, int, String);
static SCM brew_internal_molecule (SCM);
DECLARE_SCHEME_CALLBACK (extent_callback, (SCM,SCM));
DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM ));
SCM limit = me->get_grob_property ("expand-limit");
- if (measures <= gh_scm2int (limit))
+ if (measures == 1)
+ {
+ s = musfont->find_by_name (Rest::glyph_name (me, 0, ""));
+
+ /*
+ ugh.
+ */
+ if (Staff_symbol_referencer::position_f (me) == 0.0)
+ s.translate_axis (Staff_symbol_referencer::staff_space (me), Y_AXIS);
+ }
+ else if (measures <= gh_scm2int (limit))
{
/*
Build a rest from smaller parts. Distances inbetween are
if (Rhythmic_head::has_interface (info.elem_l_))
{
head_ = info.elem_l_;
- if (to_boolean (get_property ("followThread")))
+ if (to_boolean (get_property ("followVoice")))
{
Translator_group * tr = daddy_trans_l_;
while (tr && tr->type_str_ != "Staff")
Should probably store follow_ in line_, and suicide at some
later point */
if (follow_)
- line_ = new Spanner (get_property ("FollowThread"));
+ line_ = new Spanner (get_property ("VoiceFollower"));
else
line_ = new Spanner (get_property ("Glissando"));
IMPLEMENT_CTOR_CALLBACK (Pop_property_iterator);
IMPLEMENT_CTOR_CALLBACK (Push_property_iterator);
IMPLEMENT_CTOR_CALLBACK (Property_iterator);
-IMPLEMENT_CTOR_CALLBACK(Property_unset_iterator);
+IMPLEMENT_CTOR_CALLBACK (Property_unset_iterator);
return SCM_UNSPECIFIED;
}
+/*
+ make this function easily usable in C++
+ */
+
+String
+Rest::glyph_name (Grob * me, int balltype, String style)
+{
+ bool ledger_b =false;
+
+ if (balltype == 0 || balltype == 1)
+ {
+ Real rad = Staff_symbol_referencer::staff_radius (me) * 2.0;
+ Real pos = Staff_symbol_referencer::position_f (me);
+
+ /*
+ Figure out when the rest is far enough outside the staff. This
+ could bemore generic, but hey, we understand this even after
+ dinner.
+
+ */
+ ledger_b = ledger_b || (balltype == 0 && (pos >= rad +2 || pos < -rad ));
+ ledger_b = ledger_b || (balltype == 1 &&
+ (pos <= -rad -2 || pos > rad));
+ }
+
+ return ("rests-") + to_str (balltype)
+ + (ledger_b ? "o" : "") + style;
+}
+
+
+
MAKE_SCHEME_CALLBACK (Rest,brew_molecule,1);
Rest::brew_internal_molecule (SCM smob)
{
Grob* me = unsmob_grob (smob);
-
- bool ledger_b =false;
- SCM balltype = me->get_grob_property ("duration-log");
-
- if (balltype == gh_int2scm (0) || balltype == gh_int2scm (1))
- {
- int sz = Staff_symbol_referencer::line_count (me);
- Real dif = abs (Staff_symbol_referencer::position_f (me) - (2* gh_scm2int (balltype) - 1));
- ledger_b = dif > sz;
- }
+ SCM balltype_scm = me->get_grob_property ("duration-log");
+ if (!gh_number_p (balltype_scm))
+ return Molecule ().smobbed_copy ();
+ int balltype = gh_scm2int (balltype_scm);
String style;
SCM style_sym =me->get_grob_property ("style");
- if (gh_scm2int (balltype) >= 2 && gh_symbol_p (style_sym))
+ if (balltype >= 2 && gh_symbol_p (style_sym))
{
style = ly_scm2string (scm_symbol_to_string (style_sym));
}
- String idx = ("rests-") + to_str (gh_scm2int (balltype))
- + (ledger_b ? "o" : "") + style;
-
+ String idx = glyph_name (me, balltype, style);
return Font_interface::get_default_font (me)->find_by_name (idx).smobbed_copy ();
}
#include "lily-guile.hh"
+/*
+ TODO: mooie onschuldige test, en koel om allerleide dingen te kunnen zetten,
+ maar is dit nou wel handig voor gebruikert?
+
+ -X, of -fps is hendiger dan
+
+ -e "(set-lily-option 'midi-debug #t)'
+
+ [niet voor niets tiepo in 139 announs..]
+*/
+/* Write midi as formatted ascii stream? */
bool midi_debug_global_b;
}
-ADD_SCM_INIT_FUNC(init_functions_sopt, init_functions);
+ADD_SCM_INIT_FUNC (init_functions_sopt, init_functions);
Link_array<Translator_def> best_result;
for (int i=0; i < accepted_arr.size (); i++)
{
- bool found =false;
- if (scm_equal_p (accepted_arr[i]->type_name_, type_str) == SCM_BOOL_T)
- found = true;
- for (SCM s = accepted_arr[i]->type_aliases_; !found && gh_pair_p (s); s = gh_cdr (s))
- found = found || (gh_equal_p (gh_car (s), type_str));
-
- if (found)
+ /*
+ don't check aliases, because \context Staff should not create RhythmicStaff.
+ */
+ if (gh_equal_p (accepted_arr[i]->type_name_, type_str))
{
best_result.push (accepted_arr[i]);
return best_result;
soloText = #"Solo"
soloIIText = #"Solo II"
- aDueText = #"\\`a2"
+ aDueText = #"a2"
soloADue = ##t
splitInterval = #'(0 . 1)
changeMoment = #`(,(make-moment 0 0) . ,(make-moment 1 512))
# nfo: info from non-lily texi
$(outdir)/%.info: $(outdir)/%.nexi
- -$(MAKEINFO) --force --output=$(outdir)/$(*F).info $<
+ $(MAKEINFO) --output=$(outdir)/$(*F).info $<
# nfo: info from non-lily texi
#$(outdir)/%.nfo: $(outdir)/%.nexi
-# -$(MAKEINFO) --force --output=$(outdir)/$(*F).info $<
+# $(MAKEINFO) --output=$(outdir)/$(*F).info $<
# empty
TELY_FILES := $(wildcard *.tely)
+ITELY_FILES := $(wildcard *.itely)
+ITEXI_FILES := $(wildcard *.itexi)
+
+TEXINFO_SOURCES += $(TELY_FILES) $(ITELY_FILES) $(ITEXI_FILES)
+
EXTRA_DIST_FILES += $(TELY_FILES)
else:
% input feta-bolletjes;
% input feta-banier;
-% input feta-eindelijk;
- input feta-klef;
+ input feta-eindelijk;
+% input feta-klef;
% input feta-toevallig;
% input feta-schrift;
% input feta-haak;
f4-. r r2|
e4-. r r2|
R1 *4|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
bes2\p\< ( a|
)gis2. \!a4-.\f|
c2. c4\sf|
c4 r r2|
R1*5|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
a'2.\p\< ( bes4|
a g e)c|
d~|
d~|
d|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
bes2.\<( c4|
bes a fis)d|
)e2. f4\sf(|
)e4 r r2|
R1*9|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
fis2.\p\<(g4|
fis e cis)a|
r2 r4 d(|
)cis r r2|
r r4 r8 cis|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
d4\< r r2|
r r4 r8 d|
d4 r8 g f4 r8 c|
bes4 r r2|
R1*11|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
f'2.\p\<(g4|
f e cis)a|
c\f~|
c\p|
d\f~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
d\p\<~|
d~|
R1|
d4-. d-. r2|
d4-. d-. r2|
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
d4\> r e r|
R1|
d~|
d|
%a deux|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
bes'2.\<(c4|
bes a fis)d|
)e2. f4\sf(|
)e4 r r2|
R1*9|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
fis2.\p\<( g4|
fis e cis)a|
c1\f~|
c\p|
a1\f|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
d,\p\<~|
d~|
R1|
a4-. c-. r2|
bes4-. c-. r2|
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
bes4\> r a r|
R1|
c4 r4 r2|
c4 r4 r2|
R1|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
c'4.\< c8 bes4. bes8|
% copied 14 from cello
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
bes'4.\< bes8 as4. as8|
g4 \!g4-.\f r2|
)as,4 r r r8 as(|
)g4 r r r8 g(|
)d'4 r r r8 d(|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
)es4\< r r r8 es(|
)as,4 r r r8 as(|
)bes4 r r r8 bes(|
)as4 r r r8 as(|
)e4 r r r8 e(|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
)f4\< r r r8 f(|
)bes4 r r r8 bes(|
%70
\!)as2\ff g|
fis d'|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
g,4\p\< r r r8 g(|
)c4 r r r8 c(|
d4\pp r d r|
d r d r|
%80
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
d r d\< r|
d r d r|
%180
)e4 r r r8 e(|
)b'4 r r r8 b(|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
)c4\< r r r8 c(|
)f,4 r r r8 f(|
)g,4 r r r8 g(|
)f4 r r r8 f(|
)cis'4 r r r8 cis(|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
)d4\< r r r8 d(|
%205
g r g r|
g r g r|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
g r g\< r|
g r g r|
%250
)es4 r r r8 es(|
)b4 r r r8 b(|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
)c4\< r r r8 c(|
)f4 r r r8 f,(|
bes\f|
%260
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
as4.\p\< as'8 g4. g8|
f4. f8 es4. es8|
f,4-. g-. r2|
%290
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
as4\> r b r|
R1|
% Set value for engraver at thread level,
% to override the default that is set in ScoreContext
% for added engraver at Voice level
- devNullThread = #'()
+ %%% devNullThread = #'()
}
\translator {
\VoiceContext
% The staff combine part switches it on.
%% devNullThread = #'never
- \consists "Thread_devnull_engraver";
+ %%%\consists "Thread_devnull_engraver";
% While adds brings back rests of second voice,
% it prints some on the bar lines and it is messy
% because collisions don't work. Also, it increases
% memory usage from 91M RSS, to 116M.
- %\consists "Multi_measure_rest_engraver";
- %\consists "Bar_engraver";
+ \consists "Multi_measure_rest_engraver";
+ \consists "Bar_engraver";
}
\translator {
\HaraKiriStaffContext
\consists "Mark_engraver";
MultiMeasureRest \override #'minimum-width = #6
- %\remove "Multi_measure_rest_engraver";
- %\remove "Bar_engraver";
+ \remove "Multi_measure_rest_engraver";
+ \remove "Bar_engraver";
}
\translator {
\OrchestralScoreContext
soloIIText = #"II."
% By default, turn off the Thread_devnull_engraver
% at Voice level
- devNullThread = #'never
+ %%%devNullThread = #'never
TimeSignature \override #'style = #'C
BarNumber \override #'padding = #3
% Set value for engraver at thread level,
% to override the default that is set in ScoreContext
% for added engraver at Voice level
- devNullThread = #'()
+ %%%devNullThread = #'()
}
\translator {
\VoiceContext
% The staff combine part switches it on.
%% devNullThread = #'never
- \consists "Thread_devnull_engraver";
+ %%%\consists "Thread_devnull_engraver";
- %\consists "Multi_measure_rest_engraver";
- %\consists "Bar_engraver";
+ \consists "Multi_measure_rest_engraver";
+ \consists "Bar_engraver";
}
% We need the HaraKiri staff for Staff Combining,
% but we better remove the Instrument_name_engraver.
\consists "Mark_engraver";
\remove "Instrument_name_engraver";
- %\remove "Multi_measure_rest_engraver";
- %\remove "Bar_engraver";
+ \remove "Multi_measure_rest_engraver";
+ \remove "Bar_engraver";
}
\translator {
\OrchestralScoreContext
soloIIText = #"II."
% By default, turn off the Thread_devnull_engraver
% at Voice level
- devNullThread = #'never
+ %%%devNullThread = #'never
TimeSignature \override #'style = #'C
BarNumber \override #'padding = #3
r4 g-.\f r2|
R1*2|
% `a 2
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r8 f\p\< f2 e4|
r8 f f2 e4|
R1*17|
r4 r8 e,8 e4. e8|
r4 r8 e8 e4. e8|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r4 r8 e8\< e4. e8|
r4 r8 e8 e4. e8|
e~|
e~|
e~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
e\<~|
e~|
R1*2|
% `a 2
% urg, yes this is a-deux, but lily doesn't know about I. / a2 yet.
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r8 f'\p\< f2 e4|
r8 f f2 e4|
e~|
e~|
e~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
e\<~|
e~|
%a deux|
r4 r8 e,\p e4. e8|
r4 r8 e e4. e8|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r4 r8 e\< e4. e8|
r4 r8 e e4. e8|
e~|
e~|
e~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
e\<~|
e~|
R1*5|
r2 r4 g4-.\f|
R1*5|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
ges'2\p\< f2 ~|
f4 \!e-.\f r2|
R1|
f2\p()es|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
d1\<|
d|
%\property Staff.clefGlyph = #"clefs-C"
%\property Staff.clefPosition = #2
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
g'2.(as4 \p\<|
g f d)bes
c~|
c~|
c~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
c\<~|
c|
bes(a bes)g|
fis r8 a\pp a4. a8|
r4 r8 a a4. a8|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r4 r8 bes\< bes4. bes8|
r4 r8 bes bes4. bes8|
e4 r r2|
R1*3|
r4 r8 f' es4 r8 bes|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
c4\< r4 r2|
R1*2|
[g,: bes: c: des:][f,: bes: c: des:]|
[e,: g: bes: des:][c: e: g: c:]|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
c1\p\< ~|
c1~|
g~|
g~|
g|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
e''2.(\<f4|
e d b)g|
es(d es)c|
b r8 d\p d4. d8|
r4 r8 d d4. d8|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r4 r8 es\< es4. es8|
r4 r8 es es4. es8|
es d b)g|
g'2.(as4|
g2)f|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
es2.\<( f4|
es d b)g|
d\f|
es\p|
e\f|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
as,4.\p\< as8 g4. g8|
f4. f8 es4. es8|
R1|
g,4-. g-. r2|
as4-. bes-. r2|
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
c4\> r d r|
R1|
g4 r r2|
R1|
c4\pp r r2|
- \property Voice.decrescendoText = #"sempre pi\\`u piano"
+ \property Voice.decrescendoText = #'(lines " " "sempre pi\\`u piano" " ")
% urg, "" is assumed to be hairpin...
%\property Voice.decrescendoSpanner = #""
\property Voice.decrescendoSpanner = #'dashed-line
%\property Staff.clefPosition = #2
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
g''2.(as4 \p\<|
g f d)bes|
c~|
c~|
c~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
c\<~|
c|
\!c2\ff g'|
fis d|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
g,4 \p\< r r r8 g(|
)c4 r r r8 c(|
R1*2|
r4 r8 fis\pp fis4. fis8|
r4 r8 fis fis4. fis8|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r4 r8 g\< g4. g8|
r4 r8 g g4. g8|
e|
f|
g|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
as\<|
g|
g~|
g~|
g~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
g\<~|
g~|
a~|
a~|
a~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
a\<~|
a|
R1*3|
r4 r8 b'' b4. b8|
r4 r8 b b4. b8|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r4 r8 c\< c4. c8|
r4 r8 c c4. c8|
g\p|
bes\f|
%a deux|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
as4.\p\< as8 g4. g8|
f4. f8 es4. es8|
R1|
es,4-. e-. r2|
f4-. g-. r2|
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
as4\> r b r|
R1|
g4-. r r2|
b,4-. r r2|
R1 *4|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r2 g'\p\< (|
)fis2. \!g4-.\f|
R1*5|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r2 f\p\< ~|
f4 \!e-.\f r2|
R1|
f2\p()es|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
d1\<|
d1|
f2. ges4\sf|
f4 r r2|
R1*9|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
g2.\p\<(f4|
as g d)bes
c~|
c~|
c~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
c\<~|
c~|
\!c2\ff es|
d1~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
d\p\<~|
d~|
\!fis\pp r r2|
r2 r4 r8 a|
bes4 r r2|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r r4 r8 bes\<|
c4 r r r8 c|
r4 r8 f' es4 r8 bes|
c4 r r2|
R1*2|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r4 r8 ges'\< f4 r8 c|
\!des4 r r2|
)d2. es4\sf(|
)d r r2|
R1*9|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
e2.\p\<(f4|
e d b )g|
\!g2\ff bes|
a1~a4\p r r2|
R1*3|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
a1\<~|
a|
c r8 f8 es4 r8 bes|
as4-. des4-. r2|
R1*11|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
es2.\p\<(f4|
es d b)g|
R1|
c4-. c4-. r2|
c4-. c4-. r2|
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
c4\> r d r|
R1|
bes\f~|
bes\p|
c1\f~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
c\p\<~|
c~|
R1|
c4-. g'-. r2|
as4-. e-. r2|
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
f4\> r f r|
R1|
g4-. r r2|
g4-. r r2|
R1 *4|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
as2\p\< ( g|
)fis2. \!g4-.\f|
R1*5|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
ges2\p\< f ~|
f4 \!e\f r2|
R1|
f2\p()es|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
d1\<|
d|
f2. ges4|
f4 r r2|
R1*9|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
g2.\p\<( as4|
g f d)bes|
c bes|
as4\p r r2|
R1*3|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
as2.\p\<( bes4|
as g e)c|
\!c'2\ff es,|
d1~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
d\p\< ~|
d~|
fis\pp r r2|
r r4 r8 fis'|
g4 r r2|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r r4 r8 g\<|
a4 r r r8 a|
des4 r r r8 c|
bes4 r8 es f4 r8 f|
g4 r8 g e4 r 8 e|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
c'1\p\< ~|
c~|
)g2. fis4\sf(|
)g4 r r2|
R1*5|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
e2.\p\< (f4|
e d b)g|
a~|
a~|
a|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
f2.\<( g4|
f e cis)a|
es(d es)c|
b r r2|
r r4 r8 d|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
es4\< r r2|
r r4 r8 es|
es d b)g|
g'2.(as4|
g2)f|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
es2.\<( f4|
es d b)g|
f\f|
g\p|
g\f|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
c\p\<~|
c~|
R1|
c4-. g-. r2|
as4-. e-. r2|
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
f4\> r f r|
R1|
des4 r r r8 c|
bes4 r8 bes bes4 r8 bes|
bes4 r8 bes bes4 r8 bes|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
c1\p\< ~|
c~|
d\f|
es\p|
e\f|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
c\p\< ~|
c~|
R1|
c4-. c-. r2|
c4-. c-. r2|
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
c4\> r d r|
R1|
R1*6|
r4 c-.\f r2|
R1*2|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r2 c4-.\p\< r|
r2 c4-. r|
R1|
c4-. c-. r2|
c4-. c-. r2|
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
c4\> r g r|
R1|
R1*6|
r4 c-.\f r2|
R1*2|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r2 c4\p\< r|
r2 c4 r|
c4 r r2|
R1*18|
e1\f(|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
)c\p\< ~|
c~|
R1|
c4-. c-. r2|
c4-. c-. r2|
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
c4\> r g r|
R1|
R1*6|
r4 c-.\f r2|
R1*2|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r2 c4\p\< r|
r2 c4 r|
c4 r r2|
R1*18|
c1\f~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
c\p\< ~|
c~|
R1|
c,4-. c-. r2|
c4-. c-. r2|
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
c4\> r g r|
R1|
[c,8-. es-.] [es()d] [d-. g-.] g4-"ten."|
[c,8-. es-.] [es()d] [d-. as'-.] [as()g]|
[g8-. c-.] [c()b] [b-. f'-.] [f()es]|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
es4.\< es8 d4. d8|
%20
r4 [des8\p()c][c-. ges'-.][ges()f]|
%25
[f-. bes-.][bes()a][a-. es'-.][es()des]|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
des4.\< des8 c4. c8|
bes4 \!bes4-.\f r2|
R1
% same rhythm as violins...
r8 c-.\p c4. c8-. c4~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[c8\< c-.]c2.~|
%30
)g4 r r r8 g(|
%55
)d4 r r r8 d(|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
)es4 r\< r r8 es(|
)as4 r r r8 as(|
)bes4 r r r8 bes(|
)as4 r r r8 as(|
)e4 r r r8 e(|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
)f4\< r r r8 f(|
)bes4 r r r8 bes|
%70
\!c2:\ff bes:|
a: fis:|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
g4\p\< r r r8 g(|
)c,4 r r r8 c|
[d,-.\pp d'-.] es4. es8-. d4 ~|
[d8 d-.] es4. es8-. d4 ~|
%80
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[d8\< d-.] es4. es8-. d4 ~|
[d8 d-.] es4. es8-. d4 ~|
[e g b c][des c g e]|
[f as c des][c des as f]|
[g bes d es][d es bes g]|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[as\< c d es][f es c as]|
%131
[g,: bes: c: des:][f,: bes: c: des:]|
[e,: g: bes: des:][c,: e: g: c:]|
%shared with cello from here on
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[f,8\p\< as c des][es, g b c]|
[des, f a bes][c, es g as]|
%180
)e4 r r r8 e8(|
)b'4 r r r8 b8(|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
)c4 r\< r r8 c,8(|
% copied
d,4\p r r r8 d8(|
)g4 r r r8 g8(|
)f4 r r r8 f8(|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
)cis4\< r r r8 cis8(|
)d4 r r r8 d8(|
r[c\p(as)c]r[c(a)c]|
[b-. g'-.] as4. as8-. g4 ~|
[g8 g-.] as4. as8-. g4 ~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[g8 g-.\<] as4. as8-. g4 ~|
[g8 g-.] as4. as8-. g4 ~|
%240
f,4 r r2|
R1*11|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
c'4\p\< r r r8 c8(|
)f4 r r r8 f,8(|
e'2:16\f e:|
%260
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[as,8\p\< f']f4. es8 es4 ~|
[es8 as]as4. g8 g4 ~|
es4-. e-. r2|
f4-. g-. r2|
%290
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
as4\> r g r|
R1|
[c,8-. es-.] [es()d] [d-. g-.] g4-"ten."|
[c,8-. es-.] [es()d] [d-. as'-.] [as()g]|
[g8-. c-.] [c()b] [b-. f'-.] [f()es]|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
es4.\< es8 d4. d8|
%20
r4 [des8\p()c][c-. ges'-.][ges()f]|
%25
[f-. bes-.][bes()a][a-. es'-.][es()des]|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
des4.\< des8 c4. c8|
bes4 \!bes4-.\f r2|
R1
% same rhythm as violins...
r8 c,-.\p c4. c8-. c4~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[c8\< c-.]c2.~|
%30
)g4 r r r8 g(|
%55
)d4 r r r8 d(|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
)es4 r\< r r8 es(|
)as4 r r r8 as(|
)bes4 r r r8 bes(|
)as4 r r r8 as(|
)e4 r r r8 e(|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
)f4\< r r r8 f(|
)bes4 r r r8 bes|
%70
\!as2:\ff g:|
fis: d:|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
g4\p\< r r r8 g(|
)c,4 r r r8 c|
[d-.\pp d'-.] es4. es8-. d4 ~|
[d8 d-.] es4. es8-. d4 ~|
%80
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[d8\< d-.] es4. es8-. d4 ~|
[d8 d-.] es4. es8-. d4 ~|
[e g b c][des c g e]|
[f as c des][c des as f]|
[g bes d es][d es bes g]|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[as\< c d es][f es c as]|
%131
[g,: bes: c: des:][f,: bes: c: des:]|
[e,: g: bes: des:][c,: e: g: c:]|
%shared with cello from here on
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[f,8\p\< as c des][es, g b c]|
[des, f a bes][c, es g as]|
%180
)e4 r r r8 e8(|
)b'4 r r r8 b8(|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
)c4 r\< r r8 c,8(|
% copied
d,4\p r r r8 d8(|
)g4 r r r8 g8(|
)f4 r r r8 f8(|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
)cis4\< r r r8 cis8(|
)d4 r r r8 d8(|
r[as\p(d,)as']r[a(es)a]|
[g-. g'-.] as4. as8-. g4 ~|
[g8 g-.] as4. as8-. g4 ~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[g8 g-.\<] as4. as8-. g4 ~|
[g8 g-.] as4. as8-. g4 ~|
%240
f,4 r r2|
R1*11|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
c'4\p\< r r r8 c8(|
)f4 r r r8 f,8(|
bes2:16\f bes:|
%260
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[as8\p\< f']f4. es8 es4 ~|
[es8 as]as4. g8 g4 ~|
es4-. e-. r2|
f4-. g-. r2|
%290
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
as4\> r g r|
R1|
[c,8-. es-.] [es()d] [d-. g-.] g4-"ten."|
[c,8-. es-.] [es()d] [d-. as'-.] [as()g]|
[g8-. c-.] [c()b] [b-. f'-.] [f()es]|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[es8-.\< as-.] as4. g8-. g4 ~|
%20
[bes,8\p-. des-.][des()c][c-. ges'-.][ges()f]|
%25
[f-. bes-.][bes()a][a-. es'-.][es()des]|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[des-.\< ges-.] ges4. f8-. f4~|
[f8 e-.]\!e4-.\f r2|
R1|
%29
r8 f-.\p f4. es8-. es4~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[es8\< d-.]d2.~|
[d8 d-.]d2.~|
%55
bes2 )as|
- \property Voice.crescendoText = #"cresc." % poco a poco
+ \property Voice.crescendoText = #'(lines " " "cresc." " ") % poco a poco
\property Voice.crescendoSpanner = #'dashed-line
g4 <bes2\< bes'> <bes4 bes' > ~|
<bes bes'> <bes2 bes'> <bes4 bes' > ~|
c'2.( des4|
c2 ) bes|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[as16\< c c c][c c c c] c2:16|
c: c:|
%70
\!c:\ff es:|
d: c:|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
bes2.\p\<( c4|
bes a fis ) d|
bes4 r r2|
%130
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r4 r8 f'8\< es4 r8 c|
bes4 r8 f' es4 r8 bes|
des4 r8 ges f4 r8 c|
bes4 r8 e f4 r8 bes,|
bes4 r8 g' e4 r8 bes'|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
as4\p r8 des\< c4 r8 g|
%180
g'2.( a4|
g2 )f|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
e4 g2\< g4 ~|
f e cis ) a|
a'2.( bes4|
a2 ) g|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[f16\< a a a][a a a a]a2:16|
r[c(as)c]r[c(a)c]|
[b-. d-.]d4. d8-. d4 ~|
[d8-. d-.]d4. d8-. d4 ~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[d8-. es-.]es4.\< es8-. es4 ~|
[es8-. es-.]es4. es8-. es4 ~|
%250
g4 g2 g4 ~|
g4 g2 g4 ~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[g16\< g g g][g g g g]g2:16|
g: g:|
bes:\p bes:|
c:\f c:|
%260
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r8 c\< c4. c8 c4 ~|
[c8 c] c4. c8 c4 ~|
as4-. e-. r2|
%290
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
f4\> r d r|
R1|
%295
R1|
- \property Voice.decrescendoText = #"sempre pi\\`u piano"
+ \property Voice.decrescendoText = #'(lines " " "sempre pi\\`u piano" " ")
% urg, "" is assumed to be hairpin...
%\property Voice.decrescendoSpanner = #""
\property Voice.decrescendoSpanner = #'dashed-line
<g4-. d'-. b'-.> r r2|
R1 *3|
r2 [b8-.\p f'-.] [f()es]|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[es8-. as-.] as4.\< g8-. g4 ~|
%20
r2
%25
[a,8-.\p es'-.][es()des]|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[des-.\< ges-.]ges4. f8-. f4~|
[f8 e-.]\!e4-.\f r2|
%29
%copied... \transpose c \violino-1(29, 39)
r8 f-.\p f4. es8-. es4~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[es8\< d-.]d2.~|
[d8 d-.]d2.~|
%50
bes4 r r2|
R1*5|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
g'2.\p\<( as4|
g f d ) bes|
c'2.( des4|
c2 ) bes|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[as16\< c c c][c c c c] c2:16|
c: c:|
%70
\!c:\ff es:|
d: c:|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
bes2.\p\<( c4|
bes a fis ) d|
des4 r8 ges f4 r8 c|
bes4 r8 e f4 r8 bes,|
bes4 r8 g' e4 r8 bes'|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
as4\p r8 des\< c4 r8 g|
%180
g'2.( a4|
g2 )f|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
e4 g2\< g4 ~|
g g2 g4 ~|
f e cis ) a|
a'2.( bes4|
a2 ) g|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[f16\< a a a][a a a a]a2:16|
r[as(d,)as']r[a(es)a]|
[g-. b-.]b4. b8-. b4 ~|
[b8-. b-.]b4. b8-. b4 ~|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[b8-. c-.]c4.\< c8-. c4 ~|
[c8-. c-.]c4. c8-. c4 ~|
%250
[g8( es' c es][g es c )g~]|
[g8( f' d f][g f d )g,~]|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[g8(\< es' c es][g es c )g~]|
[g8( d' b d][g d b )g~]|
%copied viola-1(260, 273)
%260
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[f8\p\< f']f4. es8 es4 ~|
[es8 as]as4. g8 g4 ~|
as4-. <c,-. e-.> r2|
%290
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
<c4 f\>> r g' r|
R1|
c4 r4 r2|
c4 r4 r2|
R1|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
c'4.\< c8 bes4. bes8|
%25
[f-. bes-.][bes()a][a-. es'-.][es()des]|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
bes4.\< bes8 as4. as8|
g4 \!g4-.\f r2|
%55
[bes(as'f as][bes as f)bes,~]|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[bes\<(g'es g][bes g es)bes~]|
[bes(f'd f][bes f d)bes~]|
%70
as2\ff g|
fis d|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[g8\p\<(bes' g bes][d bes g)d~]|
[d8(a' fis a][d a fis)d]|
r4 r8 d d4. d8|
%80
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
r4 r8 d d4.\< d8|
r4 r8 d d4. d8|
[e g b c][des c g e]|
[f as c des][c des as f]|
[g bes d es][d es bes g]|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[as\< c d es][f es c as]|
[g,: bes: c: des:][f,: bes: c: des:]|
[e,: g: bes: des:][c: e: g: c:]|
%shared with cello from here on
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[f,8\p\< as c des][es, g b c]|
[des, f a bes][c, es g as]|
%180
[g(e' c d][g e c )g~]|
[g(f' d f][g f d )g,~]|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[g\<(e' c d][g e c )g~]|
[g(d' b d][g d b )g~]|
[a( g' e g][a g e )a,~]|
%195
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
[a8\<( f' d f][a f d )a~]|
[a( e' cis e][a e cis )g]|
f r fis r|
g r g r|
g r g r|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
g r g\< r|
%250
)es4 r r r8 es(|
)b4 r r r8 b(|
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
)c4\< r r r8 c(|
)f4 r r r8 f,(|
bes\f|
%260
- \property Voice.crescendoText = #"cresc."
+ \property Voice.crescendoText = #'(lines " " "cresc." " ")
\property Voice.crescendoSpanner = #'dashed-line
as4.\p\< as'8 g4. g8|
f4. f8 es4. es8|
f,4-. g-. r2|
%290
- \property Voice.decrescendoText = #"dim."
+ \property Voice.decrescendoText = #'(lines " " "dim." " ")
\property Voice.decrescendoSpanner = #'dashed-line
as4\> r b r|
R1|
c4 r r2|
[c8-.-"arco" es-.][es()d][d-. as'-.][as()g]|
R1
- \property Voice.decrescendoText = #"sempre pi\\`u piano"
+ \property Voice.decrescendoText = #'(lines " " "sempre pi\\`u piano" " ")
% urg, "" is assumed to be hairpin...
%\property Voice.decrescendoSpanner = #""
\property Voice.decrescendoSpanner = #'dashed-line
"\n@dircategory GNU music project"
"\n@direntry"
;; prepend GNU for dir, must be unique
- "\n* GNU " name " (" file-name "). " name "."
+ "\n* GNU " name ": (" file-name "). " name "."
"\n@end direntry"
(node "Top") ",(lilypond)Index,(lilypond)Development," top
"\n@top"
(MultiMeasureRest . (
(spacing-procedure . ,Multi_measure_rest::set_spacing_rods)
(molecule-callback . ,Multi_measure_rest::brew_molecule)
+ (Y-offset-callbacks . (,Staff_symbol_referencer::callback))
(staff-position . 0)
(expand-limit . 10)
(padding . 2.0) ; staffspace
(meta . ,(grob-description "Glissando"
line-spanner-interface))
))
- (FollowThread . (
+ (VoiceFollower . (
(type . line)
(gap . 0.5)
(breakable . #t)
(X-extent-callback . #f)
(Y-extent-callback . #f)
(molecule-callback . ,Line_spanner::brew_molecule)
- (meta . ,(grob-description "FollowThread"
+ (meta . ,(grob-description "VoiceFollower"
line-spanner-interface))
))
"A2_engraver"
"Part combine engraver for orchestral scores.
-The markings @emph{@`{a}2}, @emph{Solo} and @emph{Solo II}, are
+The markings @emph{a2}, @emph{Solo} and @emph{Solo II}, are
created by this engraver. It also acts upon instructions of the part
combiner. Another thing that the this engraver, is forcing of stem,
slur and tie directions, always when both threads are not identical;
arpeggios that cross staffs.
")
(translator-property-description 'createKeyOnClefChange boolean? "Print a key signature whenever the clef is changed.")
-(translator-property-description 'crescendoText string? "Text to print at start of non-hairpin crecscendo, ie: @samp{cresc.}")
+(translator-property-description 'crescendoText markup? "Text to print at start of non-hairpin crecscendo, ie: @samp{cresc.}")
(translator-property-description 'crescendoSpanner symbol? "Type of spanner to be used for crescendi. One of: @samp{hairpin}, @samp{line}, @samp{dashed-line}, @samp{dotted-line}. If unset, hairpin type is used.")
-(translator-property-description 'decrescendoText string? "Text to print at start of non-hairpin decrecscendo, ie: @samp{dim.}")
+(translator-property-description 'decrescendoText markup? "Text to print at start of non-hairpin decrecscendo, ie: @samp{dim.}")
(translator-property-description 'currentBarNumber integer? "Contains the current barnumber. This property is incremented at
every barline.
")
conversions.append (((1,3,138), conv, 'point-and-click argument changed to procedure.'))
+if 1:
+ def conv (str):
+ str = re.sub ('followThread', 'followVoice', str)
+ str = re.sub ('FollowThread', 'VoiceFollower', str)
+ return str
+
+ conversions.append (((1,3,138), conv, 'followThread -> followVoice.'))
+
############################
is_fragment = 1
if 'fragment' in opts:
is_fragment = 1
- if 'nonfragment' in opts:
+ if 'nofragment' in opts:
is_fragment = 0
if is_fragment and not 'multiline' in opts:
deep-footify:
$(deep-footify) $(sort $(wildcard $(outdir)/*/*.html))
+# why isn't this in texinfo-targets?
INFO_INSTALL_FILES = $(wildcard $(addsuffix *, $(INFO_FILES)))
+# should we call install-info?
INFOINSTALL=$(MAKE) INSTALLATION_OUT_DIR=$(infodir) depth=$(depth) INSTALLATION_OUT_FILES="$(INFO_INSTALL_FILES)" -f $(stepdir)/install-out.sub.make
local-install: install-info
.SUFFIXES: .html .info .texi .texinfo
$(outdir)/%.info: $(outdir)/%.texi
- -$(MAKEINFO) --force -I $(outdir) --output=$@ $<
+ $(MAKEINFO) -I $(outdir) --output=$@ $<
$(outdir)/%.html: $(outdir)/%.texi
- -$(MAKEINFO) --force -I $(outdir) --output=$@ --html --no-split --no-headers $<
+ $(MAKEINFO) -I $(outdir) --output=$@ --html --no-split --no-headers $<
# we want footers even if website builds (or is built) partly
$(footify) $@
# Generic rule not possible?
$(outdir)/%/%.html: $(outdir)/%.texi
- -$(MAKEINFO) --force --output=$@ --html $<
+ $(MAKEINFO) --output=$@ --html $<
# we want footers even if website builds (or is built) partly
$(deep-footify) $(sort $(wildcard $(outdir)/$(*F)/*.html))
cd $(outdir); texi2dvi --batch $(<F)
$(outdir)/%.txt: $(outdir)/%.texi
- $(MAKEINFO) --force -I $(pwd) -I $(outdir) --no-split --no-headers --output $@ $<
+ $(MAKEINFO) -I $(pwd) -I $(outdir) --no-split --no-headers --output $@ $<
$(outdir)/%.texi: %.texi
rm -f $@
local-doc: $(OUTTXT_FILES)
+.PHONY : texinfo-all-menus-update
+
+TEXINFO_ALL_MENUS_UPDATE_EL ='\
+ (let ((error nil)\
+ (version-control nil))\
+ (load-library "texinfo")\
+ (texinfo-mode)\
+ (texinfo-all-menus-update)\
+ (if (buffer-modified-p (current-buffer))\
+ (save-buffer))))\
+'
+
+check-info: texinfo-all-menus-update
+
+# buffer-modified-p is ALWAYS true, even if there were no actual
+# changes, so we try setting origal (timestamp) back if there
+# were no changes.
+#
+# ugh: emacs20.7 batch mode is not really batch:
+#
+# answer `echo q' to the question:
+# FILE locked by EMAIL (pid PID): (s, q, p, ?)?
+#
+texinfo-all-menus-update:
+ -$(foreach i, $(TEXINFO_SOURCES), echo q | emacs --batch --no-site-file $(i) --eval $(TEXINFO_ALL_MENUS_UPDATE_EL); )
+ $(foreach i, $(sort $(TEXINFO_SOURCES)), if diff -u $(i)~ $(i); then mv $(i)~ $(i); fi && ) true
ALL_SOURCES += $(TEXI_FILES)
+TEXINFO_SOURCES = $(TEXI_FILES)
+
OUTTXT_FILES += $(addprefix $(outdir)/,$(TEXI_FILES:.texi=.txt))