From: Joe Neeman Date: Sun, 3 May 2009 04:56:30 +0000 (-0700) Subject: Merge commit 'origin' X-Git-Tag: release/2.13.1-1~7^2~11 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=cfc4cbf34569db6a6c8968694f86e36b206a9d05;hp=598ae0a0f49e834d5af8825f7eef8044fc95a5ec;p=lilypond.git Merge commit 'origin' --- diff --git a/.gitignore b/.gitignore index 63fb92cb71..ab855da844 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,7 @@ ?.* AUTHORS.txt INSTALL.txt +README.txt TAGS \#* \#.* diff --git a/Documentation/GNUmakefile b/Documentation/GNUmakefile index 747a8e304e..eaed920a9a 100644 --- a/Documentation/GNUmakefile +++ b/Documentation/GNUmakefile @@ -7,7 +7,6 @@ STEPMAKE_TEMPLATES=documentation texinfo tex LOCALSTEPMAKE_TEMPLATES=lilypond ly LILYPOND_BOOK_FLAGS=--extra-options '-e "(ly:set-option (quote internal-type-checking) \#t)"' README_TOP_FILES= DEDICATION THANKS -EXTRA_DIST_FILES= TRANSLATION include $(depth)/make/stepmake.make @@ -17,12 +16,14 @@ OUT_CSS_FILES= $(CSS_FILES:%.css=$(outdir)/%.css) default: local-doc +ifeq ($(out),www) local-WWW-2: txt-to-html $(OUT_HTML_FILES) local-WWW-clean: deep-WWW-clean deep-WWW-clean: rm -rf $(outdir)/wiki-dump +endif OUT_TXT_FILES = $(addprefix $(outdir)/, $(addsuffix .txt, $(README_TOP_FILES))) diff --git a/Documentation/bibliography/GNUmakefile b/Documentation/bibliography/GNUmakefile index 798dad58a6..06055b5808 100644 --- a/Documentation/bibliography/GNUmakefile +++ b/Documentation/bibliography/GNUmakefile @@ -15,13 +15,14 @@ dvi: $(DVI_FILES) $(OUT_BIB_FILES) ps: $(PS_FILES) -# urg default: GENHTMLS = engraving colorado computer-notation OUTGENHTMLS = $(addprefix $(outdir)/, $(GENHTMLS:%=%.html)) +ifeq ($(out),www) local-WWW-2: $(addprefix $(outdir)/, $(BIB_FILES:.bib=.html) index.html) +endif $(outdir)/%.bib: %.bib ln -f $< $@ diff --git a/Documentation/devel/GNUmakefile b/Documentation/devel/GNUmakefile index 640afbac98..1096add366 100644 --- a/Documentation/devel/GNUmakefile +++ b/Documentation/devel/GNUmakefile @@ -28,8 +28,10 @@ $(outdir)/%/source: mkdir -p $(dir $@) ln -sf $(depth)/.. $(@) +ifeq ($(out),www) local-WWW-1: $(PDF_FILES) local-WWW-2: $(HTML_FILES) $(OUT_HTML_FILES) $(source-links) +endif $(PDF_FILES) $(HTML_FILES): $(ITEXI_FILES) diff --git a/Documentation/devel/doc-work.itexi b/Documentation/devel/doc-work.itexi index 931f5874f4..b6bbe63d3c 100644 --- a/Documentation/devel/doc-work.itexi +++ b/Documentation/devel/doc-work.itexi @@ -877,7 +877,7 @@ lilypond examples. Making easily-understandable examples is much harder than it looks. -@subsubheading TWEAKS +@subsubheading Tweaks In general, any \set or \override commands should go in the @qq{select snippets} section, which means that they should go in @@ -915,6 +915,10 @@ or upgrading tweaks is creating tweaks to deal with known issues. It would be ideal if every significant known issue had a workaround to avoid the difficulty. +@seealso + +@ref{Adding and editing snippets}. + @node Updating docs with convert-ly @section Updating doc with @command{convert-ly} diff --git a/Documentation/devel/lsr-work.itexi b/Documentation/devel/lsr-work.itexi index 2fcbb56515..8f38ec2899 100644 --- a/Documentation/devel/lsr-work.itexi +++ b/Documentation/devel/lsr-work.itexi @@ -18,25 +18,64 @@ The @uref{http://lsr.dsi.unimi.it/, LilyPond Snippet Repository (LSR)} is a collection of lilypond examples. A subset of these examples are automatically imported into the documentation, making it easy -for users to contribute to the docs without learning git and -texinfo. +for users to contribute to the docs without learning Git and +Texinfo. @node Adding and editing snippets @section Adding and editing snippets -When you create (or find!) a nice snippet, please add it to LSR. Go -to @uref{http://lsr.dsi.unimi.it/, LSR} and log in (if you haven't -already, create an account). Follow the instructions on the website. +@subheading General guidelines + +When you create (or find!) a nice snippet, if it supported by LilyPond +version running on LSR, please add it to LSR. Go to +@uref{http://lsr.dsi.unimi.it/, LSR} and log in -- if you haven't +already, create an account. Follow the instructions on the website. These instructions also explain how to modify existing snippets. -If you think the snippet is particularly informative and you think -it should be included in the documentation, tag it with @qq{docs} -and one or more other categories. +If you think the snippet is particularly informative and you think it +should be included in the documentation, tag it with @qq{docs} and one +or more other categories, or ask somebody who has editing permissions to +do it on the development list. Please make sure that the lilypond code follows the guidelines in @ref{LilyPond formatting}. +If a new snippet created for documentation purposes compiles with +LilyPond version currently on LSR, it should be added to LSR, and a +reference to the snippet should be added to the documentation. + +If the new snippet uses new features that are not available in the +current LSR version, the snippet should be added to @file{input/new} and +a reference should be added to the manual. + +Snippets created or updated in @file{input/new} should be copied to +@file{input/lsr} by invoking at top of the source tree + +@example +scripts/auxiliar/makelsr.py +@end example + +Be sure that @command{make web} runs successfully before submitting a +patch, to prevent breaking compilation. + +@subheading Formatting snippets in @file{input/new} + +When adding a file to this directory, please start the file with + +@example +\version "2.x.y" +\header @{ + lsrtags = "rhythms,expressive-marks" % use existing LSR tags other than +% 'docs'; see makelsr.py for the list of tags used to sort snippets. + texidoc = "This code demonstrates ..." % this will be formated by Texinfo + doctitle = "Snippet title" % please put this at the end so that + the '% begin verbatim' mark is added correctly by makelsr.py. +@} +@end example + +and name the file @file{snippet-title.ly}. + @node Approving snippets @section Approving snippets @@ -106,6 +145,10 @@ Do a git add / commit / push. @end enumerate +Note that whenever there is one snippet from @file{input/new} and the +other from LSR with the same file name, the one from @file{input/new} +will be copied by @command{makelsr.py}. + @node Fixing snippets in LilyPond sources @section Fixing snippets in LilyPond sources diff --git a/Documentation/pictures/GNUmakefile b/Documentation/pictures/GNUmakefile index 35ef738ae4..4a8f2eb72f 100644 --- a/Documentation/pictures/GNUmakefile +++ b/Documentation/pictures/GNUmakefile @@ -21,4 +21,7 @@ endif # PLATFORM_WINDOWS local-dist: $(icon) xgifs: $(OUTGIF_FILES) pngs: $(OUTPNG_FILES) + +ifeq ($(out),www) local-WWW-1: $(OUTPNG_FILES) +endif diff --git a/Documentation/topdocs/GNUmakefile b/Documentation/topdocs/GNUmakefile index 0f81c76f11..231598d8f4 100644 --- a/Documentation/topdocs/GNUmakefile +++ b/Documentation/topdocs/GNUmakefile @@ -11,6 +11,8 @@ OUTTXT_FILES= $(outdir)/NEWS.txt include $(depth)/make/stepmake.make +ifeq ($(out),www) local-WWW-1: $(OUT_TEXI_FILES) +endif .SECONDARY: diff --git a/Documentation/topdocs/NEWS.tely b/Documentation/topdocs/NEWS.tely index cc07cd31a4..0b4bbd4846 100644 --- a/Documentation/topdocs/NEWS.tely +++ b/Documentation/topdocs/NEWS.tely @@ -62,6 +62,21 @@ which scares away people. @end ignore +@item Dashed and dotted slurs, phrasing slurs, and ties +have been made variable thickness, and +partially dashed slurs are now available: +@lilypond[quote] +\relative c'' { + \slurDashed + c4( d e f) | + \slurDotted + g4( f e d) | + \slurHalfDashed + c4( d e f) +} +@end lilypond + + @item An eyeglasses markup was added, incidating strongly to look at the conductor for instructions: @lilypond[quote] diff --git a/Documentation/user/GNUmakefile b/Documentation/user/GNUmakefile index 6e0dbe3a56..60e16bbd12 100644 --- a/Documentation/user/GNUmakefile +++ b/Documentation/user/GNUmakefile @@ -122,9 +122,11 @@ $(outdir)/%/source: mkdir -p $(dir $@) ln -sf $(depth)/.. $(@) +ifeq ($(out),www) local-WWW-1: $(MASTER_TEXI_FILES) $(PDF_FILES) info local-WWW-2: $(HTML_FILES) $(DEEP_HTML_FILES) $(source-links) +endif $(outdir)/%.bib: %.bib ln -f $< $@ @@ -135,9 +137,14 @@ $(top-build-dir)/mf/$(outconfbase)/feta16list.ly: $(outdir)/lilypond.texi $(outdir)/lilypond-program.texi $(outdir)/lilypond-learning.texi $(outdir)/music-glossary.texi: $(ITELY_FILES) $(ITEXI_FILES) +$(outdir)/lilypond.texi: $(outdir)/ly-grammar.txt # Rules for the automatically generated documentation +$(outdir)/ly-grammar.txt: $(top-src-dir)/lily/parser.yy + cd $(outdir) && $(BISON) -v $< + $(auxscript-dir)/yyout2grammar.py $(outdir)/parser.output $@ + # There used to be a dependency on a dummy target, to force a rebuild # of lilypond-internals every time. however, this triggers # compilation during install, which is a bad thing (tm). diff --git a/Documentation/user/compile.itely b/Documentation/user/compile.itely index 50fb336383..44a9600638 100644 --- a/Documentation/user/compile.itely +++ b/Documentation/user/compile.itely @@ -224,7 +224,7 @@ LilyPond binary. The documentation is built by issuing @example -make web +make doc @end example After compilation, the HTML documentation tree is available in @@ -234,7 +234,7 @@ The HTML, PDF and if available Info files can be installed into the standard documentation path by issuing @example -make web-install +make install-doc @end example @noindent @@ -253,14 +253,14 @@ make info Separate installation of this documentation is done by issuing @example -make info-install +make install-info @end example @noindent -Note that to get the images in Info documentation, @code{web-install} +Note that to get the images in Info documentation, @code{install-doc} target creates symbolic links to HTML and PDF installed documentation tree in @file{@var{prefix}/share/info}, in order to save disk space, -whereas @code{info-install} copies images in +whereas @code{install-info} copies images in @file{@var{prefix}/share/info} subdirectories. It is possible to build a documentation tree in @@ -269,7 +269,7 @@ used on a website with content negotiation for automatic language selection; this can be achieved by issuing @example -make WEB_TARGETS=online web +make WEB_TARGETS=online doc @end example @noindent @@ -344,7 +344,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=/path/to/bin/lilypond web +nice make LILYPOND_EXTERNAL_BINARY=/path/to/bin/lilypond doc @end example Please note that this may break sometimes -- for example, if a new diff --git a/Documentation/user/expressive.itely b/Documentation/user/expressive.itely index 998461f47c..129edfa528 100644 --- a/Documentation/user/expressive.itely +++ b/Documentation/user/expressive.itely @@ -545,16 +545,13 @@ slur can overlap a slur. This permits two slurs to be printed at once. For details, see @ref{Phrasing slurs}. @cindex slur style -@cindex solid slur -@cindex dotted slur -@cindex dashed slur @cindex slur, solid @cindex slur, dotted @cindex slur, dashed @cindex solid slur @cindex dotted slur @cindex dashed slur -@cindex sytle, slur +@cindex style, slur @funindex \slurDashed @funindex slurDashed @funindex \slurDotted @@ -579,12 +576,14 @@ g4( e c2) @funindex slurHalfDashed @funindex \slurHalfSolid @funindex slurHalfSolid +@cindex slur, half dashed and half solid Slurs can also be made half-dashed (the first half dashed, the second half solid) or half-solid (the first half solid, the second half dashed): @lilypond[verbatim,quote,relative=1] +c4( e g2) \slurHalfDashed g4( e c2) \slurHalfSolid @@ -593,6 +592,22 @@ c4( e g2) g4( e c2) @end lilypond +@funindex \slurDashPattern +@funindex slurDashPattern +@cindex slur, defining dash patterns + +Custom dash patterns for slurs can be defined: + +@lilypond[verbatim,quote,relative=1] +c4( e g2) +\slurDashPattern #0.7 #0.75 +g4( e c2) +\slurDashPattern #0.5 #2.0 +c4( e g2) +\slurSolid +g4( e c2) +@end lilypond + @funindex \slurUp @@ -605,8 +620,9 @@ g4( e c2) @code{\slurNeutral}, @code{\slurDashed}, @code{\slurDotted}, -@code{\slurHaldDashed}, +@code{\slurHalfDashed}, @code{\slurHalfSolid}, +@code{\slurDashPattern}, @code{\slurSolid}. @endpredefined @@ -665,12 +681,6 @@ e2) d\) @funindex phrasingSlurDown @funindex \phrasingSlurNeutral @funindex phrasingSlurNeutral -@funindex phrasingSlurDashed -@funindex \phrasingSlurDashed -@funindex \phrasingSlurDotted -@funindex phrasingSlurDotted -@funindex \phrasingSlurSolid -@funindex phrasingSlurSolid Typographically, a phrasing slur behaves almost exactly like a normal slur. However, they are treated as different objects; a @@ -686,13 +696,26 @@ c4\( g' c,( b) | c1\) @cindex simultaneous phrasing slurs @cindex multiple phrasing slurs -@cindex slurs, simultaneous phrasing -@cindex slurs, multiple phrasing -@cindex phrasing slurs, simultaneous -@cindex phrasing slurs, multiple +@cindex slur, simultaneous phrasing +@cindex slur, multiple phrasing +@cindex phrasing slur, simultaneous +@cindex phrasing slur, multiple Simultaneous or overlapping phrasing slurs are not permitted. +@funindex phrasingSlurDashed +@funindex \phrasingSlurDashed +@funindex \phrasingSlurDotted +@funindex phrasingSlurDotted +@funindex \phrasingSlurSolid +@funindex phrasingSlurSolid +@cindex phrasing slur, dashed +@cindex dashed phrasing slur +@cindex phrasing slur, dotted +@cindex dotted phrasing slurs +@cindex slur, dashed phrasing +@cindex slur, dotted phrasing + Phrasing slurs can be solid, dotted, or dashed. Solid is the default style for phrasing slurs: @@ -706,6 +729,48 @@ c4\( e g2\) g4\( e c2\) @end lilypond +@funindex phrasingSlurHalfDashed +@funindex \phrasingSlurHalfDashed +@funindex \phrasingSlurHalfSolid +@funindex phrasingSlurHalfSolid +@cindex phrasing slur, half solid and half dashed +@cindex slur, half solid and half dashed phrasing + +Phrasing slurs can also be made half-dashed (the first half dashed, the +second half solid) or half-solid (the first half solid, the second +half dashed): + +@lilypond[verbatim,quote,relative=1] +c4\( e g2\) +\phrasingSlurHalfDashed +g4\( e c2\) +\phrasingSlurHalfSolid +c4\( e g2\) +\phrasingSlurSolid +g4\( e c2\) +@end lilypond + +@funindex \phrasingSlurDashPattern +@funindex phrasingSlurDashPattern +@cindex phrasing slur, defining dash patterns +@cindex slur, phrasing, defining dash patterns +@cindex slur, definind dash patterns for phrasing + +Custom dash patterns for phrasing slurs can be defined: + +@lilypond[verbatim,quote,relative=1] +c4\( e g2\) +\phrasingSlurDashPattern #0.7 #0.75 +g4\( e c2\) +\phrasingSlurDashPattern #0.5 #2.0 +c4\( e g2\) +\phrasingSlurSolid +g4\( e c2\) +@end lilypond + +Dash pattern definitions for phrasing slurs have the same structure +as dash pattern definitions for slurs. For more information about +complex dash patterns, see the snippets under @ref{Slurs}. @predefined @code{\phrasingSlurUp}, @@ -713,6 +778,9 @@ g4\( e c2\) @code{\phrasingSlurNeutral}, @code{\phrasingSlurDashed}, @code{\phrasingSlurDotted}, +@code{\phrasingSlurHalfDashed}, +@code{\phrasingSlurHalfSolid}, +@code{\phrasingSlurDashPattern}, @code{\phrasingSlurSolid}. @endpredefined @@ -722,7 +790,8 @@ Learning Manual: @rlearning{On the un-nestedness of brackets and ties}. Notation Reference: -@ref{Direction and placement}. +@ref{Direction and placement}, +@ref{Slurs}. Snippets: @rlsr{Expressive marks}. @@ -914,6 +983,8 @@ Different types of arpeggios may be written. @funindex arpeggioBracket @funindex \arpeggioParenthesis @funindex arpeggioParenthesis +@funindex \arpeggioParenthesisDashed +@funindex arpeggioParenthesisDashed Special @emph{bracketed} arpeggio symbols can be created: @@ -923,10 +994,15 @@ Special @emph{bracketed} arpeggio symbols can be created: 2\arpeggio \arpeggioParenthesis 2\arpeggio +\arpeggioParenthesisDashed +2\arpeggio \arpeggioNormal 2\arpeggio @end lilypond +The dash properties of the parenthesis arpeggio are controlled +with the @code{'dash-details} property, which is described at @ref{Slurs}. + Arpeggios can be explicitly written out with ties. For more information, see @ref{Ties}. @@ -937,7 +1013,8 @@ information, see @ref{Ties}. @code{\arpeggioArrowDown}, @code{\arpeggioNormal}, @code{\arpeggioBracket}, -@code{\arpeggioParenthesis}. +@code{\arpeggioParenthesis} +@code{\arpeggioParenthesisDashed}. @endpredefined @@ -958,6 +1035,7 @@ Music Glossary: @rglos{arpeggio}. Notation Reference: +@ref{Slurs}, @ref{Ties}. Snippets: @@ -965,6 +1043,7 @@ Snippets: Internals Reference: @rinternals{Arpeggio}, +@rinternals{Slur}, @rinternals{PianoStaff}. diff --git a/Documentation/user/lilypond.tely b/Documentation/user/lilypond.tely index b0fd4ff336..e4c9c6243d 100644 --- a/Documentation/user/lilypond.tely +++ b/Documentation/user/lilypond.tely @@ -167,6 +167,7 @@ Appendices * Literature list:: Reference works about music notation. * Notation manual tables:: Tables and charts. * Cheat sheet:: Summary of LilyPond syntax. +* LilyPond grammar:: Syntax diagram for LilyPond parser. * GNU Free Documentation License:: License of this document. * LilyPond command index:: * LilyPond index:: @@ -189,6 +190,14 @@ Appendices @include literature.itely @include notation-appendices.itely @include cheatsheet.itely + +@node LilyPond grammar +@appendix LilyPond grammar + +This appendix contains a description of the LilyPond grammar, as +output from the parser. +@verbatiminclude ly-grammar.txt + @include fdl.itexi @node LilyPond command index diff --git a/Documentation/user/rhythms.itely b/Documentation/user/rhythms.itely index ae818694ac..3e395d31ea 100644 --- a/Documentation/user/rhythms.itely +++ b/Documentation/user/rhythms.itely @@ -383,7 +383,7 @@ indicate articulation, or @emph{phrasing slurs}, which indicate musical phrasing. A tie is just a way of extending a note duration, similar to the augmentation dot.} -A tie is entered using the tilde symbol @code{~} +A tie is entered using the tilde symbol (@code{~}). @lilypond[quote,verbatim,relative=2] a2 ~ a @@ -481,9 +481,37 @@ Predefined commands, or for details, see @funindex \tieSolid @funindex tieSolid -Solid, dotted or dashed ties may be specified, see Predefined -commands. +Ties may be made dashed, dotted, or a combination of solid and +dashed. +@lilypond[quote, verbatim, relative=1] +\tieDotted +c2 ~ c +\tieDashed +c2 ~ c +\tieHalfDashed +c2 ~ c +\tieHalfSolid +c2 ~ c +\tieSolid +c2 ~ c +@end lilypond + +Custom dash patterns can be specified: + +@lilypond[quote, verbatim, relative=1] +\tieDashPattern #0.3 #0.75 +c2 ~ c +\tieDashPattern #0.7 #1.5 +c2 ~ c +\tieSolid +c2 ~ c +@end lilypond + +Dash pattern definitions for ties have the same structure as +dash pattern definitions for slurs. +For more information about complex dash patterns, +see the snippets under @ref{Slurs}. @predefined @code{\tieUp}, @@ -491,6 +519,9 @@ commands. @code{\tieNeutral}, @code{\tieDotted}, @code{\tieDashed}, +@code{\tieDashPattern}, +@code{\tieHalfDashed}, +@code{\tieHalfSolid}, @code{\tieSolid}. @endpredefined @@ -509,7 +540,9 @@ Music Glossary: @rglos{tie}, @rglos{laissez vibrer}. -Notation Reference: @ref{Automatic note splitting}. +Notation Reference: +@ref{Slurs}, +@ref{Automatic note splitting}. Snippets: @rlsr{Rhythms}. diff --git a/GNUmakefile.in b/GNUmakefile.in index 426ae7f60c..fec79a01d2 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -49,31 +49,42 @@ ChangeLog: $(outdir)/VERSION python-modules: $(MAKE) -C python -do-top-doc: python-modules +top-doc: python-modules local-clean: local-clean-ChangeLog local-clean-ChangeLog: rm -f ChangeLog -dist-toplevel-txt-files: do-top-doc +dist-toplevel-txt-files: top-doc -mkdir -p $(distdir) ln $(TOPDOC_TXT_FILES) $(distdir)/ ln $(top-src-dir)/stepmake/aclocal.m4 $(distdir)/ -doc: - $(MAKE) -C Documentation - info: $(foreach d, $(INFO_DIRECTORIES),$(MAKE) -C $(d) out=www info && ) true -info-install: info +install-info: info $(MAKE) out=www COPY_INFO_IMAGES=1 install-info-WWW install-help2man: $(MAKE) -C scripts man install-help2man $(MAKE) -C lily man install-help2man +install-doc: + $(MAKE) out=www install-WWW + $(MAKE) out=www install-info-WWW + +uninstall-doc: + $(MAKE) out=www uninstall-WWW + +local-install: + $(INSTALL) -d $(DESTDIR)$(local_lilypond_datadir) + +final-install: + @true + +ifeq ($(out),www) # All web targets, except info image symlinks and info docs are # installed in non-recursing target from TOP-SRC-DIR install-WWW: @@ -83,25 +94,12 @@ install-WWW: install-info-WWW: $(foreach d, $(INFO_DIRECTORIES),$(MAKE) -C $(d) install-info && ) true -web-install: - $(MAKE) out=www install-WWW - $(MAKE) out=www install-info-WWW - uninstall-WWW: rm -rf $(DESTDIR)$(webdir) -rmdir $(package_docdir) $(MAKE) -C Documentation/user uninstall $(MAKE) -C input/lsr uninstall -web-uninstall: - $(MAKE) out=www uninstall-WWW - -local-install: - $(INSTALL) -d $(DESTDIR)$(local_lilypond_datadir) - -final-install: - @true - # For online docs with content negotiation, issue `make web WEB_TARGETS=online' # For both online and offline docs, issue `make web WEB_TARGETS="offline online"' @@ -114,6 +112,7 @@ WWW-post: find $(outdir) -name '*-root' | xargs rm -rf $(buildscript-dir)/www_post $(PACKAGE_NAME) $(TOPLEVEL_VERSION) $(outdir) "$(WEB_TARGETS)" find $(outdir)/offline-root -type l -delete +endif tree-prefix = $(outdir) @@ -133,7 +132,7 @@ c-clean: src-ext = c cc yy ll hh icc py scm tex ps texi itexi tely itely sh -web-clean: snippets-clean $(tree-share-prefix)/lilypond-force +doc-clean: snippets-clean $(tree-share-prefix)/lilypond-force default: $(config_h) build-dir-setup diff --git a/THANKS b/THANKS index 8291652b2a..565a49b2d3 100644 --- a/THANKS +++ b/THANKS @@ -38,9 +38,13 @@ Kieren MacMillan BUG HUNTERS/SUGGESTIONS +Chris Snyder David Kastrup Karim Haddad +Mark Polesky +Martin Tarenskeen Michael Käppler +Nick Payne Release 2.12 diff --git a/configure.in b/configure.in index d45c4c0a44..b067305f9d 100644 --- a/configure.in +++ b/configure.in @@ -205,6 +205,11 @@ STEPMAKE_END test -n "$CONFIGURATION" && mc=" conf=$CONFIGURATION" || mc="" +if make top-doc 1>/dev/null 2>&1; then + rm -f INSTALL.txt && ln Documentation/topdocs/out/INSTALL.txt . + rm -f README.txt && ln Documentation/topdocs/out/README.txt . +fi + cat < + texidocfr = " +La commande @code{\time} gère les propriétés +@code{timeSignatureFraction}, @code{beatLength}, @code{beatGrouping} +et @code{measureLength} dans le contexte @code{Timing}, normallement +rattaché à @code{Score}. Le fait de modifier la valeur de +@code{timeSignatureFraction} aura pour effet de changer l'apparence du +symbole affiché sans pour autant affecter les autres propriétés de la +métrique : + +" + doctitlefr = "Changement de métrique sans affecter les règles de ligature" + texidoc = " The @code{\\time} command sets the properties @code{timeSignatureFraction}, @code{beatLength}, @code{beatGrouping} diff --git a/input/lsr/changing-the-tuplet-number.ly b/input/lsr/changing-the-tuplet-number.ly index 7686cf66ef..955839bd5d 100644 --- a/input/lsr/changing-the-tuplet-number.ly +++ b/input/lsr/changing-the-tuplet-number.ly @@ -26,6 +26,18 @@ vollständig unterdrücken. " doctitlede = "Die Zahl der N-tole verändern" + +%% Translation of GIT committish : + texidocfr = " +L'apparence du chiffre est déterminée par la propriété @code{text} dans +@code{TupletNumber}. La valeur par défaut imprime seulement le +dénominateur, mais si elle est définie par la fonction +@code{tuplet-number::calc-fraction-text}, la fraction entière +@var{num}:@var{den} sera imprimée à la place. + +" + doctitlefr = "Modifier l'apparence du chiffre de nolet" + texidoc = " By default, only the numerator of the tuplet number is printed over the tuplet bracket, i.e., the denominator of the argument to the diff --git a/input/lsr/changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly b/input/lsr/changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly index 0e99ea4bf5..f7b3732078 100644 --- a/input/lsr/changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly +++ b/input/lsr/changing-time-signatures-inside-a-polymetric-section-using-scaledurations.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { texidoces = " diff --git a/input/lsr/chordchanges-for-fretboards.ly b/input/lsr/chordchanges-for-fretboards.ly index d5b1164f86..d48642e9dd 100644 --- a/input/lsr/chordchanges-for-fretboards.ly +++ b/input/lsr/chordchanges-for-fretboards.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.13.0 \version "2.13.1" \header { diff --git a/input/lsr/clip-systems.ly b/input/lsr/clip-systems.ly index dab68f2c7c..2f539eda9b 100644 --- a/input/lsr/clip-systems.ly +++ b/input/lsr/clip-systems.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { lsrtags = "paper-and-layout" % a new tag like "Mixing text and music" or diff --git a/input/lsr/coloring-notes-depending-on-their-pitch.ly b/input/lsr/coloring-notes-depending-on-their-pitch.ly index 086021210a..96608ab8f8 100644 --- a/input/lsr/coloring-notes-depending-on-their-pitch.ly +++ b/input/lsr/coloring-notes-depending-on-their-pitch.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { lsrtags = "pitches,editorial-annotations,really-cool" diff --git a/input/lsr/compound-time-signatures.ly b/input/lsr/compound-time-signatures.ly index aa6238c771..0d368e29e3 100644 --- a/input/lsr/compound-time-signatures.ly +++ b/input/lsr/compound-time-signatures.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/creating-a-delayed-turn.ly b/input/lsr/creating-a-delayed-turn.ly index f15880baa1..2b502ea511 100644 --- a/input/lsr/creating-a-delayed-turn.ly +++ b/input/lsr/creating-a-delayed-turn.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/creating-metronome-marks-in-markup-mode.ly b/input/lsr/creating-metronome-marks-in-markup-mode.ly index 286ee5c61c..4083df655c 100644 --- a/input/lsr/creating-metronome-marks-in-markup-mode.ly +++ b/input/lsr/creating-metronome-marks-in-markup-mode.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/creating-simultaneous-rehearsal-marks.ly b/input/lsr/creating-simultaneous-rehearsal-marks.ly index 593d3ae24e..d59e34e249 100644 --- a/input/lsr/creating-simultaneous-rehearsal-marks.ly +++ b/input/lsr/creating-simultaneous-rehearsal-marks.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { texidoces = " diff --git a/input/lsr/creating-text-spanners.ly b/input/lsr/creating-text-spanners.ly index cd224e623e..9c9ef07968 100644 --- a/input/lsr/creating-text-spanners.ly +++ b/input/lsr/creating-text-spanners.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/customizing-fretboard-fret-diagrams.ly b/input/lsr/customizing-fretboard-fret-diagrams.ly index 7be4d0e528..98dbcdcfa6 100644 --- a/input/lsr/customizing-fretboard-fret-diagrams.ly +++ b/input/lsr/customizing-fretboard-fret-diagrams.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/customizing-markup-fret-diagrams.ly b/input/lsr/customizing-markup-fret-diagrams.ly index b915b7cb23..d61e2b5d60 100644 --- a/input/lsr/customizing-markup-fret-diagrams.ly +++ b/input/lsr/customizing-markup-fret-diagrams.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/defining-predefined-fretboards-for-other-instruments.ly b/input/lsr/defining-predefined-fretboards-for-other-instruments.ly index 7ba273451c..b1edcf9f11 100644 --- a/input/lsr/defining-predefined-fretboards-for-other-instruments.ly +++ b/input/lsr/defining-predefined-fretboards-for-other-instruments.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { texidoces = " diff --git a/input/lsr/display-bracket-with-only-one-staff-in-a-system.ly b/input/lsr/display-bracket-with-only-one-staff-in-a-system.ly index e25f805760..de83ed0766 100644 --- a/input/lsr/display-bracket-with-only-one-staff-in-a-system.ly +++ b/input/lsr/display-bracket-with-only-one-staff-in-a-system.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { texidoces = " diff --git a/input/lsr/dodecaphonic-style-accidentals-for-each-note-including-naturals.ly b/input/lsr/dodecaphonic-style-accidentals-for-each-note-including-naturals.ly index 9ebe9f7d3e..f146956390 100644 --- a/input/lsr/dodecaphonic-style-accidentals-for-each-note-including-naturals.ly +++ b/input/lsr/dodecaphonic-style-accidentals-for-each-note-including-naturals.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/dotted-harmonics.ly b/input/lsr/dotted-harmonics.ly index 84ad867fbc..99d3ee34d5 100644 --- a/input/lsr/dotted-harmonics.ly +++ b/input/lsr/dotted-harmonics.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/drawing-boxes-around-grobs.ly b/input/lsr/drawing-boxes-around-grobs.ly index 8afcc59327..77256f5bec 100644 --- a/input/lsr/drawing-boxes-around-grobs.ly +++ b/input/lsr/drawing-boxes-around-grobs.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { lsrtags = "tweaks-and-overrides" diff --git a/input/lsr/drawing-circles-around-various-objects.ly b/input/lsr/drawing-circles-around-various-objects.ly index cc7b7b9113..c0473914a8 100644 --- a/input/lsr/drawing-circles-around-various-objects.ly +++ b/input/lsr/drawing-circles-around-various-objects.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { lsrtags = "tweaks-and-overrides" diff --git a/input/lsr/engraving-ties-manually.ly b/input/lsr/engraving-ties-manually.ly index 932114a122..40a73dd484 100644 --- a/input/lsr/engraving-ties-manually.ly +++ b/input/lsr/engraving-ties-manually.ly @@ -26,6 +26,17 @@ Notensystemabständen an, die zweite Zahl zeigt die Richtung an (1 = nach oben, " doctitlede = "Bindebögen manuell setzen" + +%% Translation of GIT committish : + texidocfr = " +Il est possible de graver manuellement les liaisons de tenue, en +modifiant la propriété @code{tie-configuration}. Pour chaque paire, le +premier nombre indique la distance à la portée, en espaces de portée, et +le second la direction (1 pour haut, @minus{}1 pour bas). + +" + doctitlefr = "Dessin à main levée de liaisons de tenue" + texidoc = " Ties may be engraved manually by changing the @code{tie-configuration} property of the @code{TieColumn} object. The first number indicates the diff --git a/input/lsr/entering-several-tuplets-using-only-one--times-command.ly b/input/lsr/entering-several-tuplets-using-only-one--times-command.ly index 235792efdd..5c6e9e3448 100644 --- a/input/lsr/entering-several-tuplets-using-only-one--times-command.ly +++ b/input/lsr/entering-several-tuplets-using-only-one--times-command.ly @@ -37,6 +37,21 @@ Mehr Information über @code{make-moment} gibt es in \"Verwaltung der Zeiteinhei " doctitlede = "Mehrere Triolen notieren, aber nur einmal \\times benutzen" + +%% Translation of GIT committish : + texidocfr = " +La propriété @code{tupletSpannerDuration} spécifie la longueur voulue de +chaque crochet. Avec elle, vous pouvez faire plusieurs nolets en ne +tapant @code{\times} qu'une fois, ce qui évite une longue saisie. + +Dans l'exemple suivant, deux triolets sont imprimés avec une seule fonction +@code{\times}. + +Pour plus d'information sur @code{make-moment}, voir @ref{Time administration}. + +" + doctitlefr = "Plusieurs triolets avec une seule commande \\times" + texidoc = " The property @code{tupletSpannerDuration} sets how long each of the tuplets contained within the brackets after @code{\\times} should last. diff --git a/input/lsr/fine-tuning-pedal-brackets.ly b/input/lsr/fine-tuning-pedal-brackets.ly index 69122191ba..ef55883ce6 100644 --- a/input/lsr/fine-tuning-pedal-brackets.ly +++ b/input/lsr/fine-tuning-pedal-brackets.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/flute-slap-notation.ly b/input/lsr/flute-slap-notation.ly index c3ad7c15cd..cd85064aa3 100644 --- a/input/lsr/flute-slap-notation.ly +++ b/input/lsr/flute-slap-notation.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/fret-diagrams-explained-and-developed.ly b/input/lsr/fret-diagrams-explained-and-developed.ly index 900a5bfcd5..f9818ae0dc 100644 --- a/input/lsr/fret-diagrams-explained-and-developed.ly +++ b/input/lsr/fret-diagrams-explained-and-developed.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/guitar-strum-rhythms.ly b/input/lsr/guitar-strum-rhythms.ly index 2e2f60b900..c4f1c225d8 100644 --- a/input/lsr/guitar-strum-rhythms.ly +++ b/input/lsr/guitar-strum-rhythms.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { @@ -19,7 +20,8 @@ Bunddiagrammen auch der Schlagrhythmus angegeben werden. doctitlede = "Schlagrhythmus für Guitarren" lsrtags = "rhythms,fretted-strings" - texidoc = "For guitar music, it is possible to show strum rhythms, along + texidoc = " +For guitar music, it is possible to show strum rhythms, along with melody notes, chord names, and fret diagrams. " doctitle = "Guitar strum rhythms" diff --git a/input/lsr/heavily-customized-polymetric-time-signatures.ly b/input/lsr/heavily-customized-polymetric-time-signatures.ly index 52ee88f572..fb9e179fac 100644 --- a/input/lsr/heavily-customized-polymetric-time-signatures.ly +++ b/input/lsr/heavily-customized-polymetric-time-signatures.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/incipit.ly b/input/lsr/incipit.ly index dec402f177..623b12ea61 100644 --- a/input/lsr/incipit.ly +++ b/input/lsr/incipit.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { texidoces = " diff --git a/input/lsr/inserting-a-caesura.ly b/input/lsr/inserting-a-caesura.ly index 08cbaf43f0..e6893b710f 100644 --- a/input/lsr/inserting-a-caesura.ly +++ b/input/lsr/inserting-a-caesura.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { texidoces = " diff --git a/input/lsr/letter-tablature-formatting.ly b/input/lsr/letter-tablature-formatting.ly index 39a8797847..0f7eac2740 100644 --- a/input/lsr/letter-tablature-formatting.ly +++ b/input/lsr/letter-tablature-formatting.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/line-arrows.ly b/input/lsr/line-arrows.ly index 962b3bd7d0..aeb09f6957 100644 --- a/input/lsr/line-arrows.ly +++ b/input/lsr/line-arrows.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { texidoces = " diff --git a/input/lsr/makam-example.ly b/input/lsr/makam-example.ly index 27d2c15d2e..5fcf30217c 100644 --- a/input/lsr/makam-example.ly +++ b/input/lsr/makam-example.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { texidoces = " diff --git a/input/lsr/making-an-object-invisible-with-the-transparent-property.ly b/input/lsr/making-an-object-invisible-with-the-transparent-property.ly index e767e8b771..b1e0cb3c40 100644 --- a/input/lsr/making-an-object-invisible-with-the-transparent-property.ly +++ b/input/lsr/making-an-object-invisible-with-the-transparent-property.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { lsrtags = "rhythms,tweaks-and-overrides" diff --git a/input/lsr/making-slurs-with-complex-dash-structure.ly b/input/lsr/making-slurs-with-complex-dash-structure.ly index cb5155d3e5..e0f5c8316c 100644 --- a/input/lsr/making-slurs-with-complex-dash-structure.ly +++ b/input/lsr/making-slurs-with-complex-dash-structure.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.13.1 \version "2.13.1" \header { diff --git a/input/lsr/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly b/input/lsr/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly index a16389693d..8331189ec4 100644 --- a/input/lsr/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly +++ b/input/lsr/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/markup-lines.ly b/input/lsr/markup-lines.ly index 8cc51065ff..7b547d51b9 100644 --- a/input/lsr/markup-lines.ly +++ b/input/lsr/markup-lines.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/modern-tab-text-clef.ly b/input/lsr/modern-tab-text-clef.ly index 1e49132c56..580e5df172 100644 --- a/input/lsr/modern-tab-text-clef.ly +++ b/input/lsr/modern-tab-text-clef.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/multi--measure-rest-markup.ly b/input/lsr/multi--measure-rest-markup.ly index ef1e4a6eca..81ca609056 100644 --- a/input/lsr/multi--measure-rest-markup.ly +++ b/input/lsr/multi--measure-rest-markup.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/non-default-tuplet-numbers.ly b/input/lsr/non-default-tuplet-numbers.ly index 13c623ba1a..40f81ee644 100644 --- a/input/lsr/non-default-tuplet-numbers.ly +++ b/input/lsr/non-default-tuplet-numbers.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.13.1 \version "2.13.1" \header { diff --git a/input/lsr/non-traditional-key-signatures.ly b/input/lsr/non-traditional-key-signatures.ly index 3075255dbb..fa37eb1a1b 100644 --- a/input/lsr/non-traditional-key-signatures.ly +++ b/input/lsr/non-traditional-key-signatures.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.13.0 \version "2.13.1" \header { diff --git a/input/lsr/orchestra-choir-and-piano-template.ly b/input/lsr/orchestra-choir-and-piano-template.ly index a5459d9899..23b9a19a7d 100644 --- a/input/lsr/orchestra-choir-and-piano-template.ly +++ b/input/lsr/orchestra-choir-and-piano-template.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { texidoces = " diff --git a/input/lsr/ottava-text.ly b/input/lsr/ottava-text.ly index bfa2004770..07c7d5a7cd 100644 --- a/input/lsr/ottava-text.ly +++ b/input/lsr/ottava-text.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/outputting-the-version-number.ly b/input/lsr/outputting-the-version-number.ly index 155408b326..8804e3d002 100644 --- a/input/lsr/outputting-the-version-number.ly +++ b/input/lsr/outputting-the-version-number.ly @@ -1,23 +1,27 @@ -%% Do not edit this file; it is auto-generated from input/new +%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it %% This file is in the public domain. \version "2.13.1" \header { - lsrtags = "text" + lsrtags = "text, titles" + texidoc = " -By putting the output of @code{lilypond-version} into lyrics or a -text markup, it is possible to print the version number of LilyPond in -a score, or in a document generated with @code{lilypond-book}. +By putting the output of + @code{lilypond-version} into a lyric, it is possible to print the + version number of LilyPond in a score, or in a document generated + with @code{lilypond-book}. Another possibility is to append the + version number to the doc-string, in this manner: + " doctitle = "Outputting the version number" } % begin verbatim - \score { \new Lyrics { \override Score.RehearsalMark #'self-alignment-X = #LEFT - \mark #(ly:export (string-append "Processed with LilyPond version " - (lilypond-version))) + \mark #(string-append "Processed with LilyPond version " (lilypond-version)) s2 } } + + diff --git a/input/lsr/page-label.ly b/input/lsr/page-label.ly index 635931df74..f1e6df43f8 100644 --- a/input/lsr/page-label.ly +++ b/input/lsr/page-label.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { lsrtags = "spacing" diff --git a/input/lsr/percent-repeat-count-visibility.ly b/input/lsr/percent-repeat-count-visibility.ly index 9c01daf27d..95938a0804 100644 --- a/input/lsr/percent-repeat-count-visibility.ly +++ b/input/lsr/percent-repeat-count-visibility.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { texidoces = " diff --git a/input/lsr/permitting-line-breaks-within-beamed-tuplets.ly b/input/lsr/permitting-line-breaks-within-beamed-tuplets.ly index 0c0355846d..d2d2fb2b83 100644 --- a/input/lsr/permitting-line-breaks-within-beamed-tuplets.ly +++ b/input/lsr/permitting-line-breaks-within-beamed-tuplets.ly @@ -24,6 +24,16 @@ gesetzt werden. " doctitlede = "Zeilenumbrüche bei N-tolen mit Balken erlauben" + +%% Translation of GIT committish : + texidocfr = " +Cet exemple peu académique démontre comment il est possible d'insérer un saut +de ligne dans un nolet portant une ligature. Ces ligatures doivent toutefois +être explicites. + +" + doctitlefr = "Saut de ligne au milieu d'un nolet avec ligature" + texidoc = " This artificial example shows how both manual and automatic line breaks may be permitted to within a beamed tuplet. Note that such off-beat diff --git a/input/lsr/piano-template-with-centered-dynamics.ly b/input/lsr/piano-template-with-centered-dynamics.ly index 28ce906fc9..70dac91803 100644 --- a/input/lsr/piano-template-with-centered-dynamics.ly +++ b/input/lsr/piano-template-with-centered-dynamics.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/positioning-grace-notes-with-floating-space.ly b/input/lsr/positioning-grace-notes-with-floating-space.ly index 0b38eadef4..fbea008d6d 100644 --- a/input/lsr/positioning-grace-notes-with-floating-space.ly +++ b/input/lsr/positioning-grace-notes-with-floating-space.ly @@ -5,6 +5,19 @@ \header { lsrtags = "rhythms" + texidoces = " + +Al establecer la propiedad @code{'strict-grace-spacing} hacemos +que las columnas musicales para las notas de adorno sean +'flotantes', es decir, desacopladas de las notas que no son de +adorno: primero se aplica el espaciado de las notas normales, y +luego se ponen las columnas musicales de las notas de adorno a la +izquierda de las columnas musicales de las notas principales. + +" + + doctitlees = "Posicionamiento de las notas de adorno con espacio flotante" + texidoc = " Setting the property @code{'strict-grace-spacing} makes the musical columns for grace notes 'floating', i.e., decoupled from the non-grace diff --git a/input/lsr/positioning-multi--measure-rests.ly b/input/lsr/positioning-multi--measure-rests.ly index d9ec182d99..45d909ec52 100644 --- a/input/lsr/positioning-multi--measure-rests.ly +++ b/input/lsr/positioning-multi--measure-rests.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { doctitlees = "Posicionar los silencios multicompás" diff --git a/input/lsr/printing-bar-numbers-at-regular-intervals.ly b/input/lsr/printing-bar-numbers-at-regular-intervals.ly index 1041ca6bce..76d1560066 100644 --- a/input/lsr/printing-bar-numbers-at-regular-intervals.ly +++ b/input/lsr/printing-bar-numbers-at-regular-intervals.ly @@ -5,6 +5,17 @@ \header { lsrtags = "rhythms" + texidoces = " + +Se pueden imprimir los números de compás a intervalos regulares +mediante el establecimiento de la propiedad +@code{barNumberVisibility}. Aquí los números de compás se +imprimen a cada dos compases excepto al final de la línea. + +" + + doctitlees = "Imprimir números de compás a intervalos regulares" + texidoc = " Bar numbers can be printed at regular intervals by setting the property @code{barNumberVisibility}. Here the bar numbers are printed every two diff --git a/input/lsr/printing-bar-numbers-inside-boxes-or-circles.ly b/input/lsr/printing-bar-numbers-inside-boxes-or-circles.ly index 24dafb8010..bae5eb1cf8 100644 --- a/input/lsr/printing-bar-numbers-inside-boxes-or-circles.ly +++ b/input/lsr/printing-bar-numbers-inside-boxes-or-circles.ly @@ -5,6 +5,13 @@ \header { lsrtags = "rhythms, tweaks-and-overrides" + texidoces = " + +Los números de compás también se pueden imprimir dentro de rectángulos o de circunferencias. + +" + doctitlees = "Imprimir números de compás dentro de rectángulos o circunferencias" + texidoc = " Bar numbers can also be printed inside boxes or circles. diff --git a/input/lsr/printing-the-bar-number-for-the-first-measure.ly b/input/lsr/printing-the-bar-number-for-the-first-measure.ly index a5fc7676c0..4ed6320d56 100644 --- a/input/lsr/printing-the-bar-number-for-the-first-measure.ly +++ b/input/lsr/printing-the-bar-number-for-the-first-measure.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.1 \version "2.13.1" \header { diff --git a/input/lsr/quoting-another-voice-with-transposition.ly b/input/lsr/quoting-another-voice-with-transposition.ly index b1ccee38ca..d45e36dec0 100644 --- a/input/lsr/quoting-another-voice-with-transposition.ly +++ b/input/lsr/quoting-another-voice-with-transposition.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { texidoces = " diff --git a/input/lsr/quoting-another-voice.ly b/input/lsr/quoting-another-voice.ly index 08a4d575ce..9919451e6a 100644 --- a/input/lsr/quoting-another-voice.ly +++ b/input/lsr/quoting-another-voice.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { texidoces = " diff --git a/input/lsr/redefining-grace-note-global-defaults.ly b/input/lsr/redefining-grace-note-global-defaults.ly index c0c63378f8..4ab887913b 100644 --- a/input/lsr/redefining-grace-note-global-defaults.ly +++ b/input/lsr/redefining-grace-note-global-defaults.ly @@ -5,6 +5,20 @@ \header { lsrtags = "rhythms" + texidoces = " + +Los valores predeterminados para las notas de adorno están +almacenados en los identificadores @code{startGraceMusic}, +@code{stopGraceMusic}, @code{startAcciaccaturaMusic}, +@code{stopAcciaccaturaMusic}, @code{startAppoggiaturaMusic} y +@code{stopAppoggiaturaMusic}, que están definidos en el archivo +@code{ly/grace-init.ly}. Redefiniéndolos se pueden obtener otros +efectos. + +" + + doctitlees = "Redefinición de los valores globales predeterminados para notas de adorno" + texidoc = " The global defaults for grace notes are stored in the identifiers @code{startGraceMusic}, @code{stopGraceMusic}, diff --git a/input/lsr/removing-bar-numbers-from-a-score.ly b/input/lsr/removing-bar-numbers-from-a-score.ly index e3c8fdc6a0..ae563628b3 100644 --- a/input/lsr/removing-bar-numbers-from-a-score.ly +++ b/input/lsr/removing-bar-numbers-from-a-score.ly @@ -5,6 +5,15 @@ \header { lsrtags = "rhythms, contexts-and-engravers" + texidoces = " + +Se pueden eliminar completamente los números de compás quitando el +grabador @code{Bar_number_engraver} del contexto de @code{Score}. + +" + + doctitlees = "Suprimir los números de compás de toda la partitura" + texidoc = " Bar numbers can be removed entirely by removing the @code{Bar_number_engraver} from the @code{Score} context. diff --git a/input/lsr/rest-styles.ly b/input/lsr/rest-styles.ly index 4514bdd975..253619f33c 100644 --- a/input/lsr/rest-styles.ly +++ b/input/lsr/rest-styles.ly @@ -15,6 +15,14 @@ Los silencios se pueden imprimir en distintos estilos. Pausen können in verschiedenen Stilen dargestellt werden. " + +%% Translation of GIT committish : + texidocfr = " +Les silences peuvent être gravés selon différents styles. + +" + doctitlefr = "Styles de silences" + texidoc = " Rests may be used in various styles. diff --git a/input/lsr/setting-hairpin-behavior-at-bar-lines.ly b/input/lsr/setting-hairpin-behavior-at-bar-lines.ly index c24bfc8e24..91a91f7f9d 100644 --- a/input/lsr/setting-hairpin-behavior-at-bar-lines.ly +++ b/input/lsr/setting-hairpin-behavior-at-bar-lines.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { texidoces = " diff --git a/input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly b/input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly index b8206ea79f..0677b99081 100644 --- a/input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly +++ b/input/lsr/snap-pizzicato-markup-bartok-pizzicato.ly @@ -11,7 +11,7 @@ El pizzicato de chasquido (también llamado @q{Pizzicato de Bartók}) es un @q{pizzicato fuerte en que la cuerda se pulsa verticalmente produciendo un chasquido y rebotando en el diapasón del instrumento} (Wikipedia). Se denota mediante una circunferencia con una línea vertical corta que parte -del centro de aquélla hacia fuera. Aunque Lilypond no tiene ninguna +del centro de aquélla hacia fuera. Aunque LilyPond no tiene ninguna instrucción predefinida para crear esta marca, es fácil hacer la definición y colocarla directamente en el archivo de lilypond. " diff --git a/input/lsr/specifying-context-with-beatgrouping.ly b/input/lsr/specifying-context-with-beatgrouping.ly index fec705bddf..46c4e8b8a6 100644 --- a/input/lsr/specifying-context-with-beatgrouping.ly +++ b/input/lsr/specifying-context-with-beatgrouping.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/suppressing-warnings-for-clashing-note-columns.ly b/input/lsr/suppressing-warnings-for-clashing-note-columns.ly index 1c3a82a842..b8a0ea5389 100644 --- a/input/lsr/suppressing-warnings-for-clashing-note-columns.ly +++ b/input/lsr/suppressing-warnings-for-clashing-note-columns.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { lsrtags = "simultaneous-notes,tweaks-and-overrides" diff --git a/input/lsr/table-of-contents.ly b/input/lsr/table-of-contents.ly index 7893eeb6b2..624bb8d55e 100644 --- a/input/lsr/table-of-contents.ly +++ b/input/lsr/table-of-contents.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { lsrtags = "paper-and-layout" diff --git a/input/lsr/text.snippet-list b/input/lsr/text.snippet-list index ed78f49875..d27ac6cba3 100644 --- a/input/lsr/text.snippet-list +++ b/input/lsr/text.snippet-list @@ -1,3 +1,4 @@ +adding-the-current-date-to-a-score.ly adjusting-lyrics-vertical-spacing.ly aligning-and-centering-instrument-names.ly aligning-marks-with-various-notation-objects.ly diff --git a/input/lsr/tick-bar-lines.ly b/input/lsr/tick-bar-lines.ly index d392e7b0d8..aeb8106750 100644 --- a/input/lsr/tick-bar-lines.ly +++ b/input/lsr/tick-bar-lines.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { lsrtags = "staff-notation" diff --git a/input/lsr/titles.snippet-list b/input/lsr/titles.snippet-list index a21553f161..0b2c5c162f 100644 --- a/input/lsr/titles.snippet-list +++ b/input/lsr/titles.snippet-list @@ -1,3 +1,4 @@ adding-the-current-date-to-a-score.ly aligning-and-centering-instrument-names.ly demonstrating-all-headers.ly +outputting-the-version-number.ly diff --git a/input/lsr/transposing-pitches-with-minimum-accidentals-smart-transpose.ly b/input/lsr/transposing-pitches-with-minimum-accidentals-smart-transpose.ly index 2f715181b7..9570e38e4c 100644 --- a/input/lsr/transposing-pitches-with-minimum-accidentals-smart-transpose.ly +++ b/input/lsr/transposing-pitches-with-minimum-accidentals-smart-transpose.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { doctitlees = "Transportar música con el menor número de alteraciones" diff --git a/input/lsr/tweaking-grace-layout-within-music.ly b/input/lsr/tweaking-grace-layout-within-music.ly index 315e12fa08..70bd792401 100644 --- a/input/lsr/tweaking-grace-layout-within-music.ly +++ b/input/lsr/tweaking-grace-layout-within-music.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/using-beatlength-and-beatgrouping.ly b/input/lsr/using-beatlength-and-beatgrouping.ly index 75eadd219b..c47260d4e7 100644 --- a/input/lsr/using-beatlength-and-beatgrouping.ly +++ b/input/lsr/using-beatlength-and-beatgrouping.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/lsr/using-grace-note-slashes-with-normal-heads.ly b/input/lsr/using-grace-note-slashes-with-normal-heads.ly index c0dd8956a3..a3102e7f62 100644 --- a/input/lsr/using-grace-note-slashes-with-normal-heads.ly +++ b/input/lsr/using-grace-note-slashes-with-normal-heads.ly @@ -5,6 +5,15 @@ \header { lsrtags = "rhythms" + texidoces = " + +Es posible aplicar la barrita que cruza la barra de las +acciaccaturas, en otras situaciones. + +" + + doctitlees = "Utilizar la barra que tacha las notas de adorno con notas normales" + texidoc = " The slash through the stem found in acciaccaturas can be applied in other situations. diff --git a/input/lsr/using-the--tweak-command-to-tweak-individual-grobs.ly b/input/lsr/using-the--tweak-command-to-tweak-individual-grobs.ly index ad86a57629..ac09b8c267 100644 --- a/input/lsr/using-the--tweak-command-to-tweak-individual-grobs.ly +++ b/input/lsr/using-the--tweak-command-to-tweak-individual-grobs.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { lsrtags = "tweaks-and-overrides" diff --git a/input/lsr/using-ties-with-arpeggios.ly b/input/lsr/using-ties-with-arpeggios.ly index 59c404e8ec..76e35bd1fb 100644 --- a/input/lsr/using-ties-with-arpeggios.ly +++ b/input/lsr/using-ties-with-arpeggios.ly @@ -28,6 +28,17 @@ für normale Überbindungen eingesetzt werden " doctitlede = "Überbingungen für Arpeggio genutzen" + +%% Translation of GIT committish : + texidocfr = " +Les liaisons de tenue servent parfois à rendre un accord arpégé. Dans +ce cas, les notes liées ne sont pas toutes consécutives. Il faut alors +assigner à la propriété @code{tieWaitForNote} la valeur @code{#t} +(@emph{true} pour @qq{vrai}). Cette même méthode peut servir, par +exemple, à lier un trémolo à un accord. +" + doctitlefr = "Liaison de tenue et arpège" + texidoc = " Ties are sometimes used to write out arpeggios. In this case, two tied notes need not be consecutive. This can be achieved by setting the diff --git a/input/lsr/utf-8.ly b/input/lsr/utf-8.ly index e6ff9179e7..ee9e28b4da 100644 --- a/input/lsr/utf-8.ly +++ b/input/lsr/utf-8.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" %% Edit this file using a Unicode aware editor, such as GVIM, GEDIT, Emacs diff --git a/input/lsr/volta-below-chords.ly b/input/lsr/volta-below-chords.ly index 8e8ea42cb6..8031a99779 100644 --- a/input/lsr/volta-below-chords.ly +++ b/input/lsr/volta-below-chords.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { texidoces = " diff --git a/input/lsr/volta-multi-staff.ly b/input/lsr/volta-multi-staff.ly index 0865c2eb04..ce3b79a213 100644 --- a/input/lsr/volta-multi-staff.ly +++ b/input/lsr/volta-multi-staff.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { lsrtags = "repeats,staff-notation" diff --git a/input/lsr/volta-text-markup-using-repeatcommands.ly b/input/lsr/volta-text-markup-using-repeatcommands.ly index d491a9a9e7..e46f35edc5 100644 --- a/input/lsr/volta-text-markup-using-repeatcommands.ly +++ b/input/lsr/volta-text-markup-using-repeatcommands.ly @@ -1,5 +1,6 @@ %% Do not edit this file; it is auto-generated from input/new %% This file is in the public domain. +%% Note: this file works from version 2.12.0 \version "2.13.1" \header { diff --git a/input/new/README b/input/new/README index 058fd73515..1b226cf95e 100644 --- a/input/new/README +++ b/input/new/README @@ -2,16 +2,5 @@ This directory is for examples of new features in the current unstable development series. These snippets will be added to LSR when it supports a version of LilyPond that includes these features. -When adding a file to this directory, please start the file with - -\version "2.x.y" -\header { - lsrtags = "rhythms,expressive-marks" % use existing LSR tags other than -% 'docs'; see makelsr.py for the list of tags used to sort snippets. - texidoc = "This code demonstrates ..." % this will be formated by Texinfo - doctitle = "Snippet title" % please put this at the end so that - the '% begin verbatim' mark is added correctly by makelsr.py. -} - - -and name the file snippet-title.ly. +See additional instructions in the Contributors' Guide, section +Adding and editing snippets. diff --git a/input/new/non-default-tuplet-numbers.ly b/input/new/non-default-tuplet-numbers.ly index 74f54f6877..29b109c310 100644 --- a/input/new/non-default-tuplet-numbers.ly +++ b/input/new/non-default-tuplet-numbers.ly @@ -1,4 +1,4 @@ -\version "2.12.3" +\version "2.13.1" \header { lsrtags = "rhythms" diff --git a/input/new/outputting-the-version-number.ly b/input/new/outputting-the-version-number.ly deleted file mode 100644 index e573ade326..0000000000 --- a/input/new/outputting-the-version-number.ly +++ /dev/null @@ -1,20 +0,0 @@ -\version "2.12.0" - -\header { - lsrtags = "text" - texidoc = " -By putting the output of @code{lilypond-version} into lyrics or a -text markup, it is possible to print the version number of LilyPond in -a score, or in a document generated with @code{lilypond-book}. -" - doctitle = "Outputting the version number" -} - -\score { - \new Lyrics { - \override Score.RehearsalMark #'self-alignment-X = #LEFT - \mark #(ly:export (string-append "Processed with LilyPond version " - (lilypond-version))) - s2 - } -} diff --git a/input/regression/musicxml/GNUmakefile b/input/regression/musicxml/GNUmakefile index 888616e7e7..b5ca56513e 100644 --- a/input/regression/musicxml/GNUmakefile +++ b/input/regression/musicxml/GNUmakefile @@ -17,7 +17,9 @@ include $(depth)/make/stepmake.make TITLE=Unofficial MusicXML test suite TEST_SUITE_VERSION=0.1 +ifeq ($(out),www) local-WWW-2: zip +endif zip: $(outdir)/MusicXML-TestSuite-$(TEST_SUITE_VERSION).zip diff --git a/input/regression/phrasing-slur-dash.ly b/input/regression/phrasing-slur-dash.ly index f8b13f57d9..d37053264d 100644 --- a/input/regression/phrasing-slur-dash.ly +++ b/input/regression/phrasing-slur-dash.ly @@ -1,4 +1,4 @@ -\version "2.12.0" +\version "2.13.1" \header { texidoc = " The appearance of phrasing slurs may be changed from solid to dotted or dashed. " @@ -10,8 +10,15 @@ The appearance of phrasing slurs may be changed from solid to dotted or dashed. c\( d e c\) | \phrasingSlurDashed c\( d e c\) | - \override PhrasingSlur #'dash-period = #2.0 - \override PhrasingSlur #'dash-fraction = #0.4 + \phrasingSlurHalfDashed + c\( d e c\) | + \phrasingSlurHalfSolid + c\( d e c\) | + \phrasingSlurDashPattern #0.4 #2.0 + c\( d e c\) | + \once \override Slur #'dash-definition = #'((0 0.25 1 1) + (0.3 0.7 0.4 0.75) + (0.75 1.0 1.0 1.0)) c\( d e c\) | \phrasingSlurSolid c\( d e c\) | diff --git a/input/regression/slur-dash.ly b/input/regression/slur-dash.ly index cd80e244b8..b1d111d228 100644 --- a/input/regression/slur-dash.ly +++ b/input/regression/slur-dash.ly @@ -1,4 +1,4 @@ -\version "2.12.0" +\version "2.13.1" \header {texidoc = "@cindex Slur, dotted, dashed The appearance of slurs may be changed from solid to dotted or dashed. " @@ -7,16 +7,23 @@ The appearance of slurs may be changed from solid to dotted or dashed. \relative c'{ - c( d e c) | + c( d e c) | \slurDotted - c( d e c) | + c( d e c) | \slurDashed - c( d e c) | - \override Slur #'dash-period = #2.0 - \override Slur #'dash-fraction = #0.4 - c( d e c) | + c( d e c) | + \slurHalfDashed + c( d e c) | + \slurHalfSolid + c( d e c) | + \slurDashPattern #0.4 #2.0 + c( d e c) | + \once \override Slur #'dash-definition = #'((0 0.25 1 1) + (0.3 0.7 0.4 0.75) + (0.75 1.0 1.0 1.0)) + c( d e c) | \slurSolid - c( d e c) | + c( d e c) | } diff --git a/input/regression/spacing-correction-accidentals.ly b/input/regression/spacing-correction-accidentals.ly new file mode 100644 index 0000000000..73e416092b --- /dev/null +++ b/input/regression/spacing-correction-accidentals.ly @@ -0,0 +1,13 @@ +\version "2.13.1" + +\header { + texidoc = "If right hand stems have accidentals, optical spacing +correction is still applied, but only if the stem directions are +different." +} + +\relative c' { + \time 2/4 + c8 cis'' + cis8 cis,, +} diff --git a/input/regression/tie-dash.ly b/input/regression/tie-dash.ly new file mode 100644 index 0000000000..7ad1815f6b --- /dev/null +++ b/input/regression/tie-dash.ly @@ -0,0 +1,33 @@ +\version "2.13.1" +\header {texidoc = "@cindex Tie, dotted, dashed +The appearance of ties may be changed from solid to dotted or dashed. +" +} +\layout{ ragged-right=##t } + + +\relative c'{ + c2 ~ c | + \tieDotted + c2 ~ c | + \tieDashed + c2 ~ c | + \tieHalfDashed + c2 ~ c | + \tieHalfSolid + c2 ~ c | + \tieDashPattern #0.4 #2.0 + c2 ~ c | + \once \override Tie #'dash-definition = #'((0 0.25 1 1) + (0.3 0.7 0.4 0.75) + (0.75 1.0 1.0 1.0)) + c2 ~ c | + \tieSolid + c2 ~ c | +} + + + + + + diff --git a/lily/all-font-metrics.cc b/lily/all-font-metrics.cc index 9721f8e809..344d3a3e75 100644 --- a/lily/all-font-metrics.cc +++ b/lily/all-font-metrics.cc @@ -80,7 +80,7 @@ All_font_metrics::find_pango_font (PangoFontDescription const *description, if (!pango_dict_->try_retrieve (key, &val)) { if (be_verbose_global) - progress_indication ("[" + string (pango_fn)); + progress_indication ("\n[" + string (pango_fn)); Pango_font *pf = new Pango_font (pango_ft2_fontmap_, description, @@ -119,7 +119,7 @@ All_font_metrics::find_otf (string name) return 0; if (be_verbose_global) - progress_indication ("[" + file_name); + progress_indication ("\n[" + file_name); val = Open_type_font::make_otf (file_name); diff --git a/lily/arpeggio.cc b/lily/arpeggio.cc index 0265b3dedd..8e6e9c5a33 100644 --- a/lily/arpeggio.cc +++ b/lily/arpeggio.cc @@ -153,6 +153,7 @@ SCM Arpeggio::brew_chord_slur (SCM smob) { Grob *me = unsmob_grob (smob); + SCM dash_definition = me->get_property ("dash-definition"); Interval heads = robust_scm2interval (me->get_property ("positions"), Interval()) * Staff_symbol_referencer::staff_space (me); @@ -165,7 +166,7 @@ Arpeggio::brew_chord_slur (SCM smob) Bezier curve = slur_shape (dy, height_limit, ratio); curve.rotate (M_PI / 2); - Stencil mol (Lookup::slur (curve, lt, lt, SCM_UNDEFINED)); + Stencil mol (Lookup::slur (curve, lt, lt, dash_definition)); mol.translate_axis (heads[LEFT], Y_AXIS); return mol.smobbed_copy (); } @@ -211,5 +212,6 @@ ADD_INTERFACE (Arpeggio, "positions " "script-priority " // TODO: make around-note-interface "stems " + "dash-definition " // TODO: make apply to non-slur arpeggios ); diff --git a/lily/bezier.cc b/lily/bezier.cc index 8f55b3ce50..b341d73754 100644 --- a/lily/bezier.cc +++ b/lily/bezier.cc @@ -269,26 +269,23 @@ Bezier::reverse () /* Subdivide a bezier at T into LEFT_PART and RIGHT_PART + using deCasteljau's algorithm. */ void -Bezier::subdivide (Real t, Bezier &left_part, Bezier &right_part) +Bezier::subdivide (Real t, Bezier *left_part, Bezier *right_part) const { - Offset b2[3]; - Offset b1[2]; - Offset b0; - for (int i = 0; i < 3; i++) - b2[i] = control_[i] + t * (control_[i+1] - control_[i]); - for (int i = 0; i < 2; i++) - b1[i] = b2[i] + t * (b2[i+1] - b2[i]); - b0 = b1[0] + t * (b1[1] - b1[0]); - left_part.control_[0] = control_[0]; - left_part.control_[1] = b2[0]; - left_part.control_[2] = b1[0]; - left_part.control_[3] = b0; - right_part.control_[0] = b0; - right_part.control_[1] = b1[1]; - right_part.control_[2] = b2[2]; - right_part.control_[3] = control_[3]; + Offset p[CONTROL_COUNT][CONTROL_COUNT]; + + for (int i = 0; i < CONTROL_COUNT ; i++) + p[i][CONTROL_COUNT - 1 ] = control_[i]; + for (int j = CONTROL_COUNT - 2; j >= 0 ; j--) + for (int i = 0; i < CONTROL_COUNT -1; i++) + p[i][j] = p[i][j+1] + t * (p[i+1][j+1] - p[i][j+1]); + for (int i = 0; i < CONTROL_COUNT; i++) + { + left_part->control_[i]=p[0][CONTROL_COUNT - 1 - i]; + right_part->control_[i]=p[i][i]; + } } /* @@ -296,25 +293,24 @@ Bezier::subdivide (Real t, Bezier &left_part, Bezier &right_part) */ Bezier -Bezier::extract (Real t_min, Real t_max) +Bezier::extract (Real t_min, Real t_max) const { + if ((t_min < 0) || (t_max) > 1) + programming_error + ("bezier extract arguments outside of limits: curve may have bad shape"); + if (t_min >= t_max) + programming_error + ("lower bezier extract value not less than upper value: curve may have bad shape"); Bezier bez1, bez2, bez3, bez4; if (t_min == 0.0) - { - for (int i = 0; i < CONTROL_COUNT; i++) - bez2.control_[i] = control_[i]; - } + bez2 = *this; else - { - subdivide (t_min, bez1, bez2); - } + subdivide (t_min, &bez1, &bez2); if (t_max == 1.0) - { return bez2; - } else { - bez2.subdivide ((t_max-t_min)/(1-t_min), bez3, bez4); + bez2.subdivide ((t_max-t_min)/(1-t_min), &bez3, &bez4); return bez3; } } diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index b3da0e04a4..5359ca3416 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -438,8 +438,7 @@ ADD_TRANSLATOR (Dynamic_engraver, "DynamicLineSpanner " "DynamicTextSpanner " "DynamicText " - "Hairpin " - "TextSpanner ", + "Hairpin ", /* read */ "", diff --git a/lily/general-scheme.cc b/lily/general-scheme.cc index e0a21527b0..8b5766387e 100644 --- a/lily/general-scheme.cc +++ b/lily/general-scheme.cc @@ -88,8 +88,6 @@ LY_DEFINE (ly_error, "ly:error", " The error is formatted with @code{format} and @var{rest}.") { LY_ASSERT_TYPE (scm_is_string, str, 1); - if (scm_is_pair(scm_car(rest))) - rest=scm_car(rest); str = scm_simple_format (SCM_BOOL_F, str, rest); error (ly_scm2string (str)); return SCM_UNSPECIFIED; diff --git a/lily/includable-lexer.cc b/lily/includable-lexer.cc index 7d506373f3..2eb5df5cb3 100644 --- a/lily/includable-lexer.cc +++ b/lily/includable-lexer.cc @@ -71,7 +71,12 @@ Includable_lexer::new_input (string name, Sources *sources) state_stack_.push_back (yy_current_buffer); if (be_verbose_global) - progress_indication (string ("[") + file->name_string ()); + { + string spaces = ""; + for (size_t i = 0; i < state_stack_.size (); i++) + spaces += " "; + progress_indication (string ("\n") + spaces + string ("[") + file->name_string ()); + } include_stack_.push_back (file); @@ -94,7 +99,12 @@ Includable_lexer::new_input (string name, string data, Sources *sources) state_stack_.push_back (yy_current_buffer); if (be_verbose_global) - progress_indication (string ("[") + name); + { + string spaces = ""; + for (size_t i = 0; i < state_stack_.size (); i++) + spaces += " "; + progress_indication (string ("\n") + spaces + string ("[") + name); + } include_stack_.push_back (file); yy_switch_to_buffer (yy_create_buffer (file->get_istream (), YY_BUF_SIZE)); diff --git a/lily/include/bezier.hh b/lily/include/bezier.hh index 5cfca578c2..6adbdd3d0d 100644 --- a/lily/include/bezier.hh +++ b/lily/include/bezier.hh @@ -22,8 +22,8 @@ public: void reverse (); void rotate (Real); void translate (Offset); - void subdivide (Real, Bezier &, Bezier &); - Bezier extract (Real, Real); + void subdivide (Real, Bezier *, Bezier *) const; + Bezier extract (Real, Real) const; Real get_other_coordinate (Axis a, Real x) const; vector solve_point (Axis, Real coordinate) const; diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc index 3753a77795..d81eec8982 100644 --- a/lily/lily-guile.cc +++ b/lily/lily-guile.cc @@ -89,7 +89,7 @@ gulp_file_to_string (string fn, bool must_exist, int size) string result (&chars[0], chars.size ()); if (be_verbose_global) - progress_indication ("]"); + progress_indication ("]\n"); return result; } diff --git a/lily/lookup.cc b/lily/lookup.cc index f856fa5be9..671c0da04e 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -348,8 +348,9 @@ Lookup::slur (Bezier curve, Real curvethick, Real linethick, { Stencil return_value; - /* calculate the offset for the two beziers that make the sandwich - * for the slur + /* + calculate the offset for the two beziers that make the sandwich + for the slur */ Real alpha = (curve.control_[3] - curve.control_[0]).arg (); Bezier back = curve; @@ -360,22 +361,14 @@ Lookup::slur (Bezier curve, Real curvethick, Real linethick, curve.control_[1] -= perp; curve.control_[2] -= perp; -/* Bezier test1, test2, test3, test4; - test1 = back.extract(0., 1.0) ; - test2 = curve.extract (0., 1.0); - test3 = back.extract(0.0, 0.2); - test4 = curve.extract (0.0, 0.2); - return_value = bezier_sandwich (test1, test2, linethick); -// return_value.add_stencil ( -// bezier_sandwich (test3, test4, linethick)); - return return_value; */ - - if ((dash_details == SCM_UNDEFINED) || (dash_details == SCM_EOL)) - { /* solid slur */ + if (!scm_is_pair (dash_details)) + { + /* solid slur */ return_value = bezier_sandwich (back, curve, linethick); } else - { /* dashed or combination slur */ + { + /* dashed or combination slur */ int num_segments = scm_to_int (scm_length (dash_details)); for (int i=0; i head_posns) } -/** +/* Correct for optical illusions. See [Wanske] p. 138. The combination up-stem + down-stem should get extra space, the combination down-stem + up-stem less. @@ -219,6 +219,8 @@ Note_spacing::stem_dir_correction (Grob *me, Item *rcolumn, Direction d = LEFT; + bool acc_right = false; + Grob *bar = Spacing_interface::extremal_break_aligned_grob (me, RIGHT, rcolumn->break_status_dir (), &bar_xextent); @@ -235,10 +237,10 @@ Note_spacing::stem_dir_correction (Grob *me, Item *rcolumn, continue; /* - don't correct if accidentals are sticking out of the right side. + Find accidentals which are sticking out of the right side. */ - if (d == RIGHT && Note_column::accidentals (it)) - return; + if (d == RIGHT) + acc_right = acc_right || Note_column::accidentals (it); Grob *stem = Note_column::get_stem (it); @@ -306,7 +308,12 @@ Note_spacing::stem_dir_correction (Grob *me, Item *rcolumn, correction *= 0.5; } } - else if (stem_dirs[LEFT] * stem_dirs[RIGHT] == 1) + /* + Only apply same direction correction if there are no + accidentals sticking out of the right hand side. + */ + else if (stem_dirs[LEFT] * stem_dirs[RIGHT] == 1 + && !acc_right) correction = same_direction_correction (me, head_posns); *space += correction; diff --git a/lily/pfb-scheme.cc b/lily/pfb-scheme.cc index 6713c1b08f..730442ef05 100644 --- a/lily/pfb-scheme.cc +++ b/lily/pfb-scheme.cc @@ -15,7 +15,7 @@ LY_DEFINE (ly_pfb_2_pfa, "ly:pfb->pfa", string file_name = ly_scm2string (pfb_file_name); if (be_verbose_global) - progress_indication ("[" + file_name); + progress_indication ("\n[" + file_name); vector pfb_string = gulp_file (file_name, 0); char *pfa = pfb2pfa ((Byte *) &pfb_string[0], pfb_string.size ()); @@ -38,7 +38,7 @@ LY_DEFINE (ly_otf_2_cff, "ly:otf->cff", string file_name = ly_scm2string (otf_file_name); if (be_verbose_global) - progress_indication ("[" + file_name); + progress_indication ("\n[" + file_name); FT_Face face = open_ft_face (file_name, 0 /* index */); string table = get_otf_table (face, "CFF "); diff --git a/lily/slur.cc b/lily/slur.cc index 7b0553124a..7eea1c24d0 100644 --- a/lily/slur.cc +++ b/lily/slur.cc @@ -120,20 +120,10 @@ Slur::print (SCM smob) Stencil a; SCM dash_definition = me->get_property ("dash-definition"); -// SCM p = me->get_property ("dash-period"); -// SCM f = me->get_property ("dash-fraction"); -// SCM interval = me->get_property ("dash-interval"); -// if (scm_is_number (p) && scm_is_number (f)) -// a = Lookup::dashed_slur (one, line_thick, robust_scm2double (p, 1.0), -// robust_scm2double (f, 0)); -// else - a = Lookup::slur (one, - get_grob_direction (me) * base_thick, - line_thick, - dash_definition); -// robust_scm2double (p, 1.0), -// robust_scm2double (f, 0), -// robust_scm2double (interval, 1)); + a = Lookup::slur (one, + get_grob_direction (me) * base_thick, + line_thick, + dash_definition); #if DEBUG_SLUR_SCORING SCM annotation = me->get_property ("annotation"); diff --git a/lily/system.cc b/lily/system.cc index 9054988dab..6f363970ff 100644 --- a/lily/system.cc +++ b/lily/system.cc @@ -175,7 +175,7 @@ System::do_break_substitution_and_fixup_refpoints () } if (be_verbose_global) - message (_f ("Element count %d.", count + element_count ())); + message (_f ("Element count %d", count + element_count ()) + "\n"); } SCM diff --git a/lily/tie.cc b/lily/tie.cc index 955076b663..27033eaeaa 100644 --- a/lily/tie.cc +++ b/lily/tie.cc @@ -266,22 +266,10 @@ Tie::print (SCM smob) Stencil a; SCM dash_definition = me->get_property ("dash-definition"); -// SCM p = me->get_property ("dash-period"); -// SCM f = me->get_property ("dash-fraction"); -// SCM interval = me->get_property ("dash-interval"); -// if (scm_is_number (p) && scm_is_number (f)) -// a = Lookup::dashed_slur (b, -// line_thick, -// robust_scm2double (p, 1.0), -// robust_scm2double (f, 0)); -// else - a = Lookup::slur (b, - get_grob_direction (me) * base_thick, - line_thick, - dash_definition); -// robust_scm2double (p, 1.0), -// robust_scm2double (f, 0), -// robust_scm2double (interval, 1.0)); + a = Lookup::slur (b, + get_grob_direction (me) * base_thick, + line_thick, + dash_definition); #if DEBUG_TIE_SCORING SCM annotation = me->get_property ("annotation"); @@ -321,8 +309,7 @@ ADD_INTERFACE (Tie, "annotation " "avoid-slur " // UGH. "control-points " - "dash-fraction " - "dash-period " + "dash-definition " "details " "direction " "head-direction " diff --git a/lily/ttf.cc b/lily/ttf.cc index 62c6d4695e..d8e2b56f45 100644 --- a/lily/ttf.cc +++ b/lily/ttf.cc @@ -504,7 +504,7 @@ LY_DEFINE (ly_ttf_ps_name, "ly:ttf-ps-name", string file_name = ly_scm2string (ttf_file_name); if (be_verbose_global) - progress_indication ("[" + file_name); + progress_indication ("\n[" + file_name); FT_Face face; @@ -556,7 +556,7 @@ LY_DEFINE (ly_ttf_2_pfa, "ly:ttf->pfa", string file_name = ly_scm2string (ttf_file_name); if (be_verbose_global) - progress_indication ("[" + file_name); + progress_indication ("\n[" + file_name); Memory_out_stream stream; diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index e32d94498e..9aae417aa8 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -595,6 +595,8 @@ automatically when an output definition (a @code{\score} or (Voice AccidentalCautionary font-size -4) (Voice Slur direction ,DOWN) (Voice Script font-size -3) + (Voice Fingering font-size -8) + (Voice StringNumber font-size -8) ) keepAliveInterfaces = #'( @@ -669,15 +671,13 @@ context." \override Beam #'length-fraction = #0.62 %% No accidental in tablature ! - \remove Accidental_engraver + \remove "Accidental_engraver" \override Glissando #'extra-dy = #0.75 \override Glissando #'bound-details #'right = #`((attach-dir . ,LEFT) (padding . 0.3)) \override Glissando #'bound-details #'left = #`((attach-dir . ,RIGHT) (padding . 0.3)) - \override Glissando #'extra-dy = #0.75 - \override Glissando #'gap = #0.2 } \context { diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly index f14f543001..2dded22e3d 100644 --- a/ly/music-functions-init.ly +++ b/ly/music-functions-init.ly @@ -701,7 +701,8 @@ scoreTweak = (make-music 'SequentialMusic))) -tag = #(define-music-function (parser location tag arg) +tag = +#(define-music-function (parser location tag arg) (symbol? ly:music?) (_i "Add @var{tag} to the @code{tags} property of @var{arg}.") @@ -745,16 +746,20 @@ transposition = (ly:pitch-negate (pitch-of-note pitch-note))) 'Staff)) -tweak = #(define-music-function (parser location sym val arg) - (symbol? scheme? ly:music?) +tweak = +#(define-music-function (parser location sym val arg) + (symbol? scheme? ly:music?) + (_i "Add @code{sym . val} to the @code{tweaks} property of @var{arg}.") - (_i "Add @code{sym . val} to the @code{tweaks} property of @var{arg}.") - - (set! - (ly:music-property arg 'tweaks) - (acons sym val - (ly:music-property arg 'tweaks))) - arg) + (if (equal? (object-property sym 'backend-type?) #f) + (begin + (ly:warning (_ "cannot find property type-check for ~a") sym) + (ly:warning (_ "doing assignment anyway")))) + (set! + (ly:music-property arg 'tweaks) + (acons sym val + (ly:music-property arg 'tweaks))) + arg) diff --git a/ly/property-init.ly b/ly/property-init.ly index 184c317d76..79ddd427c4 100644 --- a/ly/property-init.ly +++ b/ly/property-init.ly @@ -10,9 +10,19 @@ slurUp = \override Slur #'direction = #UP slurDown = \override Slur #'direction = #DOWN slurNeutral = \revert Slur #'direction +#(define (make-simple-dash-definition dash-fraction dash-period) + (list (list 0 1 dash-fraction dash-period))) + slurDashed = { \override Slur #'dash-definition = #'((0 1 0.4 0.75)) } +slurDashPattern = +#(define-music-function (parser location dash-fraction dash-period) + (number? number?) + #{ + \override Slur #'dash-definition = + $(make-simple-dash-definition dash-fraction dash-period) + #}) slurDotted = { \override Slur #'dash-definition = #'((0 1 0.1 0.75)) } @@ -36,6 +46,13 @@ phrasingSlurNeutral = \revert PhrasingSlur #'direction phrasingSlurDashed = { \override PhrasingSlur #'dash-definition = #'((0 1 0.4 0.75)) } +phrasingSlurDashPattern = +#(define-music-function (parser location dash-fraction dash-period) + (number? number?) + #{ + \override PhrasingSlur #'dash-definition = + $(make-simple-dash-definition dash-fraction dash-period) + #}) phrasingSlurDotted = { \override PhrasingSlur #'dash-definition = #'((0 1 0.1 0.75)) } @@ -75,16 +92,28 @@ tieDown = \override Tie #'direction = #DOWN tieNeutral = \revert Tie #'direction tieDashed = { - \override Tie #'dash-period = #0.75 - \override Tie #'dash-fraction = #0.4 -} + \override Tie #'dash-definition = #'((0 1 0.4 0.75)) +} +tieDashPattern = +#(define-music-function (parser location dash-fraction dash-period) + (number? number?) + #{ + \override Tie #'dash-definition = + $(make-simple-dash-definition dash-fraction dash-period) + #}) tieDotted = { - \override Tie #'dash-period = #0.75 - \override Tie #'dash-fraction = #0.1 + \override Tie #'dash-definition = #'((0 1 0.1 0.75)) +} +tieHalfDashed = { + \override Tie #'dash-definition = #'((0 0.5 0.4 0.75) + (0.5 1 1 1)) +} +tieHalfSolid = { + \override Tie #'dash-definition = #'((0 0.5 1 1) + (0.5 1 0.4 0.75)) } tieSolid = { - \revert Tie #'dash-period - \revert Tie #'dash-fraction + \revert Tie #'dash-definition } easyHeadsOn = { @@ -269,7 +298,8 @@ arpeggioArrowDown = { arpeggioNormal = { \revert Arpeggio #'stencil \revert Arpeggio #'X-extent - \revert Arpeggio #'arpeggio-direction + \revert Arpeggio #'arpeggio-direction + \revert Arpeggio #'dash-definition } arpeggioBracket = { \revert Arpeggio #'X-extent @@ -278,7 +308,15 @@ arpeggioBracket = { arpeggioParenthesis = { \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur \override Arpeggio #'X-extent = #ly:grob::stencil-width + \revert Arpeggio #'dash-definition } +arpeggioParenthesisDashed = { + \override Arpeggio #'stencil = #ly:arpeggio::brew-chord-slur + \override Arpeggio #'X-extent = #ly:grob::stencil-width + \override Arpeggio #'dash-definition = #'((0 1 0.4 0.75)) +} + + glissando = #(make-music 'GlissandoEvent) diff --git a/make/doc-i18n-root-targets.make b/make/doc-i18n-root-targets.make index 3b97883dfd..213e478fa8 100644 --- a/make/doc-i18n-root-targets.make +++ b/make/doc-i18n-root-targets.make @@ -1,4 +1,6 @@ default: +ifeq ($(out),www) local-WWW-2: $(OUT_HTML_FILES) $(buildscript-dir)/mass-link --prepend-suffix .$(ISOLANG) hard $(outdir) $(top-build-dir)/Documentation/$(outdir) $(HTML_FILES) +endif diff --git a/make/doc-i18n-topdocs-targets.make b/make/doc-i18n-topdocs-targets.make index 0c0a018b7a..d7e26a95ce 100644 --- a/make/doc-i18n-topdocs-targets.make +++ b/make/doc-i18n-topdocs-targets.make @@ -1,5 +1,9 @@ +default: + +ifeq ($(out),www) local-WWW-1: $(MASTER_TEXI_FILES) $(PDF_FILES) local-WWW-2: $(HTML_FILES) find $(outdir) -name '*.html' | sed 's!$(outdir)/!!g' | xargs $(buildscript-dir)/mass-link --prepend-suffix .$(ISOLANG) hard $(outdir) $(top-build-dir)/Documentation/topdocs/$(outdir) NEWS.pdf find $(outdir) \( -name 'lily-*.png' -o -name 'lily-*.ly' \) | sed 's!$(outdir)/!!g' | xargs $(buildscript-dir)/mass-link hard $(outdir) $(top-build-dir)/Documentation/topdocs/$(outdir) +endif diff --git a/make/doc-i18n-user-targets.make b/make/doc-i18n-user-targets.make index 4bb7c5b9c9..478bfac498 100644 --- a/make/doc-i18n-user-targets.make +++ b/make/doc-i18n-user-targets.make @@ -1,5 +1,6 @@ default: +ifeq ($(out),www) local-WWW-1: $(MASTER_TEXI_FILES) $(PDF_FILES) $(XREF_MAPS_FILES) local-WWW-2: $(DEEP_HTML_FILES) $(BIG_PAGE_HTML_FILES) $(DOCUMENTATION_LOCALE_TARGET) @@ -10,3 +11,4 @@ local-WWW-2: $(DEEP_HTML_FILES) $(BIG_PAGE_HTML_FILES) $(DOCUMENTATION_LOCALE_TA $(DOCUMENTATION_LOCALE_TARGET): $(MAKE) -C $(depth)/Documentation/po out=www messages touch $@ +endif diff --git a/make/lysdoc-targets.make b/make/lysdoc-targets.make index 0b5d6ec2ed..7f58e9692f 100644 --- a/make/lysdoc-targets.make +++ b/make/lysdoc-targets.make @@ -1,6 +1,8 @@ +ifeq ($(out),www) local-WWW-1: $(outdir)/collated-files.texi $(outdir)/collated-files.pdf local-WWW-2: $(outdir)/collated-files.html +endif local-test-baseline: rm -rf $(outdir)-baseline diff --git a/make/mutopia-targets.make b/make/mutopia-targets.make index deaf240861..f89fcc4060 100644 --- a/make/mutopia-targets.make +++ b/make/mutopia-targets.make @@ -6,7 +6,9 @@ all: $(OUT_FILES) +ifeq ($(out),www) local-WWW-1: $(ly_examples) $(pdf_examples) $(png_examples) +endif tar: mkdir -p $(outdir)/$(tarball) diff --git a/python/convertrules.py b/python/convertrules.py index 96cb3ab476..7d97a417da 100644 --- a/python/convertrules.py +++ b/python/convertrules.py @@ -2900,7 +2900,8 @@ def conv(str): stderr_write (NOT_SMART % _("\\bar \".\" now produces a thick barline.\n")) stderr_write (UPDATE_MANUALLY) str = re.sub (r'ly:hairpin::after-line-breaking', r'ly:spanner::kill-zero-spanned-time', str) - if re.search(r'\'dash-fraction', str) or re.search(r'\'dash-period', str): + if re.search("(Slur|Tie)\w+#\'dash-fraction", str) \ + or re.search("(Slur|Tie)\w+#\'dash-period", str): stderr_write ("\n") stderr_write (NOT_SMART % _("Dash parameters for slurs and ties are now in \'dash-details.\n")) stderr_write (UPDATE_MANUALLY) diff --git a/python/musicexp.py b/python/musicexp.py index 61598f28e5..2d6421ffab 100644 --- a/python/musicexp.py +++ b/python/musicexp.py @@ -1539,6 +1539,8 @@ class ClefChange (Music): ('F', 4): "bass", ('F', 5): "subbass", ("percussion", 2): "percussion", + # Workaround: MuseScore uses PERC instead of percussion + ("PERC", 2): "percussion", ("TAB", 5): "tab"}.get ((self.type, self.position), None) def ly_expression (self): return '\\clef "%s%s"' % (self.clef_name (), self.octave_modifier ()) diff --git a/scm/backend-library.scm b/scm/backend-library.scm index 6be7b13e93..301868cb84 100644 --- a/scm/backend-library.scm +++ b/scm/backend-library.scm @@ -16,7 +16,9 @@ command (format #f "~a > ~a 2>&1 " command dev-null)))) (if (ly:get-option 'verbose) - (ly:message (_ "Invoking `~a'...") command)) + (begin + (ly:message (_ "Invoking `~a'...") command)) + (ly:progress "\n")) (set! status (if (pair? rest) @@ -75,20 +77,20 @@ ".pdf")) (is-eps (string-match "\\.eps$" name)) (paper-size-string (if is-eps - " -dEPSCrop " - (ly:format "-dDEVICEWIDTHPOINTS=~$ \ --dDEVICEHEIGHTPOINTS=~$ " - paper-width paper-height ))) + "-dEPSCrop" + (ly:format "-dDEVICEWIDTHPOINTS=~$\ + -dDEVICEHEIGHTPOINTS=~$" + paper-width paper-height))) (cmd (simple-format #f "~a\ ~a\ ~a\ ~a\ - -dCompatibilityLevel=1.4 \ + -dCompatibilityLevel=1.4\ -dNOPAUSE\ -dBATCH\ - -r1200 \ + -r1200\ -sDEVICE=pdfwrite\ -sOutputFile=~S\ -c .setpdfwrite\ @@ -98,9 +100,8 @@ (if (ly:get-option 'verbose) "" "-q") (if (or (ly:get-option 'gs-load-fonts) (ly:get-option 'gs-load-lily-fonts)) - - " -dNOSAFER " - " -dSAFER ") + "-dNOSAFER" + "-dSAFER") paper-size-string pdf-name name))) diff --git a/scm/lily.scm b/scm/lily.scm index c39b243648..d62c70bb0f 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -242,7 +242,7 @@ second. Dump results to `FILE.stacks' and (ly:error (_ "cannot find: ~A") x)) (primitive-load file-name) (if (ly:get-option 'verbose) - (ly:progress "]")))) + (ly:progress "]\n")))) (define-public DOS (let ((platform (string-tokenize @@ -688,7 +688,7 @@ PIDs or the number of the process." (if separate-logs (ly:stderr-redirect (format "~a.log" base) "w")) (if ping-log - (format ping-log "Procesing ~a\n" base)) + (format ping-log "Processing ~a\n" base)) (if (ly:get-option 'trace-memory-frequency) (mtrace:start-trace (ly:get-option 'trace-memory-frequency))) (lilypond-file handler x) @@ -750,6 +750,6 @@ PIDs or the number of the process." ;; FIXME: soft-code, localize (welcome-ly (string-append ly "Welcome_to_LilyPond.ly")) (cmd (get-editor-command welcome-ly 0 0 0))) - (ly:message (_ "Invoking `~a'...") cmd) + (ly:message (_ "Invoking `~a'...\n") cmd) (system cmd) (exit 1))) diff --git a/scm/markup.scm b/scm/markup.scm index b0680ead52..ceb6a86a24 100644 --- a/scm/markup.scm +++ b/scm/markup.scm @@ -208,7 +208,7 @@ against SIGNATURE, reporting MAKE-NAME as the user-invoked function. (string-append make-name ": " (_ "Invalid argument in position ~A. Expect: ~A, found: ~S.")) - error-msg) + (car error-msg) (cadr error-msg)(caddr error-msg)) (cons markup-function args)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/scm/music-functions.scm b/scm/music-functions.scm index 28ef5bbe43..fd950bf28a 100644 --- a/scm/music-functions.scm +++ b/scm/music-functions.scm @@ -369,7 +369,11 @@ i.e. this is not an override" (Voice Stem no-stem-extend #t) (Voice Beam thickness 0.384) (Voice Beam length-fraction 0.8) - (Voice Accidental font-size -4))) + (Voice Accidental font-size -4) + (Voice AccidentalCautionary font-size -4) + (Voice Script font-size -3) + (Voice Fingering font-size -8) + (Voice StringNumber font-size -8))) (make-grob-property-set 'NoteColumn 'horizontal-shift (quotient n 2)) (make-grob-property-set 'MultiMeasureRest 'staff-position (if (odd? n) -4 4)))))) diff --git a/scripts/auxiliar/makelsr.py b/scripts/auxiliar/makelsr.py index 4f95e7de77..80628cbf16 100755 --- a/scripts/auxiliar/makelsr.py +++ b/scripts/auxiliar/makelsr.py @@ -66,10 +66,16 @@ lsr_comment_re = re.compile (r'\s*%+\s*LSR.*') begin_header_re = re.compile (r'\\header\s*{', re.M) +ly_new_version_re = re.compile (r'\\version\s*"(.+?)"') + # add tags to ly files from LSR def add_tags (ly_code, tags): return begin_header_re.sub ('\\g<0>\n lsrtags = "' + tags + '"\n', ly_code, 1) +# for snippets from input/new, add message for earliest working version +def add_version (ly_code): + return '''%% Note: this file works from version ''' + ly_new_version_re.search (ly_code).group (1) + '\n' + def copy_ly (srcdir, name, tags): global unsafe global unconverted @@ -90,7 +96,7 @@ def copy_ly (srcdir, name, tags): if in_dir and in_dir in srcdir: s = LY_HEADER_LSR + add_tags (s, tags) else: - s = LY_HEADER_NEW + s + s = LY_HEADER_NEW + add_version (s) + s s = mark_verbatim_section (s) s = lsr_comment_re.sub ('', s) @@ -101,10 +107,12 @@ def copy_ly (srcdir, name, tags): unconverted.append (dest) if os.path.exists (dest + '~'): os.remove (dest + '~') - # -V seems to make unsafe snippets fail nicer/sooner - e = os.system ("lilypond -V -dno-print-pages -dsafe -o /tmp/lsrtest '%s'" % dest) - if e: - unsafe.append (dest) + # no need to check snippets from input/new + if in_dir and in_dir in srcdir: + # -V seems to make unsafe snippets fail nicer/sooner + e = os.system ("lilypond -V -dno-print-pages -dsafe -o /tmp/lsrtest '%s'" % dest) + if e: + unsafe.append (dest) def read_source_with_dirs (src): s = {} @@ -175,13 +183,12 @@ if unconverted: if notags_files: sys.stderr.write ('No tags could be found in these files:\n') sys.stderr.write ('\n'.join (notags_files) + '\n\n') - -dump_file_list ('lsr-unsafe.txt', unsafe) -sys.stderr.write (''' +if unsafe: + dump_file_list ('lsr-unsafe.txt', unsafe) + sys.stderr.write (''' Unsafe files printed in lsr-unsafe.txt: CHECK MANUALLY! git add input/lsr/*.ly xargs git diff HEAD < lsr-unsafe.txt ''') - diff --git a/scripts/auxiliar/yyout2grammar.py b/scripts/auxiliar/yyout2grammar.py new file mode 100755 index 0000000000..25b6f25a06 --- /dev/null +++ b/scripts/auxiliar/yyout2grammar.py @@ -0,0 +1,104 @@ +#! /usr/bin/env python + +# Convert from bison output file parser.output to +# Grammar and index. +# Drops all of the state information. +# Converts \\ to \ +# Eliminates the @ variables created when {} is placed in the middle of a rule## all of the c-code stuff +# +# +# Copyright 2005 by Carl D. Sorensen +# + +# to create input file, run +# bison -v parser.yy +# this will create a file parser.output +# then run +# yyout2grammar.py parser.output your_output_file +# + +import sys +import re + +atre = re.compile('(@\d+):') + +write_me = True + +if len(sys.argv)!=3: + print "Usage: yyout2grammar.py parser_output_file grammar_file." +else: + in_name = sys.argv[1] + out_name = sys.argv[2] + + print "input file name",in_name + print "output file name",out_name + in_file = open(in_name,'r') + out_file= open(out_name, 'w') + + at_items=[] + inline = in_file.readline() + while inline != '' and not(inline.startswith("Grammar")): + inline = in_file.readline() + if inline != '': + out_file.write(inline) + inline = in_file.readline() + while inline != '' and not(inline.startswith("Terminals")): + i = inline.find("$accept:") + if i>-1: + write_me = False + inline = in_file.readline() + atfound = re.findall(atre,inline) + if len(atfound) > 0: + at_items.extend(atfound) + print at_items + write_me = False + inline=in_file.readline() + else: + for at_item in at_items: + i=inline.find(at_item) + if i >= 0: + inline=inline[:i] + inline[i+len(at_item):] + i=inline.find('"\\\\') + while i > -1 : + inline = inline[:i+1]+inline[i+2:] + i = inline.find('"\\\\') + if write_me: + out_file.write(inline) + inline = in_file.readline() + write_me = True + index_items = [] + # Write the Terminals header line and the following blank line + out_file.write(inline) + inline = in_file.readline() + out_file.write(inline) + inline = in_file.readline() + while inline != '' and not(inline.startswith("Nonterminals")): + i=inline.find('"\\\\') + while i > -1 : + inline = inline[:i+1]+inline[i+2:] + i = inline.find('"\\\\') + index_items.append(inline) + inline = in_file.readline() + index_items.sort(lambda x,y:cmp(x.lower(),y.lower())) + for index_item in index_items: + out_file.write(index_item) + out_file.write('\n') + # Write the Nonterminals header and the blank line + out_file.write(inline) + inline = in_file.readline() + out_file.write(inline) + index_items = [] + index_item=in_file.readline() + inline=in_file.readline() + while inline != '' and not(inline.startswith("state")): + while inline.startswith(" "): + index_item = index_item + inline + inline = in_file.readline() + if not(index_item.startswith("@")) and \ + not(index_item.startswith("$accept")): + index_items.append(index_item) + index_item = inline + inline=in_file.readline() + index_items.sort(lambda x,y:cmp(x.lower(),y.lower())) + for index_item in index_items: + out_file.write(index_item) diff --git a/stepmake/stepmake/generic-targets.make b/stepmake/stepmake/generic-targets.make index d0c0bf44d1..a36faaeb23 100644 --- a/stepmake/stepmake/generic-targets.make +++ b/stepmake/stepmake/generic-targets.make @@ -1,5 +1,5 @@ -.PHONY : all clean bin-clean config default dist doc exe help html lib TAGS\ - po web web-1 WWW-1 WWW-2 WWW-post local-WWW-1 local-WWW-2 +.PHONY : all clean bin-clean config default dist exe help html lib TAGS\ + po doc doc-stage-1 WWW-1 WWW-2 WWW-post local-WWW-1 local-WWW-2 all: default $(LOOP) @@ -56,17 +56,18 @@ Targets specific to current directory:\n" help: generic-help local-help @echo -e "Generic targets:\n\ - all * update everything except website documentation\n\ + all * update everything except documentation with images\n\ clean * remove all generated stuff in $(outdir)\n\ bin-clean * same as clean, except that mf/out is preserved\n\ default same as the empty target\n\ + doc * update documentation with images in directory \`out-www'\n\ + doc-stage-1 * update only PDF and Info documentation in directory \`out-www'\n\ + doc-clean * clean \`out-www' directory\n\ exe update all executables\n\ help this help\n\ install * install programs and data (prefix=$(prefix))\n\ - uninstall* uninstall programs and data\n\ lib update all libraries\n\ - web * update website in directory \`out-www'\n\ - web-clean * clean \`out-www' directory\n\ + uninstall* uninstall programs and data\n\ TAGS generate tagfiles\n\ \n\ \`make' may be invoked from any subdirectory.\n\ @@ -173,6 +174,7 @@ $(config_make): $(top-src-dir)/configure # plus WWW-post (only at toplevel) # see INSTALL for more information. +ifeq ($(out),www) local-WWW-1: local-WWW-2: WWW-post: @@ -182,14 +184,15 @@ WWW-1: local-WWW-1 WWW-2: local-WWW-2 $(LOOP) +endif -web: web-1 +doc: doc-stage-1 $(MAKE) out=www WWW-2 $(MAKE) out=www WWW-post -web-1: +doc-stage-1: $(MAKE) -C $(depth)/scripts/build out= $(MAKE) out=www WWW-1 -web-clean: +doc-clean: $(MAKE) out=www clean diff --git a/stepmake/stepmake/po-targets.make b/stepmake/stepmake/po-targets.make index 4221f8ed45..05088ee170 100644 --- a/stepmake/stepmake/po-targets.make +++ b/stepmake/stepmake/po-targets.make @@ -12,13 +12,13 @@ new-po: ifeq ($(strip $(depth)),.) po: new-po $(LOOP) -localpo: +local-po: @true else -po: localpo +po: local-po $(LOOP) ALL_PO_SOURCES = $(ALL_C_SOURCES) $(ALL_CC_SOURCES) $(PYTHON_SCRIPTS_IN) $(PY_MODULES_IN) $(SCM_FILES) $(wildcard $(outdir)/*.hh) $(wildcard $(outdir)/*.cc) -localpo: +local-po: ifneq ($(strip $(ALL_PO_SOURCES)),) @echo $(ALL_PO_SOURCES) xgettext --default-domain=$(package) --join \ diff --git a/stepmake/stepmake/texinfo-targets.make b/stepmake/stepmake/texinfo-targets.make index e9cbf16aec..133a9bb218 100644 --- a/stepmake/stepmake/texinfo-targets.make +++ b/stepmake/stepmake/texinfo-targets.make @@ -2,7 +2,9 @@ default: $(INFO_FILES) +ifeq ($(out),www) local-WWW-1: $(XREF_MAPS_FILES) +endif local-doc: $(OUTTXT_FILES) diff --git a/stepmake/stepmake/topdocs-targets.make b/stepmake/stepmake/topdocs-targets.make index 93d2f9cccf..acacbb3c69 100644 --- a/stepmake/stepmake/topdocs-targets.make +++ b/stepmake/stepmake/topdocs-targets.make @@ -1,8 +1,10 @@ default: local-doc +ifeq ($(out),www) local-WWW-1: $(PDF_FILES) local-WWW-2: $(HTML_FILES) +endif -make-txt-files: $(TO_TOP_FILES) +txt-files: $(TO_TOP_FILES) diff --git a/stepmake/stepmake/toplevel-targets.make b/stepmake/stepmake/toplevel-targets.make index cc4a156e1a..94f9e234f3 100644 --- a/stepmake/stepmake/toplevel-targets.make +++ b/stepmake/stepmake/toplevel-targets.make @@ -1,6 +1,6 @@ -.PHONY: web-install -web-install: -web-uninstall: +.PHONY: install-doc uninstall-doc +install-doc: +uninstall-doc: local-dist: configure @@ -30,11 +30,11 @@ $(package-icon): $(MAKE) -C Documentation/pictures icon -do-top-doc: - -$(MAKE) -C Documentation/topdocs/ README_TOP_FILES="$(TOPDOC_FILES)" make-txt-files +top-doc: + $(MAKE) -C Documentation/topdocs/ README_TOP_FILES="$(TOPDOC_FILES)" txt-files -$(README_TXT_FILES): do-top-doc +$(README_TXT_FILES): top-doc local-clean: @@ -44,7 +44,7 @@ ifeq ($(strip $(SRCMAKE)),) $(MAKE) final-install endif -local-dist: do-top-doc +local-dist: top-doc dist: rm -rf $(distdir) @@ -59,17 +59,17 @@ local-help: config rerun configure\n\ dist roll tarball: $(depth)/$(outdir)/$(distname).tar.gz\n\ distclean also remove configure output\n\ - doc update all documentation (without images)\n\ - info build Info documentation with images\n\ - info-install install Info documentation with images\n\ cvs-clean also remove out directories and generated files\n\ maintainerclean also remove distributed generated files\n\ po make new translation Portable Object database\n\ po-replace do po-update and replace catalogs with msgmerged versions\n\ po-update update translation Portable Object database\n\ - web-install * install website documentation in (webdir=$(webdir))\n\ +\n\ + install-doc install website documentation in (webdir=$(webdir))\n\ and Info documentation with images\n\ - web-uninstall * remove installed documentation with images\n\ + uninstall-doc remove installed documentation with images\n\ + info build Info documentation with images\n\ + install-info install Info documentation with images\n\ \n\ Some more targets are available for testing changes:\n\ test-baseline check test-redo test-clean\n\