From: David Kastrup Date: Wed, 30 Jul 2014 15:37:14 +0000 (+0200) Subject: Merge remote-tracking branch 'origin/master' into translation X-Git-Tag: release/2.19.11-1~13^2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=730d4eb3e0328e8ba0b376f8191a5bb6ae7f904c;hp=8a50484b054224cfc72b65e63e88287ea812ba53;p=lilypond.git Merge remote-tracking branch 'origin/master' into translation --- diff --git a/Documentation/changes.tely b/Documentation/changes.tely index 71320d7ea5..37df7f9f75 100644 --- a/Documentation/changes.tely +++ b/Documentation/changes.tely @@ -60,6 +60,104 @@ which scares away people. * only show user-visible changes. @end ignore +@item +The @code{thin-kern} property of the @code{BarLine} grob has been +renamed to @code{segno-kern}. + +@item +@code{KeyCancellation} grobs now ignore cue clefs (like +@code{KeySignature} grobs do). + +@item +Add support for @code{\once@tie{}\unset} + +@item +It is now possible to individually color both the dots and parentheses +in fret diagrams when using the @code{\fret-diagram-verbose} markup +command. + +@lilypond[verbatim,quote,relative=1] +\new Voice { + c1^\markup { + \override #'(fret-diagram-details . ( + (finger-code . in-dot))) { + \fret-diagram-verbose #'((mute 6) + (place-fret 5 3 1 red) + (place-fret 4 5 2 inverted) + (place-fret 3 5 3 green) + (place-fret 2 5 4 blue inverted) + (place-fret 1 3 1 violet) + (barre 5 1 3 )) + } + } + c1^\markup { + \override #'(fret-diagram-details . ( + (finger-code . below-string))) { + \fret-diagram-verbose #'((mute 6) + (place-fret 5 3 1 red parenthesized) + (place-fret 4 5 2 yellow + default-paren-color + parenthesized) + (place-fret 3 5 3 green) + (place-fret 2 5 4 blue ) + (place-fret 1 3 1) + (barre 5 1 3)) + } + } +} +@end lilypond + +@item +Two new properties have been added for use in +@code{fret-diagram-details} when using the @code{\fret-diagram-verbose} +markup command; @code{fret-label-horizontal-offset} which affects the +@code{fret-label-indication} and @code{paren-padding} which controls the +space between the dot and the parentheses surrounding it. + +@lilypond[verbatim,quote,relative=1] +\new Voice { + c1^\markup { + \fret-diagram-verbose #'((mute 6) + (place-fret 5 3 1) + (place-fret 4 5 2) + (place-fret 3 5 3) + (place-fret 1 6 4 parenthesized) + (place-fret 2 3 1) + (barre 5 2 3)) + } + c1^\markup { + \override #'(fret-diagram-details . ( + (fret-label-horizontal-offset . 2) + (paren-padding . 0.25))) { + \fret-diagram-verbose #'((mute 6) + (place-fret 5 3 1) + (place-fret 4 5 2) + (place-fret 3 5 3) + (place-fret 1 6 4 parenthesized) + (place-fret 2 3 1) + (barre 5 2 3)) + } + } +} +@end lilypond + +@item +A new markup command @code{\justify-line} has been added. Similar to +the @code{\fill-line} markup command except that instead of setting +@emph{words} in columns, the @code{\justify-line} command balances the +whitespace between them ensuring that when there are three or more +words in a markup, the whitespace is always consistent. + +@lilypond[quote,verbatim,papersize=a6] +\markup \fill-line {oooooo oooooo oooooo oooooo} +\markup \fill-line {ooooooooo oooooooo oo ooo} +@end lilypond + +@lilypond[quote,verbatim,papersize=a6] +\markup \justify-line {oooooo oooooo oooooo oooooo} +\markup \justify-line {ooooooooo oooooooo oo ooo} +@end lilypond + @item A new command @code{\magnifyMusic} has been added, which allows the notation size to be changed without changing the staff size, @@ -74,6 +172,7 @@ while automatically scaling stems, beams, and horizontal spacing. \new Voice \relative { \voiceTwo \magnifyMusic 0.63 { + \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63) r32 c'' a c a c a c r c a c a c a c r c a c a c a c a c a c a c a c } @@ -235,14 +334,17 @@ A new note head style for Tabulature has been added; @code{TabNoteHead.style = #'slash}. @item -Four new Clefs have been added. @emph{Double G}, @emph{Tenor G}, -@emph{Varpercussion} and @emph{varC}. +Four new Clef glyphs have been added @emph{Double G}, @emph{Tenor G}, +@emph{Varpercussion} and @emph{varC} and their related tessitura. @lilypond[verbatim,quote,fragment] \override Staff.Clef.full-size-change = ##t \clef "GG" c c c c \clef "tenorG" c c c c \clef "varC" c c c c + \clef "altovarC" c c c c + \clef "tenorvarC" c c c c + \clef "baritonevarC" c c c c \clef "varpercussion" c c c c \break @@ -251,6 +353,9 @@ Four new Clefs have been added. @emph{Double G}, @emph{Tenor G}, \clef "GG" c c c c \clef "tenorG" c c c c \clef "varC" c c c c + \clef "altovarC" c c c c + \clef "tenorvarC" c c c c + \clef "baritonevarC" c c c \clef "varpercussion" c c c c @end lilypond diff --git a/Documentation/contributor/administration.itexi b/Documentation/contributor/administration.itexi index 90fe795a0c..787a099463 100644 --- a/Documentation/contributor/administration.itexi +++ b/Documentation/contributor/administration.itexi @@ -1,4 +1,3 @@ -@c -*- coding: utf-8; mode: texinfo; -*- @node Administrative policies @chapter Administrative policies @@ -9,7 +8,7 @@ don't fit anywhere else. * Meta-policy for this document:: * Environment variables:: * Meisters:: -* Patchy:: +* Automated testing with Patchy:: * Administrative mailing list:: * Grand Organization Project (GOP):: * Grand LilyPond Input Syntax Standardization (GLISS):: @@ -137,153 +136,675 @@ Currently: Francisco @end itemize -@node Patchy -@section Patchy -@subheading Introduction +@node Automated testing with Patchy +@section Automated testing with Patchy -Patchy is a set of Python scripts to automate two administrative -tasks: +@menu +* Overview of Patchy:: +* Patchy requirements:: +* Installing Patchy:: +* Configuring Patchy:: +* Running the scripts:: +* Automating Patchy:: +* Troubleshooting Patchy:: +@end menu + +@node Overview of Patchy +@subsection Overview of Patchy + +Patchy is a set of Python scripts used for testing patches or testing & +pushing new commits added to @code{remote/origin/staging} to +@code{remote/origin/master}. + +No programmatic skill is required to run either of the scripts; although +knowledge of compiling LilyPond and its documentation along with +understanding how to configure the @var{PATH} environment of your +computer is required. See @ref{Working with source code}. + +The two scripts that are used for each function are: @itemize @item -@code{lilypond-patchy-staging.py}: checks that new commits in -@code{staging} can compile the regtests and documentation before -merging @code{staging} into @code{master}. +@code{test-patches.py}. This script tests issues labelled as +@qq{Patch-New} on the LilyPond issue tracker. Part of the testing +process involves running the regression tests, so this script always +requires some human intervention in order to visually check for any +differences that may be present after a successful test has occurred. + +@item +@code{lilypond-patchy-staging.py}. This script checks for any new +commits in @code{remote/origin/staging}, makes sure that the new HEAD +compiles along with all the LilyPond documentation. Then finally +pushing to @code{remote/origin/master}. This script can be run and left +unattended, requiring no human intervention. + +@end itemize + +Both of the scripts can be run independently of each other and it is not +necessary to be able to run both. So if you wanted to contribute to +LilyPond development, for example by @emph{just} testing patches then +this would still be a helpful contribution to LilyPond's development. + +Patchy can also be configured to send emails after each successful (or +unsuccessful) operation. This is not a requirement and is turned off +by default. + +@c Need to explain in more detail how to set up Patchy for email but +@c as I don't use myself it I have no experience - JL + + +@node Patchy requirements +@subsection Patchy requirements + +@unnumberedsubsec Testing new patches -(completely automatic) +@itemize + +@item +A full local copy of the source code. See +@ref{Working with source code}. @item -@code{test-patches.py}: checks that patches apply to Git @code{master}, -compile, and lets a human check that there are no big unintended -changes to the regtests. +All the software needed for compiling LilyPond @emph{and} the +documentation. Although being able to build the full set of LilyPond's +manuals is not mandatory for testing (most) patches, part of the patch +testing process requires that the regression tests are run and it is +this that requires the software normally used for compiling +documentation. See @ref{Compiling}. -(requires some human input) +@item +Commit access is @emph{not} required to test patches, but a valid login +to @uref{http://code.google.com/} @emph{is}. @end itemize -@subheading Installing Patchy -To install Patchy, you should do the following: +@unnumberedsubsec Testing & pushing new commits + +@itemize + +@item +A full local copy of the source code. See +@ref{Working with source code}. -@enumerate @item -Create a new user on your box to run Patchy; this is a security -step for your own protection. It is recommended that this should -not be an administrator. New users are created from System; -Administration; Users and Groups. +All the software needed for compiling LilyPond @emph{and} the +documentation. Unlike testing patches, being able to build the full set +of LilyPond's documentation is required to be able to test & push new +commits. See @ref{Compiling}. @item -Get the Patchy scripts from +Commit access @emph{is} required to test and push new commits, but a +valid login to @uref{http://code.google.com/} is @emph{not}. See +@ref{Commit access}. + +@end itemize + + +@node Installing Patchy +@subsection Installing Patchy + +The Patchy scripts are not part of the LilyPond code base, but can be +downloaded from @uref{https://github.com/gperciva/lilypond-extra/}. The +scripts and related Python libraries are all located in the +@file{patches/} directory. + +Alternatively, use @code{git clone}; + @example -@uref{https://github.com/gperciva/lilypond-extra/} +git clone https://github.com/gperciva/lilypond-extra/ @end example -Patchy is in the @file{patches/} directory. + +This makes it simpler to update the scripts if any changes are ever made +to them. Finally, add the location of the @file{patches/} directory to +your @var{PATH}. + + +@node Configuring Patchy +@subsection Configuring Patchy + +@warning{It is recommended to create a new user on your computer +specifically to run the Patchy scripts as a security precaution and that +this user should not have any administrative privileges. Also do not +set password protection for your ssh key else you will not be able to +run the scripts unattended.} + +@enumerate @item -Put the scripts and Python libraries contained in @file{patches} in a -sensible place on your system; this can be done by appending -@file{patches/} full path to the @var{PATH} of the user that runs -Patchy. +Make sure the environment variables @var{LILYPOND_GIT} and +@var{LILYPOND_BUILD_DIR} are configured appropriately. See +@ref{Environment variables}. @item -Create a new git repository with +To save being prompted for your login and password to +@uref{http://code.google.com/} when testing patches. create a +@emph{plain-text} file in your Patchy user's @code{$HOME} directory +called @code{.lilypond-project-hosting-login} containing your login and +password, each on a separate line. + @example -git clone git://git.sv.gnu.org/lilypond.git +joe_smith123@@gmail.com +mYp455w0rd! @end example -This will create a directory called lilypond with the repo in it. -Make sure it's where you want it and name it lilypond-git -(assuming you want to follow the standard naming conventions). @item -Create environment variables @var{LILYPOND_GIT} and -@var{LILYPOND_BUILD_DIR}, see @ref{Environment variables}. +Manually run either the @code{test-patches.py} or +@code{lilypond-patchy-staging.py} scripts and when prompted: + +@smallexample +Warning: using default config; please edit /home/joe/.lilypond-patchy-config +Are you sure that you want to continue with the default config? (y/[n]) +@end smallexample + +Answer @qq{@code{n}} and press enter. + +The next time either of the scripts are run they will use the +@code{.lilypond-patchy-config} settings copied to your @code{$HOME} +directory. @item -Run Patchy once to set up config files, answer @q{@code{n}} when it -asks for going on, unless the default config file happens to suit your -setup: +Manually edit the @file{.lilypond-patchy-config} file, located in your +@code{$HOME} directory to change any of the default settings. + +@end enumerate + +These include: + +@itemize + +@item +All @code{make} operations are run with; @example -lilypond-patchy-staging.py +extra_make_options = -j3 CPU_COUNT=3 @end example +See @ref{Saving time with the -j option} + @item -Edit @file{$HOME/.lilypond-patchy-config} to provide the location of -your local lilypond Git repository, working directories for your build -directory, your results directory, compiler options and notification -method. If you don't want to use email notification, then delete -everything after @code{smtp_command:}. +A complete build of all the LilyPond documentation is @emph{not} +performed; +@example +patch_test_build_docs = no +@end example @item -Ensure that your new user has git push access. Follow the -instructions in the CG at @ref{Commit access}. Do not set -password protection for the key --- if you do you will not be able -to run patchy unattended. +Each instance of either a patch test or commit test & push is logged in; +@example +auto_compile_results_dir = ~/lilypond-auto-compile-results/ +@end example -@end enumerate +@item +Both scripts will perform their build operations in; +@example +build_dir = /tmp/lilypond-autobuild/ +@end example + +@end itemize -@subheading lilypond-patchy-staging.py +Each completed patch test will also generate its own directory in +@file{/tmp/...} labelled with the tracker issue number prefixed by +@code{show-}. +@example +\tmp\show-3446 +@end example + +Both the scripts create clones of @code{staging} and @code{master} +branches (prefixed with @code{test-}) with a third branch, called +@code{test-master-lock} used as a check to protect against two or more +instances of Patchy being run locally at the same time. + + +@node Running the scripts +@subsection Running the scripts + +@unnumberedsubsec Testing & pushing new commits + +@code{lilypond-patchy-staging.py} is run @emph{without} any arguments. +It then checks to see if @code{remote/origin/staging} is +@qq{further ahead} than @code{remote/origin/master}. + +@noindent +If there are no new differences between the two branches since the last +run check, the script will report something like this: + +@smallexample +(UTC) Begin LilyPond compile, previous commit at 4726764cb591f622e7893407db0e7d42bcde90d9 +Success: No new commits in staging +@end smallexample + +@noindent +If there are any differences between the two branches since the last +run check, (or if the script cannot for any reason, locate the last +instance of a commit that it checked) it will report something like +this: + +@smallexample +(UTC) Begin LilyPond compile, previous commit at 4726764cb591f622e7893407db0e7d42bcde90d9 +Merged staging, now at: 79e98a773b6570cfa28a15775a9dea3d3e54d6b5 + Success: ./autogen.sh --noconfigure + Success: /tmp/lilypond-autobuild/configure --disable-optimising +... +@end smallexample + +and proceed with running @code{make}, @code{make test} and a +@code{make doc}. Unlike @code{test-patches.py} if all the tests pass, +the script then pushes the changes to @code{remote/origin/master}. + +@smallexample +... +Success: nice make clean +Success: nice make -j7 CPU_COUNT=7 +Success: nice make test -j7 CPU_COUNT=7 +Success: nice make doc -j7 CPU_COUNT=7 +To ssh://joe@@git.sv.gnu.org/srv/git/lilypond.git + 79e98a7..4726764 test-staging -> master + Success: pushed to master +@end smallexample + +@warning{In the case where any of the @code{lilypond-patchy-staging.py} +tests fail, do not try to push your own fixes but report the failures to +the Developers List for advice.} + + +@unnumberedsubsec Testing new patches + +When run without any argument, @code{test-patches.py} will check +@uref{http://code.google.com/p/lilypond/issues/list} for all tracker +issues that are marked with the label @code{Patch-new}. It then scrapes +the issue, looking for the last Rietveld URL entered. It then downloads +the patch file and applies it to @code{test-master}. + +Here is an example where two tracker issues labeled as @code{Patch-new} +were detected: + +@smallexample +... +issues [4007, 4008] +Trying issue 4007 +Found url: http://codereview.appspot.com/112210043 +Found patch: 4007,/home/joe/lilypond-git/issue112210043_1.diff, +Trying issue 4008 +Found url: http://codereview.appspot.com/115770043 +Found patch: 4008,/home/joe/lilypond-git/issue115770043_1.diff, +Fetching, cloning, compiling master. +... +@end smallexample + +If run no tracker items with the @var{Patch-New} label are found it will +report: -@code{lilypond-patchy-staging.py} is run with @example -python lilypond-patchy-staging.py +issues [] @end example -Not much appears to happen except you can see a lot of CPU gets used -if you open System Monitor. There's not much point running -@code{lilypond-patchy-staging.py} unless there is something in -@code{staging} to be merged to @code{master}, however, if there's -nothing new in @code{staging} then the script won't waste resources by -compiling anything. - -The script fetches the current patches in staging and runs -@code{make}, @code{make test} and @code{make doc} to ensure that all of -these complete error-free. If you have set Patchy up to use email, -it emails its results to you. If you haven't, then you can view -them in a logfile. It also merges @code{staging} into @code{master}. - -@warning{in case the build fails, do not try to push fixes on top of -staging branch, for details see @ref{Pushing to staging}.} - -When you have run Patchy a few successful times with email sending, -you are ready for running it as a cron job. First, make sure you have -the following in @file{$HOME/.lilypond-patchy-config} to avoid -email flood: + +The script can also be run using the tracker issue number(s) as an +argument regardless if the @var{Patch-New} label has been assigned; @example -[notification] -notify_non_action = no +test-patches.py 4006 +@end example + +or + +@example +test-patches.py 4006 3992 4020 +@end example + +The script then checks to see if any previously +@code{make test-baseline}s have been generated and if the commit ID of +@code{remote/origin/master} is different from that previously completed +test. + +@noindent +If no previous @code{make test-baseline} test is discovered or if the +commit ID of @code{remote/origin/master} has changed, then a new +@code{make test-baseline} will run first automatically before the patch +is tested: + +This shows when the commit ID has changed: + +@smallexample +... +(UTC) Begin LilyPond compile, previous commit at 3f92dcb2c81dcd2755542b57a0a5f2039f29a211 +Merged master, now at: 4726764cb591f622e7893407db0e7d42bcde90d9 + Success: ./autogen.sh --noconfigure + Success: /tmp/lilypond-autobuild/configure --disable-optimising + Success: nice make clean + Success: nice make -j3 CPU_COUNT=3 + Success: nice make test-baseline -j3 CPU_COUNT=3 + Success: nice make doc -j3 CPU_COUNT=3 + Success: nice make doc-clean +... +@end smallexample + +@noindent +If a previous regression test @emph{is} discovered @emph{and} if the +commit ID of @code{remote/origin/master} has not changed, then the patch +will be tested against the previous @code{make test-baseline} without +the need to re-generate a new one: + +@smallexample +... +issues [4009] +Trying issue 4009 +Found url: http://codereview.appspot.com/110540043 +Found patch: 4009,/home/joe/lilypond-extra/patches/issue110540043_1.diff, +Fetching, cloning, compiling master. +(UTC) Begin LilyPond compile, previous commit at 4726764cb591f622e7893407db0e7d42bcde90d9 + Success: No new commits in master +Using test baseline from previous build. +... +@end smallexample + +The patch is then applied and a @code{make} and @code{make check} are +run. A full @code{make doc} is also run if the +@file{.lilypond-patchy-config} file has been edited accordingly; + +@smallexample +... +Issue 4009: +Issue 4009: Testing patch issue110540043_1.diff + Success: git apply --index /home/joe/lilypond-git/issue112210043_1.diff + Success: ./autogen.sh --noconfigure + Success: /tmp/lilypond-autobuild/configure --disable-optimising + Success: nice make clean + Success: nice make -j3 CPU_COUNT=3 + Success: nice make check -j3 CPU_COUNT=3 + Success: nice make doc -j3 CPU_COUNT=3 +... +@end smallexample + +Once all the tests have run (successfully or not), the script will clean +up from the previous patch and, if required, start testing the next +issue; + +@smallexample +... +Issue 4007: Cleaning up + Success: nice make test-clean + Success: nice make doc-clean + Success: nice make clean + Success: git reset --hard +Issue 4007: Done. +Issue 4008: +Issue 4008: Testing patch issue115770043_1_diff + Success: git apply --index /home/joe/lilypond-git/issue115770043_1.diff + Success: ./autogen.sh --noconfigure +... +@end smallexample + +and so on. + +@unnumberedsubsubsec Checking the regression test results + +Assuming the patch passed all the @code{make} tests, the regression +differences will be located in the @file{/test-results/} directory +within the build location for the patch issue number; + +@example +/tmp/show-4007/test-results/ +@end example + +Open @file{index.html} in a browser of your choice to view any +differences. + +@noindent +Alternatively if the Firefox browser is installed, then the regression +test results can be opened by calling the appropriate +@file{show-regtests-} file located in the auto-compile log location; + +@example +sh ~/lilypond-auto-compile-results/show-regtests-4007 +@end example + +See @ref{Regression tests}. + +@unnumberedsubsec Reporting test results + +Once a patch has been tested and the regression tests have been +manually checked, the tracker can be updated manually by editing the +tracker issue directly in the web browser or by using two additional +python scripts that are included as part of the Patchy suite. + +@unnumberedsubsubsec For patches that have passed + +Use the @code{accept-patch.py} script and run it with the Google issue +tracker number (not the Rietveld issue number) as an argument; + +@example +accept-patch.py 4007 +@end example + +This will automatically update the tracker issue with the phrase +@qq{Patchy the autobot says: passes tests.}. + +@noindent +It is also possible to add additional information to the default +message by adding a second argument within double-quote marks. + +@example +accept-patch.py 4007 "This also includes a full documentation build." +@end example + +The tracker issue's label is then changed automatically to +@qq{Patch-review}. + +@unnumberedsubsubsec Patches that have failed + +Use the @code{reject-patch.py} script and run it with the Google issue +tracker number (not the Rietveld issue number) as an argument but you +@emph{must} also include a second argument, in double-quotes, stating +the reason the patch has been rejected; + +@example +reject-patch.py 4007 "Fails the 'make check' test." @end example -Then, assuming Patchy run with user account @code{patchy}, write the -following to @file{$HOME/lilypond-patchy.cron}, adapting it as -necessary (the @code{/2} means @qq{run this every 2 hours}): +Once the @code{reject-patch.py} script has been run, the tracker issue's +label is changed automatically to @qq{Patch-Needs_work}. + + +@node Automating Patchy +@subsection Automating Patchy + +To run as a cron job make sure you have; + @example -02 0-23/2 * * * /home/patchy/git/lilypond-extra/patches/lilypond-patchy-staging.py +[notification] +notify_non_action = no @end example -@warning{@code{cron} will not inherit environment variables from -your main setup, so you must re-define any variables inside -@file{$HOME/lilypond-patchy.cron}. For instance, @var{LILYPOND_GIT} -may need to be defined if @var{git_repository_dir} is not correctly -set in @file{$HOME/.lilypond-patchy-config}.} +in @file{$HOME/.lilypond-patchy-config} to avoid any unintentional email +flooding: + +Assuming that Patchy run a user @qq{patchy}, create a file called +@file{$HOME/lilypond-patchy.cron}, adapting it as necessary (the +@code{/2} means @qq{run this every 2 hours}): + +@smallexample +02 0-23/2 * * * /home/patchy/lilypond-extra/patches/lilypond-patchy-staging.py +@end smallexample -Finally, install the cron job (you may need superuser privileges for +@warning{@code{cron} will not inherit environment variables so you must +re-define any variables inside @file{$HOME/lilypond-patchy.cron}. For +instance, @var{LILYPOND_GIT} may need to be defined if +@var{git_repository_dir} is not correctly set in +@file{$HOME/.lilypond-patchy-config}.} + +Finally, apply the cron job (you may need superuser privileges for this): + @example crontab -u patchy /home/patchy/lilypond-patchy.cron @end example -@subheading test-patches.py -@code{test-patches.py} prepares a regtest comparison for a human to -quickly glance at, to determine if the patch is ready for a review. -After looking at the comparison (or the lack of a comparison in the -case of problems), run @code{accept-patch.py} or -@code{reject-patch.py}. - -Once a patch has gotten a "LGTM" from Patchy, it should be -reviewed by relevant developers, and if it passes this, it can be -considered for countdown (see @ref{Commits and patches}) and -pushing to staging (see @ref{Pushing to staging}). + +@node Troubleshooting Patchy +@subsection Troubleshooting Patchy + +The following is a list of the most common messages that the scripts +may report with explanations. + +@itemize + +@item +@example +issues [] +@end example + +@itemize + +@item +There are currently no tracker issues with the @code{Patch-New} status. + +@item +If specific tracker issue number has been used as an argument when +running @code{test-patches.py}, then the issue contains no URL to +Rietveld. + +@end itemize + +@item +@smallexample +this Git revision has already been pushed by an operator other than this Patchy. +@end smallexample + +@itemize + +@item +Another, remote, machine has already tested and pushed the new commits +in staging. + +@item +You may also see this on your local machine if the auto-build files +have been deleted and this computer has previously already pushed the +listed commit ID to @code{master}. + +@end itemize + + + +@item +@smallexample +Git revision has not changed but checksum of test baseline has, must rebuild. +@end smallexample + +This occurs when Patchy detects that the commit ID has not changed +since the last test but it cannot locate the last +@code{make test-baseline} (usually because it has been deleted or moved) +and so a new @code{test-baseline} is rebuilt. + +@item +@example +Last patch for issue xxxx already tested or under testing +by another Patchy instance, skipping. +@end example + +@itemize + +@item +There is another instance of Patchy running on your computer that is +testing the same tracker issue. + +@item +A previous test attempt was unsuccessful for some reason and the scripts +were not able to tidy up after themselves (for example if you manually +halt the testing process by killing it or closing the terminal you may +have been running the script in). + +@noindent +There is a hidden file located in the @code{$HOME} directory of the user +running Patchy called @code{.lilypond-patchy-cache} that records the +current patches that are being tested, have been tested and the commit +ID of @code{remote/origin/master} since the last test. It will contain +a line like this: + +@example +[3995] +issue105560044_120001_diff = testing +@end example + +for any issue that it thinks is still in the process of being tested. + +@noindent +Manually remove this entry and re-run the script. + +@end itemize + +@item +@example +test-master-lock and PID entry exist but previous Patchy +run (PID xxxxx) died, resetting test-master-lock anyway. +@end example + +@item +A previous test attempt was unsuccessful for some reason and the scripts +were not able to tidy up after themselves (for example if you manually +halt the testing process by killing it or closing the terminal you may +have been running the script in). The @code{test-master-lock} branch +was therefore not able to be deleted cleanly however, nothing needs to +be done the scripts will rebuild any tests it needs to. + +@item +@example +fatal: A branch named 'test-master-lock' already exists. +@end example + +@itemize + +@item +There is another instance of Patchy running on your computer that is +testing the same tracker issue. + +@item +A previous test attempt was unsuccessful for some reason and the scripts +were not able to tidy up after themselves (for example if you manually +halt the testing process by killing it or closing the terminal you may +have been running the script in). The @code{test-master-lock} branch +was therefore not able to be deleted cleanly, in this case you must +manually delete the @code{test-master-lock} branch in your +@code{$LILYPOND_GIT} directory. + +@example +git branch -d test-master-lock +@end example + +@noindent +It may be wise to also manually delete @code{test-master} and +@code{test-staging} too, just to be safe. + +@end itemize + +@item +@example +*** FAILED STEP *** + merge from staging + Another instance (PID xxxxx) is already running. +@end example + +@noindent +This occurs when trying to run @code{lilypond-patchy-staging.py} when +another instance of either script is already running locally. + +@item +@example +Warning: something went wrong; omitting patch for issue 3976 +@end example + +@itemize + +@item +The Rietveld URL as listed in the tracker is incorrect (e.g. missing or +incorrect issue number + +@item +The patch on Rietveld is too large to download + +@end itemize + +@end itemize @node Administrative mailing list diff --git a/Documentation/contributor/doc-work.itexi b/Documentation/contributor/doc-work.itexi index f0bb52e8af..cdd069ed5d 100644 --- a/Documentation/contributor/doc-work.itexi +++ b/Documentation/contributor/doc-work.itexi @@ -194,7 +194,7 @@ have the @qq{docs} tag can then be easily added as a @emph{selected snippet} in the documentation. It will also appear automatically in the Snippets lists. See @ref{Introduction to LSR}. -Snippets that @emph{don't} have the @qq{docs} tage will still be +Snippets that @emph{don't} have the @qq{docs} tag will still be searchable and viewable within the LSR, but will be not be included in the Snippets list or be able to be included as part of the main documentation. @@ -945,6 +945,18 @@ the same format as @code{@@enumerate}. Do not use @node Special characters @unnumberedsubsubsec Special characters +@warning{In Texinfo, the backslash is an ordinary character, and +is entered without escaping (e.g. +@samp{The@tie{}@@code@{@bs{}foo@}@tie{}command}). However, within +double-quoted Scheme and/or LilyPond strings, backslashes +(including those ending up in Texinfo markup) need to be escaped +by doubling them: +@example +(define (foo x) + "The @@code@{@bs{}@bs{}foo@} command..." + ...) +@end example} + @itemize @item @code{--}, @code{---} --- Create an en dash (--) or an em dash diff --git a/Documentation/contributor/issues.itexi b/Documentation/contributor/issues.itexi index d534b073e4..8fe73428ee 100644 --- a/Documentation/contributor/issues.itexi +++ b/Documentation/contributor/issues.itexi @@ -885,38 +885,22 @@ PATCH: Countdown to 20130113 The text of the email sets the deadline for this countdown batch. At present, batches are done on Tuesday, Thursday and Sunday evenings. -The body of the email lists the patches grouped by patch type, and for -each patch, shows the tracker issue number and title, with a link to -the Rietveld item. Copying the information from the website and pasting -into the email gives a hyperlinked version of the information. - -@smallexample - -For 20:00 MST Tuesday January 8: - -Crash: - Issue 2990: \RemoveEmptyStaves in StaffGroup context crashes - R 7069044 - -Defect: - Issue 677: \score markup confuses paper settings - R 7028045 - Issue 3050: displayLilyMusic produced erroneous code for rightHandFinger arguments - R 7032045 - -Documentation: - Issue 2952: Upgrade documentation of \once - R 7031053 - Issue 3044: Dual license the files under mf/ using OFL. - R 6970046 - Issue 3084: [DOC]Add "Known issue" in NR 1.2.1 about Scaling durations with rational numbers - R 7071044 - -Enhancement: - Issue 3061: make \articulate handle colon-type tremolos - R 7033045 - Issue 3082: Patch: Let ChordNameVoice use the same performers as Voice - R 7054043 - Issue 3083: Patch: Chord change detection in fretboards should depend on placements, not notes - R 7062043 - Issue 2983: assertion failed with \glissando - R 6625078 +To create the countdown announcement, use the +@code{make-countdown-announcement.sh} script, which takes the +deadline date, and optionally your name. Follow the instructions +provided: +@example +cd $LILYPOND_BUILD_DIR +../scripts/auxiliar/make-countdown-announcement.sh "Jan 1, 2001" James +@end example -Cheers, -Colin +The script produces an announcement that is easily readable in all +email clients. Also, whenever a new contributor submits a patch, +you will be prompted to add the new username and author name to +the script itself, and then commit those changes to the main git +repository. -@end smallexample @item On the scheduled countdown day, the Patch Meister reviews the diff --git a/Documentation/contributor/lsr-work.itexi b/Documentation/contributor/lsr-work.itexi index 6e134ea1eb..31bf9c4168 100644 --- a/Documentation/contributor/lsr-work.itexi +++ b/Documentation/contributor/lsr-work.itexi @@ -17,7 +17,7 @@ @section Introduction to LSR The -@uref{http://lsr.dsi.unimi.it/, LilyPond Snippet Repository (LSR)} +@uref{http://lsr.di.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 @@ -31,7 +31,7 @@ Texinfo. When you create (or find!) a nice snippet, if it is supported by the LilyPond version running on the LSR, please add it to the LSR. -Go to @uref{http://lsr.dsi.unimi.it/, LSR} and log in -- if you haven't +Go to @uref{http://lsr.di.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. @@ -108,7 +108,7 @@ filename. @section Approving snippets The main task of LSR editors is approving snippets. To find a list of -unapproved snippets, log into @uref{http://lsr.dsi.unimi.it/, LSR} and +unapproved snippets, log into @uref{http://lsr.di.unimi.it/, LSR} and select @qq{No} from the dropdown menu to the right of the word @qq{Approved} at the bottom of the interface, then click @qq{Enable filter}. @@ -198,7 +198,7 @@ Next, download the updated snippets and run @command{makelsr.py} against them. From the top source directory, run: @smallexample -wget http://lsr.dsi.unimi.it/download/lsr-snippets-docs-`date +%F`.tar.gz +wget http://lsr.di.unimi.it/download/lsr-snippets-docs-`date +%F`.tar.gz tar -xzf lsr-snippets-docs-`date +%F`.tar.gz make -C $LILYPOND_BUILD_DIR scripts/auxiliar/makelsr.py lsr-snippets-docs-`date +%F` @@ -360,7 +360,7 @@ updating the binary running the LSR. @item Download the latest snippet tarball from -@uref{http://lsr.dsi.unimi.it/download/} and extract it. +@uref{http://lsr.di.unimi.it/download/} and extract it. The relevant files can be found in the @file{all} subdirectory. Make sure your shell is using an English language version, for example @code{LANG=en_US}, then run @command{convert-ly} on all diff --git a/Documentation/contributor/release-work.itexi b/Documentation/contributor/release-work.itexi index 4dc75330d8..8227763e40 100644 --- a/Documentation/contributor/release-work.itexi +++ b/Documentation/contributor/release-work.itexi @@ -76,9 +76,40 @@ A @qq{minor release} means an update of @code{y} in @code{2.x.y}. @item Using any system with git pull access (not necessarily the GUB -build machine), use the commands below to switch to the release -branch, get changes and prepare the release -announcement. This requires a system which has the release/unstable +build machine), use the commands below to do the following: + +@itemize +@item +switch to the release branch + +@item +update the release branch from origin/master + +@item +update the translation files + +@item +create the release announcement + +@item +update the build versions. + +@itemize +@item +VERSION_DEVEL = the current development version (previous VERSION_DEVEL + 0.01) + +@item +VERSION_STABLE = the current stable version (probably no change here) + +@end itemize + +@item +update the @qq{Welcome to Lilypond} version numbers to the version about to be +released + +@end itemize + +This requires a system which has the release/unstable branch. If you get a warning saying you are in @code{detached HEAD} state, then you should create a release/unstable branch with @code{git checkout release/unstable}. @@ -98,22 +129,9 @@ make -C $LILYPOND_BUILD_DIR po-replace mv $LILYPOND_BUILD_DIR/po/lilypond.pot po/ gedit Documentation/web/news-front.itexi Documentation/web/news.itexi gedit VERSION +gedit ly/Wel*.ly @end example -@itemize -@item -VERSION_DEVEL = the current development version (previous VERSION_DEVEL + 0.01) - -@item -VERSION_STABLE = the current stable version (probably no change here) - -@end itemize - -@item -Manually edit the two files @file{../ly/Welcome_to_LilyPond.ly} and -@file{../ly/Welcome-to-LilyPond-MacOS.ly} such that the hard coded -@code{\version} number reflects the version number about to be released. - @item Commit, push, switch back to master (or wherever else): @@ -123,6 +141,7 @@ git commit -m "Release: bump VERSION_DEVEL." ly/Welcome_to_LilyPond.ly git commit -m "Release: bump VERSION_DEVEL." ly/Welcome-to-LilyPond-MacOS.ly git commit -m "PO: update template." po/lilypond.pot git commit -m "Release: update news." Documentation/web/ +git commit -m "Release: bump Welcome versions." ly/Wel*.ly git push origin HEAD:release/unstable git checkout master @end example diff --git a/Documentation/cs/web/community.itexi b/Documentation/cs/web/community.itexi index c4e37ed8d7..07b0065088 100644 --- a/Documentation/cs/web/community.itexi +++ b/Documentation/cs/web/community.itexi @@ -127,7 +127,7 @@ dílech. Podívejte se, co vytvořili jiní lidé a napište své vlastní příklady! @example -@uref{http://lsr.dsi.unimi.it} +@uref{http://lsr.di.unimi.it} @end example Obzvláště poučné příklady z LSR jsou zahrnuty v naší diff --git a/Documentation/cs/web/manuals.itexi b/Documentation/cs/web/manuals.itexi index 376a6996d2..021fb99b63 100644 --- a/Documentation/cs/web/manuals.itexi +++ b/Documentation/cs/web/manuals.itexi @@ -320,7 +320,7 @@ tento dokument přečíst, dříve než si člověk začne myslet na větší pr Zde jsou vybrané úryvky ukázány na kódu LilyPondu s vytvořeným notovým zápisem. Úryvky pocházejí z -@uref{http://lsr@/.dsi@/.unimi@/.it,Skladiště s úryvky LilyPondu} +@uref{http://lsr@/.di@/.unimi@/.it,Skladiště s úryvky LilyPondu} (LSR) a všechny se nacházejí pod Public Domain. Vezměte na vědomí, že tento dokument nepředstavuje žádnou určitou diff --git a/Documentation/de/notation/expressive.itely b/Documentation/de/notation/expressive.itely index 4642922195..7dafb65025 100644 --- a/Documentation/de/notation/expressive.itely +++ b/Documentation/de/notation/expressive.itely @@ -1166,7 +1166,7 @@ Besondere Arpeggios mit Klammern können erstellt werden: @end lilypond Die @code{dash}-Eigenschaft der Arpeggioklammern werden von -der @code{'dash-details}-Eigenschaft kontrolliert, die +der @code{'dash-definition}-Eigenschaft kontrolliert, die beschrieben ist in @ref{Legatobögen}. Ein Arpeggio kann auch explizit ausgeschrieben werden, indem diff --git a/Documentation/de/notation/keyboards.itely b/Documentation/de/notation/keyboards.itely index eb262ad221..d140dbf62d 100644 --- a/Documentation/de/notation/keyboards.itely +++ b/Documentation/de/notation/keyboards.itely @@ -130,7 +130,7 @@ können, sind demonstriert in @c @snippets @c @lilypondfile[verbatim,quote,texidoc,doctitle] @c {forcing-visibility-of-systems-with-multi-bar-rests-when-using-\Staff \RemoveEmptyStaves.ly} -@c http://lsr.dsi.unimi.it/LSR/Item?u=1&id=312 +@c http://lsr.di.unimi.it/LSR/Item?u=1&id=312 @seealso diff --git a/Documentation/de/web/community.itexi b/Documentation/de/web/community.itexi index 8b68907ace..86c3779bdd 100644 --- a/Documentation/de/web/community.itexi +++ b/Documentation/de/web/community.itexi @@ -139,7 +139,7 @@ dürfen. Schauen Sie, was andere Leute konstruiert haben und schreiben Sie eigene Beispiele! @example -@uref{http://lsr.dsi.unimi.it} +@uref{http://lsr.di.unimi.it} @end example Besonders lehrreiche Beispiele aus dem LSR werden in unsere offizielle diff --git a/Documentation/de/web/manuals.itexi b/Documentation/de/web/manuals.itexi index d236a6f289..08b451f84d 100644 --- a/Documentation/de/web/manuals.itexi +++ b/Documentation/de/web/manuals.itexi @@ -137,7 +137,7 @@ vorhergehende stabile Versionen und die aktuelle Version als komprimiertes Archi der Übersetzungsstatus für nicht Nicht-Englischsprachige. @item -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}: +@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository}: Beispiele, Tricks und Tipps, von LilyPond-Benutzern erstellt. @item @@ -327,7 +327,7 @@ in Angriff nimmt. Hier werden ausgewählte Schnipsel an LilyPond-Code mit der produzierten Notation gezeigt. Die Schnipsel stammen aus dem -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond-Schnipsel-Depot} +@uref{http://lsr@/.di@/.unimi@/.it,LilyPond-Schnipsel-Depot} (LSR) und stehen alle unter der Public Domain. Beachten Sie, dass dieses Dokument keine bestimmte Teilmenge von diff --git a/Documentation/es/notation/expressive.itely b/Documentation/es/notation/expressive.itely index 7dfba42e5a..07b8868e6e 100644 --- a/Documentation/es/notation/expressive.itely +++ b/Documentation/es/notation/expressive.itely @@ -491,7 +491,7 @@ texto e indicaciones de pedal de piano. @lilypondfile[verbatim,quote,texidoc,doctitle] {printing-hairpins-using-al-niente-notation.ly} -@cindex Ferneyhough, reguladores de +@cindex Ferneyhough, reguladores de @cindex reguladores de Ferneyhough @cindex reguladores acampanados @cindex acampanados, reguladores @@ -1260,8 +1260,8 @@ Se pueden crear símbolos especiales de arpegio @emph{con corchete}: @end lilypond Las propiedades de discontinuidad del paréntesis del arpegio se -controlan mediante la propiedad @code{'dash-details}, que se describe -en @ref{Ligaduras de expresión}. +controlan mediante la propiedad @code{'dash-definition}, que se +describe en @ref{Ligaduras de expresión}. Los acordes arpegiados se pueden desarrollar explícitamente utilizando @notation{ligaduras de unión}. Véase @ref{Ligaduras de unión}. diff --git a/Documentation/es/notation/keyboards.itely b/Documentation/es/notation/keyboards.itely index ef4962d579..f512aebf73 100644 --- a/Documentation/es/notation/keyboards.itely +++ b/Documentation/es/notation/keyboards.itely @@ -119,7 +119,7 @@ se cruzan entre voces, como se explica en @rlearning{Otras aplicaciones de los t @c @snippets @c @lilypondfile[verbatim,quote,texidoc,doctitle] @c {forcing-visibility-of-systems-with-multi-bar-rests-when-using-\RemoveEmptyStaffContext.ly} -@c http://lsr.dsi.unimi.it/LSR/Item?u=1&id=312 +@c http://lsr.di.unimi.it/LSR/Item?u=1&id=312 @seealso Manual de aprendizaje: @@ -618,7 +618,7 @@ ejecución. @snippets @lilypondfile[verbatim,quote,texidoc,doctitle] -{accordion-registers.ly} +{accordion-register-symbols.ly} @seealso Fragmentos de código: diff --git a/Documentation/es/web/community.itexi b/Documentation/es/web/community.itexi index 2def991e76..d97742d08f 100644 --- a/Documentation/es/web/community.itexi +++ b/Documentation/es/web/community.itexi @@ -136,7 +136,7 @@ y usar libremente en sus propias obras. ¡Vea las cosas que otros han escrito, y añada las suyas propias! @example -@uref{http://lsr.dsi.unimi.it} +@uref{http://lsr.di.unimi.it} @end example Los ejemplos del LSR que son especialmente instructivos se incluyen en diff --git a/Documentation/es/web/manuals.itexi b/Documentation/es/web/manuals.itexi index b83f0fd989..e4648d8266 100644 --- a/Documentation/es/web/manuals.itexi +++ b/Documentation/es/web/manuals.itexi @@ -132,7 +132,7 @@ Versiones estables anteriores y versión actual como un archivo comprimido. estado del proceso de traducción para los lectores no anglófonos. @item -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository (el almacén de fragmentos de código de LilyPond)}: +@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository (el almacén de fragmentos de código de LilyPond)}: ejemplos, consejos y trucos creados por los usuarios. @item @@ -340,7 +340,7 @@ su lectura antes de afrontar proyectos grandes. Este manual presenta un conjunto seleccionado de fragmentos de código de LilyPond extraídos del -@uref{http://lsr@/.dsi@/.unimi@/.it,Repositorio de fragmentos de +@uref{http://lsr@/.di@/.unimi@/.it,Repositorio de fragmentos de código de LilyPond} (LSR). Todos los fragmentos se encuentran en el dominio público. diff --git a/Documentation/es/web/news.itexi b/Documentation/es/web/news.itexi index 4883a59c92..905a701380 100644 --- a/Documentation/es/web/news.itexi +++ b/Documentation/es/web/news.itexi @@ -4370,7 +4370,7 @@ file and download @ref{Descargas antiguas}! @newsItem @subsubheading February 26, 2005 -The @uref{http://lsr.dsi.unimi.it/,Lilypond Snippet +The @uref{http://lsr.di.unimi.it/,Lilypond Snippet Repository (LSR)} is a searchable database of Lilypond code snippets. You can add snippets too, so join the LSR project, and contribute creative ideas for using Lilypond. diff --git a/Documentation/essay/engraving.itely b/Documentation/essay/engraving.itely index 5040f2771b..5136a331e0 100644 --- a/Documentation/essay/engraving.itely +++ b/Documentation/essay/engraving.itely @@ -447,13 +447,9 @@ magnified by 236% to print at the same size as the previous example: At smaller sizes, LilyPond uses proportionally heavier lines so the music will still read well. -@ignore This also allows staves of different sizes to coexist peacefully when used together on the same page: -@c TODO: are the stems in this example the right thickness? How should -@c line weights be scaled for small staves? - @c Grieg's Violin Sonata Op. 45 @lilypond[indent=1.5cm] global = { @@ -464,9 +460,7 @@ global = { \score { << \new Staff \with { - fontSize = #-4 - \override StaffSymbol.staff-space = #(magstep -4) - \override StaffSymbol.thickness = #(magstep -3) + \magnifyStaff #2/3 } \relative c' { \global @@ -503,7 +497,7 @@ global = { >> } @end lilypond -@end ignore + @node Why work so hard? @unnumberedsubsec Why work so hard? diff --git a/Documentation/extending/programming-interface.itely b/Documentation/extending/programming-interface.itely index 3494a5fdd1..9c4cbe7805 100644 --- a/Documentation/extending/programming-interface.itely +++ b/Documentation/extending/programming-interface.itely @@ -336,32 +336,32 @@ Installed Files: @node Music function usage @subsection Music function usage -Music functions may currently be used in several places. Depending on -where they are used, restrictions apply in order to be able to parse -them unambiguously. The result a music function returns must be -compatible with the context in which it is called. +A @q{music function} has to return an expression matching the predicate +@code{ly:music?}. This makes music function calls suitable as arguments +of type @code{ly:music?} for another music function call. + +When using a music function call in other contexts, the context may +cause further semantic restrictions. @itemize @item -At top level in a music expression. No restriction apply here. +At the top level in a music expression a post-event is not accepted. @item -As a post-event, explicitly started with a direction indicator (one of -@code{-}, @code{^}, @w{and @code{_}}). - -In this case, you can't use an @emph{open} music expression as the last -argument, one that would end with a music expression able to accept -additional postevents. +When a music function (as opposed to an event function) returns an +expression of type post-event, LilyPond requires one of the named +direction indicators (@code{-}, @code{^}, @w{and @code{_}})) in order to +properly integrate the post-event produced by the music function call +into the surrounding expression. @item -As a chord constituent. The returned expression must be of +As a chord constituent. The returned expression must be of a @code{rhythmic-event} type, most likely a @code{NoteEvent}. @end itemize @noindent -The special rules for trailing arguments make it possible to write -polymorphic functions like @code{\tweak} that can be applied to -different constructs. +@q{Polymorphic} functions, like @code{\tweak}, can be applied to +post-events, chord constituent and top level music expressions. @node Simple substitution functions @subsection Simple substitution functions @@ -1135,25 +1135,137 @@ This new markup list command can be used as follows: @cindex calling code during interpreting @funindex \applyContext +@funindex make-apply-context +@funindex ly:context-property +@funindex ly:context-set-property! +@funindex ly:context-grob-definition +@funindex ly:assoc-get +@funindex ly:context-pushpop-property + +Contexts can be modified during interpretation with Scheme code. +In a LilyPond code block, the syntax for this is: -Contexts can be modified during interpretation with Scheme code. The -syntax for this is @example \applyContext @var{function} @end example +In Scheme code, the syntax is: + +@example +(make-apply-context @var{function}) +@end example + @code{@var{function}} should be a Scheme function that takes a single argument: the context in which the @code{\applyContext} -command is being called. The following code will print the -current bar number on the standard output during the compile: +command is being called. The function can access as well as +override/set grob properties and context properties. Any actions +taken by the function that depend on the state of the context are +limited to the state of the context @emph{when the function is +called}. Also, changes effected by a call to @code{\applyContext} +remain in effect until they are directly modified again, or +reverted, even if the initial conditions that they depended on +have changed. + +The following scheme functions are useful when using +@code{\applyContext}: -@example +@table @code +@item ly:context-property +look up a context property value + +@item ly:context-set-property! +set a context property + +@item ly:context-grob-definition +@itemx ly:assoc-get +look up a grob property value + +@item ly:context-pushpop-property +do a @code{\temporary@tie{}\override} +or a @code{\revert} on a grob property +@end table + + +The following example looks up the current @code{fontSize} value, and +then doubles it: + +@lilypond[quote,verbatim] +doubleFontSize = \applyContext - #(lambda (x) - (format #t "\nWe were called in barnumber ~a.\n" - (ly:context-property x 'currentBarNumber))) -@end example + #(lambda (context) + (let ((fontSize (ly:context-property context 'fontSize))) + (ly:context-set-property! context 'fontSize (+ fontSize 6)))) + +{ + \set fontSize = -3 + b'4 + \doubleFontSize + b' +} +@end lilypond + +The following example looks up the current colors of the +@code{NoteHead}, @code{Stem}, and @code{Beam} grobs, and then changes +each to a less saturated shade. + +@lilypond[quote,verbatim] +desaturate = +\applyContext + #(lambda (context) + (define (desaturate-grob grob) + (let* ((grob-def (ly:context-grob-definition context grob)) + (color (ly:assoc-get 'color grob-def black)) + (new-color (map (lambda (x) (min 1 (/ (1+ x) 2))) color))) + (ly:context-pushpop-property context grob 'color new-color))) + (for-each desaturate-grob '(NoteHead Stem Beam))) + +\relative g' { + \time 3/4 + g8[ g] \desaturate g[ g] \desaturate g[ g] + \override NoteHead.color = #darkred + \override Stem.color = #darkred + \override Beam.color = #darkred + g[ g] \desaturate g[ g] \desaturate g[ g] +} +@end lilypond + + +This also could be implemented as a music function, in order to +restrict the modifications to a single music block. Notice how +@code{ly:context-pushpop-property} is used both as a +@code{\temporary@tie{}\override} and as a @code{\revert}: + +@lilypond[quote,verbatim] +desaturate = +#(define-music-function + (parser location music) (ly:music?) + #{ + \applyContext + #(lambda (context) + (define (desaturate-grob grob) + (let* ((grob-def (ly:context-grob-definition context grob)) + (color (ly:assoc-get 'color grob-def black)) + (new-color (map (lambda (x) (min 1 (/ (1+ x) 2))) color))) + (ly:context-pushpop-property context grob 'color new-color))) + (for-each desaturate-grob '(NoteHead Stem Beam))) + #music + \applyContext + #(lambda (context) + (define (revert-color grob) + (ly:context-pushpop-property context grob 'color)) + (for-each revert-color '(NoteHead Stem Beam))) + #}) + +\relative g' { + \override NoteHead.color = #darkblue + \override Stem.color = #darkblue + \override Beam.color = #darkblue + g8 a b c + \desaturate { d c b a } + g b d b g2 +} +@end lilypond @node Running a function on all layout objects @@ -1265,21 +1377,21 @@ can by found in the Internals Reference or the file 'define-grobs.scm': If routines with multiple arguments must be called, the current grob can be inserted with a grob closure. Here is a setting from -@code{AccidentalSuggestion}, +@code{RehearsalMark}, @example `(X-offset . - ,(ly:make-simple-closure - `(,+ + ,(ly:make-simple-closure + `(,+ + ,(ly:make-simple-closure + (list ly:break-alignable-interface::self-align-callback)) ,(ly:make-simple-closure - (list ly:self-alignment-interface::centered-on-x-parent)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self))))) + (list ly:self-alignment-interface::x-aligned-on-self))))) @end example @noindent -In this example, both @code{ly:self-alignment-interface::x-aligned-on-self} and -@code{ly:self-alignment-interface::centered-on-x-parent} are called +In this example, both @code{ly:break-alignable-interface::self-align-callback} and +@code{ly:self-alignment-interface::x-aligned-on-self} are called with the grob as argument. The results are added with the @code{+} function. To ensure that this addition is properly executed, the whole thing is enclosed in @code{ly:make-simple-closure}. diff --git a/Documentation/fr/notation/expressive.itely b/Documentation/fr/notation/expressive.itely index d876d99f98..664ca80e34 100644 --- a/Documentation/fr/notation/expressive.itely +++ b/Documentation/fr/notation/expressive.itely @@ -1251,8 +1251,8 @@ arpégé : @end lilypond Les indications d'arpeggio peuvent se présenter sous la forme de ligne -discontinue à l'aide de la propriété @code{'dash-details}. Pour plus -de détails à ce propos, consultez @ref{Liaisons d'articulation}. +discontinue à l'aide de la propriété @code{'dash-definition}. Pour +plus de détails à ce propos, consultez @ref{Liaisons d'articulation}. Un arpège peut parfois s'écrire de manière explicite, à l'aide de liaisons de tenue. Pour plus d'information, voir diff --git a/Documentation/fr/notation/keyboards.itely b/Documentation/fr/notation/keyboards.itely index 5f0075d66a..8bbdaf0b0b 100644 --- a/Documentation/fr/notation/keyboards.itely +++ b/Documentation/fr/notation/keyboards.itely @@ -607,7 +607,7 @@ pour exécuter un morceau. @snippets @lilypondfile[verbatim,quote,texidoc,doctitle] -{accordion-registers.ly} +{accordion-register-symbols.ly} @seealso Morceaux choisis : diff --git a/Documentation/fr/web/community.itexi b/Documentation/fr/web/community.itexi index 4d7ae628d9..75f3e5913c 100644 --- a/Documentation/fr/web/community.itexi +++ b/Documentation/fr/web/community.itexi @@ -147,7 +147,7 @@ Ils sont librement réutilisables dans vos propres travaux. N'hésitez pas à apporter votre concours à cette banque de trucs et astuces ! @example -@uref{http://lsr.dsi.unimi.it} +@uref{http://lsr.di.unimi.it} @end example Un certain nombre d'exemples issus du LSR et particulièrement pertinents diff --git a/Documentation/fr/web/manuals.itexi b/Documentation/fr/web/manuals.itexi index 67097dab1a..ced9d07b6c 100644 --- a/Documentation/fr/web/manuals.itexi +++ b/Documentation/fr/web/manuals.itexi @@ -145,7 +145,7 @@ versions. état des traductions pour les lecteurs non anglophones. @item -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository} : +@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository} : collection d'exemples, trucs et astuces élaborés par des utilisateurs. @item @@ -356,7 +356,7 @@ recommandée avant d'aborder de grands projets. Il s'agit d'une sélection de petits exemples montrant des trucs, astuces et fonctionnalités particulières de LilyPond, issus de -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository} +@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository} (LSR). Tous ces exemples sont dans le domaine public. Notez bien que cette annexe n'est en aucune manière un miroir ou même diff --git a/Documentation/hu/web/manuals.itexi b/Documentation/hu/web/manuals.itexi index bf052b46ca..c63a76cc38 100644 --- a/Documentation/hu/web/manuals.itexi +++ b/Documentation/hu/web/manuals.itexi @@ -313,7 +313,7 @@ Ajánlott elolvasni, mielőtt nagy művek bevitelébe kezd az ember. @subheading Kódrészletek Ez egy válogatás a -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Kódrészletek Tárházából}. +@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Kódrészletek Tárházából}. Minden kódrészlet közkincs. A kottaírás kézikönyvének megfelelő szakaszaiban is találhatóak ilyenek a diff --git a/Documentation/included/authors.itexi b/Documentation/included/authors.itexi index fa67b32769..8d8db69c3e 100644 --- a/Documentation/included/authors.itexi +++ b/Documentation/included/authors.itexi @@ -83,6 +83,9 @@ Main author @uref{http://AvatarAcademy.nl}, Main author +@item Mark Polesky: +Documentation, Code cleanup + @item Mike Solomon: @email{mike@@mikesolomon.org}, Core developer, Frog meister @@ -139,9 +142,6 @@ SVG guru, bug squad member, bug squasher, text handling @uref{http://percival-music.ca}, Bug meister, Grand Documentation Project leader -@item Mark Polesky: -Assistant documentation editor, Code cleanup - @item Neil Puttock: Core developer @@ -171,8 +171,11 @@ LSR editor and Bug squad member Aleksandr Andreev, Frédéric Bron, -Torsten Hämmerle , +Torsten Hämmerle, +Rutger Hofmann, Marc Hohl, +Felix Janda, +Thomas Klausner, James Lowe, Andrew Main, Thomas Morley, @@ -266,6 +269,7 @@ Federico Bruni, Luca Rossetto Casel, Felipe Castro, Pavel Fric, +Walter Garcia-Fontes, Jean-Charles Malahieude, Till Paala, Yoshiki Sawada diff --git a/Documentation/it/notation/expressive.itely b/Documentation/it/notation/expressive.itely index 86e9ad2b7a..bb360d6be8 100644 --- a/Documentation/it/notation/expressive.itely +++ b/Documentation/it/notation/expressive.itely @@ -1212,7 +1212,7 @@ Si possono creare simboli di arpeggio speciali @emph{in forma di parentesi}: @end lilypond Le proprietà del tratteggio della parentesi dell'arpeggio sono regolate -dalla proprietà @code{'dash-details}, descritta in @ref{Slurs}. +dalla proprietà @code{'dash-definition}, descritta in @ref{Slurs}. Gli arpeggi possono essere scritti in modo esplicito con le legature di valore. Per maggiori dettagli si veda @ref{Ties}. diff --git a/Documentation/it/web/community.itexi b/Documentation/it/web/community.itexi index 4737b5c964..2f6d65a231 100644 --- a/Documentation/it/web/community.itexi +++ b/Documentation/it/web/community.itexi @@ -136,7 +136,7 @@ usati nei tuoi lavori. Guarda quello che hanno scritto altre persone, e aggiungi i tuoi esempi! @example -@uref{http://lsr.dsi.unimi.it} +@uref{http://lsr.di.unimi.it} @end example Esempi particolarmente istruttivi provenienti dal LSR sono inclusi nella diff --git a/Documentation/it/web/manuals.itexi b/Documentation/it/web/manuals.itexi index 15761b230c..0a83725e44 100644 --- a/Documentation/it/web/manuals.itexi +++ b/Documentation/it/web/manuals.itexi @@ -126,7 +126,7 @@ versioni stabili precedenti e quella attuale in un archivio compresso. stato delle traduzioni per i lettori di lingua non inglese. @item -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}: +@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository}: esempi, consigli e trucchi creati dagli utenti. @item @@ -329,7 +329,7 @@ intraprendere un progetto impegnativo. @subheading Frammenti Questo manuale presenta una selezione di frammenti di codice LilyPond tratti dal -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository} +@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository} (LSR). Tutti i frammenti di codice sono nel pubblico dominio. Si prega di notare che questo documento non è un sottoinsieme esatto del LSR. LSR diff --git a/Documentation/ja/notation/expressive.itely b/Documentation/ja/notation/expressive.itely index 97973e4d2b..fd3d755797 100644 --- a/Documentation/ja/notation/expressive.itely +++ b/Documentation/ja/notation/expressive.itely @@ -1229,9 +1229,9 @@ c1\glissando | 2\arpeggio @end lilypond -括弧スタイルのアルペジオの破線プロパティは @code{'dash-details} プロパティで@c +括弧スタイルのアルペジオの破線プロパティは @code{'dash-definition} プロパティで@c 制御します。@c -@code{'dash-details} プロパティについては @ref{スラー} で説明しています。 +@code{'dash-definition} プロパティについては @ref{スラー} で説明しています。 アルペジオをタイを用いて明示的に描き出すことができます。@c 詳細は @ref{タイ} を参照してください。 diff --git a/Documentation/ja/notation/keyboards.itely b/Documentation/ja/notation/keyboards.itely index 9827d26632..3822d009b0 100644 --- a/Documentation/ja/notation/keyboards.itely +++ b/Documentation/ja/notation/keyboards.itely @@ -116,7 +116,7 @@ @c @snippets @c @lilypondfile[verbatim,quote,texidoc,doctitle] @c {forcing-visibility-of-systems-with-multi-bar-rests-when-using-\RemoveEmptyStaffContext.ly} -@c http://lsr.dsi.unimi.it/LSR/Item?u=1&id=312 +@c http://lsr.di.unimi.it/LSR/Item?u=1&id=312 @seealso 学習マニュアル: diff --git a/Documentation/ja/web/community.itexi b/Documentation/ja/web/community.itexi index d196af2d1c..54fc358200 100644 --- a/Documentation/ja/web/community.itexi +++ b/Documentation/ja/web/community.itexi @@ -131,7 +131,7 @@ LilyPond コード断片リポジトリ (LSR) はユーザが投稿した例の@ 他の人が書いた楽譜を見て、あなた自身も投稿してください! @example -@uref{http://lsr.dsi.unimi.it} +@uref{http://lsr.di.unimi.it} @end example LSR から、@c diff --git a/Documentation/ja/web/manuals.itexi b/Documentation/ja/web/manuals.itexi index 1d63b8ffd0..386d24b143 100644 --- a/Documentation/ja/web/manuals.itexi +++ b/Documentation/ja/web/manuals.itexi @@ -123,7 +123,7 @@ LilyPond は @strong{テキスト ベース} の楽譜作成プログラムで 非英語圏の読者のための翻訳状況。 @item -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}: +@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository}: ユーザが作成した例、ヒント、それに TIPS。 @item @ref{Development}: @@ -305,7 +305,7 @@ LilyPond 記譜法を他のプログラムと統合する方法について説 @divClass{column-left-top} @subheading コード断片集 -これは @uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond コード断片リポジトリ} +これは @uref{http://lsr@/.di@/.unimi@/.it,LilyPond コード断片リポジトリ} (LSR) から選び出した LilyPond のコード断片集です。@c LSR にあるすべてのコード断片はパブリック ドメインにあります (公開されています)。 diff --git a/Documentation/learning/fundamental.itely b/Documentation/learning/fundamental.itely index 60e67ee135..c64af67ed4 100644 --- a/Documentation/learning/fundamental.itely +++ b/Documentation/learning/fundamental.itely @@ -3060,9 +3060,6 @@ violin = \relative c'' @{ @} @end example -@c TODO Replace the following with a better example -td -@c Skylining handles this correctly without padText - So far we've seen static substitution -- when LilyPond sees @code{\padText}, it replaces it with the stuff that we've defined it to be (ie the stuff to the right of @@ -3080,12 +3077,12 @@ padText = \once \override TextScript.padding = #padding #}) -\relative c''' { - c4^"piu mosso" b a b | +\relative c'' { + c4^"piu mosso" b a b \padText #1.8 - c4^"piu mosso" d e f | + c4^"piu mosso" b a b \padText #2.6 - c4^"piu mosso" fis a g | + c4^"piu mosso" b a b } @end lilypond diff --git a/Documentation/music-glossary.tely b/Documentation/music-glossary.tely index a58b49971b..056d6b0064 100644 --- a/Documentation/music-glossary.tely +++ b/Documentation/music-glossary.tely @@ -3618,8 +3618,7 @@ played above the bass notes. @lilypond[quote,line-width=13.0\cm] \new GrandStaff << \new Staff = "rh" \with { - fontSize = #-3 - \override StaffSymbol #'staff-space = #(magstep -3) + \magnifyStaff #2/3 } \relative c'' { \clef treble \key es \major diff --git a/Documentation/nl/web/manuals.itexi b/Documentation/nl/web/manuals.itexi index 61db2db59e..427b1d210a 100644 --- a/Documentation/nl/web/manuals.itexi +++ b/Documentation/nl/web/manuals.itexi @@ -137,7 +137,7 @@ vorige stabiele versies en huidige als gecomprimeerd archief. status van de vertaling voor niet-Engelstaligen. @item -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippers Repository}: +@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippers Repository}: voorbeelden door gebruikers, hints en tips. @item @@ -330,7 +330,7 @@ lectuur indien je een groot project wilt beginnen. Dit toont een geselecteerde set LilyPond-snippers (codefragementen) uit de -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet +@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository} (LSR). Al deze snippers zijn publiek domein. Let op dat dit document geen exacte deelverzameling is van diff --git a/Documentation/notation/ancient.itely b/Documentation/notation/ancient.itely index 67aefbd86d..e4ded2fa4f 100644 --- a/Documentation/notation/ancient.itely +++ b/Documentation/notation/ancient.itely @@ -2699,13 +2699,6 @@ the @code{Stem_engraver} from the Voice context: @} @end example -However, in some transcription styles, stems are used -occasionally, for example to indicate the transition from a -single-tone recitative to a fixed melodic gesture. In these cases, -one can use either @code{\hide Stem} or -@code{\override Stem.length = #0} instead, and restore the stem -when needed with the corresponding @code{\once \override Stem.transparent = ##f} (see example below). - @b{Timing.} For unmetered chant, there are several alternatives. The Time_signature_engraver can be removed from the Staff context @@ -2751,7 +2744,10 @@ verba = \lyricmode { \Staff \remove "Time_signature_engraver" \remove "Bar_engraver" - \hide Stem + } + \context { + \Voice + \remove "Stem_engraver" } } } @@ -2759,17 +2755,25 @@ verba = \lyricmode { This works fine, as long as the text doesn't span a line break. If that is the case, an alternative is to add hidden notes to the -score, here in combination with changing stem visibility: +score, as below. +In some transcription styles, stems are used +occasionally, for example to indicate the transition from a +single-tone recitative to a fixed melodic gesture. In these cases, +one can use either @code{\hide Stem} or +@code{\override Stem.length = #0} instead of @code{\remove}-ing +the @code{Stem_engraver} and restore the stem +when needed with the corresponding @code{\undo \hide Stem}. @lilypond[verbatim,ragged-right] \include "gregorian.ly" chant = \relative c' { \clef "G_8" \set Score.timing = ##f + \hide Stem c\breve \hide NoteHead c c c c c \undo \hide NoteHead - \override Stem.transparent = ##f \stemUp c4 b4 a + \undo \hide Stem \stemUp c4 b4 a \hide Stem c2 c4 \divisioMaior c\breve \hide NoteHead c c c c c c c \undo \hide NoteHead c4 c f, f \finalis @@ -2790,7 +2794,6 @@ verba = \lyricmode { \Staff \remove "Time_signature_engraver" \hide BarLine - \hide Stem } } } diff --git a/Documentation/notation/chords.itely b/Documentation/notation/chords.itely index f8340dadac..8ba8009edd 100644 --- a/Documentation/notation/chords.itely +++ b/Documentation/notation/chords.itely @@ -90,25 +90,6 @@ Snippets: Predefined shorthands for articulations and ornaments cannot be used on notes in chord mode, see @ref{Articulations and ornamentations}. -When chord mode and note mode are mixed in sequential music, and -chord mode comes first, the note mode will create a new @code{Staff} -context: - -@lilypond[verbatim,quote,ragged-right,relative=1] -\chordmode { c2 f } -2 -@end lilypond - -@noindent -To avoid this behavior, explicitly create the @code{Staff} context: - -@lilypond[verbatim,quote,ragged-right,relative=1] -\new Staff { - \chordmode { c2 f } - 2 -} -@end lilypond - @node Common chords @unnumberedsubsubsec Common chords @@ -360,7 +341,7 @@ chord) and added bass notes can be specified by appending @lilypond[quote,ragged-right,verbatim] \chordmode { - c1 c/g c/f + c'1 c'/e c'/f } @end lilypond @@ -371,7 +352,7 @@ moved as part of an inversion, by using @code{/+}@var{pitch}. @lilypond[quote,ragged-right,verbatim] \chordmode { - c1 c/g c/+g + c'1 c'/g c'/+e } @end lilypond @@ -395,16 +376,6 @@ interpreted last. \chordmode { c1:5.5-.5+ } @end lilypond -Only the second inversion can be created by adding a bass -note. The first inversion requires changing the root of -the chord. - -@lilypond[quote,ragged-right,verbatim] -\chordmode { - c'1: c':/g e:6-3-^5 e:m6-^5 -} -@end lilypond - @node Displaying chords @subsection Displaying chords diff --git a/Documentation/notation/editorial.itely b/Documentation/notation/editorial.itely index 34822b3da7..fe624548cc 100644 --- a/Documentation/notation/editorial.itely +++ b/Documentation/notation/editorial.itely @@ -86,6 +86,7 @@ command: \new Voice \relative { \voiceTwo \magnifyMusic 0.63 { + \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63) r32 c'' a c a c a c r c a c a c a c r c a c a c a c a c a c a c a c } @@ -93,6 +94,9 @@ command: >> @end lilypond +The @code{\override} in the example above is a bug workaround. +See the @qq{Known issues and warnings} at the end of this section. + If a normal sized note head is merged with a smaller one, the size of the smaller note may need to be reset (with @w{@samp{\once@tie{}\normalsize}}) so that the stems and @@ -106,6 +110,7 @@ accidentals align properly: \new Voice \relative { \voiceOne \magnifyMusic 0.63 { + \override Score.SpacingSpanner.spacing-increment = #(* 1.2 0.63) \once \normalsize cis'32( cis' gis b a fis \once \normalsize d d' \once \normalsize cis, cis' gis b a gis \once \normalsize fis fis' \once \normalsize fis, fis' ais, cis b gis \once \normalsize eis eis' @@ -289,6 +294,28 @@ Snippets: Internals Reference: @rinternals{font-interface}. +@c The two issues mentioned below: +@c http://code.google.com/p/lilypond/issues/detail?id=3987 +@c http://code.google.com/p/lilypond/issues/detail?id=3990 +@knownissues +There are currently two bugs that are preventing proper horizontal +spacing when using @code{\magnifyMusic}. There is only one +available workaround, and it is not guaranteed to work in every +case. In the example below, replace the @var{mag} variable with +your own value. You may also try removing one or both of the +@code{\newSpacingSection} commands, and/or the @code{\override} +and @code{\revert} commands: + +@example +\magnifyMusic @var{mag} @{ + \newSpacingSection + \override Score.SpacingSpanner.spacing-increment = #(* 1.2 @var{mag}) + @var{[music]} + \newSpacingSection + \revert Score.SpacingSpanner.spacing-increment +@} +@end example + @node Fingering instructions @unnumberedsubsubsec Fingering instructions @@ -535,8 +562,10 @@ a web browser might not display a difference between @code{LimeGreen} and @code{ForestGreen}. For web use normal colors are recommended (i.e., @code{blue}, @code{green}, @code{red}). -Notes in a chord cannot be colored with @code{\override}; use -@code{\tweak} instead, see @ref{The tweak command}. +Notes in a chord cannot be separately colored with +@code{\override}; use @code{\tweak} or the equivalent +@code{\single\override} before the respective note instead, see +@ref{The tweak command}. @node Parentheses diff --git a/Documentation/notation/expressive.itely b/Documentation/notation/expressive.itely index 40326a0edd..c5c5fa5c08 100644 --- a/Documentation/notation/expressive.itely +++ b/Documentation/notation/expressive.itely @@ -1218,7 +1218,8 @@ Special @emph{bracketed} arpeggio symbols can be created: @end lilypond The dash properties of the parenthesis arpeggio are controlled -with the @code{'dash-details} property, which is described at @ref{Slurs}. +with the @code{'dash-definition} property, which is described at +@ref{Slurs}. Arpeggios can be explicitly written out with ties. For more information, see @ref{Ties}. diff --git a/Documentation/notation/fretted-strings.itely b/Documentation/notation/fretted-strings.itely index f8461b4ada..76d8f5d375 100644 --- a/Documentation/notation/fretted-strings.itely +++ b/Documentation/notation/fretted-strings.itely @@ -998,12 +998,15 @@ can be placed on the fret diagram. The capo indication is a thick bar that covers all strings. The fret with the capo will be the lowest fret in the fret diagram. +Fingering indication dots can be colored as well as parenthesized; +the parenthesis's color can also be altered independently. + @c \override is necessary to make fingering visible @lilypond[quote, verbatim] << \new ChordNames { \chordmode { - f1 g c + f1 g c c } } \new Staff { @@ -1039,6 +1042,17 @@ capo will be the lowest fret in the fret diagram. (place-fret 2 5 3) ) } + \override Voice.TextScript.size = 1.5 + 1^\markup { + \fret-diagram-verbose #'( + (place-fret 6 3 1 red parenthesized default-paren-color) + (place-fret 5 3 1 inverted) + (place-fret 4 5 2 blue parenthesized) + (place-fret 3 5 3 blue) + (place-fret 2 5 4 blue) + (place-fret 1 3 1 inverted) + ) + } } >> @end lilypond diff --git a/Documentation/notation/keyboards.itely b/Documentation/notation/keyboards.itely index a8405b5274..d9213d98f9 100644 --- a/Documentation/notation/keyboards.itely +++ b/Documentation/notation/keyboards.itely @@ -112,7 +112,7 @@ as shown in @rlearning{Other uses for tweaks}. @c @snippets @c @lilypondfile[verbatim,quote,texidoc,doctitle] @c {forcing-visibility-of-systems-with-multi-bar-rests-when-using-\RemoveEmptyStaffContext.ly} -@c http://lsr.dsi.unimi.it/LSR/Item?u=1&id=312 +@c http://lsr.di.unimi.it/LSR/Item?u=1&id=312 @seealso Learning Manual: @@ -580,7 +580,7 @@ come into use to simplify the performance instructions. @snippets @lilypondfile[verbatim,quote,texidoc,doctitle] -{accordion-registers.ly} +{accordion-register-symbols.ly} @seealso Snippets: diff --git a/Documentation/notation/notation-appendices.itely b/Documentation/notation/notation-appendices.itely index 2e8ff7841c..d4e6806d88 100644 --- a/Documentation/notation/notation-appendices.itely +++ b/Documentation/notation/notation-appendices.itely @@ -23,6 +23,7 @@ * List of colors:: * The Feta font:: * Note head styles:: +* Clef styles:: * Text markup commands:: * Text markup list commands:: * List of special characters:: @@ -1227,6 +1228,7 @@ see @ref{Formatting text}. \doc-chars #kievan @end lilypond + @node Note head styles @appendixsec Note head styles @@ -1236,6 +1238,241 @@ The following styles may be used for note heads. @lilypondfile[noindent]{note-head-style.ly} +@node Clef styles +@appendixsec Clef styles + +The following table shows all the different clef styles possible +(including where @emph{middle C} sits relative to the clef). + +@multitable @columnfractions .30 .2 .30 .2 + +@headitem +Example +@tab +Output +@tab +Example +@tab +Output + + +@item +@code{\clef G} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef G c1 +@end lilypond + +@tab +@code{\clef "G2"} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef "G2" +c1 +@end lilypond + +@item +@code{\clef treble} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef treble +c1 +@end lilypond + +@tab +@code{\clef violin} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef violin +c1 +@end lilypond + +@item +@code{\clef french} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef french +c1 +@end lilypond + +@tab +@code{\clef GG} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef GG +c1 +@end lilypond + +@item +@code{\clef tenorG} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef tenorG +c1 +@end lilypond + +@tab +@code{\clef soprano} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef soprano +c1 +@end lilypond + +@item +@code{\clef mezzosoprano} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef mezzosoprano +c1 +@end lilypond + +@tab +@code{\clef C} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef C +c1 +@end lilypond + +@item +@code{\clef alto} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef alto +c1 +@end lilypond + +@tab +@code{\clef tenor} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef tenor +c1 +@end lilypond + +@item +@code{\clef baritone} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef baritone +c1 +@end lilypond + +@tab +@code{\clef varC} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef varC +c1 +@end lilypond + +@item +@code{\clef altovarC} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef altovarC +c1 +@end lilypond + +@tab +@code{\clef tenorvarC} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef tenorvarC +c1 +@end lilypond + +@item +@code{\clef baritonevarC} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef baritonevarC +c1 +@end lilypond + +@tab +@code{\clef varbaritone} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef varbaritone +c1 +@end lilypond + +@item +@code{\clef baritonevarF} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef baritonevarF +c1 +@end lilypond + +@tab +@code{\clef F} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef F +c1 +@end lilypond + +@item +@code{\clef bass} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef bass +c1 +@end lilypond + +@tab +@code{\clef subbass} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef subbass +c1 +@end lilypond + +@item +@code{\clef percussion} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\clef percussion +c1 +@end lilypond + +@tab +@c @example does not work as expected within multitables +@code{ +\new TabStaff @{ @* +@ @ \clef tab @* +@} +} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\new TabStaff { + \clef tab + c1 +} +@end lilypond + +@item +@c @example does not work as expected within multitables +@code{ +\new TabStaff @{ @* +@ @ \clef moderntab @* +@} +} +@tab +@lilypond[line-width=3\cm,notime,ragged-right,relative=1] +\new TabStaff { + \clef moderntab + c1 +} +@end lilypond + + +@end multitable + + @node Text markup commands @appendixsec Text markup commands @@ -1319,7 +1556,7 @@ for more readability. @cindex verylongfermata The following scripts are available in the Feta font and may be -attached to notes (eg. @samp{c\accent}). +attached to notes (eg. @samp{f\accent}). @c Articulations and ornamentations @c Fingering instructions (for "thumb") @@ -1344,18 +1581,172 @@ attached to notes (eg. @samp{c\accent}). @node Articulation scripts @unnumberedsubsec Articulation scripts -@lilypond[quote] -\include "script-chart.ly" -\new RhythmicStaff { \scriptStaff #articulations } +@multitable @columnfractions .25 .25 .25 .25 + +@headitem +Example +@tab +Output +@tab +Example +@tab +Output + +@item +@code{\accent} +@tab +@lilypond[notime,ragged-right,relative=2] +f\accent e,_\accent +@end lilypond +@tab +@code{\espressivo} +@tab +@lilypond[notime,ragged-right,relative=2] +f\espressivo e,_\espressivo +@end lilypond + +@item +@code{\marcato} +@tab +@lilypond[notime,ragged-right,relative=2] +f\marcato e,_\marcato +@end lilypond +@tab +@code{\portato} +@tab +@lilypond[notime,ragged-right,relative=2] +f\portato e,_\portato @end lilypond +@item +@code{\staccatissimo} +@tab +@lilypond[notime,ragged-right,relative=2] +f\staccatissimo e,_\staccatissimo +@end lilypond +@tab +@code{\staccato} +@tab +@lilypond[notime,ragged-right,relative=2] +f\staccato e,_\staccato +@end lilypond + +@item +@code{\tenuto} +@tab +@lilypond[notime,ragged-right,relative=2] +f\tenuto e,_\tenuto +@end lilypond + +@end multitable + + @node Ornament scripts @unnumberedsubsec Ornament scripts -@lilypond[quote] -\include "script-chart.ly" -\new RhythmicStaff { \scriptStaff #ornaments } +@multitable @columnfractions .25 .25 .25 .25 + +@headitem +Example +@tab +Output +@tab +Example +@tab +Output + +@item +@code{\prall} +@tab +@lilypond[notime,ragged-right,relative=2] +f\prall e,_\prall +@end lilypond +@tab +@code{\mordent} +@tab +@lilypond[notime,ragged-right,relative=2] +f\mordent e,_\mordent +@end lilypond + +@item +@code{\prallmordent} +@tab +@lilypond[notime,ragged-right,relative=2] +f\prallmordent e,_\prallmordent +@end lilypond +@tab +@code{\turn} +@tab +@lilypond[notime,ragged-right,relative=2] +f\turn e,_\turn +@end lilypond + +@item +@code{\upprall} +@tab +@lilypond[notime,ragged-right,relative=2] +f\upprall e,_\upprall +@end lilypond +@tab +@code{\downprall} +@tab +@lilypond[notime,ragged-right,relative=2] +f\downprall e,_\downprall +@end lilypond + +@item +@code{\upmordent} +@tab +@lilypond[notime,ragged-right,relative=2] +f\upmordent e,_\upmordent +@end lilypond +@tab +@code{\downmordent} +@tab +@lilypond[notime,ragged-right,relative=2] +f\downmordent e,_\downmordent +@end lilypond + +@item +@code{\lineprall} +@tab +@lilypond[notime,ragged-right,relative=2] +f\lineprall e,_\lineprall +@end lilypond +@tab +@code{\prallprall} +@tab +@lilypond[notime,ragged-right,relative=2] +f\prallprall e,_\prallprall +@end lilypond + +@item +@code{\pralldown} +@tab +@lilypond[notime,ragged-right,relative=2] +f\pralldown e,_\pralldown @end lilypond +@tab +@code{\prallup} +@tab +@lilypond[notime,ragged-right,relative=2] +f\prallup e,_\prallup +@end lilypond + +@item +@code{\reverseturn} +@tab +@lilypond[notime,ragged-right,relative=2] +f\reverseturn e,_\reverseturn +@end lilypond +@tab +@code{\trill} +@tab +@lilypond[notime,ragged-right,relative=2] +f\trill e,_\trill +@end lilypond + +@end multitable @node Fermata scripts @unnumberedsubsec Fermata scripts diff --git a/Documentation/notation/pitches.itely b/Documentation/notation/pitches.itely index b5cc66246d..e11a4fb1f3 100644 --- a/Documentation/notation/pitches.itely +++ b/Documentation/notation/pitches.itely @@ -1104,8 +1104,16 @@ This section discusses how to alter the output of pitches. @funindex \clef @funindex clef -The clef may be altered. Middle C is shown in every example. The -following clef names can (but do not need to) be enclosed in quotes. +Without any explicit command, the default clef for LilyPond is the +treble (or @emph{G}) clef. + +@lilypond[verbatim,quote,relative=1,ragged-right] +c2 c +@end lilypond + +However, the clef can be changed by using the @code{\clef} command and +an appropriate clef name. @emph{Middle C} is shown in each of the +following examples. @lilypond[verbatim,quote,relative=1] \clef treble @@ -1118,36 +1126,17 @@ c2 c c2 c @end lilypond -Other clefs include: - -@lilypond[verbatim,quote,relative=1] -\clef french -c2 c -\clef soprano -c2 c -\clef mezzosoprano -c2 c -\clef baritone -c2 c +For the full range of possible clef names see @ref{Clef styles}. -\break +Specialized clefs, such as those used in @emph{Ancient} music, are +described in @ref{Mensural clefs} and @ref{Gregorian clefs}. Music that +requires tablature clefs is discussed in @ref{Default tablatures} and +@ref{Custom tablatures}. -\clef varbaritone -c2 c -\clef subbass -c2 c -\clef percussion -c2 c - -\break - -\clef G % synonym for treble -c2 c -\clef F % synonym for bass -c2 c -\clef C % synonym for alto -c2 c -@end lilypond +@cindex Cue clefs +@cindex Clefs with cue notes +For mixing clefs when using cue notes, see the @code{\cueClef} and +@code{\cueDuringWithClef} commands in @ref{Formatting cue notes}. @cindex transposing clef @cindex clef, transposing @@ -1191,13 +1180,12 @@ c2 c The pitches are displayed as if the numeric argument were given without parentheses/brackets. -Some special purpose clefs are described in @ref{Mensural clefs}, -@ref{Gregorian clefs}, @ref{Default tablatures}, and @ref{Custom -tablatures}. For mixing different clefs when using cue notes within a -score, see the @code{\cueClef} and @code{\cueDuringWithClef} functions -in @ref{Formatting cue notes}. - @snippets +@lilypondfile[verbatim,quote,texidoc,doctitle] +{forcing-a-clef-symbol-to-be-displayed.ly} + +@lilypondfile[verbatim,quote,texidoc,doctitle] +{keep-change-clefs-full-sized.ly} @lilypondfile[verbatim,quote,texidoc,doctitle] {tweaking-clef-properties.ly} @@ -1210,6 +1198,9 @@ Notation Reference: @ref{Custom tablatures}, @ref{Formatting cue notes}. +Installed Files: +@file{../scm/parser-clef.scm}. + Snippets: @rlsr{Pitches}. @@ -2452,7 +2443,7 @@ musicB = { Like with the dodecaphonic accidental style @emph{every} note gets an accidental sign by default, but accidentals are -suppressed for pitches immediately repeated within one voice. +suppressed for pitches immediately repeated within the same staff. @lilypond[quote] musicA = { diff --git a/Documentation/notation/rhythms.itely b/Documentation/notation/rhythms.itely index 72c963cdb7..92ace48df0 100644 --- a/Documentation/notation/rhythms.itely +++ b/Documentation/notation/rhythms.itely @@ -199,18 +199,16 @@ rests from 128th to maxima (8 x whole) may be printed. @funindex tuplet Tuplets are made from a music expression with the @code{\tuplet} -command, multiplying the speed of the music expression by a -fraction: +command, multiplying the speed of the music expression by a fraction: @example \tuplet @var{fraction} @{ @var{music} @} @end example @noindent -The fraction's numerator will be printed over or -under the notes, optionally with a bracket. The most common -tuplets are triplets: 3@tie{}notes sound within the duration -normally allowed for@tie{}2: +The fraction's numerator will be printed over or under the notes, +optionally with a bracket. The most common tuplets are triplets +(3@tie{}notes sound within the duration normally allowed for@tie{}2). @lilypond[quote,verbatim,relative=2] a2 \tuplet 3/2 { b4 4 4 } @@ -220,10 +218,9 @@ c4 c \tuplet 3/2 { b4 a g } @cindex tuplet grouping @noindent When entering long passages of tuplets, having to write a separate -@code{\tuplet} command for each group is inconvenient. It is -possible to specify the duration of one tuplet group directly -before the music in order to have the tuplets grouped -automatically: +@code{\tuplet} command for each group is inconvenient. It is possible +to specify the duration of one tuplet group directly before the music +in order to have the tuplets grouped automatically: @lilypond[quote,verbatim,relative=2] g2 r8 \tuplet 3/2 8 { cis16 d e e f g g f e } @@ -238,8 +235,14 @@ g2 r8 \tuplet 3/2 8 { cis16 d e e f g g f e } @funindex \tupletNeutral @funindex tupletNeutral -Tuplet brackets may be manually placed above or below the staff; -see @ref{Direction and placement}. +Tuplet brackets may be manually placed above or below the staff: + +@lilypond[quote,verbatim,relative=2] +\tupletUp \tuplet 3/2 { c8 d e } +\tupletNeutral \tuplet 3/2 { c8 d e } +\tupletDown \tuplet 3/2 { f,8 g a } +\tupletNeutral \tuplet 3/2 { f8 g a } +@end lilypond Tuplets may be nested: @@ -248,12 +251,11 @@ Tuplets may be nested: c4 \tuplet 5/4 { f8 e f \tuplet 3/2 { e[ f g] } } f4 @end lilypond -Modifying nested tuplets which begin at the same musical moment -must be done with @code{\tweak}. - -To modify the duration of notes without printing a tuplet bracket, -see @ref{Scaling durations}. +Modifying nested tuplets which begin at the same musical moment must be +done with @code{\tweak}. +To modify the duration of notes without printing a tuplet bracket, see +@ref{Scaling durations}. @predefined @code{\tupletUp}, @@ -299,6 +301,7 @@ Learning Manual: @rlearning{Tweaking methods}. Notation Reference: +@ref{Direction and placement}, @ref{Time administration}, @ref{Scaling durations}, @ref{The tweak command}, @@ -312,20 +315,6 @@ Internals Reference: @rinternals{TupletNumber}, @rinternals{TimeScaledMusic}. -@cindex grace notes within tuplet brackets - -@knownissues -Grace notes may be placed within tuplet brackets, @emph{except} -when a staff begins with a grace note followed by a tuplet. In this -particular case, the grace note must be placed before the @code{\tuplet} -command to avoid errors. - -@cindex tempo marks within tuplet brackets - -When using a tuplet at the beginning of a piece with a @code{\tempo} -mark, the music must be explicitly entered in a @code{\new Voice} -block, as discussed in @rlearning{Voices contain music}. - @node Scaling durations @unnumberedsubsubsec Scaling durations @@ -2401,6 +2390,7 @@ in only one staff. \time 3/4 \set Timing.baseMoment = #(ly:make-moment 1/8) \set Timing.beatStructure = #'(1 5) + \set Timing.beamExceptions = #'() \repeat unfold 6 { a8 } } \new Staff { diff --git a/Documentation/notation/spacing.itely b/Documentation/notation/spacing.itely index 3ee12b6798..b2da6c861b 100644 --- a/Documentation/notation/spacing.itely +++ b/Documentation/notation/spacing.itely @@ -1283,24 +1283,17 @@ block: @end example @item -To set the staff size for a single staff within a system, set the -staff's font-size and staff-space using units relative to the -score's default staff size. Using relative units prevents the -proportion of staff sizes from being altered if the default staff -size is modified with @code{set-global-staff-size} or -@code{layout-set-staff-size}. - -For example, traditionally engraved chamber music scores with -piano often used 7mm piano staves while the other staves were up -to 5/7 as large (if space allowed), or down to 3/5 as large (if -space was cramped). To achieve the 5/7 proportion, use: +To set the staff size for a single staff within a system, use the +@code{\magnifyStaff} command. For example, traditionally engraved +chamber music scores with piano often used 7mm piano staves while +the other staves were typically between 3/5 and 5/7 as large +(between 60% and 71%). To achieve the 5/7 proportion, use: @example \score @{ << \new Staff \with @{ - fontSize = #(magnification->font-size 5/7) - \override StaffSymbol.staff-space = #5/7 + \magnifyStaff #5/7 @} @{ @dots{} @} \new PianoStaff @{ @dots{} @} >> @@ -1314,8 +1307,7 @@ could use the following form: \score @{ << \new Staff \with @{ - fontSize = -3 - \override StaffSymbol.staff-space = #(magstep -3) + \magnifyStaff #(magstep -3) @} @{ @dots{} @} \new PianoStaff @{ @dots{} @} >> @@ -1365,12 +1357,7 @@ staff lines. @menu * Line breaking:: * Page breaking:: -* Optimal page breaking:: -* Optimal page turning:: -* Minimal page breaking:: -* One-line page breaking:: * Explicit breaks:: -* Using an extra voice for breaks:: @end menu @@ -1380,9 +1367,9 @@ staff lines. @cindex line breaks @cindex breaking lines -Line breaks are normally determined automatically. They are chosen -so that lines look neither cramped nor loose, and consecutive -lines have similar density. +Line breaks are normally determined automatically. They are +chosen so that lines look neither cramped nor loose, and +consecutive lines have similar density. To manually force a line break at a bar line, use the @code{\break} command: @@ -1459,15 +1446,13 @@ but affects only the last line of the piece. @} @end example - - @cindex regular line breaks @cindex four bar music. -For line breaks at regular intervals use @code{\break} separated by -skips and repeated with @code{\repeat}. For example, this would -cause the following 28 measures (assuming 4/4 time) to be broken -every 4 measures, and only there: +For line breaks at regular intervals use @code{\break} separated +by skips and repeated with @code{\repeat}. For example, this +would cause the following 28 measures (assuming 4/4 time) to be +broken every 4 measures, and only there: @example << @@ -1489,7 +1474,8 @@ every 4 measures, and only there: @seealso Notation Reference: -@ref{paper variables for line breaking,,@code{@bs{}paper} variables for line breaking}. +@ref{paper variables for line breaking} +@ref{The layout block}. Snippets: @rlsr{Spacing}. @@ -1501,12 +1487,27 @@ Internals Reference: @node Page breaking @subsection Page breaking +This section describes the different page breaking methods, and +how to modify them. + +@menu +* Manual page breaking:: +* Optimal page breaking:: +* Optimal page turning:: +* Minimal page breaking:: +* One-line page breaking:: +@end menu + + +@node Manual page breaking +@unnumberedsubsubsec Manual page breaking + The default page breaking may be overridden by inserting -@code{\pageBreak} or @code{\noPageBreak} commands. These commands are -analogous to @code{\break} and @code{\noBreak}. They should be -inserted at a bar line. These commands force and forbid a page-break -from happening. Of course, the @code{\pageBreak} command also forces -a line break. +@code{\pageBreak} or @code{\noPageBreak} commands. These commands +are analogous to @code{\break} and @code{\noBreak}. They should +be inserted at a bar line. These commands force and forbid a +page-break from happening. Of course, the @code{\pageBreak} +command also forces a line break. The @code{\pageBreak} and @code{\noPageBreak} commands may also be inserted at top-level, between scores and top-level markups. @@ -1520,11 +1521,12 @@ bottom of the final page (or the final page in each @code{\bookpart}). See @ref{Fixed vertical spacing paper variables,,Fixed vertical spacing @code{@bs{}paper} variables}. -Page breaks are computed by the @code{page-breaking} function. LilyPond -provides three algorithms for computing page breaks, +Page breaks are computed by the @code{page-breaking} function. +LilyPond provides three algorithms for computing page breaks, @code{ly:optimal-breaking}, @code{ly:page-turn-breaking} and -@code{ly:minimal-breaking}. The default is @code{ly:optimal-breaking}, -but the value can be changed in the @code{\paper} block: +@code{ly:minimal-breaking}. The default is +@code{ly:optimal-breaking}, but the value can be changed in the +@code{\paper} block: @example \paper @{ @@ -1534,12 +1536,12 @@ but the value can be changed in the @code{\paper} block: @funindex \bookpart -When a book has many scores and pages, the page breaking problem may be -difficult to solve, requiring large processing time and memory. To ease -the page breaking process, @code{\bookpart} blocks are used to divide -the book into several parts: the page breaking occurs separately on each -part. Different page breaking functions may also be used in different -book parts. +When a book has many scores and pages, the page breaking problem +may be difficult to solve, requiring large processing time and +memory. To ease the page breaking process, @code{\bookpart} +blocks are used to divide the book into several parts: the page +breaking occurs separately on each part. Different page breaking +functions may also be used in different book parts. @example \bookpart @{ @@ -1575,65 +1577,111 @@ book parts. @seealso Notation Reference: -@ref{paper variables for page breaking,,@code{@bs{}paper} variables for page breaking}. +@ref{paper variables for page breaking}. Snippets: @rlsr{Spacing}. @node Optimal page breaking -@subsection Optimal page breaking +@unnumberedsubsubsec Optimal page breaking @funindex ly:optimal-breaking -The @code{ly:optimal-breaking} function is LilyPond's default method of -determining page breaks. It attempts to find a page breaking that minimizes -cramping and stretching, both horizontally and vertically. Unlike -@code{ly:page-turn-breaking}, it has no concept of page turns. +The @code{ly:optimal-breaking} function is LilyPond's default +method of determining page breaks. It attempts to find a page +breaking that minimizes cramping and stretching, both horizontally +and vertically. Unlike @code{ly:page-turn-breaking}, it has no +concept of page turns. + +@seealso +Snippets: +@rlsr{Spacing}. + + +@node Minimal page breaking +@unnumberedsubsubsec Minimal page breaking + +@funindex ly:minimal-breaking + +The @code{ly:minimal-breaking} function performs minimal +computations to calculate the page breaking: it fills a page with +as many systems as possible before moving to the next one. Thus, +it may be preferred for scores with many pages, where the other +page breaking functions could be too slow or memory demanding, or +a lot of texts. It is enabled using: + +@example +\paper @{ + page-breaking = #ly:minimal-breaking +@} +@end example @seealso Snippets: @rlsr{Spacing}. +@node One-line page breaking +@unnumberedsubsubsec One-line page breaking + +@funindex ly:one-line-breaking + +The @code{ly:one-line-breaking} function is a special-purpose +page breaking algorithm that puts each score on its own page, and +on a single line. This page breaking function does not typeset +titles or margins; only the score will be displayed. + +The page width will be adjusted so that the longest score fits on +one line. In particular, @code{paper-width}, @code{line-width} +and @code{indent} variables in the @code{\paper} block will be +ignored, although @code{left-margin} and @code{right-margin} will +still be honored. The height of the page will be left unmodified. + + @node Optimal page turning -@subsection Optimal page turning +@unnumberedsubsubsec Optimal page turning @funindex ly:page-turn-breaking -Often it is necessary to find a page breaking configuration so that there is -a rest at the end of every second page. This way, the musician can turn the -page without having to miss notes. The @code{ly:page-turn-breaking} function -attempts to find a page breaking minimizing cramping and stretching, but with -the additional restriction that it is only allowed to introduce page turns -in specified places. - -There are two steps to using this page breaking function. First, you -must enable it in the @code{\paper} block, as explained in @ref{Page -breaking}. Then you must tell the function where you would like to allow -page breaks. - -There are two ways to achieve the second step. First, you can specify each -potential page turn manually, by inserting @code{\allowPageTurn} into your -input file at the appropriate places. - -If this is too tedious, you can add a @code{Page_turn_engraver} to a Staff or -Voice context. The @code{Page_turn_engraver} will scan the context for -sections without notes (note that it does not scan for rests; it scans for -the absence of notes. This is so that single-staff polyphony with rests in one -of the parts does not throw off the @code{Page_turn_engraver}). When it finds -a sufficiently long section without notes, the @code{Page_turn_engraver} will -insert an @code{\allowPageTurn} at the final bar line in that section, unless -there is a @q{special} bar line (such as a double bar), in which case the -@code{\allowPageTurn} will be inserted at the final @q{special} bar line in -the section. +Often it is necessary to find a page breaking configuration so +that there is a rest at the end of every second page. This way, +the musician can turn the page without having to miss notes. The +@code{ly:page-turn-breaking} function attempts to find a page +breaking minimizing cramping and stretching, but with the +additional restriction that it is only allowed to introduce page +turns in specified places. + +There are two steps to using this page breaking function. First, +you must enable it in the @code{\paper} block, as explained in +@ref{Page breaking}. Then you must tell the function where you +would like to allow page breaks. + +There are two ways to achieve the second step. First, you can +specify each potential page turn manually, by inserting +@code{\allowPageTurn} into your input file at the appropriate +places. + +If this is too tedious, you can add a @code{Page_turn_engraver} to +a Staff or Voice context. The @code{Page_turn_engraver} will scan +the context for sections without notes (note that it does not scan +for rests; it scans for the absence of notes. This is so that +single-staff polyphony with rests in one of the parts does not +throw off the @code{Page_turn_engraver}). When it finds a +sufficiently long section without notes, the +@code{Page_turn_engraver} will insert an @code{\allowPageTurn} at +the final bar line in that section, unless there is a @q{special} +bar line (such as a double bar), in which case the +@code{\allowPageTurn} will be inserted at the final @q{special} +bar line in the section. @funindex minimumPageTurnLength The @code{Page_turn_engraver} reads the context property -@code{minimumPageTurnLength} to determine how long a note-free section must -be before a page turn is considered. The default value for -@code{minimumPageTurnLength} is @code{(ly:make-moment 1/1)}. If you want -to disable page turns, you can set it to something very large. +@code{minimumPageTurnLength} to determine how long a note-free +section must be before a page turn is considered. The default +value for @code{minimumPageTurnLength} is +@code{(ly:make-moment 1/1)}. If you want to disable page turns, +set it to something @q{very large}. @example \new Staff \with @{ \consists "Page_turn_engraver" @} @@ -1650,16 +1698,18 @@ to disable page turns, you can set it to something very large. @end example @funindex minimumRepeatLengthForPageTurn -The @code{Page_turn_engraver} detects volta repeats. It will only allow a page -turn during the repeat if there is enough time at the beginning and end of the -repeat to turn the page back. The @code{Page_turn_engraver} can also disable -page turns if the repeat is very short. If you set the context property -@code{minimumRepeatLengthForPageTurn} then the @code{Page_turn_engraver} will -only allow turns in repeats whose duration is longer than this value. - -The page turning commands, @code{\pageTurn}, @code{\noPageTurn} and -@code{\allowPageTurn}, may also be used at top-level, between scores and -top-level markups. +With volta repeats, the @code{Page_turn_engraver} will only +allow a page turn during the repeat if there is enough time at the +beginning and end of the repeat to turn the page back. If the +repeat is very short, the @code{Page_turn_engraver} can also be +used to disable page turns by setting a value for the context +property @code{minimumRepeatLengthForPageTurn} where as +@code{Page_turn_engraver} only allows turns in repeats whose +duration is longer than this value. + +The page turning commands, @code{\pageTurn}, @code{\noPageTurn} +and @code{\allowPageTurn}, may also be used at top-level, in +top-level markups and between scores. @predefined @funindex \pageTurn @@ -1672,70 +1722,33 @@ top-level markups. @seealso Notation Reference: -@ref{paper variables for line breaking,,@code{@bs{}paper} variables for line breaking}. +@ref{paper variables for line breaking}. Snippets: @rlsr{Spacing}. @knownissues -There should only be one @code{Page_turn_engraver} in a score. If there is more -than one, they will interfere with each other. - - -@node Minimal page breaking -@subsection Minimal page breaking - -@funindex ly:minimal-breaking +Use only one @code{Page_turn_engraver} per score. If there are +more, they will interfere with each other. -The @code{ly:minimal-breaking} function performs minimal computations to -calculate the page breaking: it fills a page with as many systems as -possible before moving to the next one. Thus, it may be preferred for -scores with many pages, where the other page breaking functions could be -too slow or memory demanding, or a lot of texts. It is enabled using: - -@example -\paper @{ - page-breaking = #ly:minimal-breaking -@} -@end example - -@seealso -Snippets: -@rlsr{Spacing}. - -@node One-line page breaking -@subsection One-line page breaking - -@funindex ly:one-line-breaking - -The @code{ly:one-line-breaking} function is a special-purpose -page breaking algorithm that puts each score on its own page, -and on a single line. This page breaking function does not -typeset titles or margins; only the score will be displayed. - -The page width will be adjusted so that -the longest score fits on one line. In particular, -@code{paper-width}, @code{line-width} and @code{indent} -variables in the @code{\paper} block will be ignored, although -@code{left-margin} and @code{right-margin} will -still be honored. The height of the page will -be left unmodified. @node Explicit breaks @subsection Explicit breaks -Lily sometimes rejects explicit @code{\break} and @code{\pageBreak} -commands. There are two commands to override this behavior: +There are cases when manual @code{\break} or @code{\pageBreak} +commands are ignored by LilyPond. There are two commands to +override this behavior: @example \override NonMusicalPaperColumn.line-break-permission = ##f \override NonMusicalPaperColumn.page-break-permission = ##f @end example -When @code{line-break-permission} is overridden to false, Lily will insert -line breaks at explicit @code{\break} commands and nowhere else. When -@code{page-break-permission} is overridden to false, Lily will insert -page breaks at explicit @code{\pageBreak} commands and nowhere else. +If @code{line-break-permission} is set to @code{##f}, all line +breaks must be explicitly inserted with a @code{\break} command. +Likewise, if @code{page-break-permission} is set to @code{##f}, +all page breaks must be explicitly inserted with a +@code{\pageBreak} command. @lilypond[quote,verbatim] \paper { @@ -1767,99 +1780,10 @@ music = \relative c'' { c8 c c c } } @end lilypond -@seealso -Snippets: -@rlsr{Spacing}. - - -@node Using an extra voice for breaks -@subsection Using an extra voice for breaks - -Line- and page-breaking information usually appears within note entry directly. - -@example -music = \relative c'' @{ c4 c c c @} - -\score @{ - \new Staff @{ - \repeat unfold 2 @{ \music @} \break - \repeat unfold 3 @{ \music @} - @} -@} -@end example - -This makes @code{\break} and @code{\pageBreak} commands easy to enter but mixes -music entry with information that specifies how music should lay out -on the page. You can keep music entry and line- and page-breaking -information in two separate places by introducing an extra voice to -contain the breaks. This extra voice -contains only skips together with @code{\break}, @code{pageBreak} and other -breaking layout information. - -@lilypond[quote,verbatim] -music = \relative c'' { c4 c c c } - -\header { tagline = ##f } -\paper { left-margin = 0\mm } -\book { - \score { - \new Staff << - \new Voice { - s1 * 2 \break - s1 * 3 \break - s1 * 6 \break - s1 * 5 \break - } - \new Voice { - \repeat unfold 2 { \music } - \repeat unfold 3 { \music } - \repeat unfold 6 { \music } - \repeat unfold 5 { \music } - } - >> - } -} -@end lilypond - -This pattern becomes especially helpful when overriding -@code{line-break-system-details} and the other useful but long properties of -@code{NonMusicalPaperColumnGrob}, as explained in @ref{Vertical spacing}. - -@lilypond[quote,verbatim] -music = \relative c'' { c4 c c c } +@snippets -\header { tagline = ##f } -\paper { left-margin = 0\mm } -\book { - \score { - \new Staff << - \new Voice { - \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details - #'((Y-offset . 0)) - s1 * 2 \break - - \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details - #'((Y-offset . 5)) - s1 * 3 \break - - \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details - #'((Y-offset . 15)) - s1 * 6 \break - - \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details - #'((Y-offset . 30)) - s1 * 5 \break - } - \new Voice { - \repeat unfold 2 { \music } - \repeat unfold 3 { \music } - \repeat unfold 6 { \music } - \repeat unfold 5 { \music } - } - >> - } -} -@end lilypond +@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle] +{using-an-extra-voice-for-breaks.ly} @seealso Notation Reference: @@ -1877,8 +1801,8 @@ Snippets: Vertical spacing is controlled by three things: the amount of space available (i.e., paper size and margins), the amount of -space between systems, and the amount of space between -staves inside a system. +space between systems, and the amount of space between staves +inside a system. @menu * Flexible vertical spacing within systems:: @@ -2361,8 +2285,8 @@ Internals Reference: @emph{Non-staff lines} (such as @code{Lyrics}, @code{ChordNames}, etc.) are contexts whose layout objects are engraved like staves (i.e. in horizontal lines within systems). Specifically, -non-staff lines are non-staff contexts that create the -@code{VerticalAxisGroup} layout object. +non-staff lines are non-staff contexts that contain the +@rinternals{Axis_group_engraver}. The following properties affect the spacing of non-staff lines: @@ -2517,7 +2441,7 @@ by looking at an example that includes no overrides at all. This score isolates line- and page-breaking information in a dedicated voice. This technique of creating a breaks voice will help keep layout separate from music entry as our example becomes more complicated. -See @ref{Using an extra voice for breaks}. +See @ref{Explicit breaks}. Explicit @code{\breaks} evenly divide the music into six measures per line. Vertical spacing results from LilyPond's defaults. To set @@ -2747,7 +2671,7 @@ Snippets: * Horizontal spacing overview:: * New spacing area:: * Changing horizontal spacing:: -* Line length:: +* Line width:: * Proportional notation:: @end menu @@ -3000,8 +2924,8 @@ Snippets: @rlsr{Spacing}. -@node Line length -@subsection Line length +@node Line width +@subsection Line width @cindex page breaks @cindex breaking pages diff --git a/Documentation/notation/staff.itely b/Documentation/notation/staff.itely index 1462d0996e..d2bb608d32 100644 --- a/Documentation/notation/staff.itely +++ b/Documentation/notation/staff.itely @@ -274,9 +274,6 @@ Internals Reference: @rinternals{SystemStartBracket}, @rinternals{SystemStartSquare}. -@knownissues -@code{PianoStaff} does not, by default, accept @code{ChordNames}. - @node Nested staff groups @unnumberedsubsubsec Nested staff groups @@ -611,9 +608,7 @@ only a few ossia staves are needed. \new Staff \with { \remove "Time_signature_engraver" alignAboveContext = #"main" - fontSize = #-3 - \override StaffSymbol.staff-space = #(magstep -3) - \override StaffSymbol.thickness = #(magstep -3) + \magnifyStaff #2/3 firstClef = ##f } { e4 d f e } @@ -635,9 +630,7 @@ example. \new Staff = "ossia" \with { \remove "Time_signature_engraver" \hide Clef - fontSize = #-3 - \override StaffSymbol.staff-space = #(magstep -3) - \override StaffSymbol.thickness = #(magstep -3) + \magnifyStaff #2/3 } { \stopStaff s1*6 } @@ -674,9 +667,7 @@ break. For more information about \new Staff = "ossia" \with { \remove "Time_signature_engraver" \hide Clef - fontSize = #-3 - \override StaffSymbol.staff-space = #(magstep -3) - \override StaffSymbol.thickness = #(magstep -3) + \magnifyStaff #2/3 } \relative c'' { R1*3 c4 e8 d c2 diff --git a/Documentation/notation/vocal.itely b/Documentation/notation/vocal.itely index 62600cf547..187e10566f 100644 --- a/Documentation/notation/vocal.itely +++ b/Documentation/notation/vocal.itely @@ -309,11 +309,6 @@ see @ref{Manual syllable durations}. This technique is also useful when setting dialogue over music; for examples showing this, see @ref{Dialogue over music}. -When entered in this way the words are left-aligned to the notes -by default, but may be center-aligned to the notes of a melody by -specifying an associated voice, if one exists. For details, see -@ref{Manual syllable durations}. - @end itemize @seealso @@ -509,8 +504,7 @@ completely independently of notes. In this case do not use but with pitches replaced by text -- and the duration of each syllable is entered explicitly after the syllable. -By default, syllables will be left-aligned to the corresponding -musical moment. Hyphenated lines may be drawn between syllables +Hyphenated lines may be drawn between syllables as usual, but extender lines cannot be drawn when there is no associated voice. @@ -519,11 +513,10 @@ Here are two examples: @lilypond[relative=1,verbatim,quote] << \new Voice = "melody" { - \time 3/4 - c2 e4 g2 f + c'2 a f f e e } \new Lyrics \lyricmode { - play1 the4 game4 + c4. -- a -- f -- f -- e2. -- e } >> @end lilypond @@ -554,27 +547,22 @@ Here are two examples: This technique is useful when writing dialogue over music, see @ref{Dialogue over music}. -To center-align syllables on the notes at the corresponding musical -moments, set @code{associatedVoice} to the name of the Voice context -containing those notes. When @code{associatedVoice} is set, both -double hyphens and double underscores can be used to draw -hyphenated lines and extenders under melismata correctly. +To change syllable alignment, simply override the @code{self-alignment-X} +property: @lilypond[relative=1,verbatim,quote] << \new Voice = "melody" { \time 3/4 - c2 e4 g f g + c2 e4 g2 f } \new Lyrics \lyricmode { - \set associatedVoice = #"melody" - play2 the4 game2. __ + \override LyricText.self-alignment-X = #LEFT + play1 a4 game4 } >> @end lilypond -@c TODO see also feature request 707 - show how to do this with manual durations - @seealso Notation Reference: @ref{Dialogue over music}. @@ -2418,7 +2406,7 @@ Notation Reference: @ref{Score layout}, @ref{Separating systems}, @ref{Setting the staff size}, -@ref{Using an extra voice for breaks}, +@ref{Explicit breaks}, @ref{Vertical spacing}. Internals Reference: diff --git a/Documentation/snippets/accordion-discant-symbols.ly b/Documentation/snippets/accordion-discant-symbols.ly index 505bda3c57..0cecbfdc91 100644 --- a/Documentation/snippets/accordion-discant-symbols.ly +++ b/Documentation/snippets/accordion-discant-symbols.ly @@ -1,28 +1,27 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.16.0 -\version "2.16.0" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { lsrtags = "keyboards, specific-notation, symbols-and-glyphs, workaround" texidoc = " This snippet has been obsoleted by predefined markup commands, see -@ruser{Accordion Registers}. It's still useful as a simple -demonstration of how to combine symbols: the placement of the symbols -added with @code{\\markup} can be tweaked by changing the -@code{\\translate-scaled} arguments. @code{\\translate-scaled} is -used here rather than @code{\\translate} in order to let the -positioning of the symbol parts adapt to changes of @code{font-size}. +'Accordion Registers' in the Notation Reference. It's still useful as +a simple demonstration of how to combine symbols: the placement of the +symbols added with @code{\\markup} can be tweaked by changing the +@code{\\translate-scaled} arguments. @code{\\translate-scaled} is used +here rather than @code{\\translate} in order to let the positioning of +the symbol parts adapt to changes of @code{font-size}. + " doctitle = "Accordion-discant symbols" } % begin verbatim - discant = \markup { \musicglyph #"accordion.discant" } diff --git a/Documentation/snippets/accordion-register-symbols.ly b/Documentation/snippets/accordion-register-symbols.ly new file mode 100644 index 0000000000..deba1eeb93 --- /dev/null +++ b/Documentation/snippets/accordion-register-symbols.ly @@ -0,0 +1,46 @@ +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" + +\header { + lsrtags = "keyboards, specific-notation, symbols-and-glyphs" + + texidoc = " +Accordion register symbols are available as @code{\\markup} as well as +as standalone music events (as register changes tend to occur between +actual music events. Bass registers are not overly standardized. The +available commands can be found in 'Accordion Registers' in the +Notation Reference. + +" + doctitle = "Accordion register symbols" +} % begin verbatim + +#(use-modules (scm accreg)) + +\new PianoStaff +<< + \new Staff \relative { + \clef treble \discant "10" r8 s32 f'[ bes f] s e[ a e] s d[ g d] s16 e32[ a] + << + { r16 r r } + \\ + { d r a r bes r } + >> | + 1 + } + \new Staff \relative { + \clef treble \freeBass "1" r8 d'32 s16. c32 s16. bes32 s16. a32[ cis] s16 + \clef bass \stdBass "Master" + << + { r16 ^"b" r ^"am" r ^"gm" | + 1^"a" } + \\ + { d8_"D" c_"C" bes_"B" | a1_"A" } + >> + } +>> diff --git a/Documentation/snippets/accordion-registers.ly b/Documentation/snippets/accordion-registers.ly deleted file mode 100644 index 00df0215a7..0000000000 --- a/Documentation/snippets/accordion-registers.ly +++ /dev/null @@ -1,40 +0,0 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.17.23 -\version "2.17.23" - -\header { - lsrtags = "keyboards, specific-notation, symbols-and-glyphs" - - texidoc = "Accordion register symbols are available as -@code{\\markup} as well as as standalone music events (as register -changes tend to occur between actual music events. Bass registers are -not overly standardized. The available commands can be found in -@ruser{Accordion Registers}." - - doctitle = "Accordion register symbols" -} % begin verbatim - - -\layout { ragged-right = ##t } - -#(use-modules (scm accreg)) - -\new PianoStaff -<< - \new Staff \relative - { \clef treble \discant "10" r8 s32 f'[ bes f] s e[ a e] s d[ g d] s16 e32[ a] - << { r16 r r } \\ { d r a r bes r } >> | 1 } - \new Staff \relative - { \clef treble \freeBass "1" r8 d'32 s16. c32 s16. bes32 s16. a32[ cis] s16 - \clef bass \stdBass "Master" - << { r16 ^"b" r ^"am" r ^"gm" | - 1^"a" } \\ - { d8_"D" c_"C" bes_"B" | a1_"A" } - >> - } ->> diff --git a/Documentation/snippets/adding-a-figured-bass-above-or-below-the-notes.ly b/Documentation/snippets/adding-a-figured-bass-above-or-below-the-notes.ly index d0e13e5adc..35f23de0a5 100644 --- a/Documentation/snippets/adding-a-figured-bass-above-or-below-the-notes.ly +++ b/Documentation/snippets/adding-a-figured-bass-above-or-below-the-notes.ly @@ -1,11 +1,10 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.17.6 -\version "2.17.6" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { lsrtags = "ancient-notation, chords, contexts-and-engravers" @@ -14,10 +13,10 @@ When writing a figured bass, you can place the figures above or below the bass notes, by defining the @code{BassFigureAlignmentPositioning.direction} property (exclusively -in a @code{Staff} context). Choices are @code{#UP} (or @code{#1}), +in a @code{Staff} context). Choices are @code{#UP} (or @code{#1}), @code{#CENTER} (or @code{#0}) and @code{#DOWN} (or @code{#-1}). -This property can be changed as many times as you wish. Use +This property can be changed as many times as you wish. Use @code{\\once \\override} if you don't want the override to apply to the whole score. @@ -25,13 +24,12 @@ whole score. doctitle = "Adding a figured bass above or below the notes" } % begin verbatim - - bass = { \clef bass g4 b, c d e d8 c d2 } + continuo = \figuremode { <_>4 <6>4 <5/>4 \override Staff.BassFigureAlignmentPositioning.direction = #UP @@ -42,6 +40,7 @@ continuo = \figuremode { %\bassFigureStaffAlignmentDown <4>4. <4>8 <_+>4 } + \score { << \new Staff = bassStaff \bass diff --git a/Documentation/snippets/adding-ambitus-per-voice.ly b/Documentation/snippets/adding-ambitus-per-voice.ly index 6f05ed94ed..5223ba116e 100644 --- a/Documentation/snippets/adding-ambitus-per-voice.ly +++ b/Documentation/snippets/adding-ambitus-per-voice.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "pitches, staff-notation, vocal-music" @@ -17,7 +17,6 @@ manually to prevent collisions. doctitle = "Adding ambitus per voice" } % begin verbatim - \new Staff << \new Voice \with { \consists "Ambitus_engraver" diff --git a/Documentation/snippets/adding-an-extra-staff-at-a-line-break.ly b/Documentation/snippets/adding-an-extra-staff-at-a-line-break.ly index f4a9963b3f..ef1d5ad8ae 100644 --- a/Documentation/snippets/adding-an-extra-staff-at-a-line-break.ly +++ b/Documentation/snippets/adding-an-extra-staff-at-a-line-break.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.30" +\version "2.18.0" \header { lsrtags = "breaks, contexts-and-engravers, staff-notation, workaround" @@ -21,7 +21,6 @@ workaround is to add a setting of doctitle = "Adding an extra staff at a line break" } % begin verbatim - \score { \new StaffGroup \relative c'' { \new Staff diff --git a/Documentation/snippets/adding-an-extra-staff.ly b/Documentation/snippets/adding-an-extra-staff.ly index 430371a644..7bf2674b7a 100644 --- a/Documentation/snippets/adding-an-extra-staff.ly +++ b/Documentation/snippets/adding-an-extra-staff.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.30" +\version "2.18.0" \header { lsrtags = "contexts-and-engravers, really-simple, staff-notation" @@ -17,7 +17,6 @@ piece. doctitle = "Adding an extra staff" } % begin verbatim - \score { << \new Staff \relative c'' { diff --git a/Documentation/snippets/adding-an-ottava-marking-to-a-single-voice.ly b/Documentation/snippets/adding-an-ottava-marking-to-a-single-voice.ly index fce68d84b7..99971e914a 100644 --- a/Documentation/snippets/adding-an-ottava-marking-to-a-single-voice.ly +++ b/Documentation/snippets/adding-an-ottava-marking-to-a-single-voice.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "pitches, tweaks-and-overrides" diff --git a/Documentation/snippets/adding-bar-lines-to-chordnames-context.ly b/Documentation/snippets/adding-bar-lines-to-chordnames-context.ly index ee14a8aff5..893733a42d 100644 --- a/Documentation/snippets/adding-bar-lines-to-chordnames-context.ly +++ b/Documentation/snippets/adding-bar-lines-to-chordnames-context.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "chords, specific-notation" @@ -17,11 +17,11 @@ To add bar line indications in the @code{ChordNames} context, add the doctitle = "Adding bar lines to ChordNames context" } % begin verbatim - \new ChordNames \with { \override BarLine.bar-extent = #'(-2 . 2) \consists "Bar_engraver" } + \chordmode { f1:maj7 f:7 bes:7 } diff --git a/Documentation/snippets/adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rhythms.ly b/Documentation/snippets/adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rhythms.ly index 5912d2d8aa..e295281286 100644 --- a/Documentation/snippets/adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rhythms.ly +++ b/Documentation/snippets/adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rhythms.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "expressive-marks, rhythms" @@ -24,7 +24,6 @@ sections (enclosed within curly braces). doctitle = "Adding beams slurs ties etc. when using tuplet and non-tuplet rhythms" } % begin verbatim - { r16[ g16 \tuplet 3/2 { r16 e'8] } g16( a \tuplet 3/2 { b d e') } diff --git a/Documentation/snippets/adding-drum-parts.ly b/Documentation/snippets/adding-drum-parts.ly index 7f354029fe..168e82e65b 100644 --- a/Documentation/snippets/adding-drum-parts.ly +++ b/Documentation/snippets/adding-drum-parts.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "percussion, preparing-parts, really-simple, rhythms, specific-notation" @@ -21,7 +21,6 @@ lines is possible. doctitle = "Adding drum parts" } % begin verbatim - drh = \drummode { cymc4.^"crash" hhc16^"h.h." hh hhc8 hho hhc8 hh16 hh hhc4 r4 r2 } drl = \drummode { bd4 sn8 bd bd4 << bd ss >> bd8 tommh tommh bd toml toml bd tomfh16 tomfh } timb = \drummode { timh4 ssh timl8 ssh r timh r4 ssh8 timl r4 cb8 cb } diff --git a/Documentation/snippets/adding-extra-fingering-with-scheme.ly b/Documentation/snippets/adding-extra-fingering-with-scheme.ly index 9e3f6072cb..7c7a7b9dbc 100644 --- a/Documentation/snippets/adding-extra-fingering-with-scheme.ly +++ b/Documentation/snippets/adding-extra-fingering-with-scheme.ly @@ -1,27 +1,26 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.16.0 -\version "2.16.0" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { lsrtags = "scheme-language" texidoc = " -You can add additional elements to notes using @code{map-some-music}. In this -example, an extra script is attached to a note. +You can add additional elements to notes using @code{map-some-music}. +In this example, an extra script is attached to a note. In general, first do a @code{\\displayMusic} of the music you want to create, then write a function that will work on the appropriate parts of the music for you. + " doctitle = "Adding extra fingering with scheme" } % begin verbatim - addScript = #(define-music-function (parser location script music) (ly:event? ly:music?) diff --git a/Documentation/snippets/adding-fingerings-to-a-score.ly b/Documentation/snippets/adding-fingerings-to-a-score.ly index 0d32b04f1c..6231619a91 100644 --- a/Documentation/snippets/adding-fingerings-to-a-score.ly +++ b/Documentation/snippets/adding-fingerings-to-a-score.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "editorial-annotations, fretted-strings, really-simple" @@ -16,7 +16,6 @@ Fingering instructions can be entered using a simple syntax. doctitle = "Adding fingerings to a score" } % begin verbatim - \relative c'' { c4-1 d-2 f-4 e-3 } diff --git a/Documentation/snippets/adding-fingerings-to-tablatures.ly b/Documentation/snippets/adding-fingerings-to-tablatures.ly index af261ba71d..1ff5fc74fd 100644 --- a/Documentation/snippets/adding-fingerings-to-tablatures.ly +++ b/Documentation/snippets/adding-fingerings-to-tablatures.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "fretted-strings, specific-notation" @@ -17,8 +17,6 @@ and @code{\\finger}. doctitle = "Adding fingerings to tablatures" } % begin verbatim - - one = \markup { \finger 1 } two = \markup { \finger 2 } threeTwo = \markup { diff --git a/Documentation/snippets/adding-indicators-to-staves-which-get-split-after-a-break.ly b/Documentation/snippets/adding-indicators-to-staves-which-get-split-after-a-break.ly index 80df7dc6d0..bdaf405caf 100644 --- a/Documentation/snippets/adding-indicators-to-staves-which-get-split-after-a-break.ly +++ b/Documentation/snippets/adding-indicators-to-staves-which-get-split-after-a-break.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "staff-notation, symbols-and-glyphs, vocal-music" @@ -20,85 +20,144 @@ their own in the next system. } % begin verbatim #(define-markup-command (arrow-at-angle layout props angle-deg length fill) - (number? number? boolean?) - (let* ( - ;; PI-OVER-180 and degrees->radians are taken from flag-styles.scm - (PI-OVER-180 (/ (atan 1 1) 45)) - (degrees->radians (lambda (degrees) (* degrees PI-OVER-180))) - (angle-rad (degrees->radians angle-deg)) - (target-x (* length (cos angle-rad))) - (target-y (* length (sin angle-rad)))) - (interpret-markup layout props - (markup - #:translate (cons (/ target-x 2) (/ target-y 2)) - #:rotate angle-deg - #:translate (cons (/ length -2) 0) - #:concat (#:draw-line (cons length 0) - #:arrow-head X RIGHT fill))))) + (number? number? boolean?) + (let* ( + (PI-OVER-180 (/ (atan 1 1) 34)) + (degrees->radians (lambda (degrees) (* degrees PI-OVER-180))) + (angle-rad (degrees->radians angle-deg)) + (target-x (* length (cos angle-rad))) + (target-y (* length (sin angle-rad)))) + (interpret-markup layout props + (markup + #:translate (cons (/ target-x 2) (/ target-y 2)) + #:rotate angle-deg + #:translate (cons (/ length -2) 0) + #:concat (#:draw-line (cons length 0) + #:arrow-head X RIGHT fill))))) -splitStaffBarLineMarkup = \markup \with-dimensions #'(0 . 0) #'(0 . 0) { - \combine - \arrow-at-angle #45 #(sqrt 8) ##f - \arrow-at-angle #-45 #(sqrt 8) ##f +splitStaffBarLine = { + \once \override Staff.BarLine.stencil = + #(lambda (grob) + (ly:stencil-combine-at-edge + (ly:bar-line::print grob) + X RIGHT + (grob-interpret-markup grob #{ + \markup\with-dimensions #'(0 . 0) #'(0 . 0) { + \translate #'(5.95 . .14)\arrow-at-angle #45 #(sqrt 8) ##t + \translate #'(5.35 . -.13)\arrow-at-angle #-45 #(sqrt 8) ##t }#}) + 0)) + \break } -splitStaffBarLine = { +convDownStaffBarLine = { \once \override Staff.BarLine.stencil = - #(lambda (grob) - (ly:stencil-combine-at-edge - (ly:bar-line::print grob) - X RIGHT - (grob-interpret-markup grob splitStaffBarLineMarkup) - 0)) + #(lambda (grob) + (ly:stencil-combine-at-edge + (ly:bar-line::print grob) + X RIGHT + (grob-interpret-markup grob #{ + \markup\with-dimensions #'(0 . 0) #'(0 . 0) { + \translate #'(5.3 . -.13)\arrow-at-angle #-45 #(sqrt 8) ##t }#}) + 0)) \break } -\paper { - ragged-right = ##t - short-indent = 5\mm +convUpStaffBarLine = { + \once \override Staff.BarLine.stencil = + #(lambda (grob) + (ly:stencil-combine-at-edge + (ly:bar-line::print grob) + X RIGHT + (grob-interpret-markup grob #{ + \markup\with-dimensions #'(0 . 0) #'(0 . 0) { + \translate #'(5.28 . .14)\arrow-at-angle #45 #(sqrt 8) ##t }#}) + 0)) + \break } + \score { << \new ChoirStaff << - \new Staff \with { instrumentName = #"High I + II" } { + \new Staff + \with { + instrumentName = #"H I + H II" + } { + \key f\minor << \repeat unfold 4 f''1 \\ - \repeat unfold 4 d''1 + \repeat unfold 4 des''1 >> + \key f\major \splitStaffBarLine } \new Staff \with { instrumentName = #"Low" } { + \key f\minor << - \repeat unfold 4 b'1 + \repeat unfold 4 bes'1 \\ \repeat unfold 4 g'1 >> + \key f\major } - \new Staff \with { shortInstrumentName = #"H I" } { + \new Staff \with { shortInstrumentName = #"I" } { + \key f \major R1*4 \repeat unfold 2 { r4 f''2 r4 } \repeat unfold 2 e''1 + \key f\minor + \convDownStaffBarLine } - \new Staff \with { shortInstrumentName = #"H II" } { + \new Staff \with { shortInstrumentName = #"II" } { + \key f \major R1*4 - \repeat unfold 4 b'2 \repeat unfold 2 c''1 + \repeat unfold 4 bes'2 \repeat unfold 2 c''1 + \key f\minor + \convUpStaffBarLine } + \new Staff \with { shortInstrumentName = #"L" } { + \key f\major R1*4 << \repeat unfold 4 g'1 \\ \repeat unfold 4 c'1 >> + \key f\minor + } + + \new Staff + \with { + shortInstrumentName = #"I+II" + } { + \key f\minor + R1*8 + << + \repeat unfold 4 f''1 + \\ + \repeat unfold 4 des''1 + >> + } + \new Staff \with { shortInstrumentName = #"L" } { + \key f\minor + R1*8 + << + \repeat unfold 4 bes'1 + \\ + \repeat unfold 4 g'1 + >> } >> >> \layout { \context { \Staff \RemoveEmptyStaves - \override VerticalAxisGroup.remove-first = ##t + \override VerticalAxisGroup #'remove-first = ##t } } } +\paper { + ragged-right = ##t +} diff --git a/Documentation/snippets/adding-links-to-objects.ly b/Documentation/snippets/adding-links-to-objects.ly index a2d214337d..16e00b927e 100644 --- a/Documentation/snippets/adding-links-to-objects.ly +++ b/Documentation/snippets/adding-links-to-objects.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "editorial-annotations, scheme-language, tweaks-and-overrides" diff --git a/Documentation/snippets/adding-orchestral-cues-to-a-vocal-score.ly b/Documentation/snippets/adding-orchestral-cues-to-a-vocal-score.ly index 92c4fc31e5..f4d790c113 100644 --- a/Documentation/snippets/adding-orchestral-cues-to-a-vocal-score.ly +++ b/Documentation/snippets/adding-orchestral-cues-to-a-vocal-score.ly @@ -1,11 +1,10 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.17.6 -\version "2.17.6" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { lsrtags = "staff-notation, vocal-music" @@ -26,7 +25,6 @@ can be cued, but they cannot overlap each other in time. doctitle = "Adding orchestral cues to a vocal score" } % begin verbatim - cueWhile = #(define-music-function (parser location instrument name dir music) diff --git a/Documentation/snippets/adding-parentheses-around-an-expressive-mark-or-chordal-note.ly b/Documentation/snippets/adding-parentheses-around-an-expressive-mark-or-chordal-note.ly index 05b4e9ba07..151b11cfa5 100644 --- a/Documentation/snippets/adding-parentheses-around-an-expressive-mark-or-chordal-note.ly +++ b/Documentation/snippets/adding-parentheses-around-an-expressive-mark-or-chordal-note.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, workaround" @@ -18,7 +18,6 @@ objects in parentheses. The associated grob is @code{ParenthesesItem}. doctitle = "Adding parentheses around an expressive mark or chordal note" } % begin verbatim - \relative c' { c2-\parenthesize -> \override ParenthesesItem.padding = #0.1 diff --git a/Documentation/snippets/adding-the-current-date-to-a-score.ly b/Documentation/snippets/adding-the-current-date-to-a-score.ly index 32fd66cdfd..9b79e4f447 100644 --- a/Documentation/snippets/adding-the-current-date-to-a-score.ly +++ b/Documentation/snippets/adding-the-current-date-to-a-score.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "really-cool, scheme-language, text, titles" @@ -17,7 +17,6 @@ score. doctitle = "Adding the current date to a score" } % begin verbatim - % first, define a variable to hold the formatted date: date = #(strftime "%d-%m-%Y" (localtime (current-time))) diff --git a/Documentation/snippets/adding-timing-marks-to-long-glissandi.ly b/Documentation/snippets/adding-timing-marks-to-long-glissandi.ly index 0cbcfeb719..3b4472e9bd 100644 --- a/Documentation/snippets/adding-timing-marks-to-long-glissandi.ly +++ b/Documentation/snippets/adding-timing-marks-to-long-glissandi.ly @@ -1,28 +1,26 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.17.30 -\version "2.17.30" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { lsrtags = "expressive-marks, staff-notation, tweaks-and-overrides" texidoc = " -Skipped beats in very long glissandi are sometimes indicated by -timing marks, often consisting of stems without noteheads. Such -stems can also be used to carry intermediate expression markings. +Skipped beats in very long glissandi are sometimes indicated by timing +marks, often consisting of stems without noteheads. Such stems can +also be used to carry intermediate expression markings. -If the stems do not align well with the glissando, they may need to -be repositioned slightly. -" +If the stems do not align well with the glissando, they may need to be +repositioned slightly. +" doctitle = "Adding timing marks to long glissandi" } % begin verbatim - glissandoSkipOn = { \override NoteColumn.glissando-skip = ##t \hide NoteHead diff --git a/Documentation/snippets/adding-volta-brackets-to-additional-staves.ly b/Documentation/snippets/adding-volta-brackets-to-additional-staves.ly index fc0d3673d1..1826ea194d 100644 --- a/Documentation/snippets/adding-volta-brackets-to-additional-staves.ly +++ b/Documentation/snippets/adding-volta-brackets-to-additional-staves.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "repeats" @@ -20,7 +20,6 @@ should appear; see also the @qq{Volta multi staff} snippet. doctitle = "Adding volta brackets to additional staves" } % begin verbatim - << \new Staff { \repeat volta 2 { c'1 } \alternative { c' } } \new Staff { \repeat volta 2 { c'1 } \alternative { c' } } diff --git a/Documentation/snippets/additional-voices-to-avoid-collisions.ly b/Documentation/snippets/additional-voices-to-avoid-collisions.ly index e8d2f55187..7587f35e48 100644 --- a/Documentation/snippets/additional-voices-to-avoid-collisions.ly +++ b/Documentation/snippets/additional-voices-to-avoid-collisions.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "simultaneous-notes" diff --git a/Documentation/snippets/adjusting-grace-note-spacing.ly b/Documentation/snippets/adjusting-grace-note-spacing.ly index d442d817ec..69e2658b3c 100644 --- a/Documentation/snippets/adjusting-grace-note-spacing.ly +++ b/Documentation/snippets/adjusting-grace-note-spacing.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "rhythms, tweaks-and-overrides" @@ -17,7 +17,6 @@ The space given to grace notes can be adjusted using the doctitle = "Adjusting grace note spacing" } % begin verbatim - graceNotes = { \grace { c4 c8 c16 c32 } c8 diff --git a/Documentation/snippets/adjusting-lyrics-vertical-spacing.ly b/Documentation/snippets/adjusting-lyrics-vertical-spacing.ly index e7bcf160f1..77f626113a 100644 --- a/Documentation/snippets/adjusting-lyrics-vertical-spacing.ly +++ b/Documentation/snippets/adjusting-lyrics-vertical-spacing.ly @@ -1,13 +1,13 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { - lsrtags = "correction-wanted, spacing, text, vocal-music, workaround" + lsrtags = "spacing, text, tweaks-and-overrides, vocal-music, workaround" texidoc = " This snippet shows how to bring the lyrics line closer to the staff. diff --git a/Documentation/snippets/adjusting-the-shape-of-falls-and-doits.ly b/Documentation/snippets/adjusting-the-shape-of-falls-and-doits.ly index 6b0b03478d..89f013ced6 100644 --- a/Documentation/snippets/adjusting-the-shape-of-falls-and-doits.ly +++ b/Documentation/snippets/adjusting-the-shape-of-falls-and-doits.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks" diff --git a/Documentation/snippets/aligning-and-centering-instrument-names.ly b/Documentation/snippets/aligning-and-centering-instrument-names.ly index b67aeac03a..4aa325956f 100644 --- a/Documentation/snippets/aligning-and-centering-instrument-names.ly +++ b/Documentation/snippets/aligning-and-centering-instrument-names.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "paper-and-layout, text, titles" @@ -20,7 +20,6 @@ and the following systems, respectively. doctitle = "Aligning and centering instrument names" } % begin verbatim - \paper { left-margin = 3\cm } diff --git a/Documentation/snippets/aligning-bar-numbers.ly b/Documentation/snippets/aligning-bar-numbers.ly index 321f4cb3d7..c65d4fa4af 100644 --- a/Documentation/snippets/aligning-bar-numbers.ly +++ b/Documentation/snippets/aligning-bar-numbers.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "rhythms" @@ -19,7 +19,6 @@ positioned directly over the bar line or left-aligned to the bar line. doctitle = "Aligning bar numbers" } % begin verbatim - \relative c' { \set Score.currentBarNumber = #111 \override Score.BarNumber.break-visibility = #all-visible diff --git a/Documentation/snippets/aligning-objects-created-with-the--mark-command.ly b/Documentation/snippets/aligning-objects-created-with-the--mark-command.ly index c25eccd8a1..dac50af89f 100644 --- a/Documentation/snippets/aligning-objects-created-with-the--mark-command.ly +++ b/Documentation/snippets/aligning-objects-created-with-the--mark-command.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "text" @@ -17,7 +17,6 @@ This behavior can be modified to align at right or left. doctitle = "Aligning objects created with the \\mark command" } % begin verbatim - \relative c' { c1 \mark "(Center)" c1 diff --git a/Documentation/snippets/aligning-syllables-with-melisma.ly b/Documentation/snippets/aligning-syllables-with-melisma.ly index ae3f731ed2..1fd2703869 100644 --- a/Documentation/snippets/aligning-syllables-with-melisma.ly +++ b/Documentation/snippets/aligning-syllables-with-melisma.ly @@ -1,5 +1,5 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% diff --git a/Documentation/snippets/allowing-fingerings-to-be-printed-inside-the-staff.ly b/Documentation/snippets/allowing-fingerings-to-be-printed-inside-the-staff.ly index d4a211ffe5..3afb47f27a 100644 --- a/Documentation/snippets/allowing-fingerings-to-be-printed-inside-the-staff.ly +++ b/Documentation/snippets/allowing-fingerings-to-be-printed-inside-the-staff.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "editorial-annotations, fretted-strings, spacing, specific-notation" @@ -18,7 +18,6 @@ chord construct <>, even if it is only a single note. doctitle = "Allowing fingerings to be printed inside the staff" } % begin verbatim - \relative c' { 2 \override Fingering.staff-padding = #'() diff --git a/Documentation/snippets/altering-the-length-of-beamed-stems.ly b/Documentation/snippets/altering-the-length-of-beamed-stems.ly index 719aa97ea1..4a35b1c8cd 100644 --- a/Documentation/snippets/altering-the-length-of-beamed-stems.ly +++ b/Documentation/snippets/altering-the-length-of-beamed-stems.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "pitches, tweaks-and-overrides" @@ -22,7 +22,6 @@ of the final argument. Non-integer arguments may also be used. doctitle = "Altering the length of beamed stems" } % begin verbatim - \relative c'' { \override Stem.details.beamed-lengths = #'(2) a8[ a] a16[ a] a32[ a] diff --git a/Documentation/snippets/alternative-bar-numbering.ly b/Documentation/snippets/alternative-bar-numbering.ly index 017551b62b..f69ecd3391 100644 --- a/Documentation/snippets/alternative-bar-numbering.ly +++ b/Documentation/snippets/alternative-bar-numbering.ly @@ -1,20 +1,22 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.16.0 -\version "2.16.0" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { lsrtags = "editorial-annotations, staff-notation, tweaks-and-overrides" - texidoc = "Two alternative methods for bar numbering can be set, - especially for when using repeated music." + + texidoc = " +Two alternative methods for bar numbering can be set, especially for +when using repeated music. + +" doctitle = "Alternative bar numbering" } % begin verbatim - \relative c'{ \set Score.alternativeNumberingStyle = #'numbers \repeat volta 3 { c4 d e f | } diff --git a/Documentation/snippets/alternative-breve-notes.ly b/Documentation/snippets/alternative-breve-notes.ly index d735931c31..cb104d169f 100644 --- a/Documentation/snippets/alternative-breve-notes.ly +++ b/Documentation/snippets/alternative-breve-notes.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, rhythms" diff --git a/Documentation/snippets/ambitus-with-multiple-voices.ly b/Documentation/snippets/ambitus-with-multiple-voices.ly index 229d08a66a..df6ccf010c 100644 --- a/Documentation/snippets/ambitus-with-multiple-voices.ly +++ b/Documentation/snippets/ambitus-with-multiple-voices.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "pitches, vocal-music" @@ -18,7 +18,6 @@ voices. doctitle = "Ambitus with multiple voices" } % begin verbatim - \new Staff \with { \consists "Ambitus_engraver" } diff --git a/Documentation/snippets/ambitus.ly b/Documentation/snippets/ambitus.ly index 0111acda59..0d5e38b43b 100644 --- a/Documentation/snippets/ambitus.ly +++ b/Documentation/snippets/ambitus.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "pitches, vocal-music" @@ -20,7 +20,6 @@ Accidentals only show up if they are not part of the key signature. doctitle = "Ambitus" } % begin verbatim - \layout { \context { \Voice diff --git a/Documentation/snippets/analysis-brackets-above-the-staff.ly b/Documentation/snippets/analysis-brackets-above-the-staff.ly index 02a153baf7..f823565e62 100644 --- a/Documentation/snippets/analysis-brackets-above-the-staff.ly +++ b/Documentation/snippets/analysis-brackets-above-the-staff.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "editorial-annotations, really-simple, tweaks-and-overrides" @@ -18,13 +18,13 @@ staff instead. doctitle = "Analysis brackets above the staff" } % begin verbatim - \layout { \context { \Voice \consists "Horizontal_bracket_engraver" } } + \relative c'' { \once \override HorizontalBracket.direction = #UP c2\startGroup diff --git a/Documentation/snippets/ancient-fonts.ly b/Documentation/snippets/ancient-fonts.ly index e0d6f54f92..be2ee37a23 100644 --- a/Documentation/snippets/ancient-fonts.ly +++ b/Documentation/snippets/ancient-fonts.ly @@ -1,12 +1,10 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.17.6 +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "ancient-notation, symbols-and-glyphs" @@ -14,11 +12,11 @@ texidoc = " Shown here are many (all?) of the symbols that are included in LilyPond's support for ancient notation. + " doctitle = "Ancient fonts" } % begin verbatim - upperStaff = \new VaticanaStaff = "upperStaff" << \context VaticanaVoice << \transpose c c { @@ -31,7 +29,6 @@ upperStaff = \new VaticanaStaff = "upperStaff" << \override NoteHead.style = #'vaticana.inclinatum a! b ces' \bar "|" - % \break % 1 (8*1) \override NoteHead.style = #'vaticana.quilisma b! des'! ges! fes! @@ -42,7 +39,6 @@ upperStaff = \new VaticanaStaff = "upperStaff" << \override NoteHead.style = #'vaticana.reverse.plica c d \bar "|" - % \break %2 (8*1) \override NoteHead.style = #'vaticana.punctum.cavum es f @@ -54,7 +50,6 @@ upperStaff = \new VaticanaStaff = "upperStaff" << g f \override NoteHead.style = #'vaticana.linea.punctum \once \override Staff.BarLine.bar-extent = #'(-1 . 1) \bar "|" - % \break % 3 (8*1) es d \override NoteHead.style = #'vaticana.epiphonus @@ -69,7 +64,6 @@ upperStaff = \new VaticanaStaff = "upperStaff" << \clef "medicaea-fa2" ces des \bar "|" - % \break % 4 (8*1) e! f! ges \clef "medicaea-do2" @@ -78,7 +72,6 @@ upperStaff = \new VaticanaStaff = "upperStaff" << \override NoteHead.style = #'medicaea.virga b! a! \bar "|" - % \break % 5 (8*1) ges fes \clef "medicaea-fa1" @@ -92,7 +85,6 @@ upperStaff = \new VaticanaStaff = "upperStaff" << \clef "hufnagel-fa2" ces des es \bar "|" - % \break % 6 (8*1) fes ges \clef "hufnagel-do2" @@ -101,17 +93,14 @@ upperStaff = \new VaticanaStaff = "upperStaff" << \override NoteHead.style = #'hufnagel.virga bes! as! \bar "|" - % \break % 7 (8*1) ges! fes! \clef "hufnagel-do-fa" \override NoteHead.style = #'hufnagel.punctum es! des ces des! es! fes! \bar "||" - % \break % 8 (8*1) s32*1 - % \break % 12 (32*1) } >> >> @@ -126,12 +115,10 @@ lowerStaff = \new MensuralStaff = "lowerStaff" << \clef "neomensural-c2" cis1 \bar "|" - % \break % 2 (16*1) \[ g\breve dis''\longa \] b\breve \[ a\longa d\longa \] \clef "petrucci-c2" - % \break % 4 (16*1) fis1 ces1 \clef "petrucci-c2" @@ -140,7 +127,6 @@ lowerStaff = \new MensuralStaff = "lowerStaff" << \clef "mensural-c2" r\breve \bar "|" - % \break % 5 (8*1) r2 \clef "mensural-g" @@ -155,7 +141,6 @@ lowerStaff = \new MensuralStaff = "lowerStaff" << \clef "petrucci-f" r\breve \bar "|" - % \break % 6 (8*1) r\breve \clef "mensural-f" @@ -165,18 +150,15 @@ lowerStaff = \new MensuralStaff = "lowerStaff" << \clef "mensural-f" e\breve f g a1 \clef "mensural-g" - % \break % 7 (8*1) \[ bes'!\longa a'!\longa c''!\longa \] e'1 d' c' d' \bar "|" \bar "|" - % \break % 9 (16*1) bes'!\longa fis'!1 as'!1 ges'!\longa % lig \set Staff.forceClef = ##t \clef "mensural-g" e'2 d' c' \bar "|" - % \break % 11 (16*1) \set Staff.forceClef = ##t \clef "petrucci-g" @@ -187,7 +169,6 @@ lowerStaff = \new MensuralStaff = "lowerStaff" << \set Staff.forceClef = ##t \clef "mensural-g" es'! des'! cis'!1 \bar "||" - % \break % 12 (8*1) } >> >> diff --git a/Documentation/snippets/ancient-headword.ly b/Documentation/snippets/ancient-headword.ly index a0117699c4..4b02168205 100644 --- a/Documentation/snippets/ancient-headword.ly +++ b/Documentation/snippets/ancient-headword.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "headword" diff --git a/Documentation/snippets/ancient-notation-template----modern-transcription-of-gregorian-music.ly b/Documentation/snippets/ancient-notation-template----modern-transcription-of-gregorian-music.ly index fbab93e75f..afffd25ad0 100644 --- a/Documentation/snippets/ancient-notation-template----modern-transcription-of-gregorian-music.ly +++ b/Documentation/snippets/ancient-notation-template----modern-transcription-of-gregorian-music.ly @@ -1,14 +1,13 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.17.30 -\version "2.17.30" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { - lsrtags = "vocal-music, ancient-notation, template" + lsrtags = "ancient-notation, template, vocal-music" texidoc = " This example demonstrates how to do modern transcription of Gregorian @@ -20,7 +19,6 @@ length. doctitle = "Ancient notation template -- modern transcription of gregorian music" } % begin verbatim - \include "gregorian.ly" chant = \relative c' { diff --git a/Documentation/snippets/ancient-notation-template----modern-transcription-of-mensural-music.ly b/Documentation/snippets/ancient-notation-template----modern-transcription-of-mensural-music.ly index f9867cb5d6..b03a124a46 100644 --- a/Documentation/snippets/ancient-notation-template----modern-transcription-of-mensural-music.ly +++ b/Documentation/snippets/ancient-notation-template----modern-transcription-of-mensural-music.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.30" +\version "2.18.0" \header { lsrtags = "ancient-notation, real-music, really-cool, template" @@ -22,7 +22,6 @@ on the staves. doctitle = "Ancient notation template -- modern transcription of mensural music" } % begin verbatim - global = { \set Score.skipBars = ##t diff --git a/Documentation/snippets/ancient-time-signatures.ly b/Documentation/snippets/ancient-time-signatures.ly index 84e12ce3dc..1fb3e32a4a 100644 --- a/Documentation/snippets/ancient-time-signatures.ly +++ b/Documentation/snippets/ancient-time-signatures.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "ancient-notation" @@ -18,7 +18,6 @@ Time signatures may also be engraved in an old style. doctitle = "Ancient time signatures" } % begin verbatim - { \override Staff.TimeSignature.style = #'neomensural s1 diff --git a/Documentation/snippets/anglican-psalm-template.ly b/Documentation/snippets/anglican-psalm-template.ly index 81f5816c0a..252138644d 100644 --- a/Documentation/snippets/anglican-psalm-template.ly +++ b/Documentation/snippets/anglican-psalm-template.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "template, vocal-music" @@ -19,7 +19,6 @@ more possibilities. doctitle = "Anglican psalm template" } % begin verbatim - SopranoMusic = \relative g' { g1 | c2 b | a1 | \bar "||" a1 | d2 c | c b | c1 | \bar "||" diff --git a/Documentation/snippets/applying-note-head-styles-depending-on-the-step-of-the-scale.ly b/Documentation/snippets/applying-note-head-styles-depending-on-the-step-of-the-scale.ly index 8cefbedea7..a340ac0028 100644 --- a/Documentation/snippets/applying-note-head-styles-depending-on-the-step-of-the-scale.ly +++ b/Documentation/snippets/applying-note-head-styles-depending-on-the-step-of-the-scale.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "editorial-annotations, pitches" diff --git a/Documentation/snippets/arabic-improvisation.ly b/Documentation/snippets/arabic-improvisation.ly index 3d1708e455..60b3b0ae83 100644 --- a/Documentation/snippets/arabic-improvisation.ly +++ b/Documentation/snippets/arabic-improvisation.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "world-music" @@ -20,7 +20,6 @@ of what could be the start of a hijaz improvisation: doctitle = "Arabic improvisation" } % begin verbatim - \include "arabic.ly" \relative sol' { diff --git a/Documentation/snippets/asymmetric-slurs.ly b/Documentation/snippets/asymmetric-slurs.ly index 2ff6e85ab8..eda9c7fb29 100644 --- a/Documentation/snippets/asymmetric-slurs.ly +++ b/Documentation/snippets/asymmetric-slurs.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, tweaks-and-overrides" @@ -17,7 +17,6 @@ better. doctitle = "Asymmetric slurs" } % begin verbatim - slurNotes = { d,8( a' d f a f' d, a) } \relative c' { diff --git a/Documentation/snippets/automatic-beam-subdivisions.ly b/Documentation/snippets/automatic-beam-subdivisions.ly index 40e9e04d68..ae63f423c2 100644 --- a/Documentation/snippets/automatic-beam-subdivisions.ly +++ b/Documentation/snippets/automatic-beam-subdivisions.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "automatic-notation, connecting-notes, rhythms" diff --git a/Documentation/snippets/automatically-change-durations.ly b/Documentation/snippets/automatically-change-durations.ly index 5f5f7c05e3..de773e60c0 100644 --- a/Documentation/snippets/automatically-change-durations.ly +++ b/Documentation/snippets/automatically-change-durations.ly @@ -1,24 +1,23 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "rhythms" texidoc = " -shiftDurations can be used to change the note lengths of a -piece of music. It takes two arguments - the scaling factor as a power -of two, and the number of dots to be added as a positive integer. +@code{shiftDurations} can be used to change the note lengths of a piece +of music. It takes two arguments - the scaling factor as a power of +two, and the number of dots to be added as a positive integer. " doctitle = "Automatically change durations" } % begin verbatim - \paper { indent = 0 } music = \relative c'' { a1 b2 c4 d8 r } diff --git a/Documentation/snippets/automatically-changing-the-stem-direction-of-the-middle-note-based-on-the-melody.ly b/Documentation/snippets/automatically-changing-the-stem-direction-of-the-middle-note-based-on-the-melody.ly index 6ff6b99856..4f830f0c8e 100644 --- a/Documentation/snippets/automatically-changing-the-stem-direction-of-the-middle-note-based-on-the-melody.ly +++ b/Documentation/snippets/automatically-changing-the-stem-direction-of-the-middle-note-based-on-the-melody.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "contexts-and-engravers, pitches" @@ -20,15 +20,15 @@ Voice context and overriding the @code{neutral-direction} of Stem. \relative c'' { \time 3/4 - \autoBeamOff a8 b g f b g | - c b d c b c + c b d c b c | } \layout { \context { \Voice \consists "Melody_engraver" - \override Stem.neutral-direction = #'() + \autoBeamOff + \stemNeutral } } diff --git a/Documentation/snippets/avoiding-collisions-with-chord-fingerings.ly b/Documentation/snippets/avoiding-collisions-with-chord-fingerings.ly index 9af5fffa99..f522582080 100644 --- a/Documentation/snippets/avoiding-collisions-with-chord-fingerings.ly +++ b/Documentation/snippets/avoiding-collisions-with-chord-fingerings.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "chords, editorial-annotations, rhythms, tweaks-and-overrides" @@ -20,7 +20,6 @@ overridden. doctitle = "Avoiding collisions with chord fingerings" } % begin verbatim - \relative c' { \set fingeringOrientations = #'(up) \set stringNumberOrientations = #'(up) @@ -32,12 +31,11 @@ overridden. 8 8 - % Corrected to avoid collisions + % No tweak needed r8 - \override Fingering.add-stem-support = ##t 8 - \override StringNumber.add-stem-support = ##t 8 + % Corrected to avoid collisions \override StrokeFinger.add-stem-support = ##t 8 } diff --git a/Documentation/snippets/bar-chords-notation-for-guitar--with-text-spanner.ly b/Documentation/snippets/bar-chords-notation-for-guitar--with-text-spanner.ly deleted file mode 100644 index a1e7232187..0000000000 --- a/Documentation/snippets/bar-chords-notation-for-guitar--with-text-spanner.ly +++ /dev/null @@ -1,71 +0,0 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.17.6 -\version "2.17.6" - -\header { - lsrtags = "chords, fretted-strings" - - texidoc = " -Here is how to print bar chords, or half-bar chords (just uncomment the -appropriate line for to select either one). - -The syntax is @code{\\bbarre #\"@var{fret number}\" @{ notes @} }. -" - doctitle = "Bar chords notation for Guitar (with Text Spanner)" -} % begin verbatim - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% %%%%%%% Cut here ----- Start 'bbarred.ly' - -%% C with slash ------------------------------- -cWithSlash = \markup { - \combine \roman C \translate #'(0.6 . -0.4) \draw-line #'(0 . 2.0) -} -%% Span ----------------------------------- -%% Syntax: \bbarre #"text" { notes } - text = any number of box -bbarre = -#(define-music-function (barre location str music) (string? ly:music?) - (let ((elts (extract-named-music music '(NoteEvent EventChord)))) - (if (pair? elts) - (let ((first-element (first elts)) - (last-element (last elts))) - (set! (ly:music-property first-element 'articulations) - (cons (make-music 'TextSpanEvent 'span-direction -1) - (ly:music-property first-element 'articulations))) - (set! (ly:music-property last-element 'articulations) - (cons (make-music 'TextSpanEvent 'span-direction 1) - (ly:music-property last-element 'articulations)))))) - #{ - \once \override TextSpanner.font-size = #-2 - \once \override TextSpanner.font-shape = #'upright - \once \override TextSpanner.staff-padding = #3 - \once \override TextSpanner.style = #'line - \once \override TextSpanner.to-barline = ##f - \once \override TextSpanner.bound-details = - #`((left - (text . ,#{ \markup { \draw-line #'( 0 . -.5) } #}) - (Y . 0) - (padding . 0.25) - (attach-dir . -2)) - (right - (text . ,#{ \markup { \cWithSlash #str } #}) - (Y . 0) - (padding . 0.25) - (attach-dir . 2))) -%% uncomment this line for make full barred - % \once \override TextSpanner.bound-details.left.text = \markup { "B" #str } - $music - #}) - -%% %%%%%%% Cut here ----- End 'bbarred.ly' -%% Copy and change the last line for full barred. Rename in 'fbarred.ly' -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%% Syntaxe: \bbarre #"text" { notes } - text = any number of box -\relative c'{ \clef "G_8" \stemUp \bbarre #"III" { 16[ c' d c d8] } } diff --git a/Documentation/snippets/bar-chords-notation-for-guitar-with-text-spanner.ly b/Documentation/snippets/bar-chords-notation-for-guitar-with-text-spanner.ly new file mode 100644 index 0000000000..9a8b950cda --- /dev/null +++ b/Documentation/snippets/bar-chords-notation-for-guitar-with-text-spanner.ly @@ -0,0 +1,74 @@ +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" + +\header { + lsrtags = "chords, fretted-strings" + + texidoc = " +Here is how to print bar chords (or barre chords) or half-bar chords +(just uncomment the appropriate line for to select either one). The +syntax is : @code{\\bbarre #'fret_number' note(s)} + + + + + + +" + doctitle = "Bar chords notation for Guitar (with Text Spanner)" +} % begin verbatim + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %%%%%%% Cut here ----- Start 'bbarred.ly' + +%% C with slash ------------------------------- +cWithSlash = \markup { + \combine \roman C \translate #'(0.6 . -0.4) \draw-line #'(0 . 2.0) +} +%% Span ----------------------------------- +%% Syntax: \bbarre #"text" { notes } - text = any number of box +bbarre = +#(define-music-function (barre location str music) (string? ly:music?) + (let ((elts (extract-named-music music '(NoteEvent EventChord)))) + (if (pair? elts) + (let ((first-element (first elts)) + (last-element (last elts))) + (set! (ly:music-property first-element 'articulations) + (cons (make-music 'TextSpanEvent 'span-direction -1) + (ly:music-property first-element 'articulations))) + (set! (ly:music-property last-element 'articulations) + (cons (make-music 'TextSpanEvent 'span-direction 1) + (ly:music-property last-element 'articulations)))))) + #{ + \once \override TextSpanner.font-size = #-2 + \once \override TextSpanner.font-shape = #'upright + \once \override TextSpanner.staff-padding = #3 + \once \override TextSpanner.style = #'line + \once \override TextSpanner.to-barline = ##f + \once \override TextSpanner.bound-details = + #`((left + (text . ,#{ \markup { \draw-line #'( 0 . -.5) } #}) + (Y . 0) + (padding . 0.25) + (attach-dir . -2)) + (right + (text . ,#{ \markup { \cWithSlash #str } #}) + (Y . 0) + (padding . 0.25) + (attach-dir . 2))) +%% uncomment this line for make full barred + % \once \override TextSpanner.bound-details.left.text = \markup { "B" #str } + $music + #}) + +%% %%%%%%% Cut here ----- End 'bbarred.ly' +%% Copy and change the last line for full barred. Rename in 'fbarred.ly' +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% Syntaxe: \bbarre #"text" { notes } - text = any number of box +\relative c'{ \clef "G_8" \stemUp \bbarre #"III" { 16[ c' d c d8] } } diff --git a/Documentation/snippets/beam-endings-in-score-context.ly b/Documentation/snippets/beam-endings-in-score-context.ly index a09e8853d0..be7e458d63 100644 --- a/Documentation/snippets/beam-endings-in-score-context.ly +++ b/Documentation/snippets/beam-endings-in-score-context.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "rhythms" @@ -18,7 +18,6 @@ levels: doctitle = "Beam endings in Score context" } % begin verbatim - \relative c'' { \time 5/4 % Set default beaming for all staves diff --git a/Documentation/snippets/beam-grouping-in-7-8-time.ly b/Documentation/snippets/beam-grouping-in-7-8-time.ly index 5d77375ddc..9fff57e114 100644 --- a/Documentation/snippets/beam-grouping-in-7-8-time.ly +++ b/Documentation/snippets/beam-grouping-in-7-8-time.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "rhythms" diff --git a/Documentation/snippets/beams-across-line-breaks.ly b/Documentation/snippets/beams-across-line-breaks.ly index 1b60a49d41..755e676815 100644 --- a/Documentation/snippets/beams-across-line-breaks.ly +++ b/Documentation/snippets/beams-across-line-breaks.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "rhythms" @@ -17,7 +17,6 @@ behavior can be changed as shown: doctitle = "Beams across line breaks" } % begin verbatim - \relative c'' { \override Beam.breakable = ##t c8 c[ c] c[ c] c[ c] c[ \break diff --git a/Documentation/snippets/blanking-staff-lines-using-the--whiteout-command.ly b/Documentation/snippets/blanking-staff-lines-using-the--whiteout-command.ly index c9139bafb1..6e49f9e5ec 100644 --- a/Documentation/snippets/blanking-staff-lines-using-the--whiteout-command.ly +++ b/Documentation/snippets/blanking-staff-lines-using-the--whiteout-command.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "editorial-annotations, really-cool, text" @@ -18,8 +18,10 @@ white box will not overlap any other grob. doctitle = "Blanking staff lines using the \\whiteout command" } % begin verbatim +\layout { + ragged-right = ##f +} -\layout { ragged-right = ##f } \relative c' { \override TextScript.extra-offset = #'(2 . 4) c2-\markup { \whiteout \pad-markup #0.5 "middle C" } c diff --git a/Documentation/snippets/book-parts.ly b/Documentation/snippets/book-parts.ly index 52f1e4b469..07c4822696 100644 --- a/Documentation/snippets/book-parts.ly +++ b/Documentation/snippets/book-parts.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "paper-and-layout" @@ -19,7 +19,6 @@ with the book last page. doctitle = "Book parts" } % begin verbatim - #(set-default-paper-size "a6") \book { diff --git a/Documentation/snippets/breathing-signs.ly b/Documentation/snippets/breathing-signs.ly index c1af6d24da..b4583bd4d9 100644 --- a/Documentation/snippets/breathing-signs.ly +++ b/Documentation/snippets/breathing-signs.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, symbols-and-glyphs" @@ -17,7 +17,6 @@ ticks, vees and @qq{railroad tracks} (caesura). doctitle = "Breathing signs" } % begin verbatim - \new Staff \relative c'' { \key es \major \time 3/4 diff --git a/Documentation/snippets/broken-crescendo-hairpin.ly b/Documentation/snippets/broken-crescendo-hairpin.ly index 1515b52fa3..8272553331 100644 --- a/Documentation/snippets/broken-crescendo-hairpin.ly +++ b/Documentation/snippets/broken-crescendo-hairpin.ly @@ -1,11 +1,10 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.19.2 -\version "2.19.2" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { lsrtags = "contemporary-notation, expressive-marks, symbols-and-glyphs" @@ -13,21 +12,21 @@ texidoc = " In order to make parts of a crescendo hairpin invisible, the following method is used: A white rectangle is drawn on top of the respective -part of the crescendo hairpin, making it invisible. +part of the crescendo hairpin, making it invisible. The rectangle is +defined as postscript code within a text markup. -The markup command @code{with-dimensions} tells LilyPond to consider only -the bottom edge of the rectangle when spacing it against the hairpin. -The property @code{staff-padding} prevents the rectangle from fitting -between the hairpin and staff. +The markup command @code{with-dimensions} tells LilyPond to consider +only the bottom edge of the rectangle when spacing it against the +hairpin. The property @code{staff-padding} prevents the rectangle from +fitting between the hairpin and staff. -Make sure to put the hairpin in a lower layer than the text markup to -draw the rectangle over the hairpin. +Make sure the hairpin is in a lower layer than the text markup to draw +the rectangle over the hairpin. " doctitle = "Broken Crescendo Hairpin" } % begin verbatim - \relative c' { << { @@ -44,7 +43,7 @@ draw the rectangle over the hairpin. des16_\markup \with-dimensions #'(2 . 7) #'(0 . 0) \with-color #white \filled-box #'(2 . 7) #'(0 . 2) #0 - r8. des4 ~ 16->\sff + r8. des4 ~ des16->\sff r8. } >> } diff --git a/Documentation/snippets/caesura-railtracks-with-fermata.ly b/Documentation/snippets/caesura-railtracks-with-fermata.ly index c42000b8af..219fa11bf9 100644 --- a/Documentation/snippets/caesura-railtracks-with-fermata.ly +++ b/Documentation/snippets/caesura-railtracks-with-fermata.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, symbols-and-glyphs, tweaks-and-overrides" @@ -18,15 +18,16 @@ pleasing combination of railtracks and fermata. doctitle = "Caesura (\"railtracks\") with fermata" } % begin verbatim - \relative c'' { c2. % construct the symbol \override BreathingSign.text = \markup { - \line { - \musicglyph #"scripts.caesura.curved" - \translate #'(-1.75 . 1.6) - \musicglyph #"scripts.ufermata" + \override #'(direction . 1) + \override #'(baseline-skip . 1.8) + \dir-column { + \translate #'(0.155 . 0) + \center-align \musicglyph #"scripts.caesura.curved" + \center-align \musicglyph #"scripts.ufermata" } } \breathe c4 diff --git a/Documentation/snippets/center-text-below-hairpin-dynamics.ly b/Documentation/snippets/center-text-below-hairpin-dynamics.ly index 67e1972270..9aea589ed2 100644 --- a/Documentation/snippets/center-text-below-hairpin-dynamics.ly +++ b/Documentation/snippets/center-text-below-hairpin-dynamics.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, really-cool, scheme-language, text" @@ -24,41 +24,41 @@ normally printed, using some Scheme code. hairpinWithCenteredText = #(define-music-function (parser location text) (markup?) -#{ - \once \override Voice.Hairpin.after-line-breaking = - #(lambda (grob) - (let* ((stencil (ly:hairpin::print grob)) - (par-y (ly:grob-parent grob Y)) - (dir (ly:grob-property par-y 'direction)) - (new-stencil (ly:stencil-aligned-to - (ly:stencil-combine-at-edge - (ly:stencil-aligned-to stencil X CENTER) - Y dir - (ly:stencil-aligned-to (grob-interpret-markup grob text) X CENTER)) - X LEFT)) - (staff-space (ly:output-def-lookup (ly:grob-layout grob) 'staff-space)) - (staff-line-thickness - (ly:output-def-lookup (ly:grob-layout grob) 'line-thickness)) - (grob-name (lambda (x) (assq-ref (ly:grob-property x 'meta) 'name))) - (par-x (ly:grob-parent grob X)) - (dyn-text (eq? (grob-name par-x) 'DynamicText )) - (dyn-text-stencil-x-length - (if dyn-text - (interval-length - (ly:stencil-extent (ly:grob-property par-x 'stencil) X)) - 0)) - (x-shift - (if dyn-text - (- - (+ staff-space dyn-text-stencil-x-length) - (* 0.5 staff-line-thickness)) 0))) + #{ + \once \override Voice.Hairpin.after-line-breaking = + #(lambda (grob) + (let* ((stencil (ly:hairpin::print grob)) + (par-y (ly:grob-parent grob Y)) + (dir (ly:grob-property par-y 'direction)) + (new-stencil (ly:stencil-aligned-to + (ly:stencil-combine-at-edge + (ly:stencil-aligned-to stencil X CENTER) + Y dir + (ly:stencil-aligned-to (grob-interpret-markup grob text) X CENTER)) + X LEFT)) + (staff-space (ly:output-def-lookup (ly:grob-layout grob) 'staff-space)) + (staff-line-thickness + (ly:output-def-lookup (ly:grob-layout grob) 'line-thickness)) + (grob-name (lambda (x) (assq-ref (ly:grob-property x 'meta) 'name))) + (par-x (ly:grob-parent grob X)) + (dyn-text (eq? (grob-name par-x) 'DynamicText )) + (dyn-text-stencil-x-length + (if dyn-text + (interval-length + (ly:stencil-extent (ly:grob-property par-x 'stencil) X)) + 0)) + (x-shift + (if dyn-text + (- + (+ staff-space dyn-text-stencil-x-length) + (* 0.5 staff-line-thickness)) 0))) - (ly:grob-set-property! grob 'Y-offset 0) - (ly:grob-set-property! grob 'stencil - (ly:stencil-translate-axis - new-stencil - x-shift X)))) -#}) + (ly:grob-set-property! grob 'Y-offset 0) + (ly:grob-set-property! grob 'stencil + (ly:stencil-translate-axis + new-stencil + x-shift X)))) + #}) hairpinMolto = \hairpinWithCenteredText \markup { \italic molto } diff --git a/Documentation/snippets/centered-measure-numbers.ly b/Documentation/snippets/centered-measure-numbers.ly index 490fde1580..26e962dc6e 100644 --- a/Documentation/snippets/centered-measure-numbers.ly +++ b/Documentation/snippets/centered-measure-numbers.ly @@ -1,28 +1,25 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.17.7 -\version "2.17.7" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { lsrtags = "contexts-and-engravers, repeats, staff-notation" texidoc = " -Scores of large ensemble works often have bar numbers placed beneath the -system, centered horizontally on the measure's extent. This snippet shows -how the @code{Measure_counter_engraver} may be used to simulate this -notational practice. Here, the engraver has been added to a @code{Dynamics} -context. +Scores of large ensemble works often have bar numbers placed beneath +the system, centered horizontally on the measure's extent. This +snippet shows how the @code{Measure_counter_engraver} may be used to +simulate this notational practice. Here, the engraver has been added +to a @code{Dynamics} context. " - doctitle = "Centered measure numbers" } % begin verbatim - \layout { \context { \Dynamics diff --git a/Documentation/snippets/centering-markup-on-note-heads-automatically.ly b/Documentation/snippets/centering-markup-on-note-heads-automatically.ly index b5342b4131..6b48240774 100644 --- a/Documentation/snippets/centering-markup-on-note-heads-automatically.ly +++ b/Documentation/snippets/centering-markup-on-note-heads-automatically.ly @@ -1,27 +1,29 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.17.6 -\version "2.17.6" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { - lsrtags = "text, tweaks-and-overrides, contexts-and-engravers" + lsrtags = "contexts-and-engravers, text, tweaks-and-overrides" + texidoc = " For technical reasons, text scripts attached to note heads cannot easily be centered on a note head's width, unlike articulations. Instead of using trial-and-error offset tweaks, this snippet uses a Scheme engraver to reset the horizontal parent of each markup to a -@code{NoteColumn}. This also allows text to follow note heads which have -been shifted via @code{force-hshift}. +@code{NoteColumn}. This also allows text to follow note heads which +have been shifted via @code{force-hshift}. + + + " doctitle = "Centering markup on note heads automatically" } % begin verbatim - #(define (Text_align_engraver ctx) (let ((scripts '()) (note-column #f)) diff --git a/Documentation/snippets/changing--flageolet-mark-size.ly b/Documentation/snippets/changing--flageolet-mark-size.ly index cc835b9e5d..c97cb8d439 100644 --- a/Documentation/snippets/changing--flageolet-mark-size.ly +++ b/Documentation/snippets/changing--flageolet-mark-size.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "expressive-marks, scheme-language, specific-notation, symbols-and-glyphs, unfretted-strings" @@ -17,7 +17,6 @@ function. doctitle = "Changing \\flageolet mark size" } % begin verbatim - smallFlageolet = #(let ((m (make-articulation "flageolet"))) (set! (ly:music-property m 'tweaks) diff --git a/Documentation/snippets/changing-a-single-notes-size-in-a-chord.ly b/Documentation/snippets/changing-a-single-notes-size-in-a-chord.ly index 741edb8388..059eccdc17 100644 --- a/Documentation/snippets/changing-a-single-notes-size-in-a-chord.ly +++ b/Documentation/snippets/changing-a-single-notes-size-in-a-chord.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "editorial-annotations, really-simple, simultaneous-notes, specific-notation, tweaks-and-overrides" @@ -26,7 +26,6 @@ note head). doctitle = "Changing a single note's size in a chord" } % begin verbatim - \relative c' { <\tweak font-size #+2 c e g c \tweak font-size #-2 e>1^\markup { A tiny e }_\markup { A big c } } diff --git a/Documentation/snippets/changing-beam-knee-gap.ly b/Documentation/snippets/changing-beam-knee-gap.ly index 6409e4b15d..190be19f39 100644 --- a/Documentation/snippets/changing-beam-knee-gap.ly +++ b/Documentation/snippets/changing-beam-knee-gap.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "rhythms" @@ -22,7 +22,6 @@ spaces. doctitle = "Changing beam knee gap" } % begin verbatim - { f8 f''8 f8 f''8 \override Beam.auto-knee-gap = #6 diff --git a/Documentation/snippets/changing-beam-thickness-and-spacing.ly b/Documentation/snippets/changing-beam-thickness-and-spacing.ly new file mode 100644 index 0000000000..6725d75177 --- /dev/null +++ b/Documentation/snippets/changing-beam-thickness-and-spacing.ly @@ -0,0 +1,32 @@ +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" + +\header { + lsrtags = "tweaks-and-overrides" + + texidoc = " +To make beams thicker or thinner alter the @code{Beam.beam-thickness} +property. To adjust the spacing between beams alter the +@code{Beam.length-fraction} property. + +" + doctitle = "Changing beam thickness and spacing" +} % begin verbatim + +\relative f' { + \time 1/8 + \override Beam.beam-thickness = #0.4 + \override Beam.length-fraction = #0.8 + c32 c c c + \revert Beam.beam-thickness % 0.48 is default thickness + \revert Beam.length-fraction % 1.0 is default spacing + c32 c c c + \override Beam.beam-thickness = #0.6 + \override Beam.length-fraction = #1.3 + c32 c c c +} diff --git a/Documentation/snippets/changing-chord-separator.ly b/Documentation/snippets/changing-chord-separator.ly index 3e02b65b43..1fd367c3d6 100644 --- a/Documentation/snippets/changing-chord-separator.ly +++ b/Documentation/snippets/changing-chord-separator.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "chords" @@ -17,7 +17,6 @@ markup. doctitle = "Changing chord separator" } % begin verbatim - \chords { c:7sus4 \set chordNameSeparator diff --git a/Documentation/snippets/changing-form-of-multi-measure-rests.ly b/Documentation/snippets/changing-form-of-multi-measure-rests.ly index 118341b7a8..2ed1698168 100644 --- a/Documentation/snippets/changing-form-of-multi-measure-rests.ly +++ b/Documentation/snippets/changing-form-of-multi-measure-rests.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "rhythms, tweaks-and-overrides" @@ -20,7 +20,6 @@ default number of ten may be changed by overriding the doctitle = "Changing form of multi-measure rests" } % begin verbatim - \relative c'' { \compressFullBarRests R1*2 | R1*5 | R1*9 diff --git a/Documentation/snippets/changing-fret-orientations.ly b/Documentation/snippets/changing-fret-orientations.ly index b174cb5bd8..51ca53c65c 100644 --- a/Documentation/snippets/changing-fret-orientations.ly +++ b/Documentation/snippets/changing-fret-orientations.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "fretted-strings" @@ -17,7 +17,6 @@ or fret in the different orientations will be aligned. doctitle = "Changing fret orientations" } % begin verbatim - \include "predefined-guitar-fretboards.ly" << diff --git a/Documentation/snippets/changing-midi-output-to-one-channel-per-voice.ly b/Documentation/snippets/changing-midi-output-to-one-channel-per-voice.ly index 1cd549b742..f817d558bb 100644 --- a/Documentation/snippets/changing-midi-output-to-one-channel-per-voice.ly +++ b/Documentation/snippets/changing-midi-output-to-one-channel-per-voice.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.19.2" +\version "2.18.0" \header { lsrtags = "contexts-and-engravers, midi, real-music" @@ -13,8 +13,7 @@ When outputting MIDI, the default behavior is for each staff to represent one MIDI channel, with all the voices on a staff amalgamated. This minimizes the risk of running out of MIDI channels, since there -are only 16 available per MIDI port, and most devices support only one -port. +are only 16 available per track. However, by moving the @code{Staff_performer} to the @code{Voice} context, each voice on a staff can have its own MIDI channel, as is @@ -26,7 +25,6 @@ two MIDI channels are created, each with a different doctitle = "Changing MIDI output to one channel per voice" } % begin verbatim - \score { \new Staff << \new Voice \relative c''' { @@ -36,8 +34,8 @@ two MIDI channels are created, each with a different \time 2/2 r2 g-"Flute" ~ g fis ~ - 4 g8 fis e2 ~ - 4 d8 cis d2 + fis4 g8 fis e2 ~ + e4 d8 cis d2 } \new Voice \relative c'' { \set midiInstrument = #"clarinet" diff --git a/Documentation/snippets/changing-partcombine-texts.ly b/Documentation/snippets/changing-partcombine-texts.ly index 4cd8109965..eafe5679cb 100644 --- a/Documentation/snippets/changing-partcombine-texts.ly +++ b/Documentation/snippets/changing-partcombine-texts.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "simultaneous-notes" @@ -17,7 +17,6 @@ the solo and unison sections may be changed: doctitle = "Changing partcombine texts" } % begin verbatim - \new Staff << \set Staff.soloText = #"girl" \set Staff.soloIIText = #"boy" diff --git a/Documentation/snippets/changing-properties-for-individual-grobs.ly b/Documentation/snippets/changing-properties-for-individual-grobs.ly index 7005946043..ad9842492d 100644 --- a/Documentation/snippets/changing-properties-for-individual-grobs.ly +++ b/Documentation/snippets/changing-properties-for-individual-grobs.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "really-cool, scheme-language, tweaks-and-overrides" @@ -18,7 +18,6 @@ arguments. doctitle = "Changing properties for individual grobs" } % begin verbatim - #(define (mc-squared grob grob-origin context) (let ((sp (ly:grob-property grob 'staff-position))) (if (grob::has-interface grob 'note-head-interface) diff --git a/Documentation/snippets/changing-stanza-fonts.ly b/Documentation/snippets/changing-stanza-fonts.ly index 4ef7475f41..38581bb551 100644 --- a/Documentation/snippets/changing-stanza-fonts.ly +++ b/Documentation/snippets/changing-stanza-fonts.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "really-simple, vocal-music" diff --git a/Documentation/snippets/changing-text-and-spanner-styles-for-text-dynamics.ly b/Documentation/snippets/changing-text-and-spanner-styles-for-text-dynamics.ly index 002aaf7216..77c5a40eb5 100644 --- a/Documentation/snippets/changing-text-and-spanner-styles-for-text-dynamics.ly +++ b/Documentation/snippets/changing-text-and-spanner-styles-for-text-dynamics.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, tweaks-and-overrides" @@ -23,7 +23,6 @@ is @code{'dashed-line}, and other possible values include @code{'line}, doctitle = "Changing text and spanner styles for text dynamics" } % begin verbatim - \relative c'' { \set crescendoText = \markup { \italic { cresc. poco } } \set crescendoSpanner = #'text diff --git a/Documentation/snippets/changing-the-ambitus-gap.ly b/Documentation/snippets/changing-the-ambitus-gap.ly index 7d13dc3b06..ade2d8e63b 100644 --- a/Documentation/snippets/changing-the-ambitus-gap.ly +++ b/Documentation/snippets/changing-the-ambitus-gap.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "pitches" diff --git a/Documentation/snippets/changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly b/Documentation/snippets/changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly index 4da9c337f5..45e60243b2 100644 --- a/Documentation/snippets/changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly +++ b/Documentation/snippets/changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "connecting-notes, editorial-annotations, expressive-marks, really-simple" @@ -16,7 +16,6 @@ The appearance of slurs may be changed from solid to dotted or dashed. doctitle = "Changing the appearance of a slur from solid to dotted or dashed" } % begin verbatim - \relative c' { c4( d e c) \slurDotted diff --git a/Documentation/snippets/changing-the-breath-mark-symbol.ly b/Documentation/snippets/changing-the-breath-mark-symbol.ly index 33978945b0..45fbff7ce0 100644 --- a/Documentation/snippets/changing-the-breath-mark-symbol.ly +++ b/Documentation/snippets/changing-the-breath-mark-symbol.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks" diff --git a/Documentation/snippets/changing-the-chord-names-to-german-or-semi-german-notation.ly b/Documentation/snippets/changing-the-chord-names-to-german-or-semi-german-notation.ly index 26cc5d92ec..fdd185ca79 100644 --- a/Documentation/snippets/changing-the-chord-names-to-german-or-semi-german-notation.ly +++ b/Documentation/snippets/changing-the-chord-names-to-german-or-semi-german-notation.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "chords, really-simple" @@ -21,17 +21,14 @@ The english naming of chords (default) can be changed to german doctitle = "Changing the chord names to German or semi-German notation" } % begin verbatim - -music = \chordmode { +scm = \chordmode { c1/c | cis/cis b1/b | bis/bis | bes/bes } -%% The following is only here to print the names of the -%% chords styles; it can be removed if you do not need to -%% print them. \layout { + ragged-right = ##t \context { \ChordNames \consists "Instrument_name_engraver" @@ -40,14 +37,24 @@ music = \chordmode { << \new ChordNames { - \set ChordNames.instrumentName = #"default" - \music + \set instrumentName = #"default" + \scm + } + \new ChordNames { + \set instrumentName = #"german" + \germanChords \scm } \new ChordNames { - \set ChordNames.instrumentName = #"german" - \germanChords \music } + \set instrumentName = #"semi-german" + \semiGermanChords \scm + } \new ChordNames { - \set ChordNames.instrumentName = #"semi-german" - \semiGermanChords \music } - \context Voice { \music } + \set instrumentName = #"italian" + \italianChords \scm + } + \new ChordNames { + \set instrumentName = #"french" + \frenchChords \scm + } + \context Voice { \scm } >> diff --git a/Documentation/snippets/changing-the-default-text-font-family.ly b/Documentation/snippets/changing-the-default-text-font-family.ly index 0fff98a94f..e5608cf69e 100644 --- a/Documentation/snippets/changing-the-default-text-font-family.ly +++ b/Documentation/snippets/changing-the-default-text-font-family.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "text, tweaks-and-overrides" @@ -17,7 +17,6 @@ The default font families for text can be overridden with doctitle = "Changing the default text font family" } % begin verbatim - \paper { % change for other default global staff size. myStaffSize = #20 diff --git a/Documentation/snippets/changing-the-interval-of-lines-on-the-stave.ly b/Documentation/snippets/changing-the-interval-of-lines-on-the-stave.ly index bb52c169ff..9e5b0c7ef0 100644 --- a/Documentation/snippets/changing-the-interval-of-lines-on-the-stave.ly +++ b/Documentation/snippets/changing-the-interval-of-lines-on-the-stave.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "pitches" @@ -19,7 +19,6 @@ and line of the stave equal to one semitone. doctitle = "Changing the interval of lines on the stave" } % begin verbatim - scale = \relative c' { a4 ais b c cis4 d dis e diff --git a/Documentation/snippets/changing-the-number-of-augmentation-dots-per-note.ly b/Documentation/snippets/changing-the-number-of-augmentation-dots-per-note.ly index 38764d36f3..422a855169 100644 --- a/Documentation/snippets/changing-the-number-of-augmentation-dots-per-note.ly +++ b/Documentation/snippets/changing-the-number-of-augmentation-dots-per-note.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, rhythms" diff --git a/Documentation/snippets/changing-the-number-of-lines-in-a-staff.ly b/Documentation/snippets/changing-the-number-of-lines-in-a-staff.ly index c4c53e5c32..08a8d99202 100644 --- a/Documentation/snippets/changing-the-number-of-lines-in-a-staff.ly +++ b/Documentation/snippets/changing-the-number-of-lines-in-a-staff.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "specific-notation, staff-notation" @@ -20,7 +20,6 @@ The number of lines in a staff may changed by overriding the doctitle = "Changing the number of lines in a staff" } % begin verbatim - upper = \relative c'' { c4 d e f } diff --git a/Documentation/snippets/changing-the-positions-of-figured-bass-alterations.ly b/Documentation/snippets/changing-the-positions-of-figured-bass-alterations.ly index 7c7bafcbb1..7a6f6fb5bb 100644 --- a/Documentation/snippets/changing-the-positions-of-figured-bass-alterations.ly +++ b/Documentation/snippets/changing-the-positions-of-figured-bass-alterations.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "chords" @@ -18,7 +18,6 @@ depending on the @code{figuredBassAlterationDirection} and doctitle = "Changing the positions of figured bass alterations" } % begin verbatim - \figures { <6\+> <5+> <6 4-> r \set figuredBassAlterationDirection = #RIGHT diff --git a/Documentation/snippets/changing-the-size-of-woodwind-diagrams.ly b/Documentation/snippets/changing-the-size-of-woodwind-diagrams.ly index 589ce235fa..548544273e 100644 --- a/Documentation/snippets/changing-the-size-of-woodwind-diagrams.ly +++ b/Documentation/snippets/changing-the-size-of-woodwind-diagrams.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "winds" diff --git a/Documentation/snippets/changing-the-staff-size.ly b/Documentation/snippets/changing-the-staff-size.ly index ed30920b49..e605413ea2 100644 --- a/Documentation/snippets/changing-the-staff-size.ly +++ b/Documentation/snippets/changing-the-staff-size.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "paper-and-layout, staff-notation, tweaks-and-overrides" @@ -19,7 +19,6 @@ changed by scaling the properties @code{'staff-space} and doctitle = "Changing the staff size" } % begin verbatim - << \new Staff { \relative c'' { diff --git a/Documentation/snippets/changing-the-tempo-without-a-metronome-mark.ly b/Documentation/snippets/changing-the-tempo-without-a-metronome-mark.ly index 66879b4f68..5ee5d34f28 100644 --- a/Documentation/snippets/changing-the-tempo-without-a-metronome-mark.ly +++ b/Documentation/snippets/changing-the-tempo-without-a-metronome-mark.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "midi, rhythms, tweaks-and-overrides" @@ -17,7 +17,6 @@ metronome mark invisible. doctitle = "Changing the tempo without a metronome mark" } % begin verbatim - \score { \new Staff \relative c' { \tempo 4 = 160 diff --git a/Documentation/snippets/changing-the-text-for-sustain-markings.ly b/Documentation/snippets/changing-the-text-for-sustain-markings.ly index 6f6871ef37..5345cd9242 100644 --- a/Documentation/snippets/changing-the-text-for-sustain-markings.ly +++ b/Documentation/snippets/changing-the-text-for-sustain-markings.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "keyboards, tweaks-and-overrides" @@ -19,7 +19,6 @@ exhaustive list. doctitle = "Changing the text for sustain markings" } % begin verbatim - sustainNotes = { c4\sustainOn d e\sustainOff\sustainOn f\sustainOff } \relative c' { diff --git a/Documentation/snippets/changing-the-tuplet-number.ly b/Documentation/snippets/changing-the-tuplet-number.ly index e0257869b7..d20801bedb 100644 --- a/Documentation/snippets/changing-the-tuplet-number.ly +++ b/Documentation/snippets/changing-the-tuplet-number.ly @@ -1,26 +1,26 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.17.30 -\version "2.17.30" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { lsrtags = "rhythms" texidoc = " By default, only the numerator of the tuplet number is printed over the -tuplet bracket. Alternatively, num:den of the tuplet number may -be printed, or the tuplet number may be suppressed altogether. +tuplet bracket, i.e., the denominator of the argument to the +@code{\\times} command. + +Alternatively, num:den of the tuplet number may be printed, or the +tuplet number may be suppressed altogether. " doctitle = "Changing the tuplet number" } % begin verbatim - - \relative c'' { \tuplet 3/2 { c8 c c } \tuplet 3/2 { c8 c c } diff --git a/Documentation/snippets/changing-time-signatures-inside-a-polymetric-section-using--scaledurations.ly b/Documentation/snippets/changing-time-signatures-inside-a-polymetric-section-using--scaledurations.ly index 74a6d43c10..6b37d262db 100644 --- a/Documentation/snippets/changing-time-signatures-inside-a-polymetric-section-using--scaledurations.ly +++ b/Documentation/snippets/changing-time-signatures-inside-a-polymetric-section-using--scaledurations.ly @@ -1,20 +1,27 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.17.11 -\version "2.17.11" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { - lsrtags = "workaround, contexts-and-engravers, contemporary-notation, rhythms" + lsrtags = "contemporary-notation, contexts-and-engravers, rhythms, workaround" + texidoc = " +The @code{measureLength} property, together with +@code{measurePosition}, determines when a bar line is needed. However, +when using @code{\\scaleDurations}, the scaling of durations makes it +difficult to change time signatures. In this case, +@code{measureLength} should be set manually, using the +@code{ly:make-moment} callback. The second argument must be the same +as the second argument of @code{\\scaleDurations}. + +" doctitle = "Changing time signatures inside a polymetric section using \\scaleDurations" } % begin verbatim - - \layout { \context { \Score diff --git a/Documentation/snippets/chant-or-psalms-notation.ly b/Documentation/snippets/chant-or-psalms-notation.ly index 864374ec3f..643e25c95a 100644 --- a/Documentation/snippets/chant-or-psalms-notation.ly +++ b/Documentation/snippets/chant-or-psalms-notation.ly @@ -1,24 +1,22 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.17.6 -\version "2.17.6" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { - lsrtags = "rhythms, vocal-music, ancient-notation, contexts-and-engravers, specific-notation" + lsrtags = "ancient-notation, contexts-and-engravers, rhythms, specific-notation, vocal-music" texidoc = " -This form of notation is used for the chant of the Psalms, where verses -aren't always the same length. +This form of notation is used for Psalm chant, where verses aren't +always the same length. " doctitle = "Chant or psalms notation" } % begin verbatim - stemOff = \hide Staff.Stem stemOn = \undo \stemOff diff --git a/Documentation/snippets/chord-glissando-in-tablature.ly b/Documentation/snippets/chord-glissando-in-tablature.ly index a5b221cf28..540c6e8a75 100644 --- a/Documentation/snippets/chord-glissando-in-tablature.ly +++ b/Documentation/snippets/chord-glissando-in-tablature.ly @@ -1,16 +1,16 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "fretted-strings" texidoc = " -Slides for chords can be indicated in both @code{Staff} and +Slides for chords are indicated by default in both @code{Staff} and @code{TabStaff}. String numbers are necessary for @code{TabStaff} because automatic string calculations are different for chords and for single notes. @@ -18,9 +18,10 @@ single notes. " doctitle = "Chord glissando in tablature" } % begin verbatim +%=> http://lilypond.1069038.n5.nabble.com/LSR-chord-glissando-in-tablature-obsolete-tc159863.html myMusic = \relative c' { - 1 \glissando + 1 \glissando } \score { @@ -29,7 +30,17 @@ myMusic = \relative c' { \clef "treble_8" \myMusic } - \new TabStaff { + \new TabStaff \myMusic + >> +} + +\score { + << + \new Staff { + \clef "treble_8" + \myMusic + } + \new TabStaff \with { \override Glissando.style = #'none } { \myMusic } >> diff --git a/Documentation/snippets/chord-name-exceptions.ly b/Documentation/snippets/chord-name-exceptions.ly index 759c02140d..914c06f1e6 100644 --- a/Documentation/snippets/chord-name-exceptions.ly +++ b/Documentation/snippets/chord-name-exceptions.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "chords, specific-notation" @@ -17,7 +17,6 @@ special notations for specific chords. doctitle = "Chord name exceptions" } % begin verbatim - % modify maj9 and 6(add9) % Exception music is chords with markups chExceptionMusic = { diff --git a/Documentation/snippets/chord-name-major7.ly b/Documentation/snippets/chord-name-major7.ly index b4a345d464..832dda877d 100644 --- a/Documentation/snippets/chord-name-major7.ly +++ b/Documentation/snippets/chord-name-major7.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "chords, specific-notation" @@ -16,7 +16,6 @@ The layout of the major 7 can be tuned with @code{majorSevenSymbol}. doctitle = "chord name major7" } % begin verbatim - \chords { c:7+ \set majorSevenSymbol = \markup { j7 } diff --git a/Documentation/snippets/chordchanges-for-fretboards.ly b/Documentation/snippets/chordchanges-for-fretboards.ly index ffac03d80b..89b2ea95e6 100644 --- a/Documentation/snippets/chordchanges-for-fretboards.ly +++ b/Documentation/snippets/chordchanges-for-fretboards.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "fretted-strings" diff --git a/Documentation/snippets/chords-headword.ly b/Documentation/snippets/chords-headword.ly index c335944a5a..db4e80b032 100644 --- a/Documentation/snippets/chords-headword.ly +++ b/Documentation/snippets/chords-headword.ly @@ -1,19 +1,20 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.17.6 -\version "2.17.6" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { lsrtags = "headword" - texidoc = "" - doctitle = "headword" -} % begin verbatim + texidoc = " +. +" + doctitle = "Chords headword" +} % begin verbatim theChords = \chordmode { \time 2/2 @@ -100,4 +101,3 @@ Bass = { } } } -\paper { } diff --git a/Documentation/snippets/chords.snippet-list b/Documentation/snippets/chords.snippet-list index 86bdaefd0e..c774f57f8b 100644 --- a/Documentation/snippets/chords.snippet-list +++ b/Documentation/snippets/chords.snippet-list @@ -1,7 +1,7 @@ adding-a-figured-bass-above-or-below-the-notes.ly adding-bar-lines-to-chordnames-context.ly avoiding-collisions-with-chord-fingerings.ly -bar-chords-notation-for-guitar--with-text-spanner.ly +bar-chords-notation-for-guitar-with-text-spanner.ly changing-chord-separator.ly changing-the-chord-names-to-german-or-semi-german-notation.ly changing-the-positions-of-figured-bass-alterations.ly diff --git a/Documentation/snippets/clefs-can-be-transposed-by-arbitrary-amounts.ly b/Documentation/snippets/clefs-can-be-transposed-by-arbitrary-amounts.ly index e7155b5355..541c2d67ba 100644 --- a/Documentation/snippets/clefs-can-be-transposed-by-arbitrary-amounts.ly +++ b/Documentation/snippets/clefs-can-be-transposed-by-arbitrary-amounts.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "pitches" @@ -16,7 +16,6 @@ Clefs can be transposed by arbitrary amounts, not just by octaves. doctitle = "Clefs can be transposed by arbitrary amounts" } % begin verbatim - \relative c' { \clef treble c4 c c c diff --git a/Documentation/snippets/clip-systems.ly b/Documentation/snippets/clip-systems.ly index ee58d574b6..b7be958297 100644 --- a/Documentation/snippets/clip-systems.ly +++ b/Documentation/snippets/clip-systems.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "paper-and-layout" @@ -33,7 +33,6 @@ are generated. doctitle = "Clip systems" } % begin verbatim - #(ly:set-option 'clip-systems) #(define output-suffix "1") diff --git a/Documentation/snippets/clusters.ly b/Documentation/snippets/clusters.ly index 50bc544ad0..82974911e1 100644 --- a/Documentation/snippets/clusters.ly +++ b/Documentation/snippets/clusters.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "chords, contemporary-notation, keyboards, really-cool, simultaneous-notes, specific-notation" @@ -17,7 +17,6 @@ played. doctitle = "Clusters" } % begin verbatim - fragment = \relative c' { c4 f 4 8 a4 c2 4 diff --git a/Documentation/snippets/coloring-notes-depending-on-their-pitch.ly b/Documentation/snippets/coloring-notes-depending-on-their-pitch.ly index 16ed079f6e..23b25a5523 100644 --- a/Documentation/snippets/coloring-notes-depending-on-their-pitch.ly +++ b/Documentation/snippets/coloring-notes-depending-on-their-pitch.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "editorial-annotations, pitches, really-cool" diff --git a/Documentation/snippets/combining-dynamics-with-markup-texts.ly b/Documentation/snippets/combining-dynamics-with-markup-texts.ly index b778e8b394..14fc861c1c 100644 --- a/Documentation/snippets/combining-dynamics-with-markup-texts.ly +++ b/Documentation/snippets/combining-dynamics-with-markup-texts.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "expressive-marks, really-simple, text" @@ -18,9 +18,10 @@ block. doctitle = "Combining dynamics with markup texts" } % begin verbatim - piuF = \markup { \italic più \dynamic f } + \layout { ragged-right = ##f } + \relative c'' { c2\f c-\piuF } diff --git a/Documentation/snippets/combining-two-parts-on-the-same-staff.ly b/Documentation/snippets/combining-two-parts-on-the-same-staff.ly index 0a8477adc5..643dacbe86 100644 --- a/Documentation/snippets/combining-two-parts-on-the-same-staff.ly +++ b/Documentation/snippets/combining-two-parts-on-the-same-staff.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "simultaneous-notes, syntax-and-expressions, text" @@ -30,6 +30,7 @@ staff: standard polyphony, @code{\\partcombine} without texts, and doctitle = "Combining two parts on the same staff" } % begin verbatim +%% Combining pedal notes with clef changes musicUp = \relative c'' { \time 4/4 diff --git a/Documentation/snippets/compound-time-signatures.ly b/Documentation/snippets/compound-time-signatures.ly index 9b1a047a5b..4734934723 100644 --- a/Documentation/snippets/compound-time-signatures.ly +++ b/Documentation/snippets/compound-time-signatures.ly @@ -1,27 +1,27 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.17.15 -\version "2.17.15" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { lsrtags = "rhythms" texidoc = " -Odd 20th century time signatures (such as \\\"5/8\\\") can often be -played as compound time signatures (e.g. \\\"3/8 + 2/8\\\"), which -combine two or more inequal metrics. LilyPond can make such music quite -easy to read and play, by explicitly printing the compound time -signatures and adapting the automatic beaming behavior. +Odd 20th century time signatures (such as \"5/8\") can often be played +as compound time signatures (e.g. \"3/8 + 2/8\"), which combine two or +more inequal metrics. + +LilyPond can make such music quite easy to read and play, by explicitly +printing the compound time signatures and adapting the automatic +beaming behavior. " doctitle = "Compound time signatures" } % begin verbatim - \relative c' { \compoundMeter #'((2 8) (3 8)) c8 d e fis gis diff --git a/Documentation/snippets/conducting-signs,-measure-grouping-signs.ly b/Documentation/snippets/conducting-signs,-measure-grouping-signs.ly index b30f7e7393..514718f9bd 100644 --- a/Documentation/snippets/conducting-signs,-measure-grouping-signs.ly +++ b/Documentation/snippets/conducting-signs,-measure-grouping-signs.ly @@ -1,42 +1,39 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.16.0 -\version "2.16.0" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { lsrtags = "rhythms" + texidoc = " Beat grouping within a measure is controlled by the context property -@code{beatStructure}. Values of @code{beatStructure} are -established for many time signatures in -@file{scm/time-signature-settings.scm}. Values of @code{beatStructure} -can be changed or set with @code{\\set}. -Alternatively, @code{\\time} can be used to both -set the time signature and establish the beat structure. -For this, you specify the internal grouping of beats in a measure -as a list of numbers (in Scheme syntax) before the time signature. +@code{beatStructure}. Values of @code{beatStructure} are established +for many time signatures in @@file@{scm/time-signature-settings.scm@}. +Values of @code{beatStructure} can be changed or set with @code{\\set}. +Alternatively, @code{\\time} can be used to both set the time signature +and establish the beat structure. For this, you specify the internal +grouping of beats in a measure as a list of numbers (in Scheme syntax) +before the time signature. @code{\\time} applies to the @code{Timing} context, so it will not reset values of @code{beatStructure} or @code{baseMoment} that are set in other lower-level contexts, such as @code{Voice}. -If the @code{Measure_grouping_engraver} is included -in one of the display contexts, measure grouping signs will be -created. Such signs ease reading rhythmically complex modern music. -In the example, the 9/8 measure is grouped in two different -patterns using the two different methods, while the 5/8 measure -is grouped according to the default setting in -@file{scm/time-signature-settings.scm}: +If the @code{Measure_grouping_engraver} is included in one of the +display contexts, measure grouping signs will be created. Such signs +ease reading rhythmically complex modern music. In the example, the 9/8 +measure is grouped in two different patterns using the two different +methods, while the 5/8 measure is grouped according to the default +setting in @@file@{scm/time-signature-settings.scm@}: + " doctitle = "Conducting signs measure grouping signs" } % begin verbatim - - \score { \new Voice \relative c'' { \time 9/8 diff --git a/Documentation/snippets/consistently-left-aligned-bar-numbers.ly b/Documentation/snippets/consistently-left-aligned-bar-numbers.ly index f2b61e8e8d..c37bc7240e 100644 --- a/Documentation/snippets/consistently-left-aligned-bar-numbers.ly +++ b/Documentation/snippets/consistently-left-aligned-bar-numbers.ly @@ -1,17 +1,17 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "rhythms" texidoc = " When left aligning bar numbers, overlapping problems may occur with -Staves brackets. The snippet solves this by keeping right aligned the +Staves brackets. The snippet solves this by keeping right aligned the first bar number following line breaks. " diff --git a/Documentation/snippets/contemporary-glissando.ly b/Documentation/snippets/contemporary-glissando.ly index 7d9d563318..1585518199 100644 --- a/Documentation/snippets/contemporary-glissando.ly +++ b/Documentation/snippets/contemporary-glissando.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "contemporary-notation, expressive-marks, specific-notation" @@ -17,7 +17,6 @@ hidden note and cadenza timing. doctitle = "Contemporary glissando" } % begin verbatim - \relative c'' { \time 3/4 \override Glissando.style = #'zigzag diff --git a/Documentation/snippets/controlling-spanner-visibility-after-a-line-break.ly b/Documentation/snippets/controlling-spanner-visibility-after-a-line-break.ly index 4df07c679e..a434f35d75 100644 --- a/Documentation/snippets/controlling-spanner-visibility-after-a-line-break.ly +++ b/Documentation/snippets/controlling-spanner-visibility-after-a-line-break.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, tweaks-and-overrides" diff --git a/Documentation/snippets/controlling-the-placement-of-chord-fingerings.ly b/Documentation/snippets/controlling-the-placement-of-chord-fingerings.ly index 4e264c604e..9c29cba1eb 100644 --- a/Documentation/snippets/controlling-the-placement-of-chord-fingerings.ly +++ b/Documentation/snippets/controlling-the-placement-of-chord-fingerings.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "chords, editorial-annotations, fretted-strings, keyboards, specific-notation" @@ -18,7 +18,6 @@ if it is a single note. doctitle = "Controlling the placement of chord fingerings" } % begin verbatim - \relative c' { \set fingeringOrientations = #'(left) 4 diff --git a/Documentation/snippets/controlling-the-vertical-ordering-of-scripts.ly b/Documentation/snippets/controlling-the-vertical-ordering-of-scripts.ly index d4091b033d..9c03616528 100644 --- a/Documentation/snippets/controlling-the-vertical-ordering-of-scripts.ly +++ b/Documentation/snippets/controlling-the-vertical-ordering-of-scripts.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, tweaks-and-overrides" @@ -23,7 +23,6 @@ comes first. doctitle = "Controlling the vertical ordering of scripts" } % begin verbatim - \relative c''' { \once \override TextScript.script-priority = #-100 a2^\prall^\markup { \sharp } diff --git a/Documentation/snippets/controlling-tuplet-bracket-visibility.ly b/Documentation/snippets/controlling-tuplet-bracket-visibility.ly index 9c74de6b45..37def33224 100644 --- a/Documentation/snippets/controlling-tuplet-bracket-visibility.ly +++ b/Documentation/snippets/controlling-tuplet-bracket-visibility.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "rhythms, tweaks-and-overrides" @@ -21,7 +21,6 @@ bracket), @code{#f} (never print a bracket) or @code{#'if-no-beam} doctitle = "Controlling tuplet bracket visibility" } % begin verbatim - music = \relative c'' { \tuplet 3/2 { c16[ d e } f8] \tuplet 3/2 { c8 d e } @@ -37,5 +36,8 @@ music = \relative c'' { << \music s4^"#t" >> \override TupletBracket.bracket-visibility = ##f << \music s4^"#f" >> + %% v2.18 : + \omit TupletBracket + << \music s4^"omit" >> } } diff --git a/Documentation/snippets/correction-wanted.snippet-list b/Documentation/snippets/correction-wanted.snippet-list index b551d6eaca..ed1279b54c 100644 --- a/Documentation/snippets/correction-wanted.snippet-list +++ b/Documentation/snippets/correction-wanted.snippet-list @@ -1,2 +1 @@ -adjusting-lyrics-vertical-spacing.ly horizontally-aligning-custom-dynamics-e.g.-sempre-pp,-piu-f,-subito-p.ly diff --git a/Documentation/snippets/creating-a-delayed-turn.ly b/Documentation/snippets/creating-a-delayed-turn.ly index 98c4a150a0..0787bc8b0c 100644 --- a/Documentation/snippets/creating-a-delayed-turn.ly +++ b/Documentation/snippets/creating-a-delayed-turn.ly @@ -1,11 +1,10 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.17.97 -\version "2.17.97" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { lsrtags = "editorial-annotations, expressive-marks, tweaks-and-overrides" @@ -15,14 +14,13 @@ Creating a delayed turn, where the lower note of the turn uses the accidental, requires several overrides. The @code{outside-staff-priority} property must be set to @code{#f}, as otherwise this would take precedence over the @code{avoid-slur -property}. Changing the fractions @code{2/3} and @code{1/3} adjusts the -horizontal position. +property}. Changing the fractions @code{2/3} and @code{1/3} adjusts +the horizontal position. + " doctitle = "Creating a delayed turn" } % begin verbatim - - \relative c'' { c2*2/3 ( s2*1/3\turn d4) r << @@ -34,10 +32,10 @@ horizontal position. { s4 \once \set suggestAccidentals = ##t - \once \override AccidentalSuggestion #'outside-staff-priority = ##f - \once \override AccidentalSuggestion #'avoid-slur = #'inside - \once \override AccidentalSuggestion #'font-size = #-3 - \once \override AccidentalSuggestion #'script-priority = #-1 + \once \override AccidentalSuggestion.outside-staff-priority = ##f + \once \override AccidentalSuggestion.avoid-slur = #'inside + \once \override AccidentalSuggestion.font-size = -3 + \once \override AccidentalSuggestion.script-priority = -1 \single \hideNotes b8-\turn \noBeam s8 diff --git a/Documentation/snippets/creating-a-sequence-of-notes-on-various-pitches.ly b/Documentation/snippets/creating-a-sequence-of-notes-on-various-pitches.ly index 22476cebfb..37000fda73 100644 --- a/Documentation/snippets/creating-a-sequence-of-notes-on-various-pitches.ly +++ b/Documentation/snippets/creating-a-sequence-of-notes-on-various-pitches.ly @@ -4,8 +4,8 @@ % and then run scripts/auxiliar/makelsr.py % % This file is in the public domain. -%% Note: this file works from version 2.17.11 -\version "2.17.11" +%% Note: this file works from version 2.19.0 +\version "2.19.0" \header { lsrtags = "pitches, real-music, really-cool, scheme-language" @@ -25,7 +25,7 @@ Planets. rhythm = #(define-music-function (parser location p) (ly:pitch?) "Make the rhythm in Mars (the Planets) at the given pitch" - #{ \tuplet 3/2 { $p 8 $p $p } $p 4 $p $p 8 $p $p 4 #}) + #{ \tuplet 3/2 { $p 8 8 8 } 4 4 8 8 4 #}) \new Staff { \time 5/4 diff --git a/Documentation/snippets/creating-arpeggios-across-notes-in-different-voices.ly b/Documentation/snippets/creating-arpeggios-across-notes-in-different-voices.ly index 52b16bbb59..bdf4cee328 100644 --- a/Documentation/snippets/creating-arpeggios-across-notes-in-different-voices.ly +++ b/Documentation/snippets/creating-arpeggios-across-notes-in-different-voices.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "expressive-marks" @@ -18,7 +18,6 @@ context: doctitle = "Creating arpeggios across notes in different voices" } % begin verbatim - \new Staff \with { \consists "Span_arpeggio_engraver" } diff --git a/Documentation/snippets/creating-blank-staves.ly b/Documentation/snippets/creating-blank-staves.ly index f264ed64f2..69d3626554 100644 --- a/Documentation/snippets/creating-blank-staves.ly +++ b/Documentation/snippets/creating-blank-staves.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "contexts-and-engravers, editorial-annotations, paper-and-layout, specific-notation, staff-notation" @@ -19,7 +19,6 @@ To create blank staves, generate empty measures then remove the doctitle = "Creating blank staves" } % begin verbatim - #(set-global-staff-size 20) \score { @@ -41,6 +40,8 @@ To create blank staves, generate empty measures then remove the } } +% uncomment these lines for "letter" size +%{ \paper { #(set-paper-size "letter") ragged-last-bottom = ##f @@ -49,3 +50,16 @@ To create blank staves, generate empty measures then remove the bottom-margin = 0.25\in top-margin = 0.25\in } +%} + +% uncomment these lines for "A4" size +%{ +\paper { + #(set-paper-size "a4") + ragged-last-bottom = ##f + line-width = 180 + left-margin = 15 + bottom-margin = 10 + top-margin = 10 +} +%} diff --git a/Documentation/snippets/creating-cross-staff-arpeggios-in-a-piano-staff.ly b/Documentation/snippets/creating-cross-staff-arpeggios-in-a-piano-staff.ly index a46b5a8dbc..d49f35abc7 100644 --- a/Documentation/snippets/creating-cross-staff-arpeggios-in-a-piano-staff.ly +++ b/Documentation/snippets/creating-cross-staff-arpeggios-in-a-piano-staff.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "expressive-marks" @@ -18,7 +18,6 @@ the staves by setting the property @code{PianoStaff.connectArpeggios}. doctitle = "Creating cross-staff arpeggios in a piano staff" } % begin verbatim - \new PianoStaff \relative c'' << \set PianoStaff.connectArpeggios = ##t \new Staff { diff --git a/Documentation/snippets/creating-cross-staff-arpeggios-in-other-contexts.ly b/Documentation/snippets/creating-cross-staff-arpeggios-in-other-contexts.ly index 168043d7e9..87beb1f21f 100644 --- a/Documentation/snippets/creating-cross-staff-arpeggios-in-other-contexts.ly +++ b/Documentation/snippets/creating-cross-staff-arpeggios-in-other-contexts.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "expressive-marks" @@ -18,7 +18,6 @@ Cross-staff arpeggios can be created in contexts other than doctitle = "Creating cross-staff arpeggios in other contexts" } % begin verbatim - \score { \new ChoirStaff { \set Score.connectArpeggios = ##t diff --git a/Documentation/snippets/creating-double-digit-fingerings.ly b/Documentation/snippets/creating-double-digit-fingerings.ly index aaf9962842..7949e5aec4 100644 --- a/Documentation/snippets/creating-double-digit-fingerings.ly +++ b/Documentation/snippets/creating-double-digit-fingerings.ly @@ -1,22 +1,21 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.17.15 -\version "2.17.15" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { lsrtags = "editorial-annotations, expressive-marks, scheme-language, staff-notation, tweaks-and-overrides" texidoc = " Creating fingerings larger than 5 is possible. + " doctitle = "Creating double-digit fingerings" } % begin verbatim - \relative c' { c1-10 c1-50 diff --git a/Documentation/snippets/creating-metronome-marks-in-markup-mode.ly b/Documentation/snippets/creating-metronome-marks-in-markup-mode.ly index a234b65082..62ebc5e726 100644 --- a/Documentation/snippets/creating-metronome-marks-in-markup-mode.ly +++ b/Documentation/snippets/creating-metronome-marks-in-markup-mode.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "rhythms" @@ -17,7 +17,6 @@ change the tempo in MIDI output. doctitle = "Creating metronome marks in markup mode" } % begin verbatim - \relative c' { \tempo \markup { \concat { diff --git a/Documentation/snippets/creating-real-parenthesized-dynamics.ly b/Documentation/snippets/creating-real-parenthesized-dynamics.ly index d6299a8ca8..8d6eec5122 100644 --- a/Documentation/snippets/creating-real-parenthesized-dynamics.ly +++ b/Documentation/snippets/creating-real-parenthesized-dynamics.ly @@ -1,11 +1,10 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.16.0 -\version "2.16.0" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { lsrtags = "expressive-marks, text, workaround" @@ -27,7 +26,6 @@ commands such as @code{\\dynamicUp} or @code{\\dynamicDown}. doctitle = "Creating \"real\" parenthesized dynamics" } % begin verbatim - paren = #(define-event-function (parser location dyn) (ly:event?) (make-dynamic-script diff --git a/Documentation/snippets/creating-simultaneous-rehearsal-marks.ly b/Documentation/snippets/creating-simultaneous-rehearsal-marks.ly index eefa6f5917..c93fc9ed82 100644 --- a/Documentation/snippets/creating-simultaneous-rehearsal-marks.ly +++ b/Documentation/snippets/creating-simultaneous-rehearsal-marks.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.30" +\version "2.18.0" \header { lsrtags = "expressive-marks, text, tweaks-and-overrides" @@ -32,7 +32,7 @@ end of one system and the start of the following system. % the hidden measure and bar line % \cadenzaOn turns off automatic calculation of bar numbers \cadenzaOn - \once \omit Score.TimeSignature + \once \override Score.TimeSignature.stencil = ##f \time 1/16 s16 \bar "" \cadenzaOff diff --git a/Documentation/snippets/creating-slurs-across-voices.ly b/Documentation/snippets/creating-slurs-across-voices.ly index 74e82c55e2..847de5949a 100644 --- a/Documentation/snippets/creating-slurs-across-voices.ly +++ b/Documentation/snippets/creating-slurs-across-voices.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "connecting-notes, expressive-marks, keyboards, real-music, unfretted-strings" @@ -23,7 +23,6 @@ solo violin, BWV 1004. doctitle = "Creating slurs across voices" } % begin verbatim - \relative c' { << { diff --git a/Documentation/snippets/creating-text-spanners.ly b/Documentation/snippets/creating-text-spanners.ly index 5e18e550e2..d0c209273e 100644 --- a/Documentation/snippets/creating-text-spanners.ly +++ b/Documentation/snippets/creating-text-spanners.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, text, tweaks-and-overrides" @@ -19,7 +19,6 @@ to modify its output. doctitle = "Creating text spanners" } % begin verbatim - \paper { ragged-right = ##f } \relative c'' { diff --git a/Documentation/snippets/cross-staff-chords---beaming-problems-workaround.ly b/Documentation/snippets/cross-staff-chords---beaming-problems-workaround.ly index cb4ec966af..f0929dc32c 100644 --- a/Documentation/snippets/cross-staff-chords---beaming-problems-workaround.ly +++ b/Documentation/snippets/cross-staff-chords---beaming-problems-workaround.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "chords, keyboards, tweaks-and-overrides, workaround" @@ -15,14 +15,13 @@ cross-staff chords, because no problems with automatic beam collision avoidance then arise. If the stems from the lower staff were used in the following example, it would be necessary to change the automatic beam collision avoidance settings so that it doesn't detect collisions -between staves using @code{\\override Staff.Beam.collision-voice-only -= ##t} +between staves using @code{\\override Staff.Beam.collision-voice-only = +##t} " doctitle = "Cross-staff chords - beaming problems workaround" } % begin verbatim - \new PianoStaff << \new Staff = up \relative c' { diff --git a/Documentation/snippets/cross-staff-stems.ly b/Documentation/snippets/cross-staff-stems.ly index cfcc9ef0d0..448187f8ec 100644 --- a/Documentation/snippets/cross-staff-stems.ly +++ b/Documentation/snippets/cross-staff-stems.ly @@ -1,24 +1,25 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.16.0 -\version "2.16.0" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" \header { - lsrtags = "staff-notation, tweaks-and-overrides, contexts-and-engravers" + lsrtags = "contexts-and-engravers, staff-notation, tweaks-and-overrides" + texidoc = " -This snippet shows the use of the @code{Span_stem_engraver} -and @code{\\crossStaff} to connect stems across staves automatically. -The stem length need not be specified, as the variable distance -between noteheads and staves is calculated automatically. +This snippet shows the use of the @code{Span_stem_engraver} and +@code{\\crossStaff} to connect stems across staves automatically. + +The stem length need not be specified, as the variable distance between +noteheads and staves is calculated automatically. + " doctitle = "Cross staff stems" } % begin verbatim - \layout { \context { \PianoStaff diff --git a/Documentation/snippets/cross-staff-tremolos.ly b/Documentation/snippets/cross-staff-tremolos.ly index 980feb5310..83808e2757 100644 --- a/Documentation/snippets/cross-staff-tremolos.ly +++ b/Documentation/snippets/cross-staff-tremolos.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "keyboards, real-music, repeats" @@ -19,7 +19,6 @@ its @code{\\change Staff} command. doctitle = "Cross-staff tremolos" } % begin verbatim - \new PianoStaff << \new Staff = "up" \relative c'' { \key a \major diff --git a/Documentation/snippets/custodes.ly b/Documentation/snippets/custodes.ly index b653e146ac..e22f5a69f3 100644 --- a/Documentation/snippets/custodes.ly +++ b/Documentation/snippets/custodes.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "ancient-notation, specific-notation, symbols-and-glyphs, tweaks-and-overrides" @@ -16,7 +16,6 @@ Custodes may be engraved in various styles. doctitle = "Custodes" } % begin verbatim - \layout { ragged-right = ##t } \new Staff \with { \consists "Custos_engraver" } \relative c' { diff --git a/Documentation/snippets/customizing-fretboard-fret-diagrams.ly b/Documentation/snippets/customizing-fretboard-fret-diagrams.ly index f9d5816c37..f619e246a3 100644 --- a/Documentation/snippets/customizing-fretboard-fret-diagrams.ly +++ b/Documentation/snippets/customizing-fretboard-fret-diagrams.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "fretted-strings, tweaks-and-overrides" @@ -20,7 +20,6 @@ can be omitted in property overrides. doctitle = "Customizing fretboard fret diagrams" } % begin verbatim - \include "predefined-guitar-fretboards.ly" \storePredefinedDiagram #default-fret-table \chordmode { c' } #guitar-tuning diff --git a/Documentation/snippets/customizing-markup-fret-diagrams.ly b/Documentation/snippets/customizing-markup-fret-diagrams.ly index 57032ef0fd..b48ecb6058 100644 --- a/Documentation/snippets/customizing-markup-fret-diagrams.ly +++ b/Documentation/snippets/customizing-markup-fret-diagrams.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "fretted-strings, tweaks-and-overrides" @@ -19,7 +19,6 @@ markup. doctitle = "Customizing markup fret diagrams" } % begin verbatim - << \chords { c1 | c | c | d } diff --git a/Documentation/snippets/customizing-the-position-and-number-of-dots-in-repeat-sign-bar-lines.ly b/Documentation/snippets/customizing-the-position-and-number-of-dots-in-repeat-sign-bar-lines.ly new file mode 100644 index 0000000000..8f733ad73e --- /dev/null +++ b/Documentation/snippets/customizing-the-position-and-number-of-dots-in-repeat-sign-bar-lines.ly @@ -0,0 +1,76 @@ +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" + +\header { + lsrtags = "scheme-language, symbols-and-glyphs" + + texidoc = " +If you want to customize the position and/or number of dots in repeat +sign bar lines, you can define new custom bar lines or redefine the way + default repeat signs are drawn. This snippet shows how. This may be +particularly helpful when using a staff with custom line-positions, as +shown in this snippet. + +" + doctitle = "Customizing the position and number of dots in repeat sign bar lines" +} % begin verbatim + +% \version "2.18.0" + +#(define ((make-custom-dot-bar-line dot-positions) grob extent) + + "Draw dots (repeat sign dots) at @var{dot-positions}. The +coordinates of @var{dot-positions} are equivalent to the +coordinates of @code{StaffSymbol.line-positions}, a dot-position +of X and a line-position of X indicate the same vertical position." + + (let* ((staff-space (ly:staff-symbol-staff-space grob)) + (dot (ly:font-get-glyph (ly:grob-default-font grob) "dots.dot")) + (stencil empty-stencil)) + (for-each + (lambda (dp) + (set! stencil (ly:stencil-add stencil + (ly:stencil-translate-axis dot (* dp (/ staff-space 2)) Y)))) + dot-positions) + stencil)) + +% With the procedure above we can define custom bar-lines, for example, +% one that resembles standard repeat sign bar lines except it has +% three dots at staff positions -3, 0, and 3. + +#(add-bar-glyph-print-procedure "*" (make-custom-dot-bar-line '(-3 0 3))) +\defineBarLine ".|*" #'("" "*" "") +\defineBarLine "*|." #'("" "*" "") + +% We can also customize the dot positions used in all default repeat signs +% by redefining the print procedure of the colon bar glyph (":"). On a staff +% with line-positions of '(-4 -2 2 4) the default repeat sign dots appear +% at '(-3 3), but we can put them at '(-1 1) instead. + +#(add-bar-glyph-print-procedure ":" (make-custom-dot-bar-line '(-1 1))) + + +\new Staff \with { + \override StaffSymbol.line-positions = #'(-4 -2 2 4) + \override StaffSymbol.staff-space = #1.3 +} { + \relative f' { + g1 + \bar ".|*" + g + \bar "*|." + g + \bar ".|:" + g + \bar ":|." + g + \repeat volta 2 { + g + } + } +} diff --git a/Documentation/snippets/default-direction-of-stems-on-the-center-line-of-the-staff.ly b/Documentation/snippets/default-direction-of-stems-on-the-center-line-of-the-staff.ly index 50ff9bc0cd..07471da72d 100644 --- a/Documentation/snippets/default-direction-of-stems-on-the-center-line-of-the-staff.ly +++ b/Documentation/snippets/default-direction-of-stems-on-the-center-line-of-the-staff.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "editorial-annotations" @@ -17,7 +17,6 @@ by the @code{Stem} property @code{neutral-direction}. doctitle = "Default direction of stems on the center line of the staff" } % begin verbatim - \relative c'' { a4 b c b \override Stem.neutral-direction = #up diff --git a/Documentation/snippets/defining-an-engraver-in-scheme--ambitus-engraver.ly b/Documentation/snippets/defining-an-engraver-in-scheme--ambitus-engraver.ly index 4deb652211..f284dd6d05 100644 --- a/Documentation/snippets/defining-an-engraver-in-scheme--ambitus-engraver.ly +++ b/Documentation/snippets/defining-an-engraver-in-scheme--ambitus-engraver.ly @@ -4,7 +4,7 @@ % and then run scripts/auxiliar/makelsr.py % % This file is in the public domain. -%% Note: this file works from version 2.16.0 +%% Note: this file works from version 2.19.7 \version "2.19.7" \header { diff --git a/Documentation/snippets/defining-predefined-fretboards-for-other-instruments.ly b/Documentation/snippets/defining-predefined-fretboards-for-other-instruments.ly index 6ba7858cca..6a3b029cd3 100644 --- a/Documentation/snippets/defining-predefined-fretboards-for-other-instruments.ly +++ b/Documentation/snippets/defining-predefined-fretboards-for-other-instruments.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "fretted-strings" @@ -27,7 +27,6 @@ information. This is planned to be corrected in the future. doctitle = "Defining predefined fretboards for other instruments" } % begin verbatim - % add FretBoards for the Cuatro % Note: This section could be put into a separate file % predefined-cuatro-fretboards.ly @@ -108,7 +107,7 @@ primeros = { \layout { \context { \Score - \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/16) + \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1 16) } } \midi { } diff --git a/Documentation/snippets/demo-midiinstruments.ly b/Documentation/snippets/demo-midiinstruments.ly index 434587651f..44199d8fd9 100644 --- a/Documentation/snippets/demo-midiinstruments.ly +++ b/Documentation/snippets/demo-midiinstruments.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "midi, real-music, specific-notation" @@ -19,7 +19,6 @@ composition? Solution: A LilyPond demo file. doctitle = "Demo MidiInstruments" } % begin verbatim - \header { title = "Demo of all midi sounds" arranger = "Myself " diff --git a/Documentation/snippets/demonstrating-all-headers.ly b/Documentation/snippets/demonstrating-all-headers.ly index 38b3bc30a9..a99002b0bf 100644 --- a/Documentation/snippets/demonstrating-all-headers.ly +++ b/Documentation/snippets/demonstrating-all-headers.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "paper-and-layout, text, titles" @@ -16,7 +16,6 @@ A demonstration of all headers. doctitle = "Demonstrating all headers" } % begin verbatim - \header { copyright = "copyright" title = "title" diff --git a/Documentation/snippets/display-bracket-with-only-one-staff-in-a-system.ly b/Documentation/snippets/display-bracket-with-only-one-staff-in-a-system.ly index 94d61a4be5..a7d99645bc 100644 --- a/Documentation/snippets/display-bracket-with-only-one-staff-in-a-system.ly +++ b/Documentation/snippets/display-bracket-with-only-one-staff-in-a-system.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "staff-notation, tweaks-and-overrides" diff --git a/Documentation/snippets/displaying-a-whole-grandstaff-system-if-only-one-of-its-staves-is-alive.ly b/Documentation/snippets/displaying-a-whole-grandstaff-system-if-only-one-of-its-staves-is-alive.ly index bb20ae2d0e..60a68c3a13 100644 --- a/Documentation/snippets/displaying-a-whole-grandstaff-system-if-only-one-of-its-staves-is-alive.ly +++ b/Documentation/snippets/displaying-a-whole-grandstaff-system-if-only-one-of-its-staves-is-alive.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.15" +\version "2.18.0" \header { lsrtags = "contexts-and-engravers" @@ -35,8 +35,10 @@ the second violin is also displayed. << \new Staff = "Staff_flute" \with { instrumentName = "Flute" - shortInstrumentName = "Fl"} - \relative c' { \repeat unfold 3 { c'4 c c c | c c c c | c c c c | \break } + shortInstrumentName = "Fl" + } + \relative c' { + \repeat unfold 3 { c'4 c c c | c c c c | c c c c | \break } } >> \new StaffGroup = "StaffGroup_Strings" diff --git a/Documentation/snippets/displaying-complex-chords.ly b/Documentation/snippets/displaying-complex-chords.ly index 902541ce0c..a433eb96d0 100644 --- a/Documentation/snippets/displaying-complex-chords.ly +++ b/Documentation/snippets/displaying-complex-chords.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "chords, simultaneous-notes, workaround" @@ -18,14 +18,16 @@ with different accidentals. } % begin verbatim fixA = { - \once \override Stem.length = #9 + \once \override Stem.length = #11 } + fixB = { \once \override NoteHead.X-offset = #1.7 + \once \override Stem.length = #7 \once \override Stem.rotation = #'(45 0 0) - \once \override Stem.extra-offset = #'(-0.2 . -0.2) + \once \override Stem.extra-offset = #'(-0.1 . -0.2) \once \override Flag.style = #'no-flag - \once \override Accidental.extra-offset = #'(4 . 0) + \once \override Accidental.extra-offset = #'(4 . -.1) } \relative c' { diff --git a/Documentation/snippets/displaying-grob-ancestry.ly b/Documentation/snippets/displaying-grob-ancestry.ly index d6c8d46a2a..7a75bb1a33 100644 --- a/Documentation/snippets/displaying-grob-ancestry.ly +++ b/Documentation/snippets/displaying-grob-ancestry.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "devel, scheme-language, tweaks-and-overrides" @@ -39,7 +39,7 @@ When called this way @{ - \\once \\override NoteHead.before-line-breaking = #display-ancestry + \\once \\override NoteHead #'before-line-breaking = #display-ancestry c @} @@ -65,6 +65,9 @@ NoteHead X,Y: NoteColumn doctitle = "Displaying grob ancestry" } % begin verbatim +%% http://lsr.di.unimi.it/LSR/Item?id=622 +%% see also http://www.lilypond.org/doc/v2.18/Documentation/snippets/tweaks-and-overrides#tweaks-and-overrides-displaying-grob-ancestry + #(define (grob-name grob) (if (ly:grob? grob) (assoc-ref (ly:grob-property grob 'meta) 'name) diff --git a/Documentation/snippets/dotted-harmonics.ly b/Documentation/snippets/dotted-harmonics.ly index aa453021e4..8f2fb4946c 100644 --- a/Documentation/snippets/dotted-harmonics.ly +++ b/Documentation/snippets/dotted-harmonics.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "real-music, tweaks-and-overrides, unfretted-strings" @@ -17,7 +17,6 @@ override this behavior, set the context property @code{harmonicDots}. doctitle = "Dotted harmonics" } % begin verbatim - \relative c''' { \time 3/4 \key f \major diff --git a/Documentation/snippets/double-glissando.ly b/Documentation/snippets/double-glissando.ly index 316dc5fb00..289bee432f 100644 --- a/Documentation/snippets/double-glissando.ly +++ b/Documentation/snippets/double-glissando.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "contemporary-notation, expressive-marks, simultaneous-notes, workaround" @@ -17,7 +17,6 @@ hidden voice. doctitle = "Double glissando" } % begin verbatim - \relative c { \clef bass << diff --git a/Documentation/snippets/drawing-boxes-around-grobs.ly b/Documentation/snippets/drawing-boxes-around-grobs.ly index a95c7739b5..8059c2d011 100644 --- a/Documentation/snippets/drawing-boxes-around-grobs.ly +++ b/Documentation/snippets/drawing-boxes-around-grobs.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "editorial-annotations, scheme-language, tweaks-and-overrides" @@ -17,7 +17,6 @@ arbitrary grob. doctitle = "Drawing boxes around grobs" } % begin verbatim - \relative c'' { \override TextScript.stencil = #(make-stencil-boxer 0.1 0.3 ly:text-interface::print) @@ -30,7 +29,6 @@ arbitrary grob. b8 \revert Stem.stencil - \revert Flag.stencil c4. c4 \mark "F" diff --git a/Documentation/snippets/drawing-circles-around-note-heads.ly b/Documentation/snippets/drawing-circles-around-note-heads.ly index 44cfe8c7a1..b178fa7f01 100644 --- a/Documentation/snippets/drawing-circles-around-note-heads.ly +++ b/Documentation/snippets/drawing-circles-around-note-heads.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "editorial-annotations" @@ -26,4 +26,4 @@ circle = (ly:stencil-extent note X) (ly:stencil-extent note Y)))) -{ \circle c' } +{ \circle c'' } diff --git a/Documentation/snippets/drawing-circles-around-various-objects.ly b/Documentation/snippets/drawing-circles-around-various-objects.ly index 196a3d8c81..a86e85f237 100644 --- a/Documentation/snippets/drawing-circles-around-various-objects.ly +++ b/Documentation/snippets/drawing-circles-around-various-objects.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "editorial-annotations, scheme-language, tweaks-and-overrides" diff --git a/Documentation/snippets/dynamics-custom-text-spanner-postfix.ly b/Documentation/snippets/dynamics-custom-text-spanner-postfix.ly index b673f2165f..f7264aa0f8 100644 --- a/Documentation/snippets/dynamics-custom-text-spanner-postfix.ly +++ b/Documentation/snippets/dynamics-custom-text-spanner-postfix.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "expressive-marks, tweaks-and-overrides" diff --git a/Documentation/snippets/dynamics-text-spanner-postfix.ly b/Documentation/snippets/dynamics-text-spanner-postfix.ly index 3a57f5a214..b7f84a1392 100644 --- a/Documentation/snippets/dynamics-text-spanner-postfix.ly +++ b/Documentation/snippets/dynamics-text-spanner-postfix.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "expressive-marks, tweaks-and-overrides" diff --git a/Documentation/snippets/editorial-headword.ly b/Documentation/snippets/editorial-headword.ly index e6b962a557..169e808c6c 100644 --- a/Documentation/snippets/editorial-headword.ly +++ b/Documentation/snippets/editorial-headword.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "headword" @@ -21,8 +21,6 @@ Beethoven, Op. 31, No. 3 Piano sonata 18, Movt II, Scherzo Measures 9 - \include "english.ly" -% NR 1.7 Editorial annotations - % Beethoven, Op. 31, No. 3 % Piano sonata 18, Movt II, Scherzo % Measures 9 - 14 diff --git a/Documentation/snippets/embedding-native-postscript-in-a--markup-block.ly b/Documentation/snippets/embedding-native-postscript-in-a--markup-block.ly index 77354ead09..6aa000eb5f 100644 --- a/Documentation/snippets/embedding-native-postscript-in-a--markup-block.ly +++ b/Documentation/snippets/embedding-native-postscript-in-a--markup-block.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "editorial-annotations, really-cool, specific-notation, text" @@ -17,7 +17,6 @@ block. doctitle = "Embedding native PostScript in a \\markup block" } % begin verbatim - % PostScript is a registered trademark of Adobe Systems Inc. \relative c'' { diff --git a/Documentation/snippets/engravers-one-by-one.ly b/Documentation/snippets/engravers-one-by-one.ly index 68cadaf223..5d1bcf060c 100644 --- a/Documentation/snippets/engravers-one-by-one.ly +++ b/Documentation/snippets/engravers-one-by-one.ly @@ -1,5 +1,5 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% @@ -41,7 +41,6 @@ line, etc. form a @code{Staff} context. doctitle = "Engravers one-by-one" } % begin verbatim - %% sample music topVoice = \relative c' { \key d \major diff --git a/Documentation/snippets/engraving-ties-manually.ly b/Documentation/snippets/engraving-ties-manually.ly index 76bf91d1ce..f2a49ce9c3 100644 --- a/Documentation/snippets/engraving-ties-manually.ly +++ b/Documentation/snippets/engraving-ties-manually.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "rhythms" @@ -19,7 +19,6 @@ second number indicates the direction (1 = up, -1 = down). doctitle = "Engraving ties manually" } % begin verbatim - \relative c' { 2~ \override TieColumn.tie-configuration = diff --git a/Documentation/snippets/engraving-tremolos-with-floating-beams.ly b/Documentation/snippets/engraving-tremolos-with-floating-beams.ly index 1338e8c175..48e2f42a0c 100644 --- a/Documentation/snippets/engraving-tremolos-with-floating-beams.ly +++ b/Documentation/snippets/engraving-tremolos-with-floating-beams.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "repeats, rhythms" @@ -25,7 +25,6 @@ the @code{'gap} property. doctitle = "Engraving tremolos with floating beams" } % begin verbatim - \relative c'' { \repeat tremolo 8 { a32 f } \override Beam.gap-count = #1 diff --git a/Documentation/snippets/extending-a-trillspanner.ly b/Documentation/snippets/extending-a-trillspanner.ly new file mode 100644 index 0000000000..9c1a2a4866 --- /dev/null +++ b/Documentation/snippets/extending-a-trillspanner.ly @@ -0,0 +1,37 @@ +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" + +\header { + lsrtags = "staff-notation, syntax-and-expressions, tweaks-and-overrides" + + texidoc = " +For @code{TrillSpanner}, the @code{minimum-length} property becomes +effective only if the @code{set-spacing-rods} procedure is called +explicitly. To do this, the @code{springs-and-rods} property should be +set to @code{ly:spanner::set-spacing-rods}. + +" + doctitle = "Extending a TrillSpanner" +} % begin verbatim + +%=> http://lilypond-french-users.1298960.n2.nabble.com/Allonger-un-trille-td7581110.html + +%by P.P.Schneider on April 2014 + +\relative c' { +\key c\minor + \time 2/4 + c16( as') c,-. des-. + \once\override TrillSpanner.minimum-length = #15 + \once\override TrillSpanner.springs-and-rods = #ly:spanner::set-spacing-rods + \afterGrace es4 + \startTrillSpan { d16[( \stopTrillSpan es)] } + c( c' g es c g' es d + \hideNotes + c8) +} diff --git a/Documentation/snippets/faking-a-hammer-in-tablatures.ly b/Documentation/snippets/faking-a-hammer-in-tablatures.ly index fff3fddafb..9a4a8fcc17 100644 --- a/Documentation/snippets/faking-a-hammer-in-tablatures.ly +++ b/Documentation/snippets/faking-a-hammer-in-tablatures.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "fretted-strings, specific-notation, workaround" @@ -16,7 +16,6 @@ A hammer in tablature can be faked with slurs. doctitle = "Faking a hammer in tablatures" } % begin verbatim - \score { \new TabStaff { \relative c'' { diff --git a/Documentation/snippets/figured-bass-headword.ly b/Documentation/snippets/figured-bass-headword.ly index 018a27b61c..190cec94a0 100644 --- a/Documentation/snippets/figured-bass-headword.ly +++ b/Documentation/snippets/figured-bass-headword.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.19.2" +\version "2.18.0" \header { lsrtags = "headword" @@ -78,7 +78,7 @@ extendOff = \bassFigureExtendersOff r16 d16 | d4 bes,4 a,4 f4 | g8 f16 g16 a8 a,8 d4 d'4 ~ | - 8 c'8 b4 c'8 c'16 bes16 a4 | + d'8 c'8 b4 c'8 c'16 bes16 a4 | bes8 bes16 a16 g4 a8 a,4 a16 g16 | fis8 d8 e8 fis8 g8 g,4 g16 f16 | e8 c8 d8 e8 f8 f,4 a,8 | diff --git a/Documentation/snippets/fine-tuning-pedal-brackets.ly b/Documentation/snippets/fine-tuning-pedal-brackets.ly index b9cdf44f71..e10d870258 100644 --- a/Documentation/snippets/fine-tuning-pedal-brackets.ly +++ b/Documentation/snippets/fine-tuning-pedal-brackets.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "keyboards, tweaks-and-overrides" @@ -16,7 +16,6 @@ The appearance of pedal brackets may be altered in different ways. doctitle = "Fine-tuning pedal brackets" } % begin verbatim - \paper { ragged-right = ##f } \relative c'' { c2\sostenutoOn c diff --git a/Documentation/snippets/fingering-symbols-for-wind-instruments.ly b/Documentation/snippets/fingering-symbols-for-wind-instruments.ly index e4ea09092f..b5b45281fd 100644 --- a/Documentation/snippets/fingering-symbols-for-wind-instruments.ly +++ b/Documentation/snippets/fingering-symbols-for-wind-instruments.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "symbols-and-glyphs, winds" @@ -26,15 +26,23 @@ centermarkup = { ,(ly:make-simple-closure (list ly:self-alignment-interface::x-aligned-on-self)))) } -\score -{\relative c' - { + +\score { + \relative c'{ g\open - \once \override TextScript.staff-padding = #-1.0 \centermarkup - g^\markup{\combine \musicglyph #"scripts.open" \musicglyph - #"scripts.tenuto"} - \centermarkup g^\markup{\combine \musicglyph #"scripts.open" - \musicglyph #"scripts.stopped"} + \once \override TextScript.staff-padding = #-1.0 + \centermarkup + g^\markup { + \combine + \musicglyph #"scripts.open" + \musicglyph #"scripts.tenuto" + } + \centermarkup + g^\markup { + \combine + \musicglyph #"scripts.open" + \musicglyph #"scripts.stopped" + } g\stopped } } diff --git a/Documentation/snippets/fingerings,-string-indications,-and-right-hand-fingerings.ly b/Documentation/snippets/fingerings,-string-indications,-and-right-hand-fingerings.ly index f57ab20dee..0b5bc43a1a 100644 --- a/Documentation/snippets/fingerings,-string-indications,-and-right-hand-fingerings.ly +++ b/Documentation/snippets/fingerings,-string-indications,-and-right-hand-fingerings.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "fretted-strings" @@ -17,7 +17,6 @@ right-hand fingering. doctitle = "Fingerings string indications and right-hand fingerings" } % begin verbatim - #(define RH rightHandFinger) \relative c { diff --git a/Documentation/snippets/flamenco-notation.ly b/Documentation/snippets/flamenco-notation.ly index db142cd9d2..c3cfd54623 100644 --- a/Documentation/snippets/flamenco-notation.ly +++ b/Documentation/snippets/flamenco-notation.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.30" +\version "2.18.0" \header { lsrtags = "fretted-strings, specific-notation, stylesheet, version-specific" @@ -34,66 +34,34 @@ This snippet contains some header-like code that can be copied as doctitle = "Flamenco notation" } % begin verbatim - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%% Cut here ----- Start 'flamenco.ly' -% Text indicators -abanico = \markup { \italic Abanico } -rasgueaso = \markup { \italic Ras. } -alzapua = \markup { \italic Alzapua } - -% Finger stroke symbols -strokeUp = \markup { \postscript #" - 0.1 setlinewidth - 0.5 0 moveto - 0.5 2 lineto - 0.2 1.4 lineto - 0.5 2 moveto - 0.8 1.4 lineto - stroke -"} - -strokeDown = \markup { \postscript #" - 0.1 setlinewidth - 0.5 2 moveto - 0.5 0 lineto - 0.2 0.6 lineto - 0.5 0 moveto - 0.8 0.6 lineto - stroke -"} - -% Golpe symbol -golpe = \markup { \postscript #" - 0.2 setlinewidth - 0 0 moveto - 1 0 lineto - 1 1 lineto - stroke - "\postscript #" - 0.1 setlinewidth - -0.6 -0.1 moveto - -0.6 1.0 lineto - 0.5 1.0 lineto - stroke -"} - -strokeUpGolpe = \markup { \column { \golpe \line { \strokeUp } } } -iUpGolpe = \markup { \column { \golpe \line { \small i } \line { \strokeUp } } } - -% Strokes for all fingers -pUp = \markup { \column { \small p \line { \strokeUp } } } -pDown = \markup { \column { \small p \line { \strokeDown } } } -iUp = \markup { \column { \small i \line { \strokeUp } } } -iDown = \markup { \column { \small i \line { \strokeDown } } } -mUp = \markup { \column { \small m \line { \strokeUp } } } -mDown = \markup { \column { \small m \line { \strokeDown } } } -aUp = \markup { \column { \small a \line { \strokeUp } } } -aDown = \markup { \column { \small a \line { \strokeDown } } } -xUp = \markup { \column { \small x \line { \strokeUp } } } -xDown = \markup { \column { \small x \line { \strokeDown } } } +% Text indicators : +abanico = ^\markup\small { \italic Abanico } +rasgueado = ^\markup\small { \italic Ras. } +alzapua = ^\markup\small { \italic Alzapua } + +% Finger stroke symbols : +strokeUp = \markup\combine\override #'(thickness . 1.3) \draw-line #'(0 . 2)\raise #2 \arrow-head #Y #UP ##f +strokeDown = \markup\combine\arrow-head #Y #DOWN ##f \override #'(thickness . 1.3) \draw-line #'(0 . 2) + +% Golpe symbol : +golpe = \markup { + \filled-box #'(0 . 1) #'(0 . 1) #0 + \hspace #-1.6 + \with-color #white + \filled-box #'(0.15 . 0.85) #'(0.15 . 0.85) #0 +} +% Strokes, fingers and golpe command : +RHp = \rightHandFinger #1 +RHi = \rightHandFinger #2 +RHm = \rightHandFinger #3 +RHa = \rightHandFinger #4 +RHx = \rightHandFinger #5 +RHu = \rightHandFinger \strokeUp +RHd = \rightHandFinger \strokeDown +RHg = \rightHandFinger \golpe % Just handy :) tupletOff = { @@ -127,105 +95,98 @@ headsOn = { %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% part = \relative c' { - 8^\iUp - 8^\iDown + \set strokeFingerOrientations = #'(up) + \override StrokeFinger.add-stem-support = ##t + \key a\major + 8 + 8 r4 - r2^\golpe - - 8^\iUp - 8^\iDown - 8^\iUpGolpe - 8^\iDown + r2^\markup\golpe + 8 + 8 + 8 + 8 r2 - - 16^\aUp + 16\rasgueado \headsOff - ^\mUp - ^\iUp - ^\iDown~ + + + ~ \headsOn 2 r4 - \tupletOff \tuplet 5/4 { - 16^\xUp + 16\rasgueado \headsOff - ^\aUp - ^\mUp - ^\iUp - ^\iDown~ + + + + ~ \headsOn } 2 r4 - \tupletsOff \tuplet 3/2 { - 8^\pDown + 8\abanico \headsOff - ^\xUp - ^\iUp + + \headsOn } - \tuplet 3/2 { - 8^\pDown + 8 \headsOff - ^\xUp - ^\iUp + + \headsOn } - \tuplet 3/2 { - 8^\pDown + 8 \headsOff - ^\xUp - ^\iUp + + \headsOn } \tuplet 3/2 { - 8^\pDown + 8 \headsOff - ^\xUp - ^\iUp + + \headsOn } - \tupletsOff \override Beam.positions = #'(2 . 2) \tuplet 3/2 { - a8^\markup{ \small p } - ^\strokeUpGolpe - ^\strokeDown + a8\RHp\alzapua + + } \tuplet 3/2 { - a,8^\markup{ \small p } - ^\strokeUpGolpe - ^\strokeDown + a,8\RHp + + } \tuplet 3/2 { - a,8^\markup{ \small p } - ^\strokeUpGolpe - ^\strokeDown + a,8\RHp + + } \tuplet 3/2 { - a,8^\markup{ \small p } - ^\strokeUpGolpe - ^\strokeDown + a,8\RHp + + } \tupletsOn - - \once \override TextScript.extra-offset = #'(0 . -1) - 1_\golpe^\mUp + 1 \bar "|." } \score { \new StaffGroup << \context Staff = "part" << - \clef G - \transpose c c' + \clef "G_8" { \part } diff --git a/Documentation/snippets/flute-slap-notation.ly b/Documentation/snippets/flute-slap-notation.ly index fb387f9b69..c9ee89ee72 100644 --- a/Documentation/snippets/flute-slap-notation.ly +++ b/Documentation/snippets/flute-slap-notation.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "contemporary-notation, winds" @@ -18,7 +18,6 @@ glyph. doctitle = "Flute slap notation" } % begin verbatim - slap = #(define-music-function (parser location music) (ly:music?) #{ diff --git a/Documentation/snippets/forcing-a-clef-symbol-to-be-displayed.ly b/Documentation/snippets/forcing-a-clef-symbol-to-be-displayed.ly index 2d02d9aa93..7f0dcb1686 100644 --- a/Documentation/snippets/forcing-a-clef-symbol-to-be-displayed.ly +++ b/Documentation/snippets/forcing-a-clef-symbol-to-be-displayed.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "pitches" @@ -20,7 +20,6 @@ Staff.forceClef = ##t}. doctitle = "Forcing a clef symbol to be displayed" } % begin verbatim - \relative c' { \clef treble c1 diff --git a/Documentation/snippets/forcing-horizontal-shift-of-notes.ly b/Documentation/snippets/forcing-horizontal-shift-of-notes.ly index e2413c73b2..07554c25f0 100644 --- a/Documentation/snippets/forcing-horizontal-shift-of-notes.ly +++ b/Documentation/snippets/forcing-horizontal-shift-of-notes.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "simultaneous-notes, tweaks-and-overrides" @@ -18,7 +18,6 @@ are staff spaces. doctitle = "Forcing horizontal shift of notes" } % begin verbatim - \relative c' << { 2 diff --git a/Documentation/snippets/forcing-hyphens-to-be-shown.ly b/Documentation/snippets/forcing-hyphens-to-be-shown.ly index 6ab4f3706f..cf44f33171 100644 --- a/Documentation/snippets/forcing-hyphens-to-be-shown.ly +++ b/Documentation/snippets/forcing-hyphens-to-be-shown.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "vocal-music" @@ -18,7 +18,6 @@ omitted. The behaviour can be overridden with the doctitle = "Forcing hyphens to be shown" } % begin verbatim - \relative c'' { c32 c c c c32 c c c diff --git a/Documentation/snippets/forcing-measure-width-to-adapt-to-metronomemarks-width.ly b/Documentation/snippets/forcing-measure-width-to-adapt-to-metronomemarks-width.ly index 244eefef50..10a95c5417 100644 --- a/Documentation/snippets/forcing-measure-width-to-adapt-to-metronomemarks-width.ly +++ b/Documentation/snippets/forcing-measure-width-to-adapt-to-metronomemarks-width.ly @@ -1,26 +1,23 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "staff-notation, workaround" texidoc = " -By default, metronome marks do not influence horizontal spacing. This -has one downside: when using compressed rests, some metronome marks may -be too close and therefore are printed vertically stacked, as -demonstrated in the first part of this example. This can be solved -through a simple override, as shown in the second half of the example. +By default, metronome marks do not influence horizontal spacing. This +can be solved through a simple override, as shown in the second half of +the example. " doctitle = "Forcing measure width to adapt to MetronomeMark's width" } % begin verbatim - example = { \tempo "Allegro" R1*6 @@ -32,12 +29,9 @@ example = { { \compressFullBarRests - \example - R1 R1 - - \override Score.MetronomeMark.extra-spacing-width = #'(0 . 0) + \override Score.MetronomeMark.extra-spacing-width = #'(-3 . 0) \example } diff --git a/Documentation/snippets/forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly b/Documentation/snippets/forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly index 7304d1a9b3..fa1ea91899 100644 --- a/Documentation/snippets/forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly +++ b/Documentation/snippets/forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "automatic-notation, preparing-parts, really-simple, rhythms" @@ -17,7 +17,6 @@ marks, but from the letter or number desired. doctitle = "Forcing rehearsal marks to start from a given letter or number" } % begin verbatim - \relative c'' { c1 \mark \default c1 \mark \default diff --git a/Documentation/snippets/formatting-lyrics-syllables.ly b/Documentation/snippets/formatting-lyrics-syllables.ly index aa5df6fa83..983c0b98bc 100644 --- a/Documentation/snippets/formatting-lyrics-syllables.ly +++ b/Documentation/snippets/formatting-lyrics-syllables.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "text, vocal-music" diff --git a/Documentation/snippets/fret-diagrams-explained-and-developed.ly b/Documentation/snippets/fret-diagrams-explained-and-developed.ly index 7ae4dead64..4f6ea0daf2 100644 --- a/Documentation/snippets/fret-diagrams-explained-and-developed.ly +++ b/Documentation/snippets/fret-diagrams-explained-and-developed.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "fretted-strings, tweaks-and-overrides" @@ -17,7 +17,6 @@ diagrams. doctitle = "Fret diagrams explained and developed" } % begin verbatim - << \chords { a2 a diff --git a/Documentation/snippets/fretboards-alternate-tables.ly b/Documentation/snippets/fretboards-alternate-tables.ly index 68965a6ee5..8458350411 100644 --- a/Documentation/snippets/fretboards-alternate-tables.ly +++ b/Documentation/snippets/fretboards-alternate-tables.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "fretted-strings" diff --git a/Documentation/snippets/fretted-string-harmonics-in-tablature.ly b/Documentation/snippets/fretted-string-harmonics-in-tablature.ly index a62c85dddd..ea58f737f6 100644 --- a/Documentation/snippets/fretted-string-harmonics-in-tablature.ly +++ b/Documentation/snippets/fretted-string-harmonics-in-tablature.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "fretted-strings" @@ -67,7 +67,8 @@ frettedStrings = { \score { << - \new Staff { + \new Staff + \with { \omit StringNumber } { \new Voice { \clef "treble_8" \harmonics diff --git a/Documentation/snippets/fretted-strings.snippet-list b/Documentation/snippets/fretted-strings.snippet-list index 35ad8bda09..5f1f9f0cd6 100644 --- a/Documentation/snippets/fretted-strings.snippet-list +++ b/Documentation/snippets/fretted-strings.snippet-list @@ -1,7 +1,7 @@ adding-fingerings-to-a-score.ly adding-fingerings-to-tablatures.ly allowing-fingerings-to-be-printed-inside-the-staff.ly -bar-chords-notation-for-guitar--with-text-spanner.ly +bar-chords-notation-for-guitar-with-text-spanner.ly changing-fret-orientations.ly chord-glissando-in-tablature.ly chordchanges-for-fretboards.ly diff --git a/Documentation/snippets/generating-random-notes.ly b/Documentation/snippets/generating-random-notes.ly index cf2bfb23e9..d979660dfa 100644 --- a/Documentation/snippets/generating-random-notes.ly +++ b/Documentation/snippets/generating-random-notes.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "pitches, really-cool, scheme-language" @@ -19,7 +19,6 @@ get different random note patterns, just change this number. doctitle = "Generating random notes" } % begin verbatim - \score { { $(let ((random-state (seed->random-state (current-time)))) diff --git a/Documentation/snippets/generating-whole-scores-also-book-parts-in-scheme-without-using-the-parser.ly b/Documentation/snippets/generating-whole-scores-also-book-parts-in-scheme-without-using-the-parser.ly index cc30a8b2bf..d08471155e 100644 --- a/Documentation/snippets/generating-whole-scores-also-book-parts-in-scheme-without-using-the-parser.ly +++ b/Documentation/snippets/generating-whole-scores-also-book-parts-in-scheme-without-using-the-parser.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "automatic-notation, really-cool, scheme-language" @@ -38,6 +38,7 @@ modified to inser all collected scores so far to the book. " doctitle = "Generating whole scores (also book parts) in scheme without using the parser" } % begin verbatim +%% #(define-public (add-score parser score) (ly:parser-define! parser 'toplevel-scores diff --git a/Documentation/snippets/graphical-and-text-woodwind-diagrams.ly b/Documentation/snippets/graphical-and-text-woodwind-diagrams.ly index 5233a96703..524a742b51 100644 --- a/Documentation/snippets/graphical-and-text-woodwind-diagrams.ly +++ b/Documentation/snippets/graphical-and-text-woodwind-diagrams.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "winds" diff --git a/Documentation/snippets/grid-lines--changing-their-appearance.ly b/Documentation/snippets/grid-lines--changing-their-appearance.ly index 254a266304..561a346a3f 100644 --- a/Documentation/snippets/grid-lines--changing-their-appearance.ly +++ b/Documentation/snippets/grid-lines--changing-their-appearance.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "editorial-annotations" @@ -17,7 +17,6 @@ properties. doctitle = "Grid lines: changing their appearance" } % begin verbatim - \score { \new ChoirStaff << \new Staff { diff --git a/Documentation/snippets/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly b/Documentation/snippets/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly index 927ad32969..f6c1dc3593 100644 --- a/Documentation/snippets/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly +++ b/Documentation/snippets/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.30" +\version "2.18.0" \header { lsrtags = "editorial-annotations" @@ -19,7 +19,6 @@ this snippet. doctitle = "Grid lines: emphasizing rhythms and notes synchronization" } % begin verbatim - \score { \new ChoirStaff { \relative c'' << diff --git a/Documentation/snippets/guitar-strum-rhythms.ly b/Documentation/snippets/guitar-strum-rhythms.ly index 7de010c2b6..2e52aeb090 100644 --- a/Documentation/snippets/guitar-strum-rhythms.ly +++ b/Documentation/snippets/guitar-strum-rhythms.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "fretted-strings, rhythms" @@ -17,7 +17,6 @@ melody notes, chord names and fret diagrams. doctitle = "Guitar strum rhythms" } % begin verbatim - \include "predefined-guitar-fretboards.ly" << \new ChordNames { diff --git a/Documentation/snippets/hairpins-with-different-line-styles.ly b/Documentation/snippets/hairpins-with-different-line-styles.ly index ebfcda0513..2de50e5d30 100644 --- a/Documentation/snippets/hairpins-with-different-line-styles.ly +++ b/Documentation/snippets/hairpins-with-different-line-styles.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, tweaks-and-overrides" @@ -17,7 +17,6 @@ dotted-line, line, trill or zigzag. doctitle = "Hairpins with different line styles" } % begin verbatim - \relative c' { c2\< c\! \override Hairpin.style = #'dashed-line diff --git a/Documentation/snippets/hiding-accidentals-on-tied-notes-at-the-start-of-a-new-system.ly b/Documentation/snippets/hiding-accidentals-on-tied-notes-at-the-start-of-a-new-system.ly index 7cb8869e0a..98fa6bc099 100644 --- a/Documentation/snippets/hiding-accidentals-on-tied-notes-at-the-start-of-a-new-system.ly +++ b/Documentation/snippets/hiding-accidentals-on-tied-notes-at-the-start-of-a-new-system.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.19.2" +\version "2.18.0" \header { lsrtags = "pitches" @@ -19,7 +19,7 @@ system. \relative c'' { \override Accidental.hide-tied-accidental-after-break = ##t - cis1~ 1~ + cis1~ cis~ \break cis } diff --git a/Documentation/snippets/hiding-the-extender-line-for-text-dynamics.ly b/Documentation/snippets/hiding-the-extender-line-for-text-dynamics.ly index 682e2d5421..b92da64840 100644 --- a/Documentation/snippets/hiding-the-extender-line-for-text-dynamics.ly +++ b/Documentation/snippets/hiding-the-extender-line-for-text-dynamics.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks" @@ -18,7 +18,6 @@ following way: doctitle = "Hiding the extender line for text dynamics" } % begin verbatim - \relative c'' { \override DynamicTextSpanner.style = #'none \crescTextCresc diff --git a/Documentation/snippets/how-to-change-fret-diagram-position.ly b/Documentation/snippets/how-to-change-fret-diagram-position.ly index da24c5a5dd..7556b0e9b3 100644 --- a/Documentation/snippets/how-to-change-fret-diagram-position.ly +++ b/Documentation/snippets/how-to-change-fret-diagram-position.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.19.2" +\version "2.18.0" \header { lsrtags = "fretted-strings, specific-notation, tweaks-and-overrides" @@ -29,7 +29,6 @@ itself. doctitle = "How to change fret diagram position" } % begin verbatim - harmonies = \chordmode { a8:13 @@ -51,7 +50,7 @@ harmonies = \chordmode b4.~^\markup { \fret-diagram #"6-x;5-2;4-4;3-2;2-2;1-4;" } b4. a8\break % HERE IS THE SECOND METHOD << - { a8 b4.~ 4. a8} + { a8 b4.~ b4. a8} { s4 s4 s4^\markup { \fret-diagram #"6-x;5-2;4-4;3-2;2-2;1-4;" } } >> diff --git a/Documentation/snippets/how-to-print-two-rehearsal-marks-above-and-below-the-same-barline-method-2.ly b/Documentation/snippets/how-to-print-two-rehearsal-marks-above-and-below-the-same-barline-method-2.ly index 12d760f3ff..4e22c3caf0 100644 --- a/Documentation/snippets/how-to-print-two-rehearsal-marks-above-and-below-the-same-barline-method-2.ly +++ b/Documentation/snippets/how-to-print-two-rehearsal-marks-above-and-below-the-same-barline-method-2.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "editorial-annotations, expressive-marks, staff-notation, tweaks-and-overrides" @@ -23,7 +23,6 @@ independently of the other. doctitle = "How to print two rehearsal marks above and below the same barline (method 2)" } % begin verbatim - \score { \relative c' << diff --git a/Documentation/snippets/how-to-put-ties-between-syllables-in-lyrics.ly b/Documentation/snippets/how-to-put-ties-between-syllables-in-lyrics.ly index c43b550c9d..0191bbba97 100644 --- a/Documentation/snippets/how-to-put-ties-between-syllables-in-lyrics.ly +++ b/Documentation/snippets/how-to-put-ties-between-syllables-in-lyrics.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "specific-notation, symbols-and-glyphs, text, vocal-music" @@ -16,7 +16,6 @@ This can be achieved by separating those syllables by tildes. doctitle = "How to put ties between syllables in lyrics" } % begin verbatim - \lyrics { wa~o~a } diff --git a/Documentation/snippets/hymn-template.ly b/Documentation/snippets/hymn-template.ly index a6b6004a43..d748938d09 100644 --- a/Documentation/snippets/hymn-template.ly +++ b/Documentation/snippets/hymn-template.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "template, vocal-music" @@ -18,7 +18,6 @@ verses as stand-alone text under the music. doctitle = "Hymn template" } % begin verbatim - Timeline = { \time 4/4 \tempo 4=96 diff --git a/Documentation/snippets/indicating-cross-staff-chords-with-arpeggio-bracket.ly b/Documentation/snippets/indicating-cross-staff-chords-with-arpeggio-bracket.ly index bbb2f9fbd6..19422b6c24 100644 --- a/Documentation/snippets/indicating-cross-staff-chords-with-arpeggio-bracket.ly +++ b/Documentation/snippets/indicating-cross-staff-chords-with-arpeggio-bracket.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "keyboards, real-music" @@ -23,7 +23,6 @@ context. doctitle = "Indicating cross-staff chords with arpeggio bracket" } % begin verbatim - \new PianoStaff << \set PianoStaff.connectArpeggios = ##t \override PianoStaff.Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket diff --git a/Documentation/snippets/inserting-a-caesura.ly b/Documentation/snippets/inserting-a-caesura.ly index c8378a2f1d..2ba8a35fa7 100644 --- a/Documentation/snippets/inserting-a-caesura.ly +++ b/Documentation/snippets/inserting-a-caesura.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, tweaks-and-overrides" @@ -18,7 +18,6 @@ available. doctitle = "Inserting a caesura" } % begin verbatim - \relative c'' { \override BreathingSign.text = \markup { \musicglyph #"scripts.caesura.straight" diff --git a/Documentation/snippets/isolated-percent-repeats.ly b/Documentation/snippets/isolated-percent-repeats.ly index a3fc4d0bb0..c8fb9bc22f 100644 --- a/Documentation/snippets/isolated-percent-repeats.ly +++ b/Documentation/snippets/isolated-percent-repeats.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "repeats" @@ -16,7 +16,6 @@ Isolated percents can also be printed. doctitle = "Isolated percent repeats" } % begin verbatim - makePercent = #(define-music-function (parser location note) (ly:music?) "Make a percent repeat the same length as NOTE." diff --git a/Documentation/snippets/keep-change-clefs-full-sized.ly b/Documentation/snippets/keep-change-clefs-full-sized.ly index 1504747297..6d6ae87a8e 100644 --- a/Documentation/snippets/keep-change-clefs-full-sized.ly +++ b/Documentation/snippets/keep-change-clefs-full-sized.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "pitches, tweaks-and-overrides" @@ -17,7 +17,6 @@ initial clef. This can be overridden with @code{full-size-change}. doctitle = "Keep change clefs full sized" } % begin verbatim - \relative c' { \clef "treble" c1 diff --git a/Documentation/snippets/keyboards.snippet-list b/Documentation/snippets/keyboards.snippet-list index f834227dfc..29aac3541e 100644 --- a/Documentation/snippets/keyboards.snippet-list +++ b/Documentation/snippets/keyboards.snippet-list @@ -1,5 +1,5 @@ accordion-discant-symbols.ly -accordion-registers.ly +accordion-register-symbols.ly changing-the-text-for-sustain-markings.ly clusters.ly controlling-the-placement-of-chord-fingerings.ly @@ -13,5 +13,6 @@ laissez-vibrer-ties.ly piano-template-simple.ly piano-template-with-centered-lyrics.ly piano-template-with-melody-and-lyrics.ly +removing-brace-on-first-line-of-piano-score.ly using-autochange-with-more-than-one-voice.ly vocal-ensemble-template-with-automatic-piano-reduction.ly diff --git a/Documentation/snippets/laissez-vibrer-ties.ly b/Documentation/snippets/laissez-vibrer-ties.ly index d125dc8038..63f92466b5 100644 --- a/Documentation/snippets/laissez-vibrer-ties.ly +++ b/Documentation/snippets/laissez-vibrer-ties.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "connecting-notes, contemporary-notation, expressive-marks, fretted-strings, keyboards, specific-notation" @@ -17,7 +17,6 @@ using @code{'tie-configuration}. doctitle = "Laissez vibrer ties" } % begin verbatim - \relative c' { 4\laissezVibrer r \laissezVibrer r 4\laissezVibrer r 4.\laissezVibrer r8 diff --git a/Documentation/snippets/letter-tablature-formatting.ly b/Documentation/snippets/letter-tablature-formatting.ly index d08607014d..c6e9215d72 100644 --- a/Documentation/snippets/letter-tablature-formatting.ly +++ b/Documentation/snippets/letter-tablature-formatting.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "fretted-strings, staff-notation" @@ -16,7 +16,6 @@ Tablature can be formatted using letters instead of numbers. doctitle = "Letter tablature formatting" } % begin verbatim - music = \relative c { c4 d e f g4 a b c diff --git a/Documentation/snippets/line-arrows.ly b/Documentation/snippets/line-arrows.ly index 93086da94c..d3cbe37f38 100644 --- a/Documentation/snippets/line-arrows.ly +++ b/Documentation/snippets/line-arrows.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, tweaks-and-overrides" @@ -17,7 +17,6 @@ Glissando). doctitle = "Line arrows" } % begin verbatim - \relative c'' { \override TextSpanner.bound-padding = #1.0 \override TextSpanner.style = #'line diff --git a/Documentation/snippets/lyrics-alignment.ly b/Documentation/snippets/lyrics-alignment.ly index 9167330fe6..48d2a94611 100644 --- a/Documentation/snippets/lyrics-alignment.ly +++ b/Documentation/snippets/lyrics-alignment.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "really-simple, text, vocal-music" diff --git a/Documentation/snippets/makam-example.ly b/Documentation/snippets/makam-example.ly index 0b0b6bba21..8d616e36c9 100644 --- a/Documentation/snippets/makam-example.ly +++ b/Documentation/snippets/makam-example.ly @@ -1,5 +1,5 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% @@ -18,7 +18,6 @@ details of pitch names and alterations. doctitle = "Makam example" } % begin verbatim - % Initialize makam settings \include "makam.ly" diff --git a/Documentation/snippets/making-slurs-with-complex-dash-structure.ly b/Documentation/snippets/making-slurs-with-complex-dash-structure.ly index b4d11b13d7..92a2d97c1f 100644 --- a/Documentation/snippets/making-slurs-with-complex-dash-structure.ly +++ b/Documentation/snippets/making-slurs-with-complex-dash-structure.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, rhythms" diff --git a/Documentation/snippets/making-some-staff-lines-thicker-than-the-others.ly b/Documentation/snippets/making-some-staff-lines-thicker-than-the-others.ly index 1cf8befaa0..1bacee8404 100644 --- a/Documentation/snippets/making-some-staff-lines-thicker-than-the-others.ly +++ b/Documentation/snippets/making-some-staff-lines-thicker-than-the-others.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "editorial-annotations, really-cool, staff-notation, workaround" diff --git a/Documentation/snippets/manually-break-figured-bass-extenders-for-only-some-numbers.ly b/Documentation/snippets/manually-break-figured-bass-extenders-for-only-some-numbers.ly index f543c44a18..fe5e530109 100644 --- a/Documentation/snippets/manually-break-figured-bass-extenders-for-only-some-numbers.ly +++ b/Documentation/snippets/manually-break-figured-bass-extenders-for-only-some-numbers.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "chords" @@ -20,7 +20,6 @@ extender attributed to that number right before the number. doctitle = "Manually break figured bass extenders for only some numbers" } % begin verbatim - bassfigures = \figuremode { \set useBassFigureExtenders = ##t <6 4>4 <6 4\!> <6 4\!> <6 4\!> | <6\! 4\!> <6 4> <6 4\!> <6 4> diff --git a/Documentation/snippets/manually-controlling-beam-positions.ly b/Documentation/snippets/manually-controlling-beam-positions.ly index fe44415234..8fe39d8f22 100644 --- a/Documentation/snippets/manually-controlling-beam-positions.ly +++ b/Documentation/snippets/manually-controlling-beam-positions.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "connecting-notes, rhythms, tweaks-and-overrides" @@ -20,7 +20,6 @@ Beam positions may be controlled manually, by overriding the doctitle = "Manually controlling beam positions" } % begin verbatim - \relative c' { \time 2/4 % from upper staff-line (position 2) to center (position 0) diff --git a/Documentation/snippets/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly b/Documentation/snippets/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly index a836fd38d1..31d0b8505b 100644 --- a/Documentation/snippets/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly +++ b/Documentation/snippets/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "contemporary-notation, editorial-annotations, vocal-music, workaround" @@ -18,7 +18,6 @@ a spoken section with the @code{\\speakOn} keyword, and end it with the doctitle = "Marking notes of spoken parts with a cross on the stem" } % begin verbatim - speakOn = { \override Stem.stencil = #(lambda (grob) diff --git a/Documentation/snippets/markup-lines.ly b/Documentation/snippets/markup-lines.ly index 474f13f19d..6ff040e986 100644 --- a/Documentation/snippets/markup-lines.ly +++ b/Documentation/snippets/markup-lines.ly @@ -1,22 +1,23 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "text" texidoc = " Text that can spread over pages is entered with the -@code{\\markuplist} command. +@code{\\markuplines} command. " doctitle = "Markup lines" } % begin verbatim +%% updated/modified by P.P.Schneider on Feb. 2014 #(set-default-paper-size "a6") @@ -31,7 +32,8 @@ Text that can spread over pages is entered with the Il y avait en Westphalie, dans le château de M. le baron de Thunder-ten-tronckh, un jeune garçon à qui la nature avait donné les mœurs les plus douces. Sa physionomie annonçait son âme. - Il avait le jugement assez droit, avec l'esprit le plus simple ; + Il avait le jugement assez droit, avec l'esprit le plus + \concat { simple \hspace #.3 ; } c'est, je crois, pour cette raison qu'on le nommait Candide. Les anciens domestiques de la maison soupçonnaient qu'il était fils de la sœur de monsieur le baron et d'un bon et honnête @@ -40,12 +42,16 @@ Text that can spread over pages is entered with the quartiers, et que le reste de son arbre généalogique avait été perdu par l'injure du temps. } + \vspace #.3 \paragraph { Monsieur le baron était un des plus puissants seigneurs de la Westphalie, car son château avait une porte et des fenêtres. Sa grande salle même était ornée d'une tapisserie. Tous les chiens - de ses basses-cours composaient une meute dans le besoin ; ses - palefreniers étaient ses piqueurs; le vicaire du village était + de ses basses-cours composaient une meute dans le + \concat { besoin \hspace #.3 ; } + ses palefreniers étaient ses + \concat { piqueurs \hspace #.3 ; } + le vicaire du village était son grand-aumônier. Ils l'appelaient tous monseigneur, et ils riaient quand il faisait des contes. } diff --git a/Documentation/snippets/measure-counter.ly b/Documentation/snippets/measure-counter.ly index 688ba96a07..93317e27d2 100644 --- a/Documentation/snippets/measure-counter.ly +++ b/Documentation/snippets/measure-counter.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.30" +\version "2.18.0" \header { lsrtags = "editorial-annotations, repeats, staff-notation, workaround" diff --git a/Documentation/snippets/mensurstriche-layout-bar-lines-between-the-staves.ly b/Documentation/snippets/mensurstriche-layout-bar-lines-between-the-staves.ly index dfb597b9a7..0d19ecff49 100644 --- a/Documentation/snippets/mensurstriche-layout-bar-lines-between-the-staves.ly +++ b/Documentation/snippets/mensurstriche-layout-bar-lines-between-the-staves.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.30" +\version "2.18.0" \header { lsrtags = "ancient-notation, contexts-and-engravers, staff-notation, tweaks-and-overrides" @@ -19,7 +19,6 @@ the @code{transparent} property. doctitle = "Mensurstriche layout (bar lines between the staves)" } % begin verbatim - global = { \hide Staff.BarLine s1 s @@ -27,6 +26,7 @@ global = { \undo \hide Staff.BarLine \bar "|." } + \new StaffGroup \relative c'' { << \new Staff { << \global { c1 c } >> } diff --git a/Documentation/snippets/modifying-default-values-for-articulation-shorthand-notation.ly b/Documentation/snippets/modifying-default-values-for-articulation-shorthand-notation.ly index 1c1fcd1019..fe6be59c12 100644 --- a/Documentation/snippets/modifying-default-values-for-articulation-shorthand-notation.ly +++ b/Documentation/snippets/modifying-default-values-for-articulation-shorthand-notation.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.18.0" \header { lsrtags = "expressive-marks" @@ -12,20 +12,19 @@ texidoc = " The shorthands are defined in @samp{ly/script-init.ly}, where the variables @code{dashHat}, @code{dashPlus}, @code{dashDash}, -@code{dashBang}, @code{dashLarger}, @code{dashDot}, and +@code{dashBar}, @code{dashLarger}, @code{dashDot}, and @code{dashUnderscore} are assigned default values. The default values -for the shorthands can be modified. For example, to make the @code{-+} -(@code{dashPlus}) shorthand create a trill instead of the default + -(@code{stopped}), assign the value of @code{trill} to the variable +for the shorthands can be modified. For example, to associate the +@code{-+} (@code{dashPlus}) shorthand with the trill symbol instead of +the default + symbol, assign the value @code{trill} to the variable @code{dashPlus}: " doctitle = "Modifying default values for articulation shorthand notation" } % begin verbatim - \relative c'' { c1-+ } -dashPlus = \trill +dashPlus = "trill" \relative c'' { c1-+ } diff --git a/Documentation/snippets/moving-dotted-notes-in-polyphony.ly b/Documentation/snippets/moving-dotted-notes-in-polyphony.ly index 8a225d29ff..e2a2a00af6 100644 --- a/Documentation/snippets/moving-dotted-notes-in-polyphony.ly +++ b/Documentation/snippets/moving-dotted-notes-in-polyphony.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "rhythms, simultaneous-notes, tweaks-and-overrides" @@ -19,14 +19,14 @@ the right. This behaviour can be over-ridden by using the doctitle = "Moving dotted notes in polyphony" } % begin verbatim - \new Staff \relative c' << - { f2. f4 + { + f2. f4 \override Staff.NoteCollision.prefer-dotted-right = ##f f2. f4 \override Staff.NoteCollision.prefer-dotted-right = ##t f2. f4 } \\ - { e4 e e e e e e e e e e e} + { e4 e e e e e e e e e e e } >> diff --git a/Documentation/snippets/moving-slur-positions-vertically.ly b/Documentation/snippets/moving-slur-positions-vertically.ly index d2b93bb89c..efee38d890 100644 --- a/Documentation/snippets/moving-slur-positions-vertically.ly +++ b/Documentation/snippets/moving-slur-positions-vertically.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, tweaks-and-overrides" @@ -24,7 +24,6 @@ slurs further down. doctitle = "Moving slur positions vertically" } % begin verbatim - \relative c' { \stemDown e4( a) diff --git a/Documentation/snippets/multi-measure-rest-markup.ly b/Documentation/snippets/multi-measure-rest-markup.ly index e1d8deea44..752aca16ed 100644 --- a/Documentation/snippets/multi-measure-rest-markup.ly +++ b/Documentation/snippets/multi-measure-rest-markup.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "rhythms, text" diff --git a/Documentation/snippets/nesting-staves.ly b/Documentation/snippets/nesting-staves.ly index 3d05329e1c..9f03ad7882 100644 --- a/Documentation/snippets/nesting-staves.ly +++ b/Documentation/snippets/nesting-staves.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "contexts-and-engravers, preparing-parts, staff-notation, tweaks-and-overrides" @@ -25,7 +25,6 @@ staves. The possibilities are @code{SystemStartBar}, doctitle = "Nesting staves" } % begin verbatim - \new StaffGroup \relative c'' << \set StaffGroup.systemStartDelimiterHierarchy diff --git a/Documentation/snippets/new/accordion-discant-symbols.ly b/Documentation/snippets/new/accordion-discant-symbols.ly deleted file mode 100644 index 7ec2129a63..0000000000 --- a/Documentation/snippets/new/accordion-discant-symbols.ly +++ /dev/null @@ -1,176 +0,0 @@ -\version "2.16.0" - -\header { - lsrtags = "keyboards, specific-notation, symbols-and-glyphs, workaround" - - texidoc = " -This snippet has been obsoleted by predefined markup commands, see -@ruser{Accordion Registers}. It's still useful as a simple -demonstration of how to combine symbols: the placement of the symbols -added with @code{\\markup} can be tweaked by changing the -@code{\\translate-scaled} arguments. @code{\\translate-scaled} is -used here rather than @code{\\translate} in order to let the -positioning of the symbol parts adapt to changes of @code{font-size}. -" - doctitle = "Accordion-discant symbols" -} - -discant = \markup { - \musicglyph #"accordion.discant" -} -dot = \markup { - \musicglyph #"accordion.dot" -} - -\layout { ragged-right = ##t } - -% 16 voets register -accBasson = ^\markup { - \combine - \discant - \translate-scaled #'(0 . 0.5) \dot -} - -% een korig 8 en 16 voets register -accBandon = ^\markup { - \combine - \discant - \combine - \translate-scaled #'(0 . 0.5) \dot - \translate-scaled #'(0 . 1.5) \dot -} - -accVCello = ^\markup { - \combine - \discant - \combine - \translate-scaled #'(0 . 0.5) \dot - \combine - \translate-scaled #'(0 . 1.5) \dot - \translate-scaled #'(1 . 1.5) \dot -} - -% 4-8-16 voets register -accHarmon = ^\markup { - \combine - \discant - \combine - \translate-scaled #'(0 . 0.5) \dot - \combine - \translate-scaled #'(0 . 1.5) \dot - \translate-scaled #'(0 . 2.5) \dot -} - -accTrombon = ^\markup { - \combine - \discant - \combine - \translate-scaled #'(0 . 0.5) \dot - \combine - \translate-scaled #'(0 . 1.5) \dot - \combine - \translate-scaled #'(1 . 1.5) \dot - \translate-scaled #'(-1 . 1.5) \dot -} - -% eenkorig 4 en 16 voets register -accOrgan = ^\markup { - \combine - \discant - \combine - \translate-scaled #'(0 . 0.5) \dot - \translate-scaled #'(0 . 2.5) \dot -} - -accMaster = ^\markup { - \combine - \discant - \combine - \translate-scaled #'(0 . 0.5) \dot - \combine - \translate-scaled #'(0 . 1.5) \dot - \combine - \translate-scaled #'(1 . 1.5) \dot - \combine - \translate-scaled #'(-1 . 1.5) \dot - \translate-scaled #'(0 . 2.5) \dot -} - -accAccord = ^\markup { - \combine - \discant - \combine - \translate-scaled #'(0 . 1.5) \dot - \combine - \translate-scaled #'(1 . 1.5) \dot - \combine - \translate-scaled #'(-1 . 1.5) \dot - \translate-scaled #'(0 . 2.5) \dot -} - -accMusette = ^\markup { - \combine - \discant - \combine - \translate-scaled #'(0 . 1.5) \dot - \combine - \translate-scaled #'(1 . 1.5) \dot - \translate-scaled #'(-1 . 1.5) \dot -} - -accCeleste = ^\markup { - \combine - \discant - \combine - \translate-scaled #'(0 . 1.5) \dot - \translate-scaled #'(-1 . 1.5) \dot -} - -accOboe = ^\markup { - \combine - \discant - \combine - \translate-scaled #'(0 . 1.5) \dot - \translate-scaled #'(0 . 2.5) \dot -} - -accClarin = ^\markup { - \combine - \discant - \translate-scaled #'(0 . 1.5) \dot -} - -accPiccolo = ^\markup { - \combine - \discant - \translate-scaled #'(0 . 2.5) \dot -} - -accViolin = ^\markup { - \combine - \discant - \combine - \translate-scaled #'(0 . 1.5) \dot - \combine - \translate-scaled #'(1 . 1.5) \dot - \translate-scaled #'(0 . 2.5) \dot -} - -\relative c'' { - c4 d\accBasson e f - c4 d\accBandon e f - c4 d\accVCello e f - c4 d\accHarmon e f - c4 d\accTrombon e f - \break - c4 d\accOrgan e f - c4 d\accMaster e f - c4 d\accAccord e f - c4 d\accMusette e f - c4 d\accCeleste e f - \break - c4 d\accOboe e f - c4 d\accClarin e f - c4 d\accPiccolo e f - c4 d\accViolin e f -} diff --git a/Documentation/snippets/new/accordion-registers.ly b/Documentation/snippets/new/accordion-registers.ly deleted file mode 100644 index 26a6e9df52..0000000000 --- a/Documentation/snippets/new/accordion-registers.ly +++ /dev/null @@ -1,32 +0,0 @@ -\version "2.17.23" - -\header { - lsrtags = "keyboards, specific-notation, symbols-and-glyphs" - - texidoc = "Accordion register symbols are available as -@code{\\markup} as well as as standalone music events (as register -changes tend to occur between actual music events. Bass registers are -not overly standardized. The available commands can be found in -@ruser{Accordion Registers}." - - doctitle = "Accordion register symbols" -} - -\layout { ragged-right = ##t } - -#(use-modules (scm accreg)) - -\new PianoStaff -<< - \new Staff \relative - { \clef treble \discant "10" r8 s32 f'[ bes f] s e[ a e] s d[ g d] s16 e32[ a] - << { r16 r r } \\ { d r a r bes r } >> | 1 } - \new Staff \relative - { \clef treble \freeBass "1" r8 d'32 s16. c32 s16. bes32 s16. a32[ cis] s16 - \clef bass \stdBass "Master" - << { r16 ^"b" r ^"am" r ^"gm" | - 1^"a" } \\ - { d8_"D" c_"C" bes_"B" | a1_"A" } - >> - } ->> diff --git a/Documentation/snippets/new/adding-a-figured-bass-above-or-below-the-notes.ly b/Documentation/snippets/new/adding-a-figured-bass-above-or-below-the-notes.ly deleted file mode 100644 index 811df579ac..0000000000 --- a/Documentation/snippets/new/adding-a-figured-bass-above-or-below-the-notes.ly +++ /dev/null @@ -1,42 +0,0 @@ -\version "2.17.6" - -\header { - lsrtags = "ancient-notation, chords, contexts-and-engravers" - - texidoc = " -When writing a figured bass, you can place the figures above or below -the bass notes, by defining the -@code{BassFigureAlignmentPositioning.direction} property (exclusively -in a @code{Staff} context). Choices are @code{#UP} (or @code{#1}), -@code{#CENTER} (or @code{#0}) and @code{#DOWN} (or @code{#-1}). - -This property can be changed as many times as you wish. Use -@code{\\once \\override} if you don't want the override to apply to the -whole score. - -" - doctitle = "Adding a figured bass above or below the notes" -} - - -bass = { - \clef bass - g4 b, c d - e d8 c d2 -} -continuo = \figuremode { - <_>4 <6>4 <5/>4 - \override Staff.BassFigureAlignmentPositioning.direction = #UP - %\bassFigureStaffAlignmentUp - < _+ >4 <6> - \set Staff.useBassFigureExtenders = ##t - \override Staff.BassFigureAlignmentPositioning.direction = #DOWN - %\bassFigureStaffAlignmentDown - <4>4. <4>8 <_+>4 -} -\score { - << - \new Staff = bassStaff \bass - \context Staff = bassStaff \continuo - >> -} diff --git a/Documentation/snippets/new/adding-extra-fingering-with-scheme.ly b/Documentation/snippets/new/adding-extra-fingering-with-scheme.ly deleted file mode 100644 index b4d32ff1ea..0000000000 --- a/Documentation/snippets/new/adding-extra-fingering-with-scheme.ly +++ /dev/null @@ -1,39 +0,0 @@ -\version "2.16.0" - -\header { - lsrtags = "scheme-language" - - texidoc = " -You can add additional elements to notes using @code{map-some-music}. In this -example, an extra script is attached to a note. - -In general, first do a @code{\\displayMusic} of the music you want to -create, then write a function that will work on the appropriate parts -of the music for you. -" - doctitle = "Adding extra fingering with scheme" -} - -addScript = -#(define-music-function (parser location script music) - (ly:event? ly:music?) - (map-some-music - (lambda (mus) - (define (append-script-at! prop) - (set! (ly:music-property mus prop) - (append (ly:music-property mus prop) - (list (ly:music-deep-copy script)))) - mus) - (case (ly:music-property mus 'name) - ((EventChord) - (append-script-at! 'elements)) - ((NoteEvent) - (append-script-at! 'articulations)) - (else #f))) - music)) - -\score { - { - \addScript _6 { c'4-3 } - } -} diff --git a/Documentation/snippets/new/adding-orchestral-cues-to-a-vocal-score.ly b/Documentation/snippets/new/adding-orchestral-cues-to-a-vocal-score.ly deleted file mode 100644 index fcc5778c84..0000000000 --- a/Documentation/snippets/new/adding-orchestral-cues-to-a-vocal-score.ly +++ /dev/null @@ -1,80 +0,0 @@ -\version "2.17.6" - -\header { - lsrtags = "staff-notation, vocal-music" - - texidoc = " -This shows one approach to simplify adding many orchestral cues to the -piano reduction in a vocal score. The music function @code{\\cueWhile} -takes four arguments: the music from which the cue is to be taken, as -defined by @code{\\addQuote}, the name to be inserted before the cue -notes, then either @code{#UP} or @code{#DOWN} to specify either -@code{\\voiceOne} with the name above the staff or @code{\\voiceTwo} -with the name below the staff, and finally the piano music in parallel -with which the cue notes are to appear. The name of the cued -instrument is positioned to the left of the cued notes. Many passages -can be cued, but they cannot overlap each other in time. - -" - doctitle = "Adding orchestral cues to a vocal score" -} - -cueWhile = -#(define-music-function - (parser location instrument name dir music) - (string? string? ly:dir? ly:music?) - #{ - \cueDuring $instrument #dir { - \once \override TextScript.self-alignment-X = #RIGHT - \once \override TextScript.direction = $dir - <>-\markup { \tiny #name } - $music - } - #}) - -flute = \relative c'' { - \transposition c' - s4 s4 e g -} -\addQuote "flute" { \flute } - -clarinet = \relative c' { - \transposition bes - fis4 d d c -} -\addQuote "clarinet" { \clarinet } - -singer = \relative c'' { c4. g8 g4 bes4 } -words = \lyricmode { here's the lyr -- ics } - -pianoRH = \relative c'' { - \transposition c' - \cueWhile "clarinet" "Clar." #DOWN { c4. g8 } - \cueWhile "flute" "Flute" #UP { g4 bes4 } -} -pianoLH = \relative c { c4 e, } - -\score { - << - \new Staff { - \new Voice = "singer" { - \singer - } - } - \new Lyrics { - \lyricsto "singer" - \words - } - \new PianoStaff << - \new Staff { - \new Voice { - \pianoRH - } - } - \new Staff { - \clef "bass" - \pianoLH - } - >> - >> -} diff --git a/Documentation/snippets/new/adding-timing-marks-to-long-glissandi.ly b/Documentation/snippets/new/adding-timing-marks-to-long-glissandi.ly deleted file mode 100644 index 3bb2d02119..0000000000 --- a/Documentation/snippets/new/adding-timing-marks-to-long-glissandi.ly +++ /dev/null @@ -1,48 +0,0 @@ -\version "2.17.30" - -\header { - lsrtags = "expressive-marks, staff-notation, tweaks-and-overrides" - - texidoc = " -Skipped beats in very long glissandi are sometimes indicated by -timing marks, often consisting of stems without noteheads. Such -stems can also be used to carry intermediate expression markings. - -If the stems do not align well with the glissando, they may need to -be repositioned slightly. -" - - doctitle = "Adding timing marks to long glissandi" -} - -glissandoSkipOn = { - \override NoteColumn.glissando-skip = ##t - \hide NoteHead - \override NoteHead.no-ledgers = ##t -} - -glissandoSkipOff = { - \revert NoteColumn.glissando-skip - \undo \hide NoteHead - \revert NoteHead.no-ledgers -} - -\relative c'' { - r8 f8\glissando - \glissandoSkipOn - f4 g a a8\noBeam - \glissandoSkipOff - a8 - - r8 f8\glissando - \glissandoSkipOn - g4 a8 - \glissandoSkipOff - a8 | - - r4 f\glissando \< - \glissandoSkipOn - a4\f \> - \glissandoSkipOff - b8\! r | -} diff --git a/Documentation/snippets/new/alternative-bar-numbering.ly b/Documentation/snippets/new/alternative-bar-numbering.ly deleted file mode 100644 index 78903e3095..0000000000 --- a/Documentation/snippets/new/alternative-bar-numbering.ly +++ /dev/null @@ -1,27 +0,0 @@ -\version "2.16.0" - -\header { - lsrtags = "editorial-annotations, staff-notation, tweaks-and-overrides" - texidoc = "Two alternative methods for bar numbering can be set, - especially for when using repeated music." - doctitle = "Alternative bar numbering" -} - -\relative c'{ - \set Score.alternativeNumberingStyle = #'numbers - \repeat volta 3 { c4 d e f | } - \alternative { - { c4 d e f | c2 d \break } - { f4 g a b | f4 g a b | f2 a | \break } - { c4 d e f | c2 d } - } - c1 \break - \set Score.alternativeNumberingStyle = #'numbers-with-letters - \repeat volta 3 { c,4 d e f | } - \alternative { - { c4 d e f | c2 d \break } - { f4 g a b | f4 g a b | f2 a | \break } - { c4 d e f | c2 d } - } - c1 -} diff --git a/Documentation/snippets/new/ancient-fonts.ly b/Documentation/snippets/new/ancient-fonts.ly deleted file mode 100644 index 159bed3fae..0000000000 --- a/Documentation/snippets/new/ancient-fonts.ly +++ /dev/null @@ -1,225 +0,0 @@ -%% This file is in the public domain. -\version "2.17.6" - -\header { - lsrtags = "ancient-notation, symbols-and-glyphs" - - texidoc = " -Shown here are many (all?) of the symbols that are included in -LilyPond's support for ancient notation. -" - doctitle = "Ancient fonts" -} - -upperStaff = \new VaticanaStaff = "upperStaff" << - \context VaticanaVoice << - \transpose c c { - - \override NoteHead.style = #'vaticana.punctum - \key es \major - \clef "vaticana-fa2" - c1 des e f ges - - \override NoteHead.style = #'vaticana.inclinatum - a! b ces' - \bar "|" - % \break % 1 (8*1) - - \override NoteHead.style = #'vaticana.quilisma - b! des'! ges! fes! - \breathe - \clef "vaticana-fa1" - \override NoteHead.style = #'vaticana.plica - es d - \override NoteHead.style = #'vaticana.reverse.plica - c d - \bar "|" - % \break %2 (8*1) - - \override NoteHead.style = #'vaticana.punctum.cavum - es f - \override NoteHead.style = #'vaticana.lpes - g as - \override NoteHead.style = #'vaticana.upes - bes as - \override NoteHead.style = #'vaticana.vupes - g f - \override NoteHead.style = #'vaticana.linea.punctum - \once \override Staff.BarLine.bar-extent = #'(-1 . 1) \bar "|" - % \break % 3 (8*1) - - es d - \override NoteHead.style = #'vaticana.epiphonus - c d - \override NoteHead.style = #'vaticana.cephalicus - es f - - \override Staff.KeySignature.glyph-name-alist = #alteration-medicaea-glyph-name-alist - \override Staff.Accidental.glyph-name-alist = #alteration-medicaea-glyph-name-alist - \override Staff.Custos.style = #'medicaea - \override NoteHead.style = #'medicaea.punctum - \clef "medicaea-fa2" - ces des - \bar "|" - % \break % 4 (8*1) - - e! f! ges - \clef "medicaea-do2" - \override NoteHead.style = #'medicaea.inclinatum - a! b! ces' - \override NoteHead.style = #'medicaea.virga - b! a! - \bar "|" - % \break % 5 (8*1) - - ges fes - \clef "medicaea-fa1" - \override NoteHead.style = #'medicaea.rvirga - e des ces - - \override Staff.KeySignature.glyph-name-alist = #alteration-hufnagel-glyph-name-alist - \override Staff.Accidental.glyph-name-alist = #alteration-hufnagel-glyph-name-alist - \override Staff.Custos.style = #'hufnagel - \override NoteHead.style = #'hufnagel.punctum - \clef "hufnagel-fa2" - ces des es - \bar "|" - % \break % 6 (8*1) - - fes ges - \clef "hufnagel-do2" - \override NoteHead.style = #'hufnagel.lpes - as! bes! ces' - \override NoteHead.style = #'hufnagel.virga - bes! as! - \bar "|" - % \break % 7 (8*1) - - ges! fes! - \clef "hufnagel-do-fa" - \override NoteHead.style = #'hufnagel.punctum - es! des ces des! es! fes! - \bar "||" - % \break % 8 (8*1) - - s32*1 - % \break % 12 (32*1) - } - >> ->> - -lowerStaff = \new MensuralStaff = "lowerStaff" << - \context MensuralVoice << - \transpose c c { - - \key a \major - cis'1 d'\breve gis'\breve e'\breve \[ e'\longa fis'\longa \] - \set Staff.forceClef = ##t - \clef "neomensural-c2" - cis1 - \bar "|" - % \break % 2 (16*1) - - \[ g\breve dis''\longa \] - b\breve \[ a\longa d\longa \] - \clef "petrucci-c2" - % \break % 4 (16*1) - - fis1 ces1 - \clef "petrucci-c2" - r\longa - \set Staff.forceClef = ##t - \clef "mensural-c2" - r\breve - \bar "|" - % \break % 5 (8*1) - - r2 - \clef "mensural-g" - r4 r8 r16 r16 - \override NoteHead.style = #'mensural - \override Rest.style = #'mensural - \clef "petrucci-f" - c8 b, c16 b, c32 b, c64 b, c64 b, - d8 e d16 e d32 e d64 e d64 e - r\longa - \set Staff.forceClef = ##t - \clef "petrucci-f" - r\breve - \bar "|" - % \break % 6 (8*1) - - r\breve - \clef "mensural-f" - r2 r4 r8 r16 r16 - - \set Staff.forceClef = ##t - \clef "mensural-f" - e\breve f g a1 - \clef "mensural-g" - % \break % 7 (8*1) - - \[ bes'!\longa a'!\longa c''!\longa \] - e'1 d' c' d' \bar "|" - \bar "|" - % \break % 9 (16*1) - - bes'!\longa fis'!1 as'!1 ges'!\longa % lig - \set Staff.forceClef = ##t - \clef "mensural-g" - e'2 d' c' \bar "|" - % \break % 11 (16*1) - - \set Staff.forceClef = ##t - \clef "petrucci-g" - c'2 d' e' f' - \clef "petrucci-g" - g' as'! bes'! cis''! - bes'! as'! gis'! fis'! - \set Staff.forceClef = ##t - \clef "mensural-g" - es'! des'! cis'!1 \bar "||" - % \break % 12 (8*1) - } - >> ->> - -\paper { - line-thickness = #(/ staff-space 5.0) -} - -\score { - << - \upperStaff - \lowerStaff - >> - \layout { - indent = 0.0 - line-width = 17.25\cm - \context { - \Score - timing = ##f - } - \context { - \MensuralVoice - \override NoteHead.style = #'neomensural - \override Rest.style = #'neomensural - \override Flag.style = #'mensural - \override Stem.thickness = #1.0 - } - \context { - \MensuralStaff - \revert BarLine.transparent - \override KeySignature.glyph-name-alist = #alteration-mensural-glyph-name-alist - clefGlyph = #"clefs.petrucci.c2" - } - \context { - \VaticanaStaff - \revert BarLine.transparent - \override StaffSymbol.thickness = #2.0 - \override KeySignature.glyph-name-alist = #alteration-vaticana-glyph-name-alist - \override Custos.neutral-position = #4 - } - } -} - diff --git a/Documentation/snippets/new/ancient-notation-template----modern-transcription-of-gregorian-music.ly b/Documentation/snippets/new/ancient-notation-template----modern-transcription-of-gregorian-music.ly deleted file mode 100644 index 2fe51d97a2..0000000000 --- a/Documentation/snippets/new/ancient-notation-template----modern-transcription-of-gregorian-music.ly +++ /dev/null @@ -1,51 +0,0 @@ -\version "2.17.30" - -\header { - lsrtags = "vocal-music, ancient-notation, template" - - texidoc = " -This example demonstrates how to do modern transcription of Gregorian -music. Gregorian music has no measure, no stems; it uses only half and -quarter note heads, and special marks, indicating rests of different -length. - -" - doctitle = "Ancient notation template -- modern transcription of gregorian music" -} - -\include "gregorian.ly" - -chant = \relative c' { - \set Score.timing = ##f - f4 a2 \divisioMinima - g4 b a2 f2 \divisioMaior - g4( f) f( g) a2 \finalis -} - -verba = \lyricmode { - Lo -- rem ip -- sum do -- lor sit a -- met -} - -\score { - \new Staff << - \new Voice = "melody" \chant - \new Lyrics = "one" \lyricsto melody \verba - >> - \layout { - \context { - \Staff - \remove "Time_signature_engraver" - \remove "Bar_engraver" - \hide Stem - } - \context { - \Voice - \override Stem.length = #0 - } - \context { - \Score - barAlways = ##t - } - } -} - diff --git a/Documentation/snippets/new/bar-chords-notation-for-guitar--with-text-spanner.ly b/Documentation/snippets/new/bar-chords-notation-for-guitar--with-text-spanner.ly deleted file mode 100644 index c74d392002..0000000000 --- a/Documentation/snippets/new/bar-chords-notation-for-guitar--with-text-spanner.ly +++ /dev/null @@ -1,63 +0,0 @@ -\version "2.17.6" - -\header { - lsrtags = "chords, fretted-strings" - - texidoc = " -Here is how to print bar chords, or half-bar chords (just uncomment the -appropriate line for to select either one). - -The syntax is @code{\\bbarre #\"@var{fret number}\" @{ notes @} }. -" - doctitle = "Bar chords notation for Guitar (with Text Spanner)" -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% %%%%%%% Cut here ----- Start 'bbarred.ly' - -%% C with slash ------------------------------- -cWithSlash = \markup { - \combine \roman C \translate #'(0.6 . -0.4) \draw-line #'(0 . 2.0) -} -%% Span ----------------------------------- -%% Syntax: \bbarre #"text" { notes } - text = any number of box -bbarre = -#(define-music-function (barre location str music) (string? ly:music?) - (let ((elts (extract-named-music music '(NoteEvent EventChord)))) - (if (pair? elts) - (let ((first-element (first elts)) - (last-element (last elts))) - (set! (ly:music-property first-element 'articulations) - (cons (make-music 'TextSpanEvent 'span-direction -1) - (ly:music-property first-element 'articulations))) - (set! (ly:music-property last-element 'articulations) - (cons (make-music 'TextSpanEvent 'span-direction 1) - (ly:music-property last-element 'articulations)))))) - #{ - \once \override TextSpanner.font-size = #-2 - \once \override TextSpanner.font-shape = #'upright - \once \override TextSpanner.staff-padding = #3 - \once \override TextSpanner.style = #'line - \once \override TextSpanner.to-barline = ##f - \once \override TextSpanner.bound-details = - #`((left - (text . ,#{ \markup { \draw-line #'( 0 . -.5) } #}) - (Y . 0) - (padding . 0.25) - (attach-dir . -2)) - (right - (text . ,#{ \markup { \cWithSlash #str } #}) - (Y . 0) - (padding . 0.25) - (attach-dir . 2))) -%% uncomment this line for make full barred - % \once \override TextSpanner.bound-details.left.text = \markup { "B" #str } - $music - #}) - -%% %%%%%%% Cut here ----- End 'bbarred.ly' -%% Copy and change the last line for full barred. Rename in 'fbarred.ly' -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -%% Syntaxe: \bbarre #"text" { notes } - text = any number of box -\relative c'{ \clef "G_8" \stemUp \bbarre #"III" { 16[ c' d c d8] } } diff --git a/Documentation/snippets/new/broken-crescendo-hairpin.ly b/Documentation/snippets/new/broken-crescendo-hairpin.ly deleted file mode 100644 index f14c983eea..0000000000 --- a/Documentation/snippets/new/broken-crescendo-hairpin.ly +++ /dev/null @@ -1,42 +0,0 @@ -\version "2.19.2" - -\header { - lsrtags = "contemporary-notation, expressive-marks, symbols-and-glyphs" - - texidoc = " -In order to make parts of a crescendo hairpin invisible, the following -method is used: A white rectangle is drawn on top of the respective -part of the crescendo hairpin, making it invisible. - -The markup command @code{with-dimensions} tells LilyPond to consider only -the bottom edge of the rectangle when spacing it against the hairpin. -The property @code{staff-padding} prevents the rectangle from fitting -between the hairpin and staff. - -Make sure to put the hairpin in a lower layer than the text markup to -draw the rectangle over the hairpin. - -" - doctitle = "Broken Crescendo Hairpin" -} - -\relative c' { - << - { - \dynamicUp - r2 r16 c'8.\pp r4 - } - \\ - { - \override DynamicLineSpanner.layer = #0 - des,2\mf\< ~ - \override TextScript.layer = #2 - \once\override TextScript.staff-padding = #6 - \once\override TextScript.vertical-skylines = #'() - des16_\markup \with-dimensions #'(2 . 7) #'(0 . 0) - \with-color #white - \filled-box #'(2 . 7) #'(0 . 2) #0 - r8. des4 ~ 16->\sff - } - >> -} diff --git a/Documentation/snippets/new/centered-measure-numbers.ly b/Documentation/snippets/new/centered-measure-numbers.ly deleted file mode 100644 index 6fa6ee9e3b..0000000000 --- a/Documentation/snippets/new/centered-measure-numbers.ly +++ /dev/null @@ -1,48 +0,0 @@ -\version "2.17.7" - -\header { - lsrtags = "contexts-and-engravers, repeats, staff-notation" - - texidoc = " -Scores of large ensemble works often have bar numbers placed beneath the -system, centered horizontally on the measure's extent. This snippet shows -how the @code{Measure_counter_engraver} may be used to simulate this -notational practice. Here, the engraver has been added to a @code{Dynamics} -context. - -" - - doctitle = "Centered measure numbers" -} - -\layout { - \context { - \Dynamics - \consists #Measure_counter_engraver - \override MeasureCounter.direction = #DOWN - \override MeasureCounter.font-encoding = #'latin1 - \override MeasureCounter.font-shape = #'italic - % to control the distance of the Dynamics context from the staff: - \override VerticalAxisGroup.nonstaff-relatedstaff-spacing.padding = #2 - } - \context { - \Score - \remove "Bar_number_engraver" - } -} - -pattern = \repeat unfold 7 { c'4 d' e' f' } - -\new StaffGroup << - \new Staff { - \pattern - } - \new Staff { - \pattern - } - \new Dynamics { - \startMeasureCount - s1*7 - \stopMeasureCount - } ->> diff --git a/Documentation/snippets/new/centering-markup-on-note-heads-automatically.ly b/Documentation/snippets/new/centering-markup-on-note-heads-automatically.ly deleted file mode 100644 index 641f2861c7..0000000000 --- a/Documentation/snippets/new/centering-markup-on-note-heads-automatically.ly +++ /dev/null @@ -1,57 +0,0 @@ -\version "2.17.6" - -\header { - lsrtags = "text, tweaks-and-overrides, contexts-and-engravers" - texidoc = " -For technical reasons, text scripts attached to note heads cannot -easily be centered on a note head's width, unlike articulations. - -Instead of using trial-and-error offset tweaks, this snippet uses a -Scheme engraver to reset the horizontal parent of each markup to a -@code{NoteColumn}. This also allows text to follow note heads which have -been shifted via @code{force-hshift}. -" - doctitle = "Centering markup on note heads automatically" -} - -#(define (Text_align_engraver ctx) - (let ((scripts '()) - (note-column #f)) - (make-engraver - (acknowledgers - ((note-column-interface trans grob source) - ;; cache NoteColumn in this Voice context - (set! note-column grob)) - ((text-script-interface trans grob source) - ;; whenever a TextScript is acknowledged, - ;; add it to `scripts' list - (set! scripts (cons grob scripts)))) - ((stop-translation-timestep trans) - ;; if any TextScript grobs exist, - ;; set NoteColumn as X-parent - (for-each (lambda (script) - (set! (ly:grob-parent script X) note-column)) - scripts) - ;; clear scripts ready for next timestep - (set! scripts '()))))) - -\layout { - \context { - \Voice - \consists #Text_align_engraver - \override TextScript.X-offset = - #ly:self-alignment-interface::aligned-on-x-parent - \override TextScript.self-alignment-X = #CENTER - } -} - -\new Staff << - \relative c'' { - \override NoteColumn.force-hshift = #3 - c1-\markup { \arrow-head #Y #DOWN ##t } - } - \\ - \relative c' { - a4 a-\markup { \huge ^ } a a - } ->> diff --git a/Documentation/snippets/new/changing-the-tuplet-number.ly b/Documentation/snippets/new/changing-the-tuplet-number.ly deleted file mode 100644 index 346d12e0e6..0000000000 --- a/Documentation/snippets/new/changing-the-tuplet-number.ly +++ /dev/null @@ -1,23 +0,0 @@ -\version "2.17.30" - -\header { - lsrtags = "rhythms" - - texidoc = " -By default, only the numerator of the tuplet number is printed over the -tuplet bracket. Alternatively, num:den of the tuplet number may -be printed, or the tuplet number may be suppressed altogether. - -" - doctitle = "Changing the tuplet number" -} - - -\relative c'' { - \tuplet 3/2 { c8 c c } - \tuplet 3/2 { c8 c c } - \override TupletNumber.text = #tuplet-number::calc-fraction-text - \tuplet 3/2 { c8 c c } - \omit TupletNumber - \tuplet 3/2 { c8 c c } -} diff --git a/Documentation/snippets/new/changing-time-signatures-inside-a-polymetric-section-using--scaledurations.ly b/Documentation/snippets/new/changing-time-signatures-inside-a-polymetric-section-using--scaledurations.ly deleted file mode 100644 index cedf58cd32..0000000000 --- a/Documentation/snippets/new/changing-time-signatures-inside-a-polymetric-section-using--scaledurations.ly +++ /dev/null @@ -1,39 +0,0 @@ -\version "2.17.11" - -\header { - lsrtags = "workaround, contexts-and-engravers, contemporary-notation, rhythms" - - doctitle = "Changing time signatures inside a polymetric section using \\scaleDurations" -} - - -\layout { - \context { - \Score - \remove "Timing_translator" - \remove "Default_bar_line_engraver" - } - \context { - \Staff - \consists "Timing_translator" - \consists "Default_bar_line_engraver" - } -} - -<< - \new Staff { - \scaleDurations 8/5 { - \time 6/8 - \set Timing.measureLength = #(ly:make-moment 6/5) - b8 b b b b b - \time 2/4 - \set Timing.measureLength = #(ly:make-moment 4/5) - b4 b - } - } - \new Staff { - \clef bass - \time 2/4 - c2 d e f - } ->> diff --git a/Documentation/snippets/new/chant-or-psalms-notation.ly b/Documentation/snippets/new/chant-or-psalms-notation.ly deleted file mode 100644 index 8edb405b0d..0000000000 --- a/Documentation/snippets/new/chant-or-psalms-notation.ly +++ /dev/null @@ -1,30 +0,0 @@ -\version "2.17.6" - -\header { - lsrtags = "rhythms, vocal-music, ancient-notation, contexts-and-engravers, specific-notation" - - texidoc = " -This form of notation is used for the chant of the Psalms, where verses -aren't always the same length. - -" - doctitle = "Chant or psalms notation" -} - -stemOff = \hide Staff.Stem -stemOn = \undo \stemOff - -\score { - \new Staff \with { \remove "Time_signature_engraver" } - { - \key g \minor - \cadenzaOn - \stemOff a'\breve bes'4 g'4 - \stemOn a'2 \bar "||" - \stemOff a'\breve g'4 a'4 - \stemOn f'2 \bar "||" - \stemOff a'\breve^\markup { \italic flexe } - \stemOn g'2 \bar "||" - } -} - diff --git a/Documentation/snippets/new/chords-headword.ly b/Documentation/snippets/new/chords-headword.ly deleted file mode 100644 index 4f625ddbc8..0000000000 --- a/Documentation/snippets/new/chords-headword.ly +++ /dev/null @@ -1,95 +0,0 @@ -\version "2.17.6" - -\header { - lsrtags = "headword" - texidoc = "" - doctitle = "headword" -} - - -theChords = \chordmode { - \time 2/2 - f1 | c2 f2 | f1 | c2 f2| %\break - f2 bes2 | f1 | c2:7 f | c1 | \break -} - -verseOne = \lyricmode { - \set stanza = #"1." - Fair is the sun - shine, - Fair - er the moon - light - And all the stars __ _ in heav'n a -- bove; -} - -verseTwo = \lyricmode { - \set stanza = #"2." - Fair are the mead - ows, - Fair - er the wood - land, - Robed in the flow -- ers of bloom -- ing spring; -} - -Soprano = { - \time 2/2 - \key f \major - \stemUp - f'2 f'4 f' | g'4 e' f'2 | a'4. a'8 a'4 a' | bes'4 g' a'2 | - c''2 f''4 d'' | c''2 bes'4 a' | bes'2 a' | g'1 | -} - -Alto = { - \key f \major - c'2 c'4 c' | d'4 c' c'2 | f'4. f'8 f'4 fis' | g'4 e' f'2 | - f'2 f'4 f' | f'2 g'4 f' | e'2 f' | e'1 | -} - -Tenor = { - \key f \major - \stemDown - a2 a4 a | bes4 g a2 | c'4. c'8 d'4 d' | d'4 c' c'2 | - a2 d'4 bes | a2 c'4 c' | c'2 c' | c'1 | -} - -Bass = { - \key f \major - f2 f4 f | bes,4 c f2 | f4. e8 d4 c | bes,4 c f2 | - f2 bes,4 d | f2 e4 f | g2 f | c1 | -} - - -\score { - << - \new ChordNames { \theChords } - \context Staff = upper { - \context Voice = sop { - << - \Soprano - \Alto - >> - } - } - \context Lyrics = "LyrOne" \lyricsto "sop" { \verseOne } - \context Lyrics = "LyrTwo" \lyricsto "sop" { \verseTwo } - \context Staff = lower { - \new Voice { - \clef bass - \accidentalStyle modern-cautionary - << - \Tenor - \Bass - >> - } - } - >> - - \layout { - indent = 0 - \context { - \Score - \remove "Bar_number_engraver" - } - \context { - \Voice - \override StanzaNumber.padding = #1.8 - } - } -} -\paper { } diff --git a/Documentation/snippets/new/compound-time-signatures.ly b/Documentation/snippets/new/compound-time-signatures.ly deleted file mode 100644 index 693ed00469..0000000000 --- a/Documentation/snippets/new/compound-time-signatures.ly +++ /dev/null @@ -1,22 +0,0 @@ -\version "2.17.15" - -\header { - lsrtags = "rhythms" - - texidoc = " -Odd 20th century time signatures (such as \\\"5/8\\\") can often be -played as compound time signatures (e.g. \\\"3/8 + 2/8\\\"), which -combine two or more inequal metrics. LilyPond can make such music quite -easy to read and play, by explicitly printing the compound time -signatures and adapting the automatic beaming behavior. - -" - doctitle = "Compound time signatures" -} - -\relative c' { - \compoundMeter #'((2 8) (3 8)) - c8 d e fis gis - c8 fis, gis e d - c8 d e4 gis8 -} diff --git a/Documentation/snippets/new/conducting-signs,-measure-grouping-signs.ly b/Documentation/snippets/new/conducting-signs,-measure-grouping-signs.ly deleted file mode 100644 index c833826109..0000000000 --- a/Documentation/snippets/new/conducting-signs,-measure-grouping-signs.ly +++ /dev/null @@ -1,49 +0,0 @@ -\version "2.16.0" - -\header { - lsrtags = "rhythms" - texidoc = " -Beat grouping within a measure is controlled by the context property -@code{beatStructure}. Values of @code{beatStructure} are -established for many time signatures in -@file{scm/time-signature-settings.scm}. Values of @code{beatStructure} -can be changed or set with @code{\set}. -Alternatively, @code{\time} can be used to both -set the time signature and establish the beat structure. -For this, you specify the internal grouping of beats in a measure -as a list of numbers (in Scheme syntax) before the time signature. - -@code{\time} applies to the @code{Timing} context, so it will not -reset values of @code{beatStructure} or @code{baseMoment} that are set -in other lower-level contexts, such as @code{Voice}. - -If the @code{Measure_grouping_engraver} is included -in one of the display contexts, measure grouping signs will be -created. Such signs ease reading rhythmically complex modern music. -In the example, the 9/8 measure is grouped in two different -patterns using the two different methods, while the 5/8 measure -is grouped according to the default setting in -@file{scm/time-signature-settings.scm}: -" - doctitle = "Conducting signs, measure grouping signs" -} - - -\score { - \new Voice \relative c'' { - \time 9/8 - g8 g d d g g a( bes g) | - \set Timing.beatStructure = #'(2 2 2 3) - g8 g d d g g a( bes g) | - \time #'(4 5) 9/8 - g8 g d d g g a( bes g) | - \time 5/8 - a4. g4 | - } - \layout { - \context { - \Staff - \consists "Measure_grouping_engraver" - } - } -} diff --git a/Documentation/snippets/new/creating-a-delayed-turn.ly b/Documentation/snippets/new/creating-a-delayed-turn.ly deleted file mode 100644 index 87223e9442..0000000000 --- a/Documentation/snippets/new/creating-a-delayed-turn.ly +++ /dev/null @@ -1,38 +0,0 @@ -\version "2.17.97" - -\header { - lsrtags = "editorial-annotations, expressive-marks, tweaks-and-overrides" - - texidoc = " -Creating a delayed turn, where the lower note of the turn uses the -accidental, requires several overrides. The -@code{outside-staff-priority} property must be set to @code{#f}, as -otherwise this would take precedence over the @code{avoid-slur -property}. Changing the fractions @code{2/3} and @code{1/3} adjusts the -horizontal position. -" - doctitle = "Creating a delayed turn" -} - - -\relative c'' { - c2*2/3 ( s2*1/3\turn d4) r - << - { c4.( d8) } - { s4 s\turn } - >> - \transpose c d \relative c'' << - { c4.( d8) } - { - s4 - \once \set suggestAccidentals = ##t - \once \override AccidentalSuggestion #'outside-staff-priority = ##f - \once \override AccidentalSuggestion #'avoid-slur = #'inside - \once \override AccidentalSuggestion #'font-size = #-3 - \once \override AccidentalSuggestion #'script-priority = #-1 - \single \hideNotes - b8-\turn \noBeam - s8 - } - >> -} diff --git a/Documentation/snippets/new/creating-a-sequence-of-notes-on-various-pitches.ly b/Documentation/snippets/new/creating-a-sequence-of-notes-on-various-pitches.ly index 8e9a8c65b4..40c2af9b28 100644 --- a/Documentation/snippets/new/creating-a-sequence-of-notes-on-various-pitches.ly +++ b/Documentation/snippets/new/creating-a-sequence-of-notes-on-various-pitches.ly @@ -1,4 +1,4 @@ -\version "2.17.11" +\version "2.19.0" \header { lsrtags = "pitches, real-music, really-cool, scheme-language" @@ -17,7 +17,7 @@ Planets. rhythm = #(define-music-function (parser location p) (ly:pitch?) "Make the rhythm in Mars (the Planets) at the given pitch" - #{ \tuplet 3/2 { $p 8 $p $p } $p 4 $p $p 8 $p $p 4 #}) + #{ \tuplet 3/2 { $p 8 8 8 } 4 4 8 8 4 #}) \new Staff { \time 5/4 diff --git a/Documentation/snippets/new/creating-double-digit-fingerings.ly b/Documentation/snippets/new/creating-double-digit-fingerings.ly deleted file mode 100644 index f9bf74b8d5..0000000000 --- a/Documentation/snippets/new/creating-double-digit-fingerings.ly +++ /dev/null @@ -1,17 +0,0 @@ -\version "2.17.15" - -\header { - lsrtags = "editorial-annotations, expressive-marks, scheme-language, staff-notation, tweaks-and-overrides" - - texidoc = " -Creating fingerings larger than 5 is possible. -" - doctitle = "Creating double-digit fingerings" -} - -\relative c' { - c1-10 - c1-50 - c1-36 - c1-29 -} diff --git a/Documentation/snippets/new/creating-real-parenthesized-dynamics.ly b/Documentation/snippets/new/creating-real-parenthesized-dynamics.ly deleted file mode 100644 index bfdd1bdfbe..0000000000 --- a/Documentation/snippets/new/creating-real-parenthesized-dynamics.ly +++ /dev/null @@ -1,35 +0,0 @@ -\version "2.16.0" - -\header { - lsrtags = "expressive-marks, text, workaround" - - texidoc = " -Although the easiest way to add parentheses to a dynamic mark is to use -a @code{\\markup} block, this method has a downside: the created -objects will behave like text markups, and not like dynamics. - -However, it is possible to create a similar object using the equivalent -Scheme code (as described in the Notation Reference), combined with the -@code{make-dynamic-script} function. This way, the markup will be -regarded as a dynamic, and therefore will remain compatible with -commands such as @code{\\dynamicUp} or @code{\\dynamicDown}. - - - -" - doctitle = "Creating \"real\" parenthesized dynamics" -} - -paren = -#(define-event-function (parser location dyn) (ly:event?) - (make-dynamic-script - #{ \markup \concat { - \normal-text \italic \fontsize #2 ( - \pad-x #0.2 #(ly:music-property dyn 'text) - \normal-text \italic \fontsize #2 ) - } - #})) - -\relative c'' { - c4\paren\f c c \dynamicUp c\paren\p -} diff --git a/Documentation/snippets/new/cross-staff-stems.ly b/Documentation/snippets/new/cross-staff-stems.ly deleted file mode 100644 index ed3650496a..0000000000 --- a/Documentation/snippets/new/cross-staff-stems.ly +++ /dev/null @@ -1,36 +0,0 @@ -\version "2.16.0" - -\header { - lsrtags = "staff-notation, tweaks-and-overrides, contexts-and-engravers" - texidoc = " -This snippet shows the use of the @code{Span_stem_engraver} -and @code{\crossStaff} to connect stems across staves automatically. -The stem length need not be specified, as the variable distance -between noteheads and staves is calculated automatically. -" - doctitle = "Cross staff stems" -} - -\layout { - \context { - \PianoStaff - \consists #Span_stem_engraver - } -} - -{ - \new PianoStaff << - \new Staff { - 4 r d'16\> e'8. g8 r\! - e'8 f' g'4 e'2 - } - \new Staff { - \clef bass - \voiceOne - \autoBeamOff - \crossStaff { 4 e, g16 a8. c8} d - \autoBeamOn - g8 f g4 c2 - } - >> -} diff --git a/Documentation/snippets/new/using-an-extra-voice-for-breaks.ly b/Documentation/snippets/new/using-an-extra-voice-for-breaks.ly new file mode 100644 index 0000000000..418b9d68af --- /dev/null +++ b/Documentation/snippets/new/using-an-extra-voice-for-breaks.ly @@ -0,0 +1,41 @@ +\version "2.18.0" + +\header { + lsrtags = "specific-notation, workaround" + + texidoc = " + +Often it is easier to manage line and page-breaking information by +keeping it separate from the music by introducing an extra voice +containing only skips along with the @code{\break}, +@code{pageBreak} and other layout information. + +This pattern becomes especially helpful when overriding +@code{line-break-system-details} and the other useful but long +properties of @code{NonMusicalPaperColumnGrob}. +" + doctitle = "Using an extra voice for breaks" +} + +music = \relative c'' { c4 c c c } + +\header { tagline = ##f } +\paper { left-margin = 0\mm } +\book { + \score { + \new Staff << + \new Voice { + s1 * 2 \break + s1 * 3 \break + s1 * 6 \break + s1 * 5 \break + } + \new Voice { + \repeat unfold 2 { \music } + \repeat unfold 3 { \music } + \repeat unfold 6 { \music } + \repeat unfold 5 { \music } + } + >> + } +} diff --git a/Documentation/snippets/non-default-tuplet-numbers.ly b/Documentation/snippets/non-default-tuplet-numbers.ly index 65030025a3..059e9241d0 100644 --- a/Documentation/snippets/non-default-tuplet-numbers.ly +++ b/Documentation/snippets/non-default-tuplet-numbers.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "rhythms" @@ -29,7 +29,6 @@ to the tuplet number or tuplet fraction. #(tuplet-number::append-note-wrapper (tuplet-number::non-default-tuplet-fraction-text 12 7) "8") \tuplet 3/2 { c4. c4. c4. c4. } - \once \override TupletNumber.text = #(tuplet-number::append-note-wrapper tuplet-number::calc-denominator-text "4") @@ -38,7 +37,6 @@ to the tuplet number or tuplet fraction. #(tuplet-number::append-note-wrapper tuplet-number::calc-fraction-text "4") \tuplet 3/2 { c8 c8 c8 c8 c8 c8 } - \once \override TupletNumber.text = #(tuplet-number::fraction-with-notes "4." "8") \tuplet 3/2 { c4. c4. c4. c4. } diff --git a/Documentation/snippets/obtaining-2.12-lyrics-spacing-in-newer-versions.ly b/Documentation/snippets/obtaining-2.12-lyrics-spacing-in-newer-versions.ly index 2ec7ebf8d9..1b294569e3 100644 --- a/Documentation/snippets/obtaining-2.12-lyrics-spacing-in-newer-versions.ly +++ b/Documentation/snippets/obtaining-2.12-lyrics-spacing-in-newer-versions.ly @@ -1,19 +1,21 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "vocal-music" texidoc = " -The vertical spacing engine changed for version 2.14. This can cause -lyrics to be spaced differently. It is possible to set properties for -@code{Lyric} and @code{Staff} contexts to get the spacing engine to -behave as it did in version 2.12. +The vertical spacing engine changed since version 2.14. This can cause +lyrics to be spaced differently. + +It is possible to set properties for @code{Lyric} and @code{Staff} +contexts to get the spacing engine to behave as it did in version 2.12. + " doctitle = "Obtaining 2.12 lyrics spacing in newer versions" diff --git a/Documentation/snippets/open-string-harmonics-in-tablature.ly b/Documentation/snippets/open-string-harmonics-in-tablature.ly index 1b1692a02b..019a68bcca 100644 --- a/Documentation/snippets/open-string-harmonics-in-tablature.ly +++ b/Documentation/snippets/open-string-harmonics-in-tablature.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "fretted-strings" @@ -17,47 +17,68 @@ This snippet demonstrates open-string harmonics } % begin verbatim openStringHarmonics = { + \textSpannerDown + \override TextSpanner.staff-padding = #3 + \override TextSpanner.dash-fraction = #0.3 + \override TextSpanner.dash-period = #1 + %first harmonic - \harmonicByFret #12 e,2\6_\markup{"1st harm."} - \harmonicByRatio #1/2 e,\6 + \override TextSpanner.bound-details.left.text = \markup\small "1st harm. " + \harmonicByFret #12 e,2\6\startTextSpan + \harmonicByRatio #1/2 e,\6\stopTextSpan + %second harmonic - \harmonicByFret #7 e,\6_\markup{"2nd harm. - - - -"} + \override TextSpanner.bound-details.left.text = \markup\small "2nd harm. " + \harmonicByFret #7 e,\6\startTextSpan \harmonicByRatio #1/3 e,\6 \harmonicByFret #19 e,\6 - \harmonicByRatio #2/3 e,\6 + \harmonicByRatio #2/3 e,\6\stopTextSpan %\harmonicByFret #19 < e,\6 a,\5 d\4 > %\harmonicByRatio #2/3 < e,\6 a,\5 d\4 > + %third harmonic - \harmonicByFret #5 e,\6_\markup{"3rd harm. - - - -"} + \override TextSpanner.bound-details.left.text = \markup\small "3rd harm. " + \harmonicByFret #5 e,\6\startTextSpan \harmonicByRatio #1/4 e,\6 \harmonicByFret #24 e,\6 - \harmonicByRatio #3/4 e,\6 + \harmonicByRatio #3/4 e,\6\stopTextSpan \break + %fourth harmonic - \harmonicByFret #4 e,\6_\markup{"4th harm. - - - - - - - - - - - - -"} + \override TextSpanner.bound-details.left.text = \markup\small "4th harm. " + \harmonicByFret #4 e,\6\startTextSpan \harmonicByRatio #1/5 e,\6 \harmonicByFret #9 e,\6 \harmonicByRatio #2/5 e,\6 \harmonicByFret #16 e,\6 - \harmonicByRatio #3/5 e,\6 + \harmonicByRatio #3/5 e,\6\stopTextSpan + %fifth harmonic - \harmonicByFret #3 e,\6_\markup{"5th harm."} - \harmonicByRatio #1/6 e,\6 + \override TextSpanner.bound-details.left.text = \markup\small "5th harm. " + \harmonicByFret #3 e,\6\startTextSpan + \harmonicByRatio #1/6 e,\6\stopTextSpan \break + %sixth harmonic - \harmonicByFret #2.7 e,\6_\markup{"6th harm."} - \harmonicByRatio #1/7 e,\6 + \override TextSpanner.bound-details.left.text = \markup\small "6th harm. " + \harmonicByFret #2.7 e,\6\startTextSpan + \harmonicByRatio #1/7 e,\6\stopTextSpan + %seventh harmonic - \harmonicByFret #2.3 e,\6_\markup{"7th harm."} - \harmonicByRatio #1/8 e,\6 + \override TextSpanner.bound-details.left.text = \markup\small "7th harm. " + \harmonicByFret #2.3 e,\6\startTextSpan + \harmonicByRatio #1/8 e,\6\stopTextSpan + %eighth harmonic - \harmonicByFret #2 e,\6_\markup{"8th harm."} - \harmonicByRatio #1/9 e,\6 + \override TextSpanner.bound-details.left.text = \markup\small "8th harm. " + \harmonicByFret #2 e,\6\startTextSpan + \harmonicByRatio #1/9 e,\6\stopTextSpan } \score { << - \new Staff { + \new Staff + \with { \omit StringNumber } { \new Voice { \clef "treble_8" \openStringHarmonics diff --git a/Documentation/snippets/orchestra,-choir-and-piano-template.ly b/Documentation/snippets/orchestra,-choir-and-piano-template.ly index 61fed7dc46..6bc546d353 100644 --- a/Documentation/snippets/orchestra,-choir-and-piano-template.ly +++ b/Documentation/snippets/orchestra,-choir-and-piano-template.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "pitches, staff-notation, template, vocal-music" @@ -19,7 +19,6 @@ music for transposing instruments at concert pitch. doctitle = "Orchestra choir and piano template" } % begin verbatim - #(set-global-staff-size 17) \paper { indent = 3.0\cm % space for instrumentName diff --git a/Documentation/snippets/ottava-text.ly b/Documentation/snippets/ottava-text.ly index 6729c113af..1cd8bdfe14 100644 --- a/Documentation/snippets/ottava-text.ly +++ b/Documentation/snippets/ottava-text.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "pitches, text" @@ -19,7 +19,6 @@ override the text of the bracket, set @code{ottavation} after invoking doctitle = "Ottava text" } % begin verbatim - { \ottava #1 \set Staff.ottavation = #"8" diff --git a/Documentation/snippets/outputting-the-version-number.ly b/Documentation/snippets/outputting-the-version-number.ly index 742e687c93..5e99a2ad33 100644 --- a/Documentation/snippets/outputting-the-version-number.ly +++ b/Documentation/snippets/outputting-the-version-number.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "really-simple, scheme-language, text, titles" @@ -20,7 +20,6 @@ By putting the output of doctitle = "Outputting the version number" } % begin verbatim - \score { \new Lyrics { \override Score.RehearsalMark.self-alignment-X = #LEFT diff --git a/Documentation/snippets/overriding-articulations-of-destinct-type.ly b/Documentation/snippets/overriding-articulations-of-destinct-type.ly index e13154f9a0..2d8707ca91 100644 --- a/Documentation/snippets/overriding-articulations-of-destinct-type.ly +++ b/Documentation/snippets/overriding-articulations-of-destinct-type.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.18.0" \header { lsrtags = "scheme-language, tweaks-and-overrides" diff --git a/Documentation/snippets/page-label.ly b/Documentation/snippets/page-label.ly index 727f9d4191..1f7db440ef 100644 --- a/Documentation/snippets/page-label.ly +++ b/Documentation/snippets/page-label.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "spacing" @@ -17,7 +17,6 @@ in markups. doctitle = "Page label" } % begin verbatim - #(set-default-paper-size "a6") #(define-markup-command (toc-line layout props label text) diff --git a/Documentation/snippets/partcombine-and-autobeamoff.ly b/Documentation/snippets/partcombine-and-autobeamoff.ly index 691c47f775..38e1386f78 100644 --- a/Documentation/snippets/partcombine-and-autobeamoff.ly +++ b/Documentation/snippets/partcombine-and-autobeamoff.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "rhythms" @@ -44,7 +44,6 @@ with @code{\\partcombine}, it will be necessary to use three calls to doctitle = "Partcombine and autoBeamOff" } % begin verbatim - { %\set Staff.autoBeaming = ##f % turns off all autobeaming \partcombine diff --git a/Documentation/snippets/percent-repeat-count-visibility.ly b/Documentation/snippets/percent-repeat-count-visibility.ly index aa6bcadb37..8692564ebf 100644 --- a/Documentation/snippets/percent-repeat-count-visibility.ly +++ b/Documentation/snippets/percent-repeat-count-visibility.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "repeats, tweaks-and-overrides" @@ -17,7 +17,6 @@ the context property @code{repeatCountVisibility}. doctitle = "Percent repeat count visibility" } % begin verbatim - \relative c'' { \set countPercentRepeats = ##t \set repeatCountVisibility = #(every-nth-repeat-count-visible 5) diff --git a/Documentation/snippets/percent-repeat-counter.ly b/Documentation/snippets/percent-repeat-counter.ly index 508bad7462..36180e5b7e 100644 --- a/Documentation/snippets/percent-repeat-counter.ly +++ b/Documentation/snippets/percent-repeat-counter.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "repeats" @@ -17,7 +17,6 @@ convenient property is switched, as shown in this example: doctitle = "Percent repeat counter" } % begin verbatim - \relative c'' { \set countPercentRepeats = ##t \repeat percent 4 { c1 } diff --git a/Documentation/snippets/percussion-beaters.ly b/Documentation/snippets/percussion-beaters.ly index fdea45c4dc..e7d22ebef2 100644 --- a/Documentation/snippets/percussion-beaters.ly +++ b/Documentation/snippets/percussion-beaters.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "percussion" @@ -19,7 +19,6 @@ demonstrated in this example. doctitle = "Percussion beaters" } % begin verbatim - stick = \markup { \with-dimensions #'(0 . 5) #'(0 . 5) \postscript #" diff --git a/Documentation/snippets/permitting-line-breaks-within-beamed-tuplets.ly b/Documentation/snippets/permitting-line-breaks-within-beamed-tuplets.ly index c67206c3aa..9046dfd7c0 100644 --- a/Documentation/snippets/permitting-line-breaks-within-beamed-tuplets.ly +++ b/Documentation/snippets/permitting-line-breaks-within-beamed-tuplets.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "rhythms, version-specific" @@ -18,7 +18,6 @@ tuplets have to be beamed manually. doctitle = "Permitting line breaks within beamed tuplets" } % begin verbatim - \layout { \context { \Voice diff --git a/Documentation/snippets/piano-template-simple.ly b/Documentation/snippets/piano-template-simple.ly index 0b58a54b46..b2728932e4 100644 --- a/Documentation/snippets/piano-template-simple.ly +++ b/Documentation/snippets/piano-template-simple.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "keyboards, really-simple, template" @@ -16,7 +16,6 @@ Here is a simple piano staff with some notes. doctitle = "Piano template (simple)" } % begin verbatim - upper = \relative c'' { \clef treble \key c \major diff --git a/Documentation/snippets/piano-template-with-centered-lyrics.ly b/Documentation/snippets/piano-template-with-centered-lyrics.ly index ccf50e699b..d1f05af6dc 100644 --- a/Documentation/snippets/piano-template-with-centered-lyrics.ly +++ b/Documentation/snippets/piano-template-with-centered-lyrics.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "keyboards, really-simple, template, text" @@ -17,7 +17,6 @@ centered between the staves of a piano staff. doctitle = "Piano template with centered lyrics" } % begin verbatim - upper = \relative c'' { \clef treble \key c \major diff --git a/Documentation/snippets/piano-template-with-melody-and-lyrics.ly b/Documentation/snippets/piano-template-with-melody-and-lyrics.ly index c44b64ba22..57466a0a3e 100644 --- a/Documentation/snippets/piano-template-with-melody-and-lyrics.ly +++ b/Documentation/snippets/piano-template-with-melody-and-lyrics.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "keyboards, really-simple, template, vocal-music" @@ -17,7 +17,6 @@ with piano accompaniment underneath. doctitle = "Piano template with melody and lyrics" } % begin verbatim - melody = \relative c'' { \clef treble \key c \major diff --git a/Documentation/snippets/placement-of-right-hand-fingerings.ly b/Documentation/snippets/placement-of-right-hand-fingerings.ly index 51ac129a33..bea1e6510e 100644 --- a/Documentation/snippets/placement-of-right-hand-fingerings.ly +++ b/Documentation/snippets/placement-of-right-hand-fingerings.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "fretted-strings" @@ -18,7 +18,6 @@ in the following example. Note: you must use a chord construct doctitle = "Placement of right-hand fingerings" } % begin verbatim - #(define RH rightHandFinger) \relative c { diff --git a/Documentation/snippets/polyphony-in-tablature.ly b/Documentation/snippets/polyphony-in-tablature.ly index 1aa24cb2bb..5a9c845a9b 100644 --- a/Documentation/snippets/polyphony-in-tablature.ly +++ b/Documentation/snippets/polyphony-in-tablature.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "fretted-strings" @@ -17,7 +17,6 @@ staff. doctitle = "Polyphony in tablature" } % begin verbatim - upper = \relative c' { \time 12/8 \key e \minor diff --git a/Documentation/snippets/positioning-arpeggios.ly b/Documentation/snippets/positioning-arpeggios.ly index 68861a1dc3..6f3d878fad 100644 --- a/Documentation/snippets/positioning-arpeggios.ly +++ b/Documentation/snippets/positioning-arpeggios.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, tweaks-and-overrides" @@ -17,7 +17,6 @@ and lower start positions independently. doctitle = "Positioning arpeggios" } % begin verbatim - \relative c' { 1\arpeggio \once \override Arpeggio.positions = #'(-5 . 0) diff --git a/Documentation/snippets/positioning-fingering-indications-precisely.ly b/Documentation/snippets/positioning-fingering-indications-precisely.ly index 253b05ec03..8812a067af 100644 --- a/Documentation/snippets/positioning-fingering-indications-precisely.ly +++ b/Documentation/snippets/positioning-fingering-indications-precisely.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "editorial-annotations" @@ -20,18 +20,17 @@ involved. doctitle = "Positioning fingering indications precisely" } % begin verbatim - \relative c' { \set fingeringOrientations = #'(left) 4 - 4 + 4 \set fingeringOrientations = #'(down) 4 - 4 + 4 \set fingeringOrientations = #'(down right up) - 4 + 4 4 \set fingeringOrientations = #'(up) - 4 - 4 + 4 + 4 } diff --git a/Documentation/snippets/positioning-grace-note-beams-at-the-height-of-normal-note-beams.ly b/Documentation/snippets/positioning-grace-note-beams-at-the-height-of-normal-note-beams.ly index d3c6e90dc9..c05f2592a6 100644 --- a/Documentation/snippets/positioning-grace-note-beams-at-the-height-of-normal-note-beams.ly +++ b/Documentation/snippets/positioning-grace-note-beams-at-the-height-of-normal-note-beams.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "rhythms" @@ -19,7 +19,6 @@ beaming for grace notes. doctitle = "Positioning grace note beams at the height of normal note beams" } % begin verbatim - \relative c { f8[ e] \grace { diff --git a/Documentation/snippets/positioning-grace-notes-with-floating-space.ly b/Documentation/snippets/positioning-grace-notes-with-floating-space.ly index 0bbbdf1624..ab8bc4eef1 100644 --- a/Documentation/snippets/positioning-grace-notes-with-floating-space.ly +++ b/Documentation/snippets/positioning-grace-notes-with-floating-space.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.28" +\version "2.18.0" \header { lsrtags = "rhythms" @@ -19,7 +19,6 @@ the) graces are put left of the musical columns for the main notes. doctitle = "Positioning grace notes with floating space" } % begin verbatim - \relative c'' { << \override Score.SpacingSpanner.strict-grace-spacing = ##t diff --git a/Documentation/snippets/positioning-segno-and-coda-with-line-break.ly b/Documentation/snippets/positioning-segno-and-coda-with-line-break.ly index b03aa21b89..9444c97a14 100644 --- a/Documentation/snippets/positioning-segno-and-coda-with-line-break.ly +++ b/Documentation/snippets/positioning-segno-and-coda-with-line-break.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "breaks, repeats, symbols-and-glyphs, workaround" @@ -58,7 +58,7 @@ line. % Here begins the trickery! % \cadenzaOn will suppress the bar count and \stopStaff removes the staff lines. \cadenzaOn - \stopStaff + \stopStaff % Some examples of possible text-displays % text line-aligned @@ -90,33 +90,33 @@ line. \bar "" } % Resume bar count and show staff lines again - \startStaff - \cadenzaOff + \startStaff + \cadenzaOff - % Should Coda be on new line? - % Coda NOT on new line: DON'T use \break - % Coda on new line: use \break - \break + % Should Coda be on new line? + % Coda NOT on new line: DON'T use \break + % Coda on new line: use \break + \break - % Show up, you clef and key! - \once \override Staff.KeySignature.break-visibility = #end-of-line-invisible - \once \override Staff.Clef.break-visibility = #end-of-line-invisible + % Show up, you clef and key! + \once \override Staff.KeySignature.break-visibility = #end-of-line-invisible + \once \override Staff.Clef.break-visibility = #end-of-line-invisible - % Set coda sign as rehearsal mark and adjust size and position + % Set coda sign as rehearsal mark and adjust size and position - % Put the coda sign ontop of the (treble-)clef dependend on coda's line-position + % Put the coda sign ontop of the (treble-)clef dependend on coda's line-position - % Coda NOT on new line, use this: - % \once \override Score.RehearsalMark.extra-offset = #'( -2 . 1.75 ) + % Coda NOT on new line, use this: + % \once \override Score.RehearsalMark.extra-offset = #'( -2 . 1.75 ) - % Coda on new line, use this: - \once \override Score.RehearsalMark.extra-offset = #'( -4.5 . 0 ) + % Coda on new line, use this: + \once \override Score.RehearsalMark.extra-offset = #'( -5 . .5 ) - \once \override Score.RehearsalMark.font-size = #5 - \mark \markup { \musicglyph #"scripts.coda" } + \once \override Score.RehearsalMark.font-size = #5 + \mark \markup { \musicglyph #"scripts.coda" } - % The coda - \repeat unfold 5 { + % The coda + \repeat unfold 6 { c4 c c c } \bar"|." diff --git a/Documentation/snippets/positioning-text-markups-inside-slurs.ly b/Documentation/snippets/positioning-text-markups-inside-slurs.ly index 8348981a4e..8be61a74e2 100644 --- a/Documentation/snippets/positioning-text-markups-inside-slurs.ly +++ b/Documentation/snippets/positioning-text-markups-inside-slurs.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "editorial-annotations, expressive-marks, tweaks-and-overrides" @@ -17,7 +17,6 @@ set to false in order to be printed inside slurs. doctitle = "Positioning text markups inside slurs" } % begin verbatim - \relative c'' { \override TextScript.avoid-slur = #'inside \override TextScript.outside-staff-priority = ##f diff --git a/Documentation/snippets/preventing-extra-naturals-from-being-automatically-added.ly b/Documentation/snippets/preventing-extra-naturals-from-being-automatically-added.ly index b788c3cd10..1ff350eec5 100644 --- a/Documentation/snippets/preventing-extra-naturals-from-being-automatically-added.ly +++ b/Documentation/snippets/preventing-extra-naturals-from-being-automatically-added.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "automatic-notation, pitches" diff --git a/Documentation/snippets/preventing-final-mark-from-removing-final-tuplet.ly b/Documentation/snippets/preventing-final-mark-from-removing-final-tuplet.ly index db86ab6d76..d39af579da 100644 --- a/Documentation/snippets/preventing-final-mark-from-removing-final-tuplet.ly +++ b/Documentation/snippets/preventing-final-mark-from-removing-final-tuplet.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "rhythms" @@ -18,8 +18,6 @@ tuplet marking. This can be overcome by setting @code{TupletBracket doctitle = "Preventing final mark from removing final tuplet" } % begin verbatim -\markup \vspace #1 %% workaround for LSR-problem - \new Staff { \set tupletFullLength = ##t \time 1/8 diff --git a/Documentation/snippets/preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly b/Documentation/snippets/preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly index 1d3f050457..ab32f9212f 100644 --- a/Documentation/snippets/preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly +++ b/Documentation/snippets/preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "automatic-notation, pitches" @@ -19,7 +19,6 @@ property in the @code{Staff} context. doctitle = "Preventing natural signs from being printed when the key signature changes" } % begin verbatim - \relative c' { \key d \major a4 b cis d diff --git a/Documentation/snippets/printing-a-repeat-sign-at-the-beginning-of-a-piece.ly b/Documentation/snippets/printing-a-repeat-sign-at-the-beginning-of-a-piece.ly new file mode 100644 index 0000000000..7a4bce37a0 --- /dev/null +++ b/Documentation/snippets/printing-a-repeat-sign-at-the-beginning-of-a-piece.ly @@ -0,0 +1,26 @@ +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" + +\header { + lsrtags = "repeats, tweaks-and-overrides" + + texidoc = " +A @code{|:} bar line can be printed at the beginning of a piece. + +" + doctitle = "Printing a repeat sign at the beginning of a piece" +} % begin verbatim + +\relative c'' { + \bar ".|:" + \repeat volta 2 { + c1 + d1 + d4 e f g + } +} diff --git a/Documentation/snippets/printing-bar-numbers-at-regular-intervals.ly b/Documentation/snippets/printing-bar-numbers-at-regular-intervals.ly index 75c335bdea..085ca0037a 100644 --- a/Documentation/snippets/printing-bar-numbers-at-regular-intervals.ly +++ b/Documentation/snippets/printing-bar-numbers-at-regular-intervals.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "rhythms" @@ -18,7 +18,6 @@ measures except at the end of the line. doctitle = "Printing bar numbers at regular intervals" } % begin verbatim - \relative c' { \override Score.BarNumber.break-visibility = #end-of-line-invisible \set Score.currentBarNumber = #11 diff --git a/Documentation/snippets/printing-bar-numbers-inside-boxes-or-circles.ly b/Documentation/snippets/printing-bar-numbers-inside-boxes-or-circles.ly index 63b65a8372..19b7ee80bc 100644 --- a/Documentation/snippets/printing-bar-numbers-inside-boxes-or-circles.ly +++ b/Documentation/snippets/printing-bar-numbers-inside-boxes-or-circles.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "rhythms, tweaks-and-overrides" @@ -16,7 +16,6 @@ Bar numbers can also be printed inside boxes or circles. doctitle = "Printing bar numbers inside boxes or circles" } % begin verbatim - \relative c' { % Prevent bar numbers at the end of a line and permit them elsewhere \override Score.BarNumber.break-visibility = #end-of-line-invisible diff --git a/Documentation/snippets/printing-hairpins-using-al-niente-notation.ly b/Documentation/snippets/printing-hairpins-using-al-niente-notation.ly index 634017285c..91d1e1b6c0 100644 --- a/Documentation/snippets/printing-hairpins-using-al-niente-notation.ly +++ b/Documentation/snippets/printing-hairpins-using-al-niente-notation.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks" @@ -18,7 +18,6 @@ notation) by setting the @code{circled-tip} property of the doctitle = "Printing hairpins using al niente notation" } % begin verbatim - \relative c'' { \override Hairpin.circled-tip = ##t c2\< c\! diff --git a/Documentation/snippets/printing-marks-at-the-end-of-a-line.ly b/Documentation/snippets/printing-marks-at-the-end-of-a-line.ly index 89e2fbf87a..385a7234b9 100644 --- a/Documentation/snippets/printing-marks-at-the-end-of-a-line.ly +++ b/Documentation/snippets/printing-marks-at-the-end-of-a-line.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "text" @@ -18,7 +18,6 @@ to align the right end of the mark with the bar line. doctitle = "Printing marks at the end of a line" } % begin verbatim - \relative c'' { g2 c d,2 a' diff --git a/Documentation/snippets/printing-marks-on-every-staff.ly b/Documentation/snippets/printing-marks-on-every-staff.ly index 556eea0996..1d4a800d1d 100644 --- a/Documentation/snippets/printing-marks-on-every-staff.ly +++ b/Documentation/snippets/printing-marks-on-every-staff.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "text" @@ -17,7 +17,6 @@ they may also be printed on every staff. doctitle = "Printing marks on every staff" } % begin verbatim - \score { << \new Staff { c''1 \mark "molto" c'' } diff --git a/Documentation/snippets/printing-metronome-and-rehearsal-marks-below-the-staff.ly b/Documentation/snippets/printing-metronome-and-rehearsal-marks-below-the-staff.ly index 4c563872b4..afaa08b59f 100644 --- a/Documentation/snippets/printing-metronome-and-rehearsal-marks-below-the-staff.ly +++ b/Documentation/snippets/printing-metronome-and-rehearsal-marks-below-the-staff.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, rhythms, tweaks-and-overrides" @@ -18,8 +18,10 @@ of @code{MetronomeMark} or @code{RehearsalMark} appropriately. doctitle = "Printing metronome and rehearsal marks below the staff" } % begin verbatim - -\layout { ragged-right = ##f } +\layout { + indent = 0 + ragged-right = ##f +} { % Metronome marks below the staff diff --git a/Documentation/snippets/printing-music-with-different-time-signatures.ly b/Documentation/snippets/printing-music-with-different-time-signatures.ly index 8d52ffd405..c00d974026 100644 --- a/Documentation/snippets/printing-music-with-different-time-signatures.ly +++ b/Documentation/snippets/printing-music-with-different-time-signatures.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "contemporary-notation, percussion, real-music, really-cool, rhythms" diff --git a/Documentation/snippets/printing-note-names-with-and-without-an-octave-marker.ly b/Documentation/snippets/printing-note-names-with-and-without-an-octave-marker.ly index 96b4d051ad..9e59ce5382 100644 --- a/Documentation/snippets/printing-note-names-with-and-without-an-octave-marker.ly +++ b/Documentation/snippets/printing-note-names-with-and-without-an-octave-marker.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "tweaks-and-overrides" @@ -18,7 +18,6 @@ representation of the octave of the note. doctitle = "Printing note names with and without an octave marker" } % begin verbatim - scale = \relative c' { a4 b c d e4 f g a diff --git a/Documentation/snippets/printing-text-from-right-to-left.ly b/Documentation/snippets/printing-text-from-right-to-left.ly index 49c10706a0..bd7ef3e689 100644 --- a/Documentation/snippets/printing-text-from-right-to-left.ly +++ b/Documentation/snippets/printing-text-from-right-to-left.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "editorial-annotations, text, workaround, world-music" @@ -17,7 +17,6 @@ demonstrated here. doctitle = "Printing text from right to left" } % begin verbatim - { b1^\markup { \line { i n g i r u m i m u s n o c t e } diff --git a/Documentation/snippets/printing-the-bar-number-for-the-first-measure.ly b/Documentation/snippets/printing-the-bar-number-for-the-first-measure.ly index ae6321a6e2..7280abfdf7 100644 --- a/Documentation/snippets/printing-the-bar-number-for-the-first-measure.ly +++ b/Documentation/snippets/printing-the-bar-number-for-the-first-measure.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "rhythms" @@ -20,6 +20,10 @@ must be inserted before the first note for this to work. doctitle = "Printing the bar number for the first measure" } % begin verbatim +\layout { + indent = 0 + ragged-right = ##t +} \relative c' { \set Score.barNumberVisibility = #all-bar-numbers-visible diff --git a/Documentation/snippets/proportional-strict-notespacing.ly b/Documentation/snippets/proportional-strict-notespacing.ly index b5d489208d..5f9744918d 100644 --- a/Documentation/snippets/proportional-strict-notespacing.ly +++ b/Documentation/snippets/proportional-strict-notespacing.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.28" +\version "2.18.0" \header { lsrtags = "spacing, tweaks-and-overrides" @@ -18,13 +18,12 @@ the note that occurs at the same time. This may cause collisions. doctitle = "Proportional strict notespacing" } % begin verbatim - \relative c'' << \override Score.SpacingSpanner.strict-note-spacing = ##t \set Score.proportionalNotationDuration = #(ly:make-moment 1/16) \new Staff { c8[ c \clef alto c c \grace { d16 } c8 c] c4 - c2 \grace { c16 c16 } c2 + c2 \grace { c16[ c16] } c2 } \new Staff { c2 \tuplet 3/2 { c8 \clef bass cis,, c } c4 diff --git a/Documentation/snippets/putting-lyrics-inside-the-staff.ly b/Documentation/snippets/putting-lyrics-inside-the-staff.ly index 4edd6a59e5..d1676ce318 100644 --- a/Documentation/snippets/putting-lyrics-inside-the-staff.ly +++ b/Documentation/snippets/putting-lyrics-inside-the-staff.ly @@ -1,19 +1,19 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "staff-notation, text, vocal-music" texidoc = " Lyrics can be moved vertically to place them inside the staff. The -lyrics are moved with @code{\\override LyricText.extra-offset = #'(0 -. dy)} and there are similar commands to move the extenders and -hyphens. The offset needed is established with trial and error. +lyrics are moved with @code{\\override LyricText.extra-offset = #'(0 . +dy)} and there are similar commands to move the extenders and hyphens. +The offset needed is established with trial and error. " doctitle = "Putting lyrics inside the staff" diff --git a/Documentation/snippets/quoting-another-voice.ly b/Documentation/snippets/quoting-another-voice.ly index b834961374..cbc1ce7534 100644 --- a/Documentation/snippets/quoting-another-voice.ly +++ b/Documentation/snippets/quoting-another-voice.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "staff-notation" @@ -25,7 +25,6 @@ the Internals Reference. doctitle = "Quoting another voice" } % begin verbatim - quoteMe = \relative c' { fis4 r16 a8.-> b4\ff c } diff --git a/Documentation/snippets/recorder-fingering-chart.ly b/Documentation/snippets/recorder-fingering-chart.ly index a5cb083c2e..85a038f55f 100644 --- a/Documentation/snippets/recorder-fingering-chart.ly +++ b/Documentation/snippets/recorder-fingering-chart.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.30" +\version "2.18.0" \header { lsrtags = "winds" diff --git a/Documentation/snippets/removing-bar-numbers-from-a-score.ly b/Documentation/snippets/removing-bar-numbers-from-a-score.ly index 10ff50af8a..55e6503334 100644 --- a/Documentation/snippets/removing-bar-numbers-from-a-score.ly +++ b/Documentation/snippets/removing-bar-numbers-from-a-score.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "contexts-and-engravers, rhythms" @@ -17,11 +17,12 @@ Bar numbers can be removed entirely by removing the doctitle = "Removing bar numbers from a score" } % begin verbatim - \layout { \context { \Score - \remove "Bar_number_engraver" + \omit BarNumber + % or: + %\remove "Bar_number_engraver" } } diff --git a/Documentation/snippets/removing-brace-on-first-line-of-piano-score.ly b/Documentation/snippets/removing-brace-on-first-line-of-piano-score.ly new file mode 100644 index 0000000000..0d8327313b --- /dev/null +++ b/Documentation/snippets/removing-brace-on-first-line-of-piano-score.ly @@ -0,0 +1,44 @@ +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" + +\header { + lsrtags = "keyboards, staff-notation, tweaks-and-overrides" + + texidoc = " +This snippet removes the first brace from a @code{PianoStaff} or a +@code{GrandStaff}. It may be useful when cutting and pasting the +engraved image into existing music. + +It uses @code{\\alterBroken}. + +" + doctitle = "Removing brace on first line of piano score" +} % begin verbatim +% => http://lilypond.1069038.n5.nabble.com/Getting-rid-of-initial-brace-on-piano-score-td161158.html +someMusic = { + \once \override Staff.Clef.stencil = ##f + \once \override Staff.TimeSignature.stencil = ##f + \repeat unfold 3 c1 \break + \repeat unfold 5 c1 \break + \repeat unfold 5 c1 +} + +\score { + \new PianoStaff + << + \new Staff = "right" \relative c'' \someMusic + \new Staff = "left" \relative c' { \clef F \someMusic } + >> + \layout { + indent=75 + \context { + \PianoStaff + \alterBroken transparent #'(#t) SystemStartBrace + } + } +} diff --git a/Documentation/snippets/removing-connecting-bar-lines-on-staffgroup,-pianostaff,-or-grandstaff.ly b/Documentation/snippets/removing-connecting-bar-lines-on-staffgroup,-pianostaff,-or-grandstaff.ly index fd0fdce662..07982c9ba4 100644 --- a/Documentation/snippets/removing-connecting-bar-lines-on-staffgroup,-pianostaff,-or-grandstaff.ly +++ b/Documentation/snippets/removing-connecting-bar-lines-on-staffgroup,-pianostaff,-or-grandstaff.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "rhythms, tweaks-and-overrides" @@ -18,7 +18,6 @@ a staff-by-staff basis. doctitle = "Removing connecting bar lines on StaffGroup PianoStaff or GrandStaff" } % begin verbatim - \relative c' { \new StaffGroup << \new Staff { diff --git a/Documentation/snippets/removing-the-first-empty-line.ly b/Documentation/snippets/removing-the-first-empty-line.ly index 6cad882e87..ed8e432f8b 100644 --- a/Documentation/snippets/removing-the-first-empty-line.ly +++ b/Documentation/snippets/removing-the-first-empty-line.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "breaks, staff-notation, tweaks-and-overrides" @@ -25,7 +25,6 @@ written. doctitle = "Removing the first empty line" } % begin verbatim - \layout { \context { \Staff \RemoveEmptyStaves diff --git a/Documentation/snippets/repeats-headword.ly b/Documentation/snippets/repeats-headword.ly index fa562f980a..b4f73273e7 100644 --- a/Documentation/snippets/repeats-headword.ly +++ b/Documentation/snippets/repeats-headword.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.5" +\version "2.18.0" \header { lsrtags = "headword" @@ -16,6 +16,9 @@ Repeats headword doctitle = "Repeats headword" } % begin verbatim +%% http://lsr.di.unimi.it/LSR/Item?id=821 +%% see also http://www.lilypond.org/doc/v2.18/Documentation/notation/repeats + % Beethoven, Op. 57 % Piano sonata 23 - Dem Grafen Franz von Brunswick Gewidmet % Movt II, Andante con moto diff --git a/Documentation/snippets/repeats.snippet-list b/Documentation/snippets/repeats.snippet-list index d3fa46c992..3b55be22a8 100644 --- a/Documentation/snippets/repeats.snippet-list +++ b/Documentation/snippets/repeats.snippet-list @@ -8,6 +8,7 @@ numbering-groups-of-measures.ly percent-repeat-count-visibility.ly percent-repeat-counter.ly positioning-segno-and-coda-with-line-break.ly +printing-a-repeat-sign-at-the-beginning-of-a-piece.ly setting-the-double-repeat-default-for-volte.ly shortening-volta-brackets.ly volta-below-chords.ly diff --git a/Documentation/snippets/rest-styles.ly b/Documentation/snippets/rest-styles.ly index 789f0b6d34..9da37cb60a 100644 --- a/Documentation/snippets/rest-styles.ly +++ b/Documentation/snippets/rest-styles.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "ancient-notation, rhythms, symbols-and-glyphs, tweaks-and-overrides" @@ -19,7 +19,6 @@ Rests may be used in various styles. doctitle = "Rest styles" } % begin verbatim - \layout { indent = 0 \context { diff --git a/Documentation/snippets/reverting-default-beam-endings.ly b/Documentation/snippets/reverting-default-beam-endings.ly index f8581769ed..bf28390f9f 100644 --- a/Documentation/snippets/reverting-default-beam-endings.ly +++ b/Documentation/snippets/reverting-default-beam-endings.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "rhythms, version-specific" @@ -18,7 +18,6 @@ new beaming endings: doctitle = "Reverting default beam endings" } % begin verbatim - \relative c'' { \time 12/8 diff --git a/Documentation/snippets/rhythmic-slashes.ly b/Documentation/snippets/rhythmic-slashes.ly index 6d47071c79..4e140b330d 100644 --- a/Documentation/snippets/rhythmic-slashes.ly +++ b/Documentation/snippets/rhythmic-slashes.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "rhythms, tweaks-and-overrides" @@ -26,7 +26,6 @@ the appropriate duration). doctitle = "Rhythmic slashes" } % begin verbatim - % Macro to print single slash rs = { \once \override Rest.stencil = #ly:percent-repeat-item-interface::beat-slash diff --git a/Documentation/snippets/rhythms-headword.ly b/Documentation/snippets/rhythms-headword.ly index 5bf703a5d0..5a53ef2ed5 100644 --- a/Documentation/snippets/rhythms-headword.ly +++ b/Documentation/snippets/rhythms-headword.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.19.2" +\version "2.18.0" \header { lsrtags = "headword" @@ -16,6 +16,9 @@ Rhythms headword doctitle = "Rhythms headword" } % begin verbatim +%% http://lsr.di.unimi.it/LSR/Item?id=822 +%% see also http://lilypond.org/doc/v2.18/Documentation/notation/rhythms + % Beethoven, Op. 81a % Piano sonata 26 - Das Lebewohl % Movt II - Abwesenheit @@ -82,7 +85,7 @@ Rhythms headword c'''32 ) \! g''8 ( ~ - 32 [ + g''32 [ a''64 g''64 ) ] @@ -215,5 +218,4 @@ Rhythms headword 32 c'32 } - >> diff --git a/Documentation/snippets/rhythms.snippet-list b/Documentation/snippets/rhythms.snippet-list index 99c7a93f80..358e8accfb 100644 --- a/Documentation/snippets/rhythms.snippet-list +++ b/Documentation/snippets/rhythms.snippet-list @@ -60,6 +60,8 @@ stemlets.ly strict-beat-beaming.ly subdividing-beams.ly three-sided-box.ly +time-signature-in-parentheses---method-3.ly +time-signature-in-parentheses.ly time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.ly tweaking-grace-layout-within-music.ly using-alternative-flag-styles.ly diff --git a/Documentation/snippets/satb-choir-template---four-staves.ly b/Documentation/snippets/satb-choir-template---four-staves.ly index 8df4962101..001e5ed587 100644 --- a/Documentation/snippets/satb-choir-template---four-staves.ly +++ b/Documentation/snippets/satb-choir-template---four-staves.ly @@ -1,5 +1,5 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% @@ -16,7 +16,6 @@ SATB choir template (four staves) doctitle = "SATB Choir template - four staves" } % begin verbatim - global = { \key c \major \time 4/4 diff --git a/Documentation/snippets/scheme-language.snippet-list b/Documentation/snippets/scheme-language.snippet-list index a7bc17c61b..848256fe66 100644 --- a/Documentation/snippets/scheme-language.snippet-list +++ b/Documentation/snippets/scheme-language.snippet-list @@ -6,6 +6,7 @@ changing--flageolet-mark-size.ly changing-properties-for-individual-grobs.ly creating-a-sequence-of-notes-on-various-pitches.ly creating-double-digit-fingerings.ly +customizing-the-position-and-number-of-dots-in-repeat-sign-bar-lines.ly displaying-grob-ancestry.ly drawing-boxes-around-grobs.ly drawing-circles-around-various-objects.ly diff --git a/Documentation/snippets/screech-and-boink.ly b/Documentation/snippets/screech-and-boink.ly index 86b9fba5e5..36d3fc1771 100644 --- a/Documentation/snippets/screech-and-boink.ly +++ b/Documentation/snippets/screech-and-boink.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "headword" diff --git a/Documentation/snippets/separating-key-cancellations-from-key-signature-changes.ly b/Documentation/snippets/separating-key-cancellations-from-key-signature-changes.ly index be7a8967d8..044bd68e61 100644 --- a/Documentation/snippets/separating-key-cancellations-from-key-signature-changes.ly +++ b/Documentation/snippets/separating-key-cancellations-from-key-signature-changes.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "pitches, tweaks-and-overrides" diff --git a/Documentation/snippets/setting-hairpin-behavior-at-bar-lines.ly b/Documentation/snippets/setting-hairpin-behavior-at-bar-lines.ly index 067fbbfd2c..b0f930c87c 100644 --- a/Documentation/snippets/setting-hairpin-behavior-at-bar-lines.ly +++ b/Documentation/snippets/setting-hairpin-behavior-at-bar-lines.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, tweaks-and-overrides" @@ -18,7 +18,6 @@ by overriding the @code{'to-barline} property. doctitle = "Setting hairpin behavior at bar lines" } % begin verbatim - \relative c'' { e4\< e2. e1\! diff --git a/Documentation/snippets/setting-system-separators.ly b/Documentation/snippets/setting-system-separators.ly index d7d4d2cda2..cbe0712c61 100644 --- a/Documentation/snippets/setting-system-separators.ly +++ b/Documentation/snippets/setting-system-separators.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "paper-and-layout, staff-notation, tweaks-and-overrides" @@ -18,7 +18,6 @@ default. doctitle = "Setting system separators" } % begin verbatim - \paper { system-separator-markup = \slashSeparator } diff --git a/Documentation/snippets/setting-the-double-repeat-default-for-volte.ly b/Documentation/snippets/setting-the-double-repeat-default-for-volte.ly index c469c52e64..40ce83508c 100644 --- a/Documentation/snippets/setting-the-double-repeat-default-for-volte.ly +++ b/Documentation/snippets/setting-the-double-repeat-default-for-volte.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.5" +\version "2.18.0" \header { lsrtags = "repeats" diff --git a/Documentation/snippets/setting-the-minimum-length-of-hairpins.ly b/Documentation/snippets/setting-the-minimum-length-of-hairpins.ly index dea361c49c..56430babee 100644 --- a/Documentation/snippets/setting-the-minimum-length-of-hairpins.ly +++ b/Documentation/snippets/setting-the-minimum-length-of-hairpins.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks" @@ -17,9 +17,9 @@ If hairpins are too short, they can be lengthened by modifying the doctitle = "Setting the minimum length of hairpins" } % begin verbatim - \relative c'' { c4\< c\! d\> e\! + << f1 { s4 s\< s\> s\! } >> \override Hairpin.minimum-length = #5 << f1 { s4 s\< s\> s\! } >> } diff --git a/Documentation/snippets/shortening-volta-brackets.ly b/Documentation/snippets/shortening-volta-brackets.ly index 611057d4cb..f1aa919411 100644 --- a/Documentation/snippets/shortening-volta-brackets.ly +++ b/Documentation/snippets/shortening-volta-brackets.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "repeats" @@ -19,7 +19,6 @@ lasts one measure, which is a duration of 3/4. doctitle = "Shortening volta brackets" } % begin verbatim - \relative c'' { \time 3/4 c4 c c diff --git a/Documentation/snippets/showing-chords-at-changes.ly b/Documentation/snippets/showing-chords-at-changes.ly index cc3542bd4f..e946df6b6d 100644 --- a/Documentation/snippets/showing-chords-at-changes.ly +++ b/Documentation/snippets/showing-chords-at-changes.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "chords" @@ -17,10 +17,10 @@ chord changes. doctitle = "Showing chords at changes" } % begin verbatim - harmonies = \chordmode { c1:m c:m \break c:m c:m d } + << \new ChordNames { \set chordChanges = ##t diff --git a/Documentation/snippets/showing-the-same-articulation-above-and-below-a-note-or-chord.ly b/Documentation/snippets/showing-the-same-articulation-above-and-below-a-note-or-chord.ly index ec67a11657..2277eb5f36 100644 --- a/Documentation/snippets/showing-the-same-articulation-above-and-below-a-note-or-chord.ly +++ b/Documentation/snippets/showing-the-same-articulation-above-and-below-a-note-or-chord.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks, tweaks-and-overrides, version-specific" @@ -28,7 +28,6 @@ The direction will always be above, but one can tweak this via a doctitle = "Showing the same articulation above and below a note or chord" } % begin verbatim - % The same as \flageolet, just a little smaller smallFlageolet = #(let ((m (make-articulation "flageolet"))) diff --git a/Documentation/snippets/simple-lead-sheet.ly b/Documentation/snippets/simple-lead-sheet.ly index b6f3b443c8..5a3c190a95 100644 --- a/Documentation/snippets/simple-lead-sheet.ly +++ b/Documentation/snippets/simple-lead-sheet.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "chords" @@ -16,7 +16,6 @@ When put together, chord names, a melody, and lyrics form a lead sheet: doctitle = "Simple lead sheet" } % begin verbatim - << \chords { c2 g:sus4 f e } \relative c'' { diff --git a/Documentation/snippets/simultaneous-headword.ly b/Documentation/snippets/simultaneous-headword.ly index 3afcc2a30f..b8462ffaba 100644 --- a/Documentation/snippets/simultaneous-headword.ly +++ b/Documentation/snippets/simultaneous-headword.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.19.2" +\version "2.18.0" \header { lsrtags = "headword" @@ -16,6 +16,9 @@ Simultaneous notes doctitle = "Simultaneous headword" } % begin verbatim +%% http://lsr.di.unimi.it/LSR/Item?id=825 +%% see also http://lilypond.org/doc/v2.18/Documentation/notation/simultaneous-notes + \include "english.ly" % NR 1.5 Simultaneous notes @@ -67,10 +70,10 @@ trillFlat = \trillFlat af''4.~ \startTrillSpan af''8.~ | - 4.~ 8.~ | + af''4.~ af''8.~ | \oneVoice 8.[ a''8. \p \< bf''8.]~ | - 8.[ b''8. c'''8.]~ + bf''8.[ b''8. c'''8.]~ \bar "||" \key ef \major c'''8.[ cs'''8.] \f \stopTrillSpan @@ -83,17 +86,17 @@ trillFlat = \override Voice.TrillSpanner.direction = #DOWN d''4.~ \f \startTrillSpan d''8.~ | - 4.~ 8.~ | - 8. \stopTrillSpan + d''4.~ d''8.~ | + d''8. \stopTrillSpan \trillFlat d''4.~ \startTrillSpan | - d''4.~ 8.~ | - 4.~ 8.~ | - 4.~ 8.~ \stopTrillSpan | + d''4.~ d''8.~ | + d''4.~ d''8.~ | + d''4.~ d''8.~ \stopTrillSpan | \trillFlat d''4.~ \startTrillSpan d''8. ~ | - 4.~ 8.~ | + d''4.~ d''8.~ | \once \override NoteColumn.ignore-collision = ##t \hideNotes d''8. \stopTrillSpan @@ -126,8 +129,8 @@ trillFlat = \override Voice.TrillSpanner.direction = #UP f'4.~ \startTrillSpan f'8.~ | - 4.~ 8.~ | - 8. \stopTrillSpan + f'4.~ f'8.~ | + f'8. \stopTrillSpan } \new Voice { \voiceTwo diff --git a/Documentation/snippets/single-staff-template-with-notes,-lyrics,-and-chords.ly b/Documentation/snippets/single-staff-template-with-notes,-lyrics,-and-chords.ly index f4b72259b9..3cdf85b1de 100644 --- a/Documentation/snippets/single-staff-template-with-notes,-lyrics,-and-chords.ly +++ b/Documentation/snippets/single-staff-template-with-notes,-lyrics,-and-chords.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "chords, really-simple, template, vocal-music" @@ -17,7 +17,6 @@ chords. doctitle = "Single staff template with notes lyrics and chords" } % begin verbatim - melody = \relative c' { \clef treble \key c \major diff --git a/Documentation/snippets/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly b/Documentation/snippets/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly index 4cd409c667..64357e06b9 100644 --- a/Documentation/snippets/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly +++ b/Documentation/snippets/single-staff-template-with-notes,-lyrics,-chords-and-frets.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "chords, template, vocal-music" @@ -17,7 +17,6 @@ fret diagrams. doctitle = "Single staff template with notes lyrics chords and frets" } % begin verbatim - verseI = \lyricmode { \set stanza = #"1." This is the first verse diff --git a/Documentation/snippets/single-staff-template-with-notes-and-chords.ly b/Documentation/snippets/single-staff-template-with-notes-and-chords.ly index 4ba723b516..d63414442e 100644 --- a/Documentation/snippets/single-staff-template-with-notes-and-chords.ly +++ b/Documentation/snippets/single-staff-template-with-notes-and-chords.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.19.2" +\version "2.18.0" \header { lsrtags = "chords, really-simple, template" @@ -17,14 +17,13 @@ Want to prepare a lead sheet with a melody and chords? Look no further! doctitle = "Single staff template with notes and chords" } % begin verbatim - melody = \relative c' { \clef treble \key c \major \time 4/4 f4 e8[ c] d4 g - a2 ~ 2 + a2 ~ a } harmonies = \chordmode { diff --git a/Documentation/snippets/single-staff-template-with-notes-and-lyrics.ly b/Documentation/snippets/single-staff-template-with-notes-and-lyrics.ly index 244baef401..8750bbc794 100644 --- a/Documentation/snippets/single-staff-template-with-notes-and-lyrics.ly +++ b/Documentation/snippets/single-staff-template-with-notes-and-lyrics.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "really-simple, template, vocal-music" @@ -19,7 +19,6 @@ beaming, change or comment out the relevant line. doctitle = "Single staff template with notes and lyrics" } % begin verbatim - melody = \relative c' { \clef treble \key c \major diff --git a/Documentation/snippets/single-staff-template-with-only-notes.ly b/Documentation/snippets/single-staff-template-with-only-notes.ly index 40bbd12cb0..9eed6bf220 100644 --- a/Documentation/snippets/single-staff-template-with-only-notes.ly +++ b/Documentation/snippets/single-staff-template-with-only-notes.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "really-simple, template" @@ -18,7 +18,6 @@ add notes, and you're finished! doctitle = "Single staff template with only notes" } % begin verbatim - melody = \relative c' { \clef treble \key c \major diff --git a/Documentation/snippets/skips-in-lyric-mode-2.ly b/Documentation/snippets/skips-in-lyric-mode-2.ly index e9e25e9756..90e03b195c 100644 --- a/Documentation/snippets/skips-in-lyric-mode-2.ly +++ b/Documentation/snippets/skips-in-lyric-mode-2.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "really-simple, rhythms, vocal-music" @@ -18,7 +18,6 @@ or underscores (@code{_}) are available.So for example: doctitle = "Skips in lyric mode (2)" } % begin verbatim - << \relative c'' { a4 b c d } \new Lyrics \lyricmode { a4 "" _ gap } diff --git a/Documentation/snippets/skips-in-lyric-mode.ly b/Documentation/snippets/skips-in-lyric-mode.ly index 6cea02f255..eb74ba39c0 100644 --- a/Documentation/snippets/skips-in-lyric-mode.ly +++ b/Documentation/snippets/skips-in-lyric-mode.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "really-simple, rhythms, vocal-music" @@ -18,7 +18,6 @@ mode. In other situations, for example, when entering lyrics, using the doctitle = "Skips in lyric mode" } % begin verbatim - << \relative c'' { a1 | a } \new Lyrics \lyricmode { \skip 1 bla1 } diff --git a/Documentation/snippets/slides-in-tablature.ly b/Documentation/snippets/slides-in-tablature.ly index 760135cda9..d1068720a8 100644 --- a/Documentation/snippets/slides-in-tablature.ly +++ b/Documentation/snippets/slides-in-tablature.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "fretted-strings" @@ -42,6 +42,9 @@ slides = { \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods \override Glissando.thickness = #2 + \omit StringNumber + % or: + %\override StringNumber.stencil = ##f } } } diff --git a/Documentation/snippets/snap-pizzicato-or-bartok-pizzicato.ly b/Documentation/snippets/snap-pizzicato-or-bartok-pizzicato.ly index 9e3e51fd1a..82694c9b53 100644 --- a/Documentation/snippets/snap-pizzicato-or-bartok-pizzicato.ly +++ b/Documentation/snippets/snap-pizzicato-or-bartok-pizzicato.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "expressive-marks, unfretted-strings" diff --git a/Documentation/snippets/specific-notation.snippet-list b/Documentation/snippets/specific-notation.snippet-list index 218c52f2b9..dd4195d73b 100644 --- a/Documentation/snippets/specific-notation.snippet-list +++ b/Documentation/snippets/specific-notation.snippet-list @@ -1,5 +1,5 @@ accordion-discant-symbols.ly -accordion-registers.ly +accordion-register-symbols.ly adding-bar-lines-to-chordnames-context.ly adding-drum-parts.ly adding-fingerings-to-tablatures.ly @@ -27,4 +27,5 @@ score-for-diatonic-accordion.ly time-signature-in-parentheses---method-3.ly time-signature-in-parentheses.ly transcription-of-ancient-music-with-incipit.ly +using-an-extra-voice-for-breaks.ly woodwind-diagrams-listing.ly diff --git a/Documentation/snippets/staff-notation.snippet-list b/Documentation/snippets/staff-notation.snippet-list index 0a2df88f19..40af5a2ff7 100644 --- a/Documentation/snippets/staff-notation.snippet-list +++ b/Documentation/snippets/staff-notation.snippet-list @@ -12,6 +12,7 @@ creating-blank-staves.ly creating-double-digit-fingerings.ly cross-staff-stems.ly display-bracket-with-only-one-staff-in-a-system.ly +extending-a-trillspanner.ly extending-glissandi-across-repeats.ly forcing-measure-width-to-adapt-to-metronomemarks-width.ly glissandi-can-skip-grobs.ly @@ -31,6 +32,7 @@ orchestra,-choir-and-piano-template.ly putting-lyrics-inside-the-staff.ly quoting-another-voice-with-transposition.ly quoting-another-voice.ly +removing-brace-on-first-line-of-piano-score.ly removing-the-first-empty-line.ly setting-system-separators.ly tick-bar-lines.ly diff --git a/Documentation/snippets/stand-alone-two-column-markup.ly b/Documentation/snippets/stand-alone-two-column-markup.ly index dd0005c432..a5371fab3f 100644 --- a/Documentation/snippets/stand-alone-two-column-markup.ly +++ b/Documentation/snippets/stand-alone-two-column-markup.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "text" diff --git a/Documentation/snippets/stem-and-beam-behavior-in-tablature.ly b/Documentation/snippets/stem-and-beam-behavior-in-tablature.ly index b5960df497..d8636cf383 100644 --- a/Documentation/snippets/stem-and-beam-behavior-in-tablature.ly +++ b/Documentation/snippets/stem-and-beam-behavior-in-tablature.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "fretted-strings" @@ -18,7 +18,6 @@ example. doctitle = "Stem and beam behavior in tablature" } % begin verbatim - \new TabStaff { \relative c { \tabFullNotation diff --git a/Documentation/snippets/stemlets.ly b/Documentation/snippets/stemlets.ly index 0f1ea5e818..da3b382032 100644 --- a/Documentation/snippets/stemlets.ly +++ b/Documentation/snippets/stemlets.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.30" +\version "2.18.0" \header { lsrtags = "contemporary-notation, rhythms" @@ -30,7 +30,6 @@ the different notations. doctitle = "Stemlets" } % begin verbatim - \paper { ragged-right = ##f } { diff --git a/Documentation/snippets/string-quartet-template-simple.ly b/Documentation/snippets/string-quartet-template-simple.ly index af78c3895d..e435da4877 100644 --- a/Documentation/snippets/string-quartet-template-simple.ly +++ b/Documentation/snippets/string-quartet-template-simple.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "really-simple, template, unfretted-strings" @@ -17,7 +17,6 @@ This template demonstrates a simple string quartet. It also uses a doctitle = "String quartet template (simple)" } % begin verbatim - global= { \time 4/4 \key c \major diff --git a/Documentation/snippets/string-quartet-template-with-separate-parts.ly b/Documentation/snippets/string-quartet-template-with-separate-parts.ly index 66dc41a866..7efde9f3a7 100644 --- a/Documentation/snippets/string-quartet-template-with-separate-parts.ly +++ b/Documentation/snippets/string-quartet-template-with-separate-parts.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "preparing-parts, template, unfretted-strings" @@ -28,7 +28,6 @@ Do not forget to remove specified comments when using separate files! doctitle = "String quartet template with separate parts" } % begin verbatim - %%%%% piece.ly %%%%% (This is the global definitions file) diff --git a/Documentation/snippets/subdividing-beams.ly b/Documentation/snippets/subdividing-beams.ly index e7080e65a5..9b94dd3619 100644 --- a/Documentation/snippets/subdividing-beams.ly +++ b/Documentation/snippets/subdividing-beams.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "rhythms" diff --git a/Documentation/snippets/suppressing-warnings-for-clashing-note-columns.ly b/Documentation/snippets/suppressing-warnings-for-clashing-note-columns.ly index 0ecae8edd5..726b2978d3 100644 --- a/Documentation/snippets/suppressing-warnings-for-clashing-note-columns.ly +++ b/Documentation/snippets/suppressing-warnings-for-clashing-note-columns.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "simultaneous-notes, tweaks-and-overrides" @@ -24,7 +24,6 @@ used with care. doctitle = "Suppressing warnings for clashing note columns" } % begin verbatim - ignore = \override NoteColumn.ignore-collision = ##t \relative c' { diff --git a/Documentation/snippets/symbols-and-glyphs.snippet-list b/Documentation/snippets/symbols-and-glyphs.snippet-list index 920987ba49..e8b00227c8 100644 --- a/Documentation/snippets/symbols-and-glyphs.snippet-list +++ b/Documentation/snippets/symbols-and-glyphs.snippet-list @@ -1,5 +1,5 @@ accordion-discant-symbols.ly -accordion-registers.ly +accordion-register-symbols.ly adding-indicators-to-staves-which-get-split-after-a-break.ly ancient-fonts.ly breathing-signs.ly @@ -7,6 +7,7 @@ broken-crescendo-hairpin.ly caesura-railtracks-with-fermata.ly changing--flageolet-mark-size.ly custodes.ly +customizing-the-position-and-number-of-dots-in-repeat-sign-bar-lines.ly fingering-symbols-for-wind-instruments.ly how-to-put-ties-between-syllables-in-lyrics.ly positioning-segno-and-coda-with-line-break.ly diff --git a/Documentation/snippets/syntax-and-expressions.snippet-list b/Documentation/snippets/syntax-and-expressions.snippet-list index f0e653afb0..6cef9e842f 100644 --- a/Documentation/snippets/syntax-and-expressions.snippet-list +++ b/Documentation/snippets/syntax-and-expressions.snippet-list @@ -1,3 +1,4 @@ combining-two-parts-on-the-same-staff.ly entering-several-tuplets-using-only-one--times-command.ly +extending-a-trillspanner.ly vertical-aligned-staffgroups-without-connecting-systemstartbar.ly diff --git a/Documentation/snippets/table-of-contents.ly b/Documentation/snippets/table-of-contents.ly index 51542ae679..d96f34540f 100644 --- a/Documentation/snippets/table-of-contents.ly +++ b/Documentation/snippets/table-of-contents.ly @@ -1,16 +1,16 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "paper-and-layout" texidoc = " -A table of contents is included using @code{\\markuplist +A table of contents is included using @code{\\markuplines \\table-of-contents}. The TOC items are added with the @code{\\tocItem} command. @@ -18,7 +18,6 @@ A table of contents is included using @code{\\markuplist doctitle = "Table of contents" } % begin verbatim - #(set-default-paper-size "a6") \book { diff --git a/Documentation/snippets/text-headword.ly b/Documentation/snippets/text-headword.ly index 0bcd3763ef..29849eb3a3 100644 --- a/Documentation/snippets/text-headword.ly +++ b/Documentation/snippets/text-headword.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.28" +\version "2.18.0" \header { lsrtags = "headword" @@ -16,6 +16,9 @@ Text headword doctitle = "Text headword" } % begin verbatim +%% http://lsr.di.unimi.it/LSR/Item?id=829 +%% see also http://lilypond.org/doc/v2.18/Documentation/notation/text + \include "english.ly" % NR 1.8 Text @@ -96,7 +99,7 @@ Text headword c''32 df''32 ef''32 - \acciaccatura { df'' ef'' } + \acciaccatura { df''[ ef'' ] } f''8 ef''16 df''16 diff --git a/Documentation/snippets/three-sided-box.ly b/Documentation/snippets/three-sided-box.ly index 2bde359a6c..3e1080dcb7 100644 --- a/Documentation/snippets/three-sided-box.ly +++ b/Documentation/snippets/three-sided-box.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "rhythms, scheme-language, text" @@ -17,7 +17,6 @@ around some text (or other markup). doctitle = "Three-sided box" } % begin verbatim - % New command to add a three sided box, with sides north, west and south % Based on the box-stencil command defined in scm/stencil.scm % Note that ";;" is used to comment a line in Scheme diff --git a/Documentation/snippets/tick-bar-lines.ly b/Documentation/snippets/tick-bar-lines.ly index 661ee65ee2..decd0f64ad 100644 --- a/Documentation/snippets/tick-bar-lines.ly +++ b/Documentation/snippets/tick-bar-lines.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "staff-notation" @@ -17,7 +17,6 @@ only for coordination and is not meant to imply any rhythmic stress. doctitle = "Tick bar lines" } % begin verbatim - \relative c' { \set Score.defaultBarType = #"'" c4 d e f diff --git a/Documentation/snippets/time-signature-in-parentheses---method-3.ly b/Documentation/snippets/time-signature-in-parentheses---method-3.ly index 5eebaacc09..32d888be0e 100644 --- a/Documentation/snippets/time-signature-in-parentheses---method-3.ly +++ b/Documentation/snippets/time-signature-in-parentheses---method-3.ly @@ -1,13 +1,13 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { - lsrtags = "specific-notation, staff-notation, tweaks-and-overrides" + lsrtags = "rhythms, specific-notation, staff-notation, tweaks-and-overrides" texidoc = " Another way to put the time signature in parenthesis @@ -16,7 +16,6 @@ Another way to put the time signature in parenthesis doctitle = "Time signature in parentheses - method 3" } % begin verbatim - \relative c'' { \override Staff.TimeSignature.stencil = #(lambda (grob) (parenthesize-stencil (ly:time-signature::print grob) 0.1 0.4 0.4 0.1 )) diff --git a/Documentation/snippets/time-signature-in-parentheses.ly b/Documentation/snippets/time-signature-in-parentheses.ly index 257034d959..3461b568e4 100644 --- a/Documentation/snippets/time-signature-in-parentheses.ly +++ b/Documentation/snippets/time-signature-in-parentheses.ly @@ -1,13 +1,13 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { - lsrtags = "specific-notation, staff-notation, tweaks-and-overrides" + lsrtags = "rhythms, specific-notation, staff-notation, tweaks-and-overrides" texidoc = " The time signature can be enclosed within parentheses. @@ -16,7 +16,6 @@ The time signature can be enclosed within parentheses. doctitle = "Time signature in parentheses" } % begin verbatim - \relative c'' { \override Staff.TimeSignature.stencil = #(lambda (grob) (bracketify-stencil (ly:time-signature::print grob) Y 0.1 0.2 0.1)) diff --git a/Documentation/snippets/time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.ly b/Documentation/snippets/time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.ly index bee629dc69..f7173e35a8 100644 --- a/Documentation/snippets/time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.ly +++ b/Documentation/snippets/time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "rhythms, tweaks-and-overrides" @@ -14,15 +14,14 @@ Sometimes, a time signature should not print the whole fraction (e.g. 7/4), but only the numerator (7 in this case). This can be easily done by using @code{\\override Staff.TimeSignature.style = #'single-digit} to change the style permanently. By using @code{\\revert -Staff.TimeSignature.style}, this setting can be reversed. To apply -the single-digit style to only one time signature, use the +Staff.TimeSignature.style}, this setting can be reversed. To apply the +single-digit style to only one time signature, use the @code{\\override} command and prefix it with a @code{\\once}. " doctitle = "Time signature printing only the numerator as a number (instead of the fraction)" } % begin verbatim - \relative c'' { \time 3/4 c4 c c diff --git a/Documentation/snippets/transcription-of-ancient-music-with-incipit.ly b/Documentation/snippets/transcription-of-ancient-music-with-incipit.ly index cebe3d2876..28ae9b4451 100644 --- a/Documentation/snippets/transcription-of-ancient-music-with-incipit.ly +++ b/Documentation/snippets/transcription-of-ancient-music-with-incipit.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.30" +\version "2.18.0" \header { lsrtags = "ancient-notation, specific-notation, tweaks-and-overrides, workaround" @@ -20,29 +20,80 @@ main lyrics. doctitle = "Transcription of Ancient music with incipit" } % begin verbatim +incipit = +#(define-music-function (parser location incipit-music) (ly:music?) + #{ + \once \override Staff.InstrumentName.self-alignment-X = #RIGHT + \once \override Staff.InstrumentName.self-alignment-Y = ##f + \once \override Staff.InstrumentName.padding = #0.3 + \once \override Staff.InstrumentName.stencil = + #(lambda (grob) + (let* ((instrument-name (ly:grob-property grob 'long-text))) + (set! (ly:grob-property grob 'long-text) + #{ \markup + \score + { + { \context MensuralStaff \with { + instrumentName = #instrument-name + } $incipit-music + } + \layout { $(ly:grob-layout grob) + line-width = \indent + indent = + % primitive-eval is probably easiest for + % escaping lexical closure and evaluating + % everything respective to (current-module). + #(primitive-eval + '(or (false-if-exception (- indent incipit-width)) + (* 0.5 indent))) + ragged-right = ##f + ragged-last = ##f + system-count = #1 } + } + #}) + (system-start-text::print grob))) + #}) + +%%%%%%%%%%%%%%%%%%%%%%%%% global = { \set Score.skipBars = ##t \key g \major \time 4/4 - %make the staff lines invisible on staves - \hide Staff.BarLine - \skip 1*8 % the actual music + + % the actual music + \skip 1*8 + % let finis bar go through all staves \override Staff.BarLine.transparent = ##f + % finis bar \bar "|." } +discantusIncipit = << + \new MensuralVoice = "discantusIncipit" << + \repeat unfold 9 { s1 \noBreak } + { + \clef "neomensural-c1" + \key f \major + \time 2/2 + c''1. + } + >> + \new Lyrics \lyricsto discantusIncipit { IV- } +>> + discantusNotes = { \transpose c' c'' { - \clef treble + \clef "treble" d'2. d'4 | b e' d'2 | c'4 e'4.( d'8 c' b | a4) b a2 | b4.( c'8 d'4) c'4 | - \once \hide NoteHead c'1 | + \once \hide NoteHead + c'1 | b\breve | } } @@ -57,53 +108,103 @@ discantusLyrics = \lyricmode { -us. | } +altusIncipit = << + \new MensuralVoice = "altusIncipit" << + \repeat unfold 9 { s1 \noBreak } + { + \clef "neomensural-c3" + \key f \major + \time 2/2 + r1 f'1. + } + >> + \new Lyrics \lyricsto altusIncipit { IV- } +>> + altusNotes = { \transpose c' c'' { - \clef treble - r2 g2. e4 fis g | % two bars + \clef "treble" + % two measures + r2 g2. e4 fis g | a2 g4 e | fis g4.( fis16 e fis4) | g1 | - \once \hide NoteHead g1 | + \once \hide NoteHead + g1 | g\breve | } } altusLyrics = \lyricmode { - Ju -- bi -- la -- te | % two bars + % two measures + Ju -- bi -- la -- te | De -- o, om -- | nis ter -- ra, | "..." | -us. | } +tenorIncipit = << + \new MensuralVoice = "tenorIncipit" << + \repeat unfold 9 { s1 \noBreak } + { + \clef "neomensural-c4" + \key f \major + \time 2/2 + r\longa + r\breve + r1 c'1. + } + >> + \new Lyrics \lyricsto tenorIncipit { IV- } +>> + tenorNotes = { \transpose c' c' { \clef "treble_8" R1 | R1 | R1 | - r2 d'2. d'4 b e' | % two bars - \once \hide NoteHead e'1 | + % two measures + r2 d'2. d'4 b e' | + \once \hide NoteHead + e'1 | d'\breve | } } tenorLyrics = \lyricmode { - Ju -- bi -- la -- te | % two bars + % two measures + Ju -- bi -- la -- te | "..." | -us. } +bassusIncipit = << + \new MensuralVoice = "bassusIncipit" << + \repeat unfold 9 { s1 \noBreak } + { + \clef "bass" + \key f \major + \time 2/2 + %% incipit + r\maxima + f1. + } + >> + \new Lyrics \lyricsto bassusIncipit { IV- } +>> + bassusNotes = { \transpose c' c' { - \clef bass + \clef "bass" R1 | R1 | R1 | R1 | g2. e4 | - \once \hide NoteHead e1 | + \once \hide NoteHead + e1 | g\breve | } } @@ -114,175 +215,64 @@ bassusLyrics = \lyricmode { -us. } -incipitDiscantus = \markup { - \score { - { - \set Staff.instrumentName = #"Discantus " - \override NoteHead.style = #'neomensural - \override Rest.style = #'neomensural - \override Staff.TimeSignature.style = #'neomensural - \cadenzaOn - \clef "neomensural-c1" - \key f \major - \time 2/2 - c''1._"IV-" s2 %two bars - \skip 1*8 % eight bars - } - \layout { - \context { - \Voice - \remove "Ligature_bracket_engraver" - \consists "Mensural_ligature_engraver" - } - line-width = 4.5\cm - } - } -} - -incipitAltus = \markup { - \score { - { - \set Staff.instrumentName = #"Altus " - \override NoteHead.style = #'neomensural - \override Rest.style = #'neomensural - \override Staff.TimeSignature.style = #'neomensural - \cadenzaOn - \clef "neomensural-c3" - \key f \major - \time 2/2 - r1 % one bar - f'1._"IV-" s2 % two bars - \skip 1*7 % seven bars - } - \layout { - \context { - \Voice - \remove "Ligature_bracket_engraver" - \consists "Mensural_ligature_engraver" - } - line-width = 4.5\cm - } - } -} - -incipitTenor = \markup { - \score { - { - \set Staff.instrumentName = #"Tenor " - \override NoteHead.style = #'neomensural - \override Rest.style = #'neomensural - \override Staff.TimeSignature.style = #'neomensural - \cadenzaOn - \clef "neomensural-c4" - \key f \major - \time 2/2 - r\longa % four bars - r\breve % two bars - r1 % one bar - c'1._"IV-" s2 % two bars - \skip 1 % one bar - } - \layout { - \context { - \Voice - \remove "Ligature_bracket_engraver" - \consists "Mensural_ligature_engraver" - } - line-width = 4.5\cm - } - } -} - -incipitBassus = \markup { - \score { - { - \set Staff.instrumentName = #"Bassus " - \override NoteHead.style = #'neomensural - \override Rest.style = #'neomensural - \override Staff.TimeSignature.style = #'neomensural - \cadenzaOn - \clef "bass" - \key f \major - \time 2/2 - % incipit - r\maxima % eight bars - f1._"IV-" s2 % two bars - } - \layout { - \context { - \Voice - \remove "Ligature_bracket_engraver" - \consists "Mensural_ligature_engraver" - } - line-width = 4.5\cm - } - } -} - -%StaffGroup is used instead of ChoirStaff to get bar lines between systems \score { << \new StaffGroup = choirStaff << \new Voice = "discantusNotes" << \global - \set Staff.instrumentName = \incipitDiscantus + \set Staff.instrumentName = #"Discantus " + \incipit \discantusIncipit \discantusNotes >> \new Lyrics = "discantusLyrics" \lyricsto discantusNotes { \discantusLyrics } - \new Voice = "altusNotes" << \global - \set Staff.instrumentName = \incipitAltus + \set Staff.instrumentName = #"Altus " + \incipit \altusIncipit \altusNotes >> \new Lyrics = "altusLyrics" \lyricsto altusNotes { \altusLyrics } - \new Voice = "tenorNotes" << \global - \set Staff.instrumentName = \incipitTenor + \set Staff.instrumentName = #"Tenor " + \incipit \tenorIncipit \tenorNotes >> \new Lyrics = "tenorLyrics" \lyricsto tenorNotes { \tenorLyrics } - \new Voice = "bassusNotes" << \global - \set Staff.instrumentName = \incipitBassus + \set Staff.instrumentName = #"Bassus " + \incipit \bassusIncipit \bassusNotes >> + \new Lyrics = "bassusLyrics" \lyricsto bassusNotes { \bassusLyrics } >> - \new Lyrics = "bassusLyrics" \lyricsto bassusNotes { \bassusLyrics } - %Keep the bass lyrics outside of the staff group to avoid bar lines - %between the lyrics. >> - \layout { \context { \Score - % no bars in staves + %% no bar lines in staves or lyrics \hide BarLine } - % the next three instructions keep the lyrics between the bar lines + %% the next two instructions keep the lyrics between the bar lines \context { \Lyrics \consists "Bar_engraver" - \hide BarLine - } - \context { - \StaffGroup \consists "Separating_line_group_engraver" } \context { \Voice - % no slurs + %% no slurs \hide Slur - % Comment in the below "\remove" command to allow line - % breaking also at those barlines where a note overlaps - % into the next bar. The command is commented out in this - % short example score, but especially for large scores, you - % will typically yield better line breaking and thus improve - % overall spacing if you comment in the following command. - %\remove "Forbid_line_break_engraver" + %% Comment in the below "\remove" command to allow line + %% breaking also at those bar lines where a note overlaps + %% into the next measure. The command is commented out in this + %% short example score, but especially for large scores, you + %% will typically yield better line breaking and thus improve + %% overall spacing if you comment in the following command. + %%\remove "Forbid_line_break_engraver" } - indent = 5\cm + indent = 6\cm + incipit-width = 4\cm } } diff --git a/Documentation/snippets/transposing-pitches-with-minimum-accidentals-smart-transpose.ly b/Documentation/snippets/transposing-pitches-with-minimum-accidentals-smart-transpose.ly index 2b647d0854..ca5b7f24f6 100644 --- a/Documentation/snippets/transposing-pitches-with-minimum-accidentals-smart-transpose.ly +++ b/Documentation/snippets/transposing-pitches-with-minimum-accidentals-smart-transpose.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "pitches, scheme-language, workaround" @@ -35,7 +35,6 @@ In this manner, the most natural enharmonic notes are chosen. doctitle = "Transposing pitches with minimum accidentals (\"Smart\" transpose)" } % begin verbatim - #(define (naturalize-pitch p) (let ((o (ly:pitch-octave p)) (a (* 4 (ly:pitch-alteration p))) diff --git a/Documentation/snippets/tuplet-bracket-and-change-staff.ly b/Documentation/snippets/tuplet-bracket-and-change-staff.ly new file mode 100644 index 0000000000..2a1d9cf7a5 --- /dev/null +++ b/Documentation/snippets/tuplet-bracket-and-change-staff.ly @@ -0,0 +1,54 @@ +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.di.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.18.0" + +\header { + lsrtags = "tweaks-and-overrides" + + texidoc = " +This snippet shows how to set a tuplet starting in a lower staff and +finishing in the upper one. + +" + doctitle = "Tuplet bracket and change staff" +} % begin verbatim + +%% http://lsr.di.unimi.it/LSR/Item?id=926 +%=> http://lilypond-french-users.1298960.n2.nabble.com/Crochet-de-nolet-tordu-tt7581491.html +%=> http://lilypond.1069038.n5.nabble.com/Tuplet-bracket-amp-changeStff-td164063.html + +aigues = \relative c' { + \time 6/8 + s4. + \stemDown + c16[ bes' e] + \stemUp + g c e + \stemDown + g8 +} + +basses = \relative c { + \time 3/4 + \clef F + \tweak positions #'(4.5 . 9.5) + \tweak edge-height #'(1 . -1) + \tuplet 7/6 { + c16[ bes' e] + \change Staff = md + \stemUp + g[ c e g] + } + s4.s8 +} + +\new PianoStaff +\with { \omit TimeSignature } +<< + \new Staff = md \aigues + \new Staff = mg \basses +>> diff --git a/Documentation/snippets/tweaking-clef-properties.ly b/Documentation/snippets/tweaking-clef-properties.ly index a43faaca38..645530ea2b 100644 --- a/Documentation/snippets/tweaking-clef-properties.ly +++ b/Documentation/snippets/tweaking-clef-properties.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.18" +\version "2.18.0" \header { lsrtags = "pitches, staff-notation, tweaks-and-overrides" @@ -13,7 +13,7 @@ The command @code{\\clef \"treble_8\"} is equivalent to setting @code{clefGlyph}, @code{clefPosition} (which controls the vertical position of the clef), @code{middleCPosition} and -@code{clefTransposition}. A clef is printed when any of the properties +@code{clefOctavation}. A clef is printed when any of the properties except @code{middleCPosition} are changed. @@ -24,7 +24,7 @@ this. In order to get key signatures on the correct staff lines, @code{middleCClefPosition} must also be set. The positional parameters are relative to the staff center line, positive numbers displacing upwards, counting one for each line and space. The -@code{clefTransposition} value would normally be set to 7, -7, 15 or -15, +@code{clefOctavation} value would normally be set to 7, -7, 15 or -15, but other values are valid. @@ -45,7 +45,10 @@ line, they do not. doctitle = "Tweaking clef properties" } % begin verbatim -\layout { ragged-right = ##t } +\layout { + indent = 0 + ragged-right = ##t +} { % The default treble clef \key f \major diff --git a/Documentation/snippets/tweaking-grace-layout-within-music.ly b/Documentation/snippets/tweaking-grace-layout-within-music.ly index b038e101b1..65c5449fda 100644 --- a/Documentation/snippets/tweaking-grace-layout-within-music.ly +++ b/Documentation/snippets/tweaking-grace-layout-within-music.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.28" +\version "2.18.0" \header { lsrtags = "rhythms, tweaks-and-overrides" @@ -20,7 +20,6 @@ up, and changes the default note heads to crosses. doctitle = "Tweaking grace layout within music" } % begin verbatim - \relative c'' { \new Staff { $(remove-grace-property 'Voice 'Stem 'direction) diff --git a/Documentation/snippets/tweaks-and-overrides.snippet-list b/Documentation/snippets/tweaks-and-overrides.snippet-list index 872f35a91d..35cacb18c3 100644 --- a/Documentation/snippets/tweaks-and-overrides.snippet-list +++ b/Documentation/snippets/tweaks-and-overrides.snippet-list @@ -2,6 +2,7 @@ adding-an-ottava-marking-to-a-single-voice.ly adding-links-to-objects.ly adding-timing-marks-to-long-glissandi.ly adjusting-grace-note-spacing.ly +adjusting-lyrics-vertical-spacing.ly altering-the-length-of-beamed-stems.ly alternative-bar-numbering.ly analysis-brackets-above-the-staff.ly @@ -10,6 +11,7 @@ avoiding-collisions-with-chord-fingerings.ly caesura-railtracks-with-fermata.ly centering-markup-on-note-heads-automatically.ly changing-a-single-notes-size-in-a-chord.ly +changing-beam-thickness-and-spacing.ly changing-form-of-multi-measure-rests.ly changing-properties-for-individual-grobs.ly changing-text-and-spanner-styles-for-text-dynamics.ly @@ -36,6 +38,7 @@ drawing-boxes-around-grobs.ly drawing-circles-around-various-objects.ly dynamics-custom-text-spanner-postfix.ly dynamics-text-spanner-postfix.ly +extending-a-trillspanner.ly extending-glissandi-across-repeats.ly fine-tuning-pedal-brackets.ly forcing-horizontal-shift-of-notes.ly @@ -62,10 +65,12 @@ percent-repeat-count-visibility.ly positioning-arpeggios.ly positioning-multi-measure-rests.ly positioning-text-markups-inside-slurs.ly +printing-a-repeat-sign-at-the-beginning-of-a-piece.ly printing-bar-numbers-inside-boxes-or-circles.ly printing-metronome-and-rehearsal-marks-below-the-staff.ly printing-note-names-with-and-without-an-octave-marker.ly proportional-strict-notespacing.ly +removing-brace-on-first-line-of-piano-score.ly removing-connecting-bar-lines-on-staffgroup,-pianostaff,-or-grandstaff.ly removing-the-first-empty-line.ly rest-styles.ly @@ -80,6 +85,7 @@ time-signature-in-parentheses---method-3.ly time-signature-in-parentheses.ly time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.ly transcription-of-ancient-music-with-incipit.ly +tuplet-bracket-and-change-staff.ly tweaking-clef-properties.ly tweaking-grace-layout-within-music.ly using-alternative-flag-styles.ly diff --git a/Documentation/snippets/use-square-bracket-at-the-start-of-a-staff-group.ly b/Documentation/snippets/use-square-bracket-at-the-start-of-a-staff-group.ly index 10d57393b7..e7ebc7a0e4 100644 --- a/Documentation/snippets/use-square-bracket-at-the-start-of-a-staff-group.ly +++ b/Documentation/snippets/use-square-bracket-at-the-start-of-a-staff-group.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "contexts-and-engravers, staff-notation" @@ -18,7 +18,6 @@ context. doctitle = "Use square bracket at the start of a staff group" } % begin verbatim - \score { \new StaffGroup { << \set StaffGroup.systemStartDelimiter = #'SystemStartSquare diff --git a/Documentation/snippets/using-an-extra-voice-for-breaks.ly b/Documentation/snippets/using-an-extra-voice-for-breaks.ly new file mode 100644 index 0000000000..b0c952ca65 --- /dev/null +++ b/Documentation/snippets/using-an-extra-voice-for-breaks.ly @@ -0,0 +1,49 @@ +% DO NOT EDIT this file manually; it is automatically +% generated from Documentation/snippets/new +% Make any changes in Documentation/snippets/new/ +% and then run scripts/auxiliar/makelsr.py +% +% This file is in the public domain. +%% Note: this file works from version 2.18.0 +\version "2.18.0" + +\header { + lsrtags = "specific-notation, workaround" + + texidoc = " + +Often it is easier to manage line and page-breaking information by +keeping it separate from the music by introducing an extra voice +containing only skips along with the @code{\\break}, +@code{pageBreak} and other layout information. + +This pattern becomes especially helpful when overriding +@code{line-break-system-details} and the other useful but long +properties of @code{NonMusicalPaperColumnGrob}. +" + doctitle = "Using an extra voice for breaks" +} % begin verbatim + + +music = \relative c'' { c4 c c c } + +\header { tagline = ##f } +\paper { left-margin = 0\mm } +\book { + \score { + \new Staff << + \new Voice { + s1 * 2 \break + s1 * 3 \break + s1 * 6 \break + s1 * 5 \break + } + \new Voice { + \repeat unfold 2 { \music } + \repeat unfold 3 { \music } + \repeat unfold 6 { \music } + \repeat unfold 5 { \music } + } + >> + } +} diff --git a/Documentation/snippets/using-arpeggiobracket-to-make-divisi-more-visible.ly b/Documentation/snippets/using-arpeggiobracket-to-make-divisi-more-visible.ly index 3eacc6132b..86cf689f3f 100644 --- a/Documentation/snippets/using-arpeggiobracket-to-make-divisi-more-visible.ly +++ b/Documentation/snippets/using-arpeggiobracket-to-make-divisi-more-visible.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.19.2" +\version "2.18.0" \header { lsrtags = "expressive-marks, vocal-music" @@ -18,7 +18,6 @@ often seen in choral music. doctitle = "Using arpeggioBracket to make divisi more visible" } % begin verbatim - \include "english.ly" \score { @@ -39,9 +38,9 @@ often seen in choral music. \new Voice = "lower" { \voiceTwo a1 ~ - 1 + a a ~ - 4 \bar "|." + a4 \bar "|." } >> } diff --git a/Documentation/snippets/using-autochange-with-more-than-one-voice.ly b/Documentation/snippets/using-autochange-with-more-than-one-voice.ly index cd7f685099..8db1438e7d 100644 --- a/Documentation/snippets/using-autochange-with-more-than-one-voice.ly +++ b/Documentation/snippets/using-autochange-with-more-than-one-voice.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "keyboards, pitches, staff-notation" diff --git a/Documentation/snippets/using-double-slurs-for-legato-chords.ly b/Documentation/snippets/using-double-slurs-for-legato-chords.ly index 0844c8624e..4e1eaf7837 100644 --- a/Documentation/snippets/using-double-slurs-for-legato-chords.ly +++ b/Documentation/snippets/using-double-slurs-for-legato-chords.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "expressive-marks" @@ -17,7 +17,6 @@ be achieved by setting @code{doubleSlurs}. doctitle = "Using double slurs for legato chords" } % begin verbatim - \relative c' { \set doubleSlurs = ##t 4( ) diff --git a/Documentation/snippets/using-ly-grob-object-to-access-grobs-with--tweak.ly b/Documentation/snippets/using-ly-grob-object-to-access-grobs-with--tweak.ly index c2e4685015..d07271b46a 100644 --- a/Documentation/snippets/using-ly-grob-object-to-access-grobs-with--tweak.ly +++ b/Documentation/snippets/using-ly-grob-object-to-access-grobs-with--tweak.ly @@ -1,19 +1,19 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "devel, scheme-language, tweaks-and-overrides" texidoc = " -Some grobs can be accessed @qq{laterally} from within another grob's -callback. These are usually listed as @qq{layout objects} in the -@qq{Internal properties} section of a grob-interface. The function -@code{ly:grob-object} is used to access these grobs. +Some grobs can be accessed “laterally” from within another grob’s +callback. These are usually listed as “layout objects” in the “Internal +properties” section of a grob-interface. The function ly:grob-object is +used to access these grobs. Demonstrated below are some ways of accessing grobs from within a @@ -30,7 +30,7 @@ accessed. Example console output: --------------------- #-Grob Accidental - #-Grob Arpeggio - #-Grob Stem - +@code{ #Grob Accidental () #Grob Stem} diff --git a/Documentation/snippets/using-postscript-to-generate-special-note-head-shapes.ly b/Documentation/snippets/using-postscript-to-generate-special-note-head-shapes.ly index 976387a0d1..cc628a3b4a 100644 --- a/Documentation/snippets/using-postscript-to-generate-special-note-head-shapes.ly +++ b/Documentation/snippets/using-postscript-to-generate-special-note-head-shapes.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "editorial-annotations, really-cool, scheme-language, tweaks-and-overrides" @@ -18,7 +18,6 @@ This example shows how a parallelogram-shaped note head is generated. doctitle = "Using PostScript to generate special note head shapes" } % begin verbatim - parallelogram = #(ly:make-stencil (list 'embedded-ps "gsave diff --git a/Documentation/snippets/using-the--tweak-command-to-tweak-individual-grobs.ly b/Documentation/snippets/using-the--tweak-command-to-tweak-individual-grobs.ly index f6bb8ed356..8d5349df02 100644 --- a/Documentation/snippets/using-the--tweak-command-to-tweak-individual-grobs.ly +++ b/Documentation/snippets/using-the--tweak-command-to-tweak-individual-grobs.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "really-simple, tweaks-and-overrides" @@ -17,7 +17,6 @@ Here are some examples of available tweaks. doctitle = "Using the \\tweak command to tweak individual grobs" } % begin verbatim - \relative c' { \time 2/4 \set fingeringOrientations = #'(right) diff --git a/Documentation/snippets/using-the-whiteout-property.ly b/Documentation/snippets/using-the-whiteout-property.ly index 2e9f1a3243..c6c0721724 100644 --- a/Documentation/snippets/using-the-whiteout-property.ly +++ b/Documentation/snippets/using-the-whiteout-property.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "editorial-annotations, expressive-marks" diff --git a/Documentation/snippets/using-ties-with-arpeggios.ly b/Documentation/snippets/using-ties-with-arpeggios.ly index b1e8bea6fe..dac63bf04c 100644 --- a/Documentation/snippets/using-ties-with-arpeggios.ly +++ b/Documentation/snippets/using-ties-with-arpeggios.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "rhythms" @@ -20,7 +20,6 @@ can also be used for ordinary consecutive notes. doctitle = "Using ties with arpeggios" } % begin verbatim - \relative c' { \set tieWaitForNote = ##t \grace { c16[ ~ e ~ g] ~ } 2 diff --git a/Documentation/snippets/utf-8.ly b/Documentation/snippets/utf-8.ly index c6e1a0536b..a1b51d2923 100644 --- a/Documentation/snippets/utf-8.ly +++ b/Documentation/snippets/utf-8.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "text" diff --git a/Documentation/snippets/vertical-aligned-staffgroups-without-connecting-systemstartbar.ly b/Documentation/snippets/vertical-aligned-staffgroups-without-connecting-systemstartbar.ly index 6610200af5..adea0ef562 100644 --- a/Documentation/snippets/vertical-aligned-staffgroups-without-connecting-systemstartbar.ly +++ b/Documentation/snippets/vertical-aligned-staffgroups-without-connecting-systemstartbar.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.30" +\version "2.18.0" \header { lsrtags = "paper-and-layout, staff-notation, syntax-and-expressions" diff --git a/Documentation/snippets/vertical-line-as-a-baroque-articulation-mark.ly b/Documentation/snippets/vertical-line-as-a-baroque-articulation-mark.ly index 9dca248702..222c20f0a5 100644 --- a/Documentation/snippets/vertical-line-as-a-baroque-articulation-mark.ly +++ b/Documentation/snippets/vertical-line-as-a-baroque-articulation-mark.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "ancient-notation, expressive-marks" @@ -19,7 +19,6 @@ demonstrates how to achieve such a notation. doctitle = "Vertical line as a baroque articulation mark" } % begin verbatim - upline = #(let ((m (make-articulation "stopped"))) (set! (ly:music-property m 'tweaks) diff --git a/Documentation/snippets/vertically-aligning-dynamics-across-multiple-notes.ly b/Documentation/snippets/vertically-aligning-dynamics-across-multiple-notes.ly index 0adb0dec41..4c057c0998 100644 --- a/Documentation/snippets/vertically-aligning-dynamics-across-multiple-notes.ly +++ b/Documentation/snippets/vertically-aligning-dynamics-across-multiple-notes.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "expressive-marks" @@ -19,7 +19,6 @@ of the @code{DynamicLineSpanner} object. doctitle = "Vertically aligning dynamics across multiple notes" } % begin verbatim - \relative c' { \override DynamicLineSpanner.staff-padding = #4 c2\p f\mf diff --git a/Documentation/snippets/vertically-aligning-ossias-and-lyrics.ly b/Documentation/snippets/vertically-aligning-ossias-and-lyrics.ly index 4a85d9d6a4..bf138f5f07 100644 --- a/Documentation/snippets/vertically-aligning-ossias-and-lyrics.ly +++ b/Documentation/snippets/vertically-aligning-ossias-and-lyrics.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.11" +\version "2.18.0" \header { lsrtags = "spacing, tweaks-and-overrides, vocal-music" @@ -18,7 +18,6 @@ positioning of lyrics and ossias. doctitle = "Vertically aligning ossias and lyrics" } % begin verbatim - \paper { ragged-right = ##t } diff --git a/Documentation/snippets/vertically-centered-common-lyrics.ly b/Documentation/snippets/vertically-centered-common-lyrics.ly index 7c59cd3b16..661b8fe208 100644 --- a/Documentation/snippets/vertically-centered-common-lyrics.ly +++ b/Documentation/snippets/vertically-centered-common-lyrics.ly @@ -1,59 +1,67 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "vocal-music" texidoc = " -In a vocal piece where there are several (two,four or more) lines of -lyrics, and common lyrics for all voices at some point, these common -lyrics may be vertically centered regardingly, as shown in the +In a vocal piece where there are several (two, four or more) lines of +lyrics and common lyrics for all voices at some point, the common +lyrics may be made to appear vertically centered, as shown in the following example: " doctitle = "Vertically centered common lyrics" } % begin verbatim -\include "english.ly" -leftbrace = \markup { \override #'(font-encoding . fetaBraces) \lookup #"brace240" } -rightbrace = \markup { \rotate #180 \leftbrace } - -dropLyrics = -{ - \override LyricText.extra-offset = #'(0 . -5) - \override LyricHyphen.extra-offset = #'(0 . -5) - \override LyricExtender.extra-offset = #'(0 . -5) +dropLyrics = { + \override LyricText.extra-offset = #'(0 . -4.5) + \override LyricHyphen.extra-offset = #'(0 . -4.5) + \override LyricExtender.extra-offset = #'(0 . -4.5) + \override StanzaNumber.extra-offset = #'(0 . -4.5) } -raiseLyrics = -{ - \revert LyricText.extra-offset - \revert LyricHyphen.extra-offset - \revert LyricExtender.extra-offset +raiseLyrics = { + \revert LyricText.extra-offset + \revert LyricHyphen.extra-offset + \revert LyricExtender.extra-offset + \revert StanzaNumber.extra-offset } skipFour = \repeat unfold 4 { \skip 8 } -lyricsA = \lyricmode { The first verse has \dropLyrics the com -- mon -__ words \raiseLyrics used in all four. } -lyricsB = \lyricmode { In stan -- za two, \skipFour al -- so ap -- pear. } -lyricsC = \lyricmode { By the third verse, \skipFour are get -- ting dull. } +lyricsA = \lyricmode { + The first verse has + \dropLyrics + \set stanza = #" All:" + the com -- mon __ words + \raiseLyrics + used in all four. +} + +lyricsB = \lyricmode { In stan -- za two, \skipFour al -- so ap -- pear. } + +lyricsC = \lyricmode { By the third verse, \skipFour are get -- ting dull. } + lyricsD = \lyricmode { Last stan -- za, and \skipFour get used once more. } -melody = \relative c' { c4 d e f g f e8( e f) d4 c e d c } - -\score -{ - << - \new Voice = m \melody - \new Lyrics \lyricsto m \lyricsA - \new Lyrics \lyricsto m \lyricsB - \new Lyrics \lyricsto m \lyricsC - \new Lyrics \lyricsto m \lyricsD - >> +melody = \relative c' { + c4 d e f | + g f e8( e f) d | + c4 e d c | +} + +\score { + << + \new Voice = m \melody + \new Lyrics \lyricsto m \lyricsA + \new Lyrics \lyricsto m \lyricsB + \new Lyrics \lyricsto m \lyricsC + \new Lyrics \lyricsto m \lyricsD + >> } diff --git a/Documentation/snippets/vertically-centering-paired-figured-bass-extenders.ly b/Documentation/snippets/vertically-centering-paired-figured-bass-extenders.ly index a29298b9d9..4816346449 100644 --- a/Documentation/snippets/vertically-centering-paired-figured-bass-extenders.ly +++ b/Documentation/snippets/vertically-centering-paired-figured-bass-extenders.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "chords, tweaks-and-overrides" @@ -19,7 +19,6 @@ extender lines are vertically centered if doctitle = "Vertically centering paired figured bass extenders" } % begin verbatim - << \relative c' { c8 c b b a a c16 c b b diff --git a/Documentation/snippets/vocal-ensemble-template-with-automatic-piano-reduction.ly b/Documentation/snippets/vocal-ensemble-template-with-automatic-piano-reduction.ly index 8e1796fd47..8eba692deb 100644 --- a/Documentation/snippets/vocal-ensemble-template-with-automatic-piano-reduction.ly +++ b/Documentation/snippets/vocal-ensemble-template-with-automatic-piano-reduction.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "automatic-notation, keyboards, template, vocal-music" @@ -21,7 +21,6 @@ reduction. doctitle = "Vocal ensemble template with automatic piano reduction" } % begin verbatim - \paper { top-system-spacing #'basic-distance = #10 score-system-spacing #'basic-distance = #20 diff --git a/Documentation/snippets/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly b/Documentation/snippets/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly index c4c1f61ccb..a13de11a6c 100644 --- a/Documentation/snippets/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly +++ b/Documentation/snippets/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "contexts-and-engravers, template, text, vocal-music" @@ -18,7 +18,6 @@ using @code{alignAboveContext} and @code{alignBelowContext}. doctitle = "Vocal ensemble template with lyrics aligned below and above the staves" } % begin verbatim - global = { \key c \major \time 4/4 diff --git a/Documentation/snippets/vocal-ensemble-template-with-verse-and-refrain.ly b/Documentation/snippets/vocal-ensemble-template-with-verse-and-refrain.ly index 51ffe694b2..fa80dbc076 100644 --- a/Documentation/snippets/vocal-ensemble-template-with-verse-and-refrain.ly +++ b/Documentation/snippets/vocal-ensemble-template-with-verse-and-refrain.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "contexts-and-engravers, template, vocal-music" @@ -20,7 +20,6 @@ score. doctitle = "Vocal ensemble template with verse and refrain" } % begin verbatim - global = { \key g \major diff --git a/Documentation/snippets/vocal-ensemble-template.ly b/Documentation/snippets/vocal-ensemble-template.ly index 100d57e098..e78416a106 100644 --- a/Documentation/snippets/vocal-ensemble-template.ly +++ b/Documentation/snippets/vocal-ensemble-template.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "really-simple, template, vocal-music" @@ -20,7 +20,6 @@ regrouped on only two staves. doctitle = "Vocal ensemble template" } % begin verbatim - \paper { top-system-spacing #'basic-distance = #10 score-system-spacing #'basic-distance = #20 diff --git a/Documentation/snippets/vocal-headword.ly b/Documentation/snippets/vocal-headword.ly index 454daf765d..cc21ee8369 100644 --- a/Documentation/snippets/vocal-headword.ly +++ b/Documentation/snippets/vocal-headword.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.19.2" +\version "2.18.0" \header { lsrtags = "headword" @@ -16,13 +16,8 @@ Vocal headword doctitle = "Vocal headword" } % begin verbatim -\layout { - \context { - \Score - \override PaperColumn.keep-inside-line = ##t - \override NonMusicalPaperColumn.keep-inside-line = ##t - } -} +%% http://lsr.di.unimi.it/LSR/Item?id=832 +%% see also http://lilypond.org/doc/v2.18/Documentation/notation/vocal-music % L. van Beethoven. Symphony No. 9 in D minor, op.125; Finale % mm. 216 -- 236 @@ -39,7 +34,7 @@ Vocal headword \autoBeamOff r4^\markup { \small Baritono } r a \appoggiatura a8 e'2. ~ - 4 d8[ cis d e] + e4 d8[ cis d e] e4 g, r8 g bes2 a8 e g4 f r diff --git a/Documentation/snippets/volta-below-chords.ly b/Documentation/snippets/volta-below-chords.ly index 1c43944d60..def56665c5 100644 --- a/Documentation/snippets/volta-below-chords.ly +++ b/Documentation/snippets/volta-below-chords.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "chords, repeats, staff-notation" @@ -17,7 +17,6 @@ put under chords. doctitle = "Volta below chords" } % begin verbatim - \score { << \chords { diff --git a/Documentation/snippets/volta-multi-staff.ly b/Documentation/snippets/volta-multi-staff.ly index a16d728f33..db17173d06 100644 --- a/Documentation/snippets/volta-multi-staff.ly +++ b/Documentation/snippets/volta-multi-staff.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "really-simple, repeats, staff-notation" @@ -17,7 +17,6 @@ put over staves other than the topmost one in a score. doctitle = "Volta multi staff" } % begin verbatim - voltaMusic = \relative c'' { \repeat volta 2 { c1 diff --git a/Documentation/snippets/volta-text-markup-using-repeatcommands.ly b/Documentation/snippets/volta-text-markup-using-repeatcommands.ly index 55ef3c14a2..73415a718c 100644 --- a/Documentation/snippets/volta-text-markup-using-repeatcommands.ly +++ b/Documentation/snippets/volta-text-markup-using-repeatcommands.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "repeats, symbols-and-glyphs, text" @@ -25,7 +25,6 @@ separate list elements: doctitle = "Volta text markup using repeatCommands" } % begin verbatim - voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } } \relative c'' { diff --git a/Documentation/snippets/wind-headword.ly b/Documentation/snippets/wind-headword.ly index 821403d192..4d115afc26 100644 --- a/Documentation/snippets/wind-headword.ly +++ b/Documentation/snippets/wind-headword.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.6" +\version "2.18.0" \header { lsrtags = "headword" @@ -16,6 +16,9 @@ Wind headword doctitle = "Wind headword" } % begin verbatim +%% http://lsr.di.unimi.it/LSR/Item?id=833 +%% see also http://lilypond.org/doc/v2.18/Documentation/notation/wind-instruments + % NR 2.whatever Wind % Tchaikovsky % Nutcracker Suite, VII Dance of the Merlitons diff --git a/Documentation/snippets/woodwind-diagrams-listing.ly b/Documentation/snippets/woodwind-diagrams-listing.ly index db8661d843..034f709854 100644 --- a/Documentation/snippets/woodwind-diagrams-listing.ly +++ b/Documentation/snippets/woodwind-diagrams-listing.ly @@ -1,10 +1,10 @@ %% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.16.0" +\version "2.18.0" \header { lsrtags = "specific-notation, winds" @@ -17,6 +17,10 @@ defined in LilyPond. doctitle = "Woodwind diagrams listing" } % begin verbatim +\layout { + indent = 0 +} + \relative c' { \textLengthOn c1^ diff --git a/Documentation/snippets/workaround.snippet-list b/Documentation/snippets/workaround.snippet-list index 3d43a69835..3167e71737 100644 --- a/Documentation/snippets/workaround.snippet-list +++ b/Documentation/snippets/workaround.snippet-list @@ -16,4 +16,5 @@ positioning-segno-and-coda-with-line-break.ly printing-text-from-right-to-left.ly transcription-of-ancient-music-with-incipit.ly transposing-pitches-with-minimum-accidentals-smart-transpose.ly +using-an-extra-voice-for-breaks.ly vertically-aligned-dynamics-and-textscripts.ly diff --git a/Documentation/usage/running.itely b/Documentation/usage/running.itely index b9d5b22601..0bff8f68df 100644 --- a/Documentation/usage/running.itely +++ b/Documentation/usage/running.itely @@ -915,6 +915,13 @@ when something unexpected happens. If you can't see an error in the indicated line of your input file, try checking one or two lines above the indicated position. +Please note that diagnostics can be triggered at any point during the +many stages of processing. For example if there are parts of the input +that are processed multiple times (i.e. in midi and layout output), or +if the same music variable is used in multiple contexts the same message +may appear several times. Diagnostics produced at a @q{late} stage (i.e +bar checks) might also be issued multiple times. + More information about errors is given in @ref{Common errors}. @@ -994,30 +1001,6 @@ correct code to color all note heads red is } @end lilypond -As a second example, if a @code{\relative} command is placed inside -a @code{\repeat} command, two staves result, the second offset from -the first, because the @code{\repeat} command generates two -@code{\relative} blocks, which each implicitly create @code{Staff} -and @code{Voice} blocks. - -@lilypond[quote,verbatim] -\repeat unfold 2 { - \relative c' { c4 d e f } -} -@end lilypond - -Explicitly instantiating the @code{Voice} context fixes the -problem: - -@lilypond[quote,verbatim] -\new Voice { - \repeat unfold 2 { - \relative c' { c4 d e f } - } -} -@end lilypond - - @node Error message Unbound variable % @unnumberedsubsec Error message Unbound variable % diff --git a/Documentation/web/community.itexi b/Documentation/web/community.itexi index 54723d77f5..70362a5d27 100644 --- a/Documentation/web/community.itexi +++ b/Documentation/web/community.itexi @@ -134,7 +134,7 @@ in your own works. See what other people have written, and add your own! @example -@uref{http://lsr.dsi.unimi.it} +@uref{http://lsr.di.unimi.it} @end example Particularly instructive examples from LSR are included in our diff --git a/Documentation/web/manuals.itexi b/Documentation/web/manuals.itexi index 4df4c9a313..e741a960ea 100644 --- a/Documentation/web/manuals.itexi +++ b/Documentation/web/manuals.itexi @@ -129,7 +129,7 @@ previous stable versions and current as a compressed archive. translation status for non-English readers. @item -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}: +@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository}: user-created examples, hints and tips. @item @@ -323,7 +323,7 @@ attempting any large projects. @subheading Snippets This shows a selected set of LilyPond snippets from the -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository} +@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository} (LSR). All the snippets are in the public domain. Please note that this document is not an exact subset of LSR. LSR diff --git a/Documentation/web/news-front.itexi b/Documentation/web/news-front.itexi index 54da77f0f5..50c8016a4f 100644 --- a/Documentation/web/news-front.itexi +++ b/Documentation/web/news-front.itexi @@ -9,9 +9,9 @@ @c used for news about the upcoming release; see CG 10.2 @newsItem -@subsubheading LilyPond 2.19.8 released @emph{June 15, 2014} +@subsubheading LilyPond 2.19.10 released @emph{July 13, 2014} -We are happy to announce the release of LilyPond 2.19.8. This +We are happy to announce the release of LilyPond 2.19.10. This release includes a number of enhancements, and contains some work in progress. You will have access to the very latest features, but some may be incomplete, and you may encounter bugs and crashes. If you diff --git a/Documentation/web/news.itexi b/Documentation/web/news.itexi index c01a1ffc90..0a876101e1 100644 --- a/Documentation/web/news.itexi +++ b/Documentation/web/news.itexi @@ -26,6 +26,30 @@ NOTE: * don't duplicate entries from news-front.itexi @end ignore +@newsItem +@subsubheading LilyPond 2.19.9 released @emph{June 29, 2014} + +We are happy to announce the release of LilyPond 2.19.9. This +release includes a number of enhancements, and contains some work +in progress. You will have access to the very latest features, but +some may be incomplete, and you may encounter bugs and crashes. If you +require a stable version of Lilypond, we recommend using the 2.18 +version. + +@newsEnd + +@newsItem +@subsubheading LilyPond 2.19.8 released @emph{June 15, 2014} + +We are happy to announce the release of LilyPond 2.19.8. This +release includes a number of enhancements, and contains some work +in progress. You will have access to the very latest features, but +some may be incomplete, and you may encounter bugs and crashes. If you +require a stable version of Lilypond, we recommend using the 2.18 +version. + +@newsEnd + @newsItem @subsubheading LilyPond 2.19.7 released @emph{May 25, 2014} @@ -4415,7 +4439,7 @@ file and download @ref{Old downloads}! @newsItem @subsubheading February 26, 2005 -The @uref{http://lsr.dsi.unimi.it/,LilyPond Snippet +The @uref{http://lsr.di.unimi.it/,LilyPond Snippet Repository (LSR)} is a searchable database of LilyPond code snippets. You can add snippets too, so join the LSR project, and contribute creative ideas for using LilyPond. diff --git a/Documentation/zh/web/community.itexi b/Documentation/zh/web/community.itexi index f073b63069..21046727b1 100644 --- a/Documentation/zh/web/community.itexi +++ b/Documentation/zh/web/community.itexi @@ -133,7 +133,7 @@ in your own works. See what other people have written, and add your own! @example -@uref{http://lsr.dsi.unimi.it} +@uref{http://lsr.di.unimi.it} @end example Particularly instructive examples from LSR are included in our diff --git a/Documentation/zh/web/manuals.itexi b/Documentation/zh/web/manuals.itexi index 63fd22356c..ef23742c99 100644 --- a/Documentation/zh/web/manuals.itexi +++ b/Documentation/zh/web/manuals.itexi @@ -133,7 +133,7 @@ LilyPond 是 @strong{基于文本} 的音乐雕版印刷程序。请您先阅读 针对非英语读者的翻译情况。 @item -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository}: +@uref{http://lsr@/.di@/.unimi@/.it,LilyPond Snippet Repository}: 用户创建的例子、窍门和秘诀。 @item @@ -304,7 +304,7 @@ LilyPond,同时也用简单的术语解释了一些关键的概念。您应该 @subheading 片断 Snippets 这里显示从 -@uref{http://lsr@/.dsi@/.unimi@/.it, +@uref{http://lsr@/.di@/.unimi@/.it, LilyPond 片断库 (LilyPond Snippet Repository@comma{} LSR)} 精选出来的一些 LilyPond 片断。所有的片断都属于公有领域。 diff --git a/ROADMAP b/ROADMAP index 2616c11c16..2bf571f72d 100644 --- a/ROADMAP +++ b/ROADMAP @@ -14,17 +14,20 @@ LilyPond's source files. | build bootstrapping, patches | for third party programs | -|-- Documentation/ Top sources for manuals +|-- Documentation/ Top sources for most of the manuals | | | | | | INDIVIDUAL CHAPTERS FOR EACH MANUAL: +| | Note: "Snippets" and "Internals Reference" are +| | auto-generated during the Documentation Build process. +| | | | | |-- contributor/ Contributor's Guide | |-- essay/ Essay on automated music engraving -| |-- extending/ Extending +| |-- extending/ Extending the functionality of LilyPond | |-- learning/ Learning Manual | |-- notation/ Notation Reference -| |-- usage/ Usage +| |-- usage/ Runnning the programs that come with LilyPond | |-- web/ The website | | | | @@ -35,6 +38,7 @@ LilyPond's source files. | | * individual chapters for each manual | | 2) a texidocs/ directory for snippet translations | | +| |-- ca/ Catalan | |-- cs/ Czech | |-- de/ German | |-- es/ Spanish @@ -56,7 +60,7 @@ LilyPond's source files. | |-- pictures/ Images used (eps/jpg/png/svg) | | `-- pdf/ (pdf) | |-- po/ Translated build/maintenance scripts -| |-- snippets/ Auto-generated .ly snippets (from the LSR) +| |-- snippets/ Auto-generated from the LSR and from ./new/ | | `-- new/ Snippets too new for the LSR | `-- topdocs/ AUTHORS, INSTALL, README | diff --git a/VERSION b/VERSION index 980df5a242..8866a61d69 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=2 MINOR_VERSION=19 -PATCH_LEVEL=9 +PATCH_LEVEL=11 MY_PATCH_LEVEL= VERSION_STABLE=2.18.2 -VERSION_DEVEL=2.19.8 +VERSION_DEVEL=2.19.10 diff --git a/input/regression/chord-name-override-text.ly b/input/regression/chord-name-override-text.ly index 2877cc85b0..36b4795dbd 100644 --- a/input/regression/chord-name-override-text.ly +++ b/input/regression/chord-name-override-text.ly @@ -10,4 +10,4 @@ a b c:7 \once \override ChordName.text = #"foo" d -} \ No newline at end of file +} diff --git a/input/regression/fret-diagrams-dots.ly b/input/regression/fret-diagrams-dots.ly index 1189c0b82c..e765d8e5ce 100644 --- a/input/regression/fret-diagrams-dots.ly +++ b/input/regression/fret-diagrams-dots.ly @@ -1,9 +1,14 @@ -\version "2.17.6" +\version "2.19.8" \header { texidoc=" Dots indicating fingerings can be changed in location, size, and coloring. +It is possible to parenthesize a single dot. The color +of the paranthesis may be taken from dot or default. +A possible collision between parathesis and fret-label- +indication can be resolved by an override for +@code{fret-label-horizontal-offset} in @code{fret-diagram-details}. " } @@ -12,6 +17,8 @@ size, and coloring. << \chords { + c1 | + c1 | c1 | c1 | c1 | @@ -65,7 +72,34 @@ size, and coloring. (place-fret 1 3 1) (barre 5 1 3))} - } ->> + %% C major for guitar, verbose style + \once \override TextScript.size = #1.4 + c'1 ^\markup { + \fret-diagram-verbose #'((mute 6) + (place-fret 5 3 1 blue) + (place-fret 4 5 2 red parenthesized) + (place-fret 3 5 3) + (place-fret 2 5 4 red) + (place-fret 1 3 1 blue parenthesized) + (barre 5 1 3))} + %% C major for guitar, verbose style + %% larger size and dot-radius + %% different dot-colors + %% parenthesizing single dots, with different paren-color + %% horizontal moving fret-label-indication + \once \override TextScript.size = #1.5 + \once \override TextScript.fret-diagram-details.dot-radius = #0.4 + \once \override TextScript.fret-diagram-details.fret-label-horizontal-offset = #0.2 + c'1 ^\markup { + \fret-diagram-verbose + #'((mute 6) + (place-fret 5 3 1 blue) + (place-fret 4 5 2 red parenthesized default-paren-color) + (place-fret 3 5 3) + (place-fret 2 5 4 red) + (place-fret 1 3 1 blue parenthesized) + (barre 5 1 3))} + } +>> diff --git a/input/regression/fret-diagrams-fingering.ly b/input/regression/fret-diagrams-fingering.ly index 786d34110c..81575a50c8 100644 --- a/input/regression/fret-diagrams-fingering.ly +++ b/input/regression/fret-diagrams-fingering.ly @@ -1,4 +1,4 @@ -\version "2.17.6" +\version "2.19.8" \header { texidoc=" @@ -19,6 +19,7 @@ and fingering label font size can be adjusted. c1 | c1 | c1 | + c1 | c1 } @@ -78,7 +79,8 @@ and fingering label font size can be adjusted. (place-fret 2 5 4) (place-fret 1 3 1) (barre 5 1 3))} - %% dot color inversion, white on black + %% C major for guitar, verbose style + %% dot color inversion, white on black \once \override TextScript.fret-diagram-details.dot-color = #'black c' ^\markup { \fret-diagram-verbose #'((mute 6) @@ -88,7 +90,8 @@ and fingering label font size can be adjusted. (place-fret 2 5 4) (place-fret 1 3 1) (barre 5 1 3))} - %% dot color inversion, black on white + %% C major for guitar, verbose style + %% dot color inversion, black on white \once \override TextScript.fret-diagram-details.dot-color = #'white c' ^\markup { \fret-diagram-verbose #'((mute 6) @@ -98,7 +101,17 @@ and fingering label font size can be adjusted. (place-fret 2 5 4) (place-fret 1 3 1) (barre 5 1 3))} + %% C major for guitar, verbose style + %% dot color inversion, global setting and per-dot + \once \override TextScript.fret-diagram-details.dot-color = #'grey + \once \override TextScript.size = #1.4 + c' ^\markup { + \fret-diagram-verbose #'((mute 6) + (place-fret 5 3 1 inverted) + (place-fret 4 5 2 red) + (place-fret 3 5 3 inverted) + (place-fret 2 5 4 red inverted) + (place-fret 1 3 1) + (barre 5 1 3))} } >> - - diff --git a/input/regression/fret-diagrams-fret-label.ly b/input/regression/fret-diagrams-fret-label.ly index 6ae0e392b1..495562dc28 100644 --- a/input/regression/fret-diagrams-fret-label.ly +++ b/input/regression/fret-diagrams-fret-label.ly @@ -1,4 +1,4 @@ -\version "2.17.6" +\version "2.19.8" \header { texidoc=" @@ -32,8 +32,8 @@ size, and number type. (barre 5 1 3))} %% C major for guitar, verbose style - \override TextScript.fret-diagram-details.label-dir = #LEFT - \override TextScript.fret-diagram-details.number-type = #'roman-upper + \override TextScript.fret-diagram-details.label-dir = #LEFT + \override TextScript.fret-diagram-details.number-type = #'roman-upper c' ^\markup { \fret-diagram-verbose #'((mute 6) (place-fret 5 3 1) @@ -45,8 +45,8 @@ size, and number type. %% C major for guitar, verbose style \revert TextScript.fret-diagram-details.label-dir - \override TextScript.fret-diagram-details.fret-label-font-mag = #0.4 - \override TextScript.fret-diagram-details.number-type = #'arabic + \override TextScript.fret-diagram-details.fret-label-font-mag = #0.4 + \override TextScript.fret-diagram-details.number-type = #'arabic \once \override TextScript.fret-diagram-details.fret-label-vertical-offset = #0.25 c' ^\markup { \fret-diagram-verbose #'((mute 6) @@ -60,6 +60,7 @@ size, and number type. %% C major for guitar, verbose style \revert TextScript.fret-diagram-details.label-dir \once \override TextScript.fret-diagram-details.number-type = #'custom + \once \override TextScript.fret-diagram-details.fret-label-horizontal-offset = #0.5 \once \override TextScript.fret-diagram-details.fret-label-custom-format = #"~d°" c' ^\markup { \fret-diagram-verbose #'((mute 6) @@ -72,5 +73,3 @@ size, and number type. } >> - - diff --git a/input/regression/input-order-alignment.ly b/input/regression/input-order-alignment.ly new file mode 100644 index 0000000000..cabb357364 --- /dev/null +++ b/input/regression/input-order-alignment.ly @@ -0,0 +1,25 @@ +\version "2.19.9" + +\header { + texidoc = "Alignment of lyrics, dynamics, textscripts and articulations +attached to chords with suspended notes doesn't depend on input order. +All these items are aligned on the \"main\" notehead (the one at the +end of the stem)." +} + +<< + \new Staff { + 2 s + \f s + ^"Text" s + -! s + } + \addlyrics { blah } + \new Staff { + 2 s + \f s + ^"Text" s + -! s + } + \addlyrics { blah } +>> diff --git a/input/regression/lyrics-no-notes.ly b/input/regression/lyrics-no-notes.ly index 30d2535c59..1262e70c9c 100644 --- a/input/regression/lyrics-no-notes.ly +++ b/input/regression/lyrics-no-notes.ly @@ -1,7 +1,6 @@ \header { - texidoc ="Lyric syllables without note attachment are not -centered. Centering may cause unintended effects when the -paper column is very wide." + texidoc ="Lyric syllables without note attachment are +aligned correctly even if the paper column is very wide." } \layout{ ragged-right = ##t } @@ -21,7 +20,7 @@ paper column is very wide." \new Lyrics \lyricmode { \skip 8 \skip 8 - x8 + xx8 x8 } >> diff --git a/input/regression/magnifyMusic-dots-beamlets.ly b/input/regression/magnifyMusic-dots-beamlets.ly new file mode 100644 index 0000000000..8d14060222 --- /dev/null +++ b/input/regression/magnifyMusic-dots-beamlets.ly @@ -0,0 +1,30 @@ +\version "2.19.8" + +\header { + texidoc = "Dot size and beamlet length should be scaled along +with notation size when using the @code{\magnifyMusic} command." +} + +\score { + \new Voice { + \omit Staff.TimeSignature + \time 7/4 + << + { \repeat unfold 7 \relative { g'8.[ g16] } } + { + \magnifyMusic 0.50 s4 + \magnifyMusic 0.63 s + \magnifyMusic 0.80 s + \magnifyMusic 1.00 s + \magnifyMusic 1.26 s + \magnifyMusic 1.59 s + \magnifyMusic 2.00 s + } + >> + } + \addlyrics { + "50%" _ _ _ _ _ + "100%" _ _ _ _ _ + "200%" _ + } +} diff --git a/input/regression/magnifyMusic-laissez-vibrer-ties.ly b/input/regression/magnifyMusic-laissez-vibrer-ties.ly new file mode 100644 index 0000000000..7a231e8e33 --- /dev/null +++ b/input/regression/magnifyMusic-laissez-vibrer-ties.ly @@ -0,0 +1,38 @@ +\version "2.19.8" + +\header { + texidoc = "Laissez vibrer ties should be scaled along with +notation size when using the @code{\magnifyMusic} command. They +can get thicker than the default, but not thinner." +} + +template = { + \omit Staff.TimeSignature + \time 7/2 + \magnifyMusic 0.50 s2 + \magnifyMusic 0.63 s + \magnifyMusic 0.80 s + \magnifyMusic 1.00 s + \magnifyMusic 1.26 s + \magnifyMusic 1.59 s + \magnifyMusic 2.00 s +} + +\score { + \new StaffGroup << + \new Staff \new Voice = "upper" << + \template + \repeat unfold 7 { g'4\laissezVibrer \hide Rest r4 } + >> + \new Lyrics \with { + \override VerticalAxisGroup.staff-affinity = #DOWN + } \lyricsto "upper" { + " 50%" \skip 1 \skip 1 " 100%" \skip 1 \skip 1 " 200%" + } + \new Staff \new Voice << + \clef bass + \template + \repeat unfold 7 { f4\laissezVibrer \hide Rest r4 } + >> + >> +} diff --git a/input/regression/magnifyMusic-phrasing-slurs.ly b/input/regression/magnifyMusic-phrasing-slurs.ly new file mode 100644 index 0000000000..b691e13250 --- /dev/null +++ b/input/regression/magnifyMusic-phrasing-slurs.ly @@ -0,0 +1,31 @@ +\version "2.19.8" + +\header { + texidoc = "Phrasing slurs should be scaled along with notation +size when using the @code{\magnifyMusic} command. They can get +thicker than the default, but not thinner." +} + +\score { + \new Voice { + \omit Staff.TimeSignature + \time 7/8 + << + { \repeat unfold 7 \relative { g'32[\( a b c\)] } } + { + \magnifyMusic 0.50 s8 + \magnifyMusic 0.63 s + \magnifyMusic 0.80 s + \magnifyMusic 1.00 s + \magnifyMusic 1.26 s + \magnifyMusic 1.59 s + \magnifyMusic 2.00 s + } + >> + } + \addlyrics { + "50%" _ _ _ _ _ _ _ _ _ _ _ + "100%" _ _ _ _ _ _ _ _ _ _ _ + "200%" _ _ _ + } +} diff --git a/input/regression/magnifyMusic-repeat-ties.ly b/input/regression/magnifyMusic-repeat-ties.ly new file mode 100644 index 0000000000..fd1c374fa4 --- /dev/null +++ b/input/regression/magnifyMusic-repeat-ties.ly @@ -0,0 +1,38 @@ +\version "2.19.8" + +\header { + texidoc = "Repeat ties should be scaled along with notation size +when using the @code{\magnifyMusic} command. They can get thicker +than the default, but not thinner." +} + +template = { + \omit Staff.TimeSignature + \time 7/2 + \magnifyMusic 0.50 s2 + \magnifyMusic 0.63 s + \magnifyMusic 0.80 s + \magnifyMusic 1.00 s + \magnifyMusic 1.26 s + \magnifyMusic 1.59 s + \magnifyMusic 2.00 s +} + +\score { + \new StaffGroup << + \new Staff \new Voice = "upper" << + \template + \repeat unfold 7 { g'4\repeatTie \hide Rest r4 } + >> + \new Lyrics \with { + \override VerticalAxisGroup.staff-affinity = #DOWN + } \lyricsto "upper" { + " 50%" \skip 1 \skip 1 " 100%" \skip 1 \skip 1 " 200%" + } + \new Staff \new Voice << + \clef bass + \template + \repeat unfold 7 { f4\repeatTie \hide Rest r4 } + >> + >> +} diff --git a/input/regression/magnifyMusic-slurs.ly b/input/regression/magnifyMusic-slurs.ly new file mode 100644 index 0000000000..31edb57a52 --- /dev/null +++ b/input/regression/magnifyMusic-slurs.ly @@ -0,0 +1,27 @@ +\version "2.19.8" + +\header { + texidoc = "Slurs should be scaled along with notation size when +using the @code{\magnifyMusic} command. They can get thicker than +the default, but not thinner." +} + +\score { + \new Voice { + \omit Staff.TimeSignature + \time 7/8 + << + { \repeat unfold 7 \relative { g'32[( a b c)] } } + { + \magnifyMusic 0.50 s8 + \magnifyMusic 0.63 s + \magnifyMusic 0.80 s + \magnifyMusic 1.00 s + \magnifyMusic 1.26 s + \magnifyMusic 1.59 s + \magnifyMusic 2.00 s + } + >> + } + \addlyrics { "50%" _ _ "100%" _ _ "200%" } +} diff --git a/input/regression/magnifyMusic-stem-beam-spacing.ly b/input/regression/magnifyMusic-stem-beam-spacing.ly index 2ca15238a0..135cfd9e8d 100644 --- a/input/regression/magnifyMusic-stem-beam-spacing.ly +++ b/input/regression/magnifyMusic-stem-beam-spacing.ly @@ -1,22 +1,32 @@ \version "2.19.8" \header { - texidoc = "Stem lengths, beam spacing/thickness, and horizontal -spacing should be scaled along with notation size when using the -@code{\magnifyMusic} command." + texidoc = "Stem length/thickness, beam spacing/thickness, and +horizontal spacing should be scaled along with notation size when +using the @code{\magnifyMusic} command. Stems can get thicker +than the default, but not thinner." } -\layout { ragged-right = ##t } - -\relative << - { \repeat unfold 7 { g'32[ a b c] } } - { - \magnifyMusic 0.50 { s8_"50%" } - \magnifyMusic 0.63 { s } - \magnifyMusic 0.80 { s } - \magnifyMusic 1.00 { s_"100%" } - \magnifyMusic 1.26 { s } - \magnifyMusic 1.59 { s } - \magnifyMusic 2.00 { s_"200%" } +\score { + \new Voice { + \omit Staff.TimeSignature + \time 7/8 + << + { \repeat unfold 7 \relative { g'32[ a b c] } } + { + \magnifyMusic 0.50 s8 + \magnifyMusic 0.63 s + \magnifyMusic 0.80 s + \magnifyMusic 1.00 s + \magnifyMusic 1.26 s + \magnifyMusic 1.59 s + \magnifyMusic 2.00 s + } + >> + } + \addlyrics { + "50%" _ _ _ _ _ _ _ _ _ _ _ + "100%" _ _ _ _ _ _ _ _ _ _ _ + "200%" _ _ _ } ->> +} diff --git a/input/regression/magnifyMusic-ties.ly b/input/regression/magnifyMusic-ties.ly new file mode 100644 index 0000000000..76d98fc47a --- /dev/null +++ b/input/regression/magnifyMusic-ties.ly @@ -0,0 +1,47 @@ +\version "2.19.8" + +\header { + texidoc = "Ties should be scaled along with notation size when +using the @code{\magnifyMusic} command. They can get thicker than +the default, but not thinner." +} + +template = { + \omit Staff.TimeSignature + \time 7/8 + \magnifyMusic 0.50 s8 + \magnifyMusic 0.63 s + \magnifyMusic 0.80 s + \magnifyMusic 1.00 s + \magnifyMusic 1.26 s + \magnifyMusic 1.59 s + \magnifyMusic 2.00 s +} + +\score { + \new StaffGroup << + \new Staff \new Voice = "upper" << + \template + \repeat unfold 7 { g'32[~ g' a'~ a'] } + >> + \new Staff \new Voice << + \template + \repeat unfold 7 { \tieUp g'32[~ g' a'~ a'] } + >> + \new Lyrics \with { + \override VerticalAxisGroup.staff-affinity = #DOWN + } \lyricsto "upper" { + "50%" _ _ _ _ _ "100%" _ _ _ _ _ " 200%" + } + \new Staff \new Voice << + \clef bass + \template + \repeat unfold 7 { f32[~ f e~ e] } + >> + \new Staff \new Voice << + \clef bass + \template + \repeat unfold 7 { \tieDown f32[~ f e~ e] } + >> + >> +} diff --git a/input/regression/magnifyStaff-bar-lines.ly b/input/regression/magnifyStaff-bar-lines.ly new file mode 100644 index 0000000000..4bc357e817 --- /dev/null +++ b/input/regression/magnifyStaff-bar-lines.ly @@ -0,0 +1,33 @@ +\version "2.19.11" + +\header { + texidoc = "Bar line thickness and spacing should be scaled along +with notation size when using the @code{\magnifyStaff} command." +} + +\paper { + score-system-spacing = #'((padding . 4)) +} + +example = +#(define-music-function (parser location mag) (positive?) + #{ + \new Staff \with { + \magnifyStaff #mag + instrumentName = \markup { + \fontsize #(+ 3 (- (magnification->font-size mag))) + #(format #f "~,2f" mag) + } + } { + \omit Staff.Clef + \omit Staff.TimeSignature + s4 \bar "|" + s4 \bar ":|.|:" + s4 \bar ":|.S.|:" + s4 \bar "|." + } + #}) + +\example 0.50 +\example 1.00 +\example 2.00 diff --git a/input/regression/magnifyStaff-dots-beamlets.ly b/input/regression/magnifyStaff-dots-beamlets.ly new file mode 100644 index 0000000000..e4dd1f7a5b --- /dev/null +++ b/input/regression/magnifyStaff-dots-beamlets.ly @@ -0,0 +1,21 @@ +\version "2.19.11" + +\header { + texidoc = "Dot size and beamlet length should be scaled along +with notation size when using the @code{\magnifyStaff} command." +} + +music = { a'8.[ a'16] } +{ + \magnifyStaff 0.50 \music \music \bar "|" + \magnifyStaff 0.71 \music \bar "|" + \magnifyStaff 1.00 \music \bar "|" + \magnifyStaff 1.41 \music \bar "|" + \magnifyStaff 2.00 \music \bar "|" +} \addlyrics { + "0.50 " _ _ _ + "0.71 " _ + "1.00 " _ + "1.41 " _ + "2.00 " _ +} diff --git a/input/regression/magnifyStaff-space-alist.ly b/input/regression/magnifyStaff-space-alist.ly new file mode 100644 index 0000000000..561ac9e72a --- /dev/null +++ b/input/regression/magnifyStaff-space-alist.ly @@ -0,0 +1,38 @@ +\version "2.19.11" + +\header { + texidoc = "@code{space-alist} values should be scaled along +with notation size when using the @code{\magnifyStaff} command." +} + +\paper { + indent = 0 + ragged-right = ##t + system-system-spacing = #'((padding . 3)) + score-markup-spacing = #'((padding . 6)) +} + +example = +#(define-music-function (parser location mag) (positive?) + #{ + \new Staff \with { + \magnifyStaff #mag + \consists "Custos_engraver" + \override Custos.style = #'mensural + } \new Voice \with { + \consists "Ambitus_engraver" + } { + \omit Score.BarNumber + \key d \major + d''2 \breathe d'' | + \break + g'1 | + \clef treble + \key c \major + g'1 | + } + #}) + +\markup "0.50:" \example 0.50 +\markup "1.00:" \example 1.00 +\markup "2.00:" \example 2.00 diff --git a/input/regression/magnifyStaff-staff-line-thickness.ly b/input/regression/magnifyStaff-staff-line-thickness.ly new file mode 100644 index 0000000000..4ff9568d55 --- /dev/null +++ b/input/regression/magnifyStaff-staff-line-thickness.ly @@ -0,0 +1,21 @@ +\version "2.19.11" + +\header { + texidoc = "Staff line thickness should be scaled along with +staff size when using the @code{\magnifyStaff} command. Staff +lines can get thicker than the default, but not thinner." +} + +{ + \magnifyStaff 0.50 b'1 + \magnifyStaff 0.71 b'1 + \magnifyStaff 1.00 b'1 + \magnifyStaff 1.41 b'1 + \magnifyStaff 2.00 b'1 +} \addlyrics { + " 0.50 " + " 0.71 " + " 1.00 " + " 1.41 " + " 2.00 " +} diff --git a/input/regression/modal-transforms.ly b/input/regression/modal-transforms.ly index d514a92a09..9ff66c157b 100644 --- a/input/regression/modal-transforms.ly +++ b/input/regression/modal-transforms.ly @@ -9,8 +9,8 @@ cOctatonicScale = { ges' aes' a' b' } motif = { - c'8. ees'16 ges'8. a'16 - b'8. aes'16 f'8. d'16 + c'8. ees'16( ges'8. a'16 + b'8.) aes'16 f'8. d'16 } \score { diff --git a/input/regression/musicxml/01b-Pitches-Intervals.xml b/input/regression/musicxml/01b-Pitches-Intervals.xml index c033498d52..fe38b07d00 100644 --- a/input/regression/musicxml/01b-Pitches-Intervals.xml +++ b/input/regression/musicxml/01b-Pitches-Intervals.xml @@ -2,7 +2,7 @@ - Various piches and interval sizes + Various pitches and interval sizes All pitch intervals in ascending @@ -50,6 +50,8 @@ 1 quarter + + C @@ -59,6 +61,7 @@ 1 1 quarter + sharp @@ -69,7 +72,10 @@ 1 1 quarter + flat + + D @@ -79,6 +85,7 @@ 1 1 quarter + flat @@ -89,7 +96,10 @@ 1 1 quarter + sharp + + D @@ -108,6 +118,8 @@ 1 quarter + + D @@ -117,6 +129,7 @@ 1 1 quarter + sharp @@ -127,7 +140,10 @@ 1 1 quarter + flat + + E @@ -137,6 +153,7 @@ 1 1 quarter + flat @@ -147,7 +164,10 @@ 1 1 quarter + sharp + + E @@ -166,6 +186,8 @@ 1 quarter + + E @@ -175,6 +197,7 @@ 1 1 quarter + sharp @@ -185,7 +208,10 @@ 1 1 quarter + flat + + F @@ -195,6 +221,7 @@ 1 1 quarter + flat @@ -205,7 +232,10 @@ 1 1 quarter + sharp + + F @@ -224,6 +254,8 @@ 1 quarter + + F @@ -233,6 +265,7 @@ 1 1 quarter + sharp @@ -243,7 +276,10 @@ 1 1 quarter + flat + + G @@ -253,6 +289,7 @@ 1 1 quarter + flat @@ -263,7 +300,10 @@ 1 1 quarter + sharp + + G @@ -282,6 +322,8 @@ 1 quarter + + G @@ -291,6 +333,7 @@ 1 1 quarter + sharp @@ -301,7 +344,10 @@ 1 1 quarter + flat + + A @@ -311,6 +357,7 @@ 1 1 quarter + flat @@ -321,7 +368,10 @@ 1 1 quarter + sharp + + A @@ -340,6 +390,8 @@ 1 quarter + + A @@ -349,6 +401,7 @@ 1 1 quarter + sharp @@ -359,7 +412,10 @@ 1 1 quarter + flat + + B @@ -369,6 +425,7 @@ 1 1 quarter + flat @@ -379,7 +436,10 @@ 1 1 quarter + sharp + + B @@ -398,6 +458,8 @@ 1 quarter + + B @@ -407,6 +469,7 @@ 1 1 quarter + sharp @@ -417,7 +480,10 @@ 1 1 quarter + flat + + C @@ -427,6 +493,7 @@ 1 1 quarter + flat @@ -437,7 +504,10 @@ 1 1 quarter + sharp + + C @@ -456,6 +526,8 @@ 1 quarter + + C @@ -465,6 +537,7 @@ 1 1 quarter + sharp @@ -475,7 +548,10 @@ 1 1 quarter + flat + + D @@ -485,6 +561,7 @@ 1 1 quarter + flat @@ -495,7 +572,10 @@ 1 1 quarter + sharp + + D @@ -514,6 +594,8 @@ 1 quarter + + D @@ -523,6 +605,7 @@ 1 1 quarter + sharp @@ -533,7 +616,10 @@ 1 1 quarter + flat + + E @@ -543,6 +629,7 @@ 1 1 quarter + flat @@ -553,7 +640,10 @@ 1 1 quarter + sharp + + E @@ -572,6 +662,8 @@ 1 quarter + + E @@ -581,6 +673,7 @@ 1 1 quarter + sharp @@ -591,7 +684,10 @@ 1 1 quarter + flat + + F @@ -601,6 +697,7 @@ 1 1 quarter + flat @@ -611,7 +708,10 @@ 1 1 quarter + sharp + + F @@ -630,6 +730,8 @@ 1 quarter + + F @@ -639,6 +741,7 @@ 1 1 quarter + sharp @@ -649,7 +752,10 @@ 1 1 quarter + flat + + G @@ -659,6 +765,7 @@ 1 1 quarter + flat @@ -669,7 +776,10 @@ 1 1 quarter + sharp + + G @@ -688,6 +798,8 @@ 1 quarter + + G @@ -697,6 +809,7 @@ 1 1 quarter + sharp @@ -707,7 +820,10 @@ 1 1 quarter + flat + + A @@ -717,6 +833,7 @@ 1 1 quarter + flat @@ -727,7 +844,10 @@ 1 1 quarter + sharp + + A @@ -746,6 +866,8 @@ 1 quarter + + A @@ -755,6 +877,7 @@ 1 1 quarter + sharp @@ -765,7 +888,10 @@ 1 1 quarter + flat + + B @@ -775,6 +901,7 @@ 1 1 quarter + flat @@ -785,7 +912,10 @@ 1 1 quarter + sharp + + B @@ -804,6 +934,8 @@ 1 quarter + + B @@ -813,6 +945,7 @@ 1 1 quarter + sharp @@ -823,6 +956,7 @@ 1 1 quarter + flat diff --git a/input/regression/musicxml/02a-Rests-Durations.xml b/input/regression/musicxml/02a-Rests-Durations.xml index 1398844548..8e5bce1184 100644 --- a/input/regression/musicxml/02a-Rests-Durations.xml +++ b/input/regression/musicxml/02a-Rests-Durations.xml @@ -19,7 +19,7 @@ - 32 + 64 0 major @@ -38,23 +38,25 @@ - 128 + 256 1 + whole - 128 + 256 1 + whole - 128 + 256 1 whole @@ -63,49 +65,49 @@ - 64 + 128 1 half - 32 + 64 1 quarter - 16 + 32 1 eighth - 8 + 16 1 16th - 4 + 8 1 32nd - 2 + 4 1 64th - 1 + 2 1 128th - 1 + 2 1 128th @@ -114,14 +116,14 @@ - 96 + 192 1 half - 32 + 64 1 quarter @@ -130,42 +132,55 @@ - 48 + 64 + 1 + quarter + + + + 96 1 quarter - 24 + 48 1 eighth - 12 + 24 1 16th - 6 + 12 1 32nd - 3 + 6 1 64th - 2 + 3 + 1 + 128th + + + + + 3 1 128th diff --git a/input/regression/scheme-engraver.ly b/input/regression/scheme-engraver.ly index 26d703613c..177e10a701 100644 --- a/input/regression/scheme-engraver.ly +++ b/input/regression/scheme-engraver.ly @@ -7,49 +7,46 @@ \version "2.16.0" +#(define (t->m t) + "Return the current moment of translator object @var{t}." + (ly:context-current-moment (ly:translator-context t))) + +engraver_demo = +#(make-engraver + ((initialize translator) + (format 1 "\n\n~16a: (initialize)\n" (t->m translator))) + ((start-translation-timestep translator) + (format 1 "~16a: (start-translation-timestep)\n" (t->m translator))) + (listeners + ((rest-event engraver event) + (let ((grob (ly:engraver-make-grob engraver 'TextScript event))) + (ly:grob-set-property! grob 'text "hi") + (format 1 "~16a: detected this rest event: ~a\n~16a: created this grob: ~a\n" + (t->m engraver) event (t->m engraver) grob)))) + (acknowledgers + ((note-head-interface engraver grob source-engraver) + (format 1 "~16a: saw ~a coming from ~a\n" + (t->m engraver) grob source-engraver))) + (end-acknowledgers + ((beam-interface engraver grob source-engraver) + (format 1 "~16a: saw end of ~a coming from ~a\n" + (t->m engraver) grob source-engraver))) + ((process-music translator) + (format 1 "~16a: (process-music)\n" (t->m translator))) + ((process-acknowledged translator) + (format 1 "~16a: (process-acknowledged)\n" (t->m translator))) + ((stop-translation-timestep translator) + (format 1 "~16a: (stop-translation-timestep)\n" (t->m translator))) + ((finalize translator) + (format 1 "~16a: (finalize)\n" (t->m translator)))) + \layout { \context { \Voice \consists - #(make-engraver - ((initialize trans) - (display (list "initialize" - (ly:context-current-moment - (ly:translator-context trans)) "\n") (current-error-port))) - ((start-translation-timestep trans) - (display (list "start-trans" - (ly:context-current-moment - (ly:translator-context trans)) "\n") (current-error-port))) - (listeners - ((rest-event engraver event) - (let* - ((x (ly:engraver-make-grob engraver 'TextScript event))) - (display (list "caught event" event "\ncreate:\n" x "\n") (current-error-port)) - (ly:grob-set-property! x 'text "hi")))) - (acknowledgers - ((note-head-interface engraver grob source-engraver) - (display (list "saw head: " grob " coming from " source-engraver) (current-error-port)))) - (end-acknowledgers - ((beam-interface engraver grob source-engraver) - (display (list "saw end of beam: " grob " coming from " source-engraver) (current-error-port)))) - ((process-music trans) - (display (list "process-music" - (ly:context-current-moment - (ly:translator-context trans)) "\n") (current-error-port))) - ((process-acknowledged trans) - (display (list "process-acknowledged" - (ly:context-current-moment - (ly:translator-context trans)) "\n") (current-error-port))) - ((stop-translation-timestep trans) - (display (list "stop-trans" - (ly:context-current-moment - (ly:translator-context trans)) "\n") (current-error-port))) - ((finalize trans) - (display (list "finalize" - (ly:context-current-moment - (ly:translator-context trans)) "\n") (current-error-port)))) - }} - + \engraver_demo + } +} \relative c' { c8[ r c] diff --git a/input/regression/text-spanner-attachment-alignment.ly b/input/regression/text-spanner-attachment-alignment.ly index 098ef131db..02f97ff829 100644 --- a/input/regression/text-spanner-attachment-alignment.ly +++ b/input/regression/text-spanner-attachment-alignment.ly @@ -1,23 +1,21 @@ \header { - texidoc = "Text and trill spanners are attached to note columns, so attachments in other staves have no effect on them." - - } +} \layout { ragged-right = ##t - } +} \version "2.17.6" << - \new Staff { + \new Staff { \override TextSpanner.bound-details.left.text = "*" - c'16 \startTrillSpan c' c' c' \stopTrillSpan - c'16 \startTextSpan c' c' c' \stopTextSpan - } - \new Staff { - \override TextScript.self-alignment-X = #RIGHT - \repeat unfold 2 {c'4 _ \markup { "FAT" } } - } + c'16 \startTrillSpan c' c' c' \stopTrillSpan + c'16 \startTextSpan c' c' c' \stopTextSpan + } + \new Staff { + \override TextScript.self-alignment-X = #RIGHT + \repeat unfold 2 {c'4 _ \markup { "LONG" } } + } >> diff --git a/input/regression/unassociated-lyrics-alignment.ly b/input/regression/unassociated-lyrics-alignment.ly new file mode 100644 index 0000000000..b9db9a69df --- /dev/null +++ b/input/regression/unassociated-lyrics-alignment.ly @@ -0,0 +1,44 @@ +\version "2.19.9" +#(set-global-staff-size 30) + +\header { + texidoc = "Lyrics without an @code{associatedVoice} should align properly. +If there are notes in the @code{PaperColumn}, they should align to them, +and when there are no notes, they should align relative to the +@code{PaperColumn} itself (represented with blue @code{GridLines} here)" +} + +\paper { + ragged-right = ##f +} + +\layout { + \context { + \Voice + \consists "Grid_point_engraver" + gridInterval = #(ly:make-moment 1/4) + \override GridPoint.Y-extent = #'(-1 . 3) + } + \context { + \Staff + \consists "Grid_line_span_engraver" + \override GridLine.color = #blue + } +} + +music = << + \new Staff << + \new Voice { s1*3 } % needed for gridLines + \new Voice { d'2 d' 1 s1 } + >> + \new Lyrics { \lyricmode { foo2 bar mmmm1 a2 bom } } +>> + +\markup "default (centered):" +\music + +\markup "right-aligned:" +{ + \override Score.LyricText.self-alignment-X = #RIGHT + \music +} diff --git a/lily/align-interface.cc b/lily/align-interface.cc index f9e0e06345..36bfec72a4 100644 --- a/lily/align-interface.cc +++ b/lily/align-interface.cc @@ -367,7 +367,7 @@ Align_interface::set_ordered (Grob *me) ADD_INTERFACE (Align_interface, "Order grobs from top to bottom, left to right, right to left" " or bottom to top. For vertical alignments of staves, the" - " @code{break-system-details} of the left" + " @code{line-break-system-details} of the left" " @rinternals{NonMusicalPaperColumn} may be set to tune" " vertical spacing.", diff --git a/lily/chord-name-engraver.cc b/lily/chord-name-engraver.cc index 0057176a9f..b4f1dd33be 100644 --- a/lily/chord-name-engraver.cc +++ b/lily/chord-name-engraver.cc @@ -42,7 +42,6 @@ protected: DECLARE_TRANSLATOR_LISTENER (note); DECLARE_TRANSLATOR_LISTENER (rest); private: - Item *chord_name_; vector notes_; Stream_event *rest_event_; @@ -55,94 +54,91 @@ Chord_name_engraver::finalize () Chord_name_engraver::Chord_name_engraver () { - chord_name_ = 0; rest_event_ = 0; } void Chord_name_engraver::process_music () { - if (!rest_event_ && !notes_.size ()) - return; - - chord_name_ = make_item ("ChordName", - rest_event_ ? rest_event_->self_scm () : notes_[0]->self_scm ()); - - SCM maybe_markup = chord_name_->get_property_data ("text"); - - bool make_markup = !(Text_interface::is_markup (maybe_markup) - || ly_is_procedure (maybe_markup)); + if (!rest_event_ && notes_.empty ()) + return; SCM markup; - - if (rest_event_ && !make_markup) { } - else if (rest_event_) + SCM bass = SCM_EOL; + SCM inversion = SCM_EOL; + SCM pitches = SCM_EOL; + Item *chord_name = 0; + + // rest events present a hen-and-egg problem with regard to + // overriding the text property of the ChordName grob since we + // cannot create a ChordName grob, look at its text property and, if + // not set, use noChordSymbol to decide whether we should not have + // created the grob in the first place. + if (rest_event_) { SCM no_chord_markup = get_property ("noChordSymbol"); if (!Text_interface::is_markup (no_chord_markup)) return; markup = no_chord_markup; + chord_name = make_item ("ChordName", rest_event_->self_scm ()); + chord_name->set_property ("text", markup); } else { - SCM bass = SCM_EOL; - SCM inversion = SCM_EOL; - SCM pitches = SCM_EOL; - - Stream_event *inversion_event = 0; - for (vsize i = 0; i < notes_.size (); i++) + chord_name = make_item ("ChordName", notes_[0]->self_scm ()); + // We cannot actually delay fetching the text property in case + // it is a callback since we need to compare the generated + // markups for the sake of chordChanges + markup = chord_name->get_property ("text"); + if (!Text_interface::is_markup (markup)) { - Stream_event *n = notes_[i]; - SCM p = n->get_property ("pitch"); - if (!unsmob_pitch (p)) - continue; - - if (n->get_property ("inversion") == SCM_BOOL_T) + for (vsize i = 0; i < notes_.size (); i++) { - inversion_event = n; - inversion = p; + Stream_event *n = notes_[i]; + SCM p = n->get_property ("pitch"); + if (!unsmob_pitch (p)) + continue; + + if (n->get_property ("bass") == SCM_BOOL_T) + bass = p; + else + { + SCM oct = n->get_property ("octavation"); + if (scm_is_number (oct)) + { + Pitch orig = unsmob_pitch (p)->transposed (Pitch (-scm_to_int (oct), 0)); + pitches = scm_cons (orig.smobbed_copy (), pitches); + } + else + pitches = scm_cons (p, pitches); + if (n->get_property ("inversion") == SCM_BOOL_T) + { + inversion = p; + if (!scm_is_number (oct)) + programming_error ("inversion does not have original pitch"); + } + } } - else if (n->get_property ("bass") == SCM_BOOL_T) - bass = p; - else - pitches = scm_cons (p, pitches); - } - if (inversion_event) - { - SCM oct = inversion_event->get_property ("octavation"); - if (scm_is_number (oct)) - { - Pitch *p = unsmob_pitch (inversion_event->get_property ("pitch")); - int octavation = scm_to_int (oct); - Pitch orig = p->transposed (Pitch (-octavation, 0, 0)); + pitches = scm_sort_list (pitches, Pitch::less_p_proc); - pitches = scm_cons (orig.smobbed_copy (), pitches); + SCM name_proc = get_property ("chordNameFunction"); + markup = scm_call_4 (name_proc, pitches, bass, inversion, + context ()->self_scm ()); + if (!Text_interface::is_markup (markup)) + { + // Ugh, we created a grob, now we better populate it. + // Use an empty string. + markup = scm_string (SCM_EOL); } - else - programming_error ("inversion does not have original pitch"); + chord_name->set_property ("text", markup); } - - pitches = scm_sort_list (pitches, Pitch::less_p_proc); - - SCM name_proc = get_property ("chordNameFunction"); - if (make_markup) - markup = scm_call_4 (name_proc, pitches, bass, inversion, - context ()->self_scm ()); } - /* - Ugh. - */ - if (make_markup) - chord_name_->set_property ("text", markup); - else if (Text_interface::is_markup (maybe_markup)) - markup = maybe_markup; SCM chord_changes = get_property ("chordChanges"); SCM last_chord = get_property ("lastChord"); - if (to_boolean (chord_changes) && scm_is_pair (last_chord) - && ly_is_equal (markup, last_chord)) - chord_name_->set_property ("begin-of-line-visible", SCM_BOOL_T); + if (to_boolean (chord_changes) && ly_is_equal (markup, last_chord)) + chord_name->set_property ("begin-of-line-visible", SCM_BOOL_T); context ()->set_property ("lastChord", markup); } @@ -164,7 +160,6 @@ Chord_name_engraver::listen_rest (Stream_event *ev) void Chord_name_engraver::stop_translation_timestep () { - chord_name_ = 0; notes_.clear (); rest_event_ = 0; } diff --git a/lily/drum-note-performer.cc b/lily/drum-note-performer.cc index e3371a51c0..531c3dde32 100644 --- a/lily/drum-note-performer.cc +++ b/lily/drum-note-performer.cc @@ -81,7 +81,7 @@ Drum_note_performer::process_music () } Audio_note *p = new Audio_note (*pit, len, - tie_event, Pitch (0, 0, 0), velocity); + tie_event, Pitch (0, 0), velocity); Audio_element_info info (p, n); announce_element (info); } diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index d1b8cf00b5..fdf682f773 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -261,17 +261,14 @@ Dynamic_engraver::acknowledge_note_column (Grob_info info) { extract_grob_set (info.grob (), "note-heads", heads); /* - Spacing constraints may require dynamics to be aligned on rests, + Spacing constraints may require dynamics to be attached to rests, so check for a rest if this note column has no note heads. */ Grob *x_parent = (heads.size () - ? heads[0] + ? info.grob () : unsmob_grob (info.grob ()->get_object ("rest"))); if (x_parent) - { - script_->set_parent (x_parent, X_AXIS); - Self_alignment_interface::set_center_parent (script_, X_AXIS); - } + script_->set_parent (x_parent, X_AXIS); } if (current_spanner_ && !current_spanner_->get_bound (LEFT)) diff --git a/lily/fingering-engraver.cc b/lily/fingering-engraver.cc index d23a5e35f8..b8e7d94df1 100644 --- a/lily/fingering-engraver.cc +++ b/lily/fingering-engraver.cc @@ -109,8 +109,7 @@ Fingering_engraver::make_script (Direction d, Stream_event *r, int i) fingerings for chords need different settings. */ Side_position_interface::set_axis (fingering, Y_AXIS); - Self_alignment_interface::set_align_self (fingering, X_AXIS); - Self_alignment_interface::set_center_parent (fingering, X_AXIS); + Self_alignment_interface::set_aligned_on_parent (fingering, X_AXIS); // Hmm int priority = 200; diff --git a/lily/general-scheme.cc b/lily/general-scheme.cc index 19d0af73ca..95d4081f39 100644 --- a/lily/general-scheme.cc +++ b/lily/general-scheme.cc @@ -271,7 +271,12 @@ LY_DEFINE (ly_protects, "ly:protects", 0, 0, 0, (), "Return hash of protected objects.") { + //scm_protects is available only in Guile versions before 2.1. +#if SCM_MAJOR_VERSION < 2 || SCM_MAJOR_VERSION == 2 && SCM_MINOR_VERSION < 1 return scm_protects; +#else + return programming_error ("ly:protects is not supported in Guile 2.1"); +#endif } LY_DEFINE (ly_gettext, "ly:gettext", diff --git a/lily/include/lily-guile.hh b/lily/include/lily-guile.hh index 63e114a3fe..d678ec848a 100644 --- a/lily/include/lily-guile.hh +++ b/lily/include/lily-guile.hh @@ -121,15 +121,15 @@ inline SCM ly_bool2scm (bool x) { return scm_from_bool (x); } inline SCM ly_append2 (SCM x1, SCM x2) { - return scm_append (scm_listify (x1, x2, SCM_UNDEFINED)); + return scm_append (scm_list_2 (x1, x2)); } inline SCM ly_append3 (SCM x1, SCM x2, SCM x3) { - return scm_append (scm_listify (x1, x2, x3, SCM_UNDEFINED)); + return scm_append (scm_list_3 (x1, x2, x3)); } inline SCM ly_append4 (SCM x1, SCM x2, SCM x3, SCM x4) { - return scm_append (scm_listify (x1, x2, x3, x4, SCM_UNDEFINED)); + return scm_append (scm_list_4 (x1, x2, x3, x4)); } /* diff --git a/lily/include/note-column.hh b/lily/include/note-column.hh index 151d9208ad..9fdabd2962 100644 --- a/lily/include/note-column.hh +++ b/lily/include/note-column.hh @@ -36,6 +36,7 @@ public: static Grob *accidentals (Grob *me); static Slice head_positions_interval (Grob *me); static Grob *first_head (Grob *me); + static Interval calc_main_heads_extent (Grob *me); static Grob *get_rest (Grob *me); static void set_stem (Grob *me, Grob *); static void add_head (Grob *me, Grob *); diff --git a/lily/include/paper-column.hh b/lily/include/paper-column.hh index c1638a2539..c0c33b268d 100644 --- a/lily/include/paper-column.hh +++ b/lily/include/paper-column.hh @@ -59,6 +59,7 @@ public: static bool is_extraneous_column_from_ligature (Grob *); static Real minimum_distance (Grob *l, Grob *r); static Interval break_align_width (Grob *me, SCM align_sym); + static Interval get_interface_extent (Grob *column, SCM iface, Axis a); }; #endif // PAPER_COLUMN_HH diff --git a/lily/include/pitch.hh b/lily/include/pitch.hh index cab0c50922..eff3f66d79 100644 --- a/lily/include/pitch.hh +++ b/lily/include/pitch.hh @@ -52,8 +52,7 @@ public: int get_notename () const; Rational get_alteration () const; - Pitch (int octave, int notename, Rational accidental); - Pitch (int octave, int notename); + Pitch (int octave, int notename, Rational accidental = 0); Pitch (); Pitch transposed (Pitch) const; diff --git a/lily/include/self-alignment-interface.hh b/lily/include/self-alignment-interface.hh index 2b34b39eff..867f97bf86 100644 --- a/lily/include/self-alignment-interface.hh +++ b/lily/include/self-alignment-interface.hh @@ -30,18 +30,15 @@ struct Self_alignment_interface static SCM aligned_on_self (Grob *me, Axis a, bool pure, int start, int end); static SCM centered_on_object (Grob *me, Axis a); static SCM aligned_on_parent (Grob *me, Axis a); - static void set_center_parent (Grob *me, Axis a); - static void set_align_self (Grob *me, Axis a); + static void set_aligned_on_parent (Grob *me, Axis a); DECLARE_SCHEME_CALLBACK (x_aligned_on_self, (SCM element)); DECLARE_SCHEME_CALLBACK (y_aligned_on_self, (SCM element)); DECLARE_SCHEME_CALLBACK (pure_y_aligned_on_self, (SCM element, SCM start, SCM end)); - DECLARE_SCHEME_CALLBACK (centered_on_note_columns, (SCM element)); DECLARE_SCHEME_CALLBACK (centered_on_x_parent, (SCM element)); DECLARE_SCHEME_CALLBACK (centered_on_y_parent, (SCM element)); - DECLARE_SCHEME_CALLBACK (x_centered_on_y_parent, (SCM element)); DECLARE_SCHEME_CALLBACK (aligned_on_x_parent, (SCM element)); DECLARE_SCHEME_CALLBACK (aligned_on_y_parent, (SCM element)); }; diff --git a/lily/key-engraver.cc b/lily/key-engraver.cc index 5b48b1d78a..07324d230b 100644 --- a/lily/key-engraver.cc +++ b/lily/key-engraver.cc @@ -209,7 +209,7 @@ Key_engraver::initialize () context ()->set_property ("keyAlterations", SCM_EOL); context ()->set_property ("lastKeyAlterations", SCM_EOL); - Pitch p (0, 0, 0); + Pitch p; context ()->set_property ("tonic", p.smobbed_copy ()); } diff --git a/lily/key-performer.cc b/lily/key-performer.cc index 9a3675fe3a..4fcd3f6fa6 100644 --- a/lily/key-performer.cc +++ b/lily/key-performer.cc @@ -65,7 +65,7 @@ Key_performer::process_music () scm_to_int (scm_caar (pitchlist)), ly_scm2rational (scm_cdar (pitchlist))); - Pitch c_do (0, 0, 0); + Pitch c_do; SCM c_pitchlist = ly_transpose_key_alist (pitchlist, diff --git a/lily/lyric-engraver.cc b/lily/lyric-engraver.cc index 6dce40a464..bbe15845a6 100644 --- a/lily/lyric-engraver.cc +++ b/lily/lyric-engraver.cc @@ -175,18 +175,12 @@ Lyric_engraver::stop_translation_timestep () if (head) { - text_->set_parent (head, X_AXIS); + text_->set_parent (head->get_parent(X_AXIS), X_AXIS); if (melisma_busy (voice) && !to_boolean (get_property ("ignoreMelismata"))) text_->set_property ("self-alignment-X", get_property ("lyricMelismaAlignment")); } - else - { - text_->warning (_ ("Lyric syllable does not have note." - " Use \\lyricsto or associatedVoice.")); - text_->set_property ("X-offset", scm_from_int (0)); - } } last_text_ = text_; diff --git a/lily/multi-measure-rest-engraver.cc b/lily/multi-measure-rest-engraver.cc index 9f460dd981..3b968e654f 100644 --- a/lily/multi-measure-rest-engraver.cc +++ b/lily/multi-measure-rest-engraver.cc @@ -146,6 +146,7 @@ Multi_measure_rest_engraver::process_music () { Side_position_interface::add_support (numbers_[i], mmrest_); numbers_[i]->set_parent (mmrest_, Y_AXIS); + numbers_[i]->set_parent (mmrest_, X_AXIS); } start_measure_ diff --git a/lily/new-fingering-engraver.cc b/lily/new-fingering-engraver.cc index 51eb26c6d2..7f504ae452 100644 --- a/lily/new-fingering-engraver.cc +++ b/lily/new-fingering-engraver.cc @@ -288,8 +288,7 @@ New_fingering_engraver::position_scripts (SCM orientations, Side_position_interface::add_support (f, unsmob_grob (ft.head_->get_object ("dot"))); - Self_alignment_interface::set_align_self (f, Y_AXIS); - Self_alignment_interface::set_center_parent (f, Y_AXIS); + Self_alignment_interface::set_aligned_on_parent (f, Y_AXIS); Side_position_interface::set_axis (f, X_AXIS); f->set_property ("direction", scm_from_int (hordir)); @@ -307,8 +306,7 @@ New_fingering_engraver::position_scripts (SCM orientations, f->set_property ("script-priority", scm_from_int (finger_prio + d * ft.position_)); - Self_alignment_interface::set_align_self (f, X_AXIS); - Self_alignment_interface::set_center_parent (f, X_AXIS); + Self_alignment_interface::set_aligned_on_parent (f, X_AXIS); Side_position_interface::set_axis (f, Y_AXIS); f->set_property ("direction", scm_from_int (d)); diff --git a/lily/note-column.cc b/lily/note-column.cc index 867542bdbd..625bed1b2f 100644 --- a/lily/note-column.cc +++ b/lily/note-column.cc @@ -156,6 +156,26 @@ Note_column::first_head (Grob *me) return st ? Stem::first_head (st) : 0; } +/* + Return extent of the noteheads in the "main column", + i.e. excluding any suspended noteheads. +*/ +Interval +Note_column::calc_main_heads_extent (Grob *me) +{ + if (get_stem (me)) + return first_head (me)->extent (me, X_AXIS); + else + { + // no stems => no suspended noteheads. + extract_grob_set (me, "note-heads", heads); + if (heads.size()) + return heads[0]->extent (me, X_AXIS); + else + return Interval (0, 0); + } +} + /* Return the first AccidentalPlacement grob that we find in a note-head. */ diff --git a/lily/note-heads-engraver.cc b/lily/note-heads-engraver.cc index 5caf42f221..2aec7501b5 100644 --- a/lily/note-heads-engraver.cc +++ b/lily/note-heads-engraver.cc @@ -99,7 +99,7 @@ Note_heads_engraver::process_music () if (scm_is_vector (shape_vector)) { SCM scm_tonic = get_property ("tonic"); - Pitch tonic (0, 0, 0); + Pitch tonic; if (unsmob_pitch (scm_tonic)) tonic = *unsmob_pitch (scm_tonic); diff --git a/lily/page-layout-problem.cc b/lily/page-layout-problem.cc index 52720d5449..3a1a84cfc5 100644 --- a/lily/page-layout-problem.cc +++ b/lily/page-layout-problem.cc @@ -35,7 +35,7 @@ #include "text-interface.hh" /* - Returns the number of footntoes associated with a given line. + Returns the number of footnotes associated with a given line. */ vector diff --git a/lily/paper-column.cc b/lily/paper-column.cc index d5ac33b55a..1cb1452c85 100644 --- a/lily/paper-column.cc +++ b/lily/paper-column.cc @@ -218,6 +218,23 @@ Paper_column::break_align_width (Grob *me, SCM align_sym) return align->extent (p, X_AXIS); } +/* + Loop through elements of a PaperColumn, find all grobs implementing specified + interface and return their combined extent. +*/ +Interval +Paper_column::get_interface_extent (Grob *column, SCM iface, Axis a) +{ + Interval extent = Interval (0, 0); + extract_grob_set (column, "elements", elts); + + for (vsize i = 0; i < elts.size (); i++) + if (elts[i]->internal_has_interface (iface)) + extent.unite (robust_relative_extent (elts[i], elts[i], a)); + + return extent; +} + /* Print a: - vertical line, diff --git a/lily/parser.yy b/lily/parser.yy index 0c814a13dd..d47fa7ce10 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -1744,7 +1744,7 @@ function_arglist_backup: $$ = scm_cons ($4, $3); else { $$ = scm_cons (loc_on_music (@3, $1), $3); - MYBACKUP (LYRIC_ELEMENT, $4, @4); + MYBACKUP (SCM_IDENTIFIER, $4, @4); } } | EXPECT_OPTIONAL EXPECT_SCM function_arglist_backup UNSIGNED @@ -2886,7 +2886,7 @@ steno_pitch: if (!scm_is_eq (SCM_INUM0, $2)) { Pitch p = *unsmob_pitch ($1); - p = p.transposed (Pitch (scm_to_int ($2),0,0)); + p = p.transposed (Pitch (scm_to_int ($2), 0)); $$ = p.smobbed_copy (); } } @@ -2901,7 +2901,7 @@ steno_tonic_pitch: if (!scm_is_eq (SCM_INUM0, $2)) { Pitch p = *unsmob_pitch ($1); - p = p.transposed (Pitch (scm_to_int ($2),0,0)); + p = p.transposed (Pitch (scm_to_int ($2), 0)); $$ = p.smobbed_copy (); } } @@ -2913,7 +2913,7 @@ pitch: if (!scm_is_eq (SCM_INUM0, $2)) { Pitch p = *unsmob_pitch ($1); - p = p.transposed (Pitch (scm_to_int ($2),0,0)); + p = p.transposed (Pitch (scm_to_int ($2), 0)); $$ = p.smobbed_copy (); } } diff --git a/lily/percent-repeat-engraver.cc b/lily/percent-repeat-engraver.cc index 008081f138..98d840e0c7 100644 --- a/lily/percent-repeat-engraver.cc +++ b/lily/percent-repeat-engraver.cc @@ -133,6 +133,7 @@ Percent_repeat_engraver::process_music () percent_counter_->set_bound (LEFT, col); Side_position_interface::add_support (percent_counter_, percent_); percent_counter_->set_parent (percent_, Y_AXIS); + percent_counter_->set_parent (percent_, X_AXIS); } else percent_counter_ = 0; diff --git a/lily/pitch-interval.cc b/lily/pitch-interval.cc index 1103904418..db5bae653b 100644 --- a/lily/pitch-interval.cc +++ b/lily/pitch-interval.cc @@ -29,8 +29,8 @@ Pitch_interval::Pitch_interval (Pitch p1, Pitch p2) Pitch_interval::Pitch_interval () { - at (LEFT) = Pitch (100, 0, 0); - at (RIGHT) = Pitch (-100, 0, 0); + at (LEFT) = Pitch (100, 0); + at (RIGHT) = Pitch (-100, 0); } bool @@ -64,8 +64,8 @@ Pitch_lexicographic_interval::Pitch_lexicographic_interval (Pitch p1, Pitch p2) Pitch_lexicographic_interval::Pitch_lexicographic_interval () { - at (LEFT) = Pitch (100, 0, 0); - at (RIGHT) = Pitch (-100, 0, 0); + at (LEFT) = Pitch (100, 0); + at (RIGHT) = Pitch (-100, 0); } bool diff --git a/lily/pitch-scheme.cc b/lily/pitch-scheme.cc index 07a9a096b3..377c4d0ff3 100644 --- a/lily/pitch-scheme.cc +++ b/lily/pitch-scheme.cc @@ -153,8 +153,8 @@ LY_DEFINE (ly_pitch_less_p, "ly:pitchget_parent (X_AXIS), X_AXIS); } -MAKE_SCHEME_CALLBACK (Self_alignment_interface, centered_on_note_columns, 1); -SCM -Self_alignment_interface::centered_on_note_columns (SCM smob) -{ - Item *it = unsmob_item (smob)->get_column (); - if (!it) - return scm_from_double (0.0); - - extract_grob_set (it, "elements", elts); - vector ncs; - Interval centers; - for (vsize i = 0; i < elts.size (); i++) - if (Note_column::has_interface (elts[i])) - centers.add_point (scm_to_double (centered_on_object (elts[i], X_AXIS))); - - if (centers.is_empty ()) - return scm_from_double (0.0); - - return scm_from_double (centers.center ()); -} - MAKE_SCHEME_CALLBACK (Self_alignment_interface, centered_on_y_parent, 1); SCM Self_alignment_interface::centered_on_y_parent (SCM smob) @@ -107,13 +86,6 @@ Self_alignment_interface::centered_on_y_parent (SCM smob) return centered_on_object (unsmob_grob (smob)->get_parent (Y_AXIS), Y_AXIS); } -MAKE_SCHEME_CALLBACK (Self_alignment_interface, x_centered_on_y_parent, 1); -SCM -Self_alignment_interface::x_centered_on_y_parent (SCM smob) -{ - return centered_on_object (unsmob_grob (smob)->get_parent (Y_AXIS), X_AXIS); -} - MAKE_SCHEME_CALLBACK (Self_alignment_interface, aligned_on_x_parent, 1); SCM Self_alignment_interface::aligned_on_x_parent (SCM smob) @@ -132,10 +104,23 @@ SCM Self_alignment_interface::aligned_on_parent (Grob *me, Axis a) { Grob *him = me->get_parent (a); + Interval he; if (Paper_column::has_interface (him)) - return scm_from_double (0.0); - - Interval he = him->extent (him, a); + /* + PaperColumn extents aren't reliable (they depend on size and alignment + of PaperColumn's children), so we align on NoteColumn instead. + This happens e.g. for lyrics without associatedVoice. + */ + he = Paper_column::get_interface_extent + (him, ly_symbol2scm ("note-column-interface"), a); + else + { + if (ly_scm2bool(me->internal_get_property (ly_symbol2scm ("X-align-on-main-noteheads"))) + && Note_column::has_interface (him)) + he = Note_column::calc_main_heads_extent(him); + else + he = him->extent (him, a); + } SCM sym = (a == X_AXIS) ? ly_symbol2scm ("self-alignment-X") : ly_symbol2scm ("self-alignment-Y"); @@ -166,18 +151,10 @@ Self_alignment_interface::aligned_on_parent (Grob *me, Axis a) } void -Self_alignment_interface::set_center_parent (Grob *me, Axis a) -{ - add_offset_callback (me, - (a == X_AXIS) ? centered_on_x_parent_proc : centered_on_y_parent_proc, - a); -} - -void -Self_alignment_interface::set_align_self (Grob *me, Axis a) +Self_alignment_interface::set_aligned_on_parent (Grob *me, Axis a) { add_offset_callback (me, - (a == X_AXIS) ? x_aligned_on_self_proc : y_aligned_on_self_proc, + (a == X_AXIS) ? aligned_on_x_parent_proc : aligned_on_y_parent_proc, a); } @@ -198,4 +175,5 @@ ADD_INTERFACE (Self_alignment_interface, /* properties */ "self-alignment-X " "self-alignment-Y " + "X-align-on-main-noteheads " ); diff --git a/lily/spanner.cc b/lily/spanner.cc index 5d0485f46e..7c36f1755b 100644 --- a/lily/spanner.cc +++ b/lily/spanner.cc @@ -183,6 +183,10 @@ Spanner::get_bound (Direction d) const /* Set the items that this spanner spans. If D == LEFT, we also set the X-axis parent of THIS to S. + + For example, when a slur crosses a line break, it's broken into two + pieces. The second piece shouldn't be positioned relative to the + original NoteColumn, but rather to the PaperColumn after the break. */ void Spanner::set_bound (Direction d, Grob *s) @@ -200,7 +204,14 @@ Spanner::set_bound (Direction d, Grob *s) We check for System to prevent the column -> line_of_score -> column -> line_of_score -> etc situation */ if (d == LEFT && !dynamic_cast (this)) - set_parent (i, X_AXIS); + /* + If the X-parent is a spanner, it will be split across linebreaks, too, + so we shouldn't have to overwrite it with the bound. Also, we need + original parent for alignment. + This happens e.g. for MultiMeasureRestNumbers and PercentRepeatCounters. + */ + if (!dynamic_cast (this->get_parent (X_AXIS))) + set_parent (i, X_AXIS); /* Signal that this column needs to be kept alive. They need to be diff --git a/lily/spring.cc b/lily/spring.cc index f4123b9891..3963ee4452 100644 --- a/lily/spring.cc +++ b/lily/spring.cc @@ -189,7 +189,6 @@ Spring::set_blocking_force (Real f) blocking_force_ = -infinity_f; min_distance_ = length (f); - distance_ = max (distance_, min_distance_); update_blocking_force (); } diff --git a/lily/staff-symbol-referencer-scheme.cc b/lily/staff-symbol-referencer-scheme.cc index f8028e424a..f72605fc26 100644 --- a/lily/staff-symbol-referencer-scheme.cc +++ b/lily/staff-symbol-referencer-scheme.cc @@ -52,8 +52,9 @@ LY_DEFINE (ly_position_on_line_p, "ly:position-on-line?", LY_DEFINE (ly_staff_symbol_line_thickness, "ly:staff-symbol-line-thickness", 1, 0, 0, (SCM grob), - "Returns the @code{line-thickness} of the staff associated" - " with @var{grob}.") + "Returns the current staff-line thickness in the staff" + " associated with @var{grob}, expressed as a multiple of the" + " current staff-space height.") { LY_ASSERT_SMOB (Grob, grob, 1); Grob *g = unsmob_grob (grob); @@ -63,8 +64,10 @@ LY_DEFINE (ly_staff_symbol_line_thickness, "ly:staff-symbol-line-thickness", LY_DEFINE (ly_staff_symbol_staff_space, "ly:staff-symbol-staff-space", 1, 0, 0, (SCM grob), - "Returns the @code{staff-space} of the staff associated" - " with @var{grob}.") + "Returns the current staff-space height in the staff" + " associated with @var{grob}, expressed as a multiple of the" + " default height of a staff-space in the traditional" + " five-line staff.") { LY_ASSERT_SMOB (Grob, grob, 1); Grob *g = unsmob_grob (grob); diff --git a/lily/stem.cc b/lily/stem.cc index 39a77a3858..cc488e3125 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -1152,6 +1152,7 @@ ADD_INTERFACE (Stem, "default-direction " "details " "direction " + "double-stem-separation " "duration-log " "flag " "french-beaming " diff --git a/lily/stream-event-scheme.cc b/lily/stream-event-scheme.cc index 27f6b811e6..2a3dfa3cd1 100644 --- a/lily/stream-event-scheme.cc +++ b/lily/stream-event-scheme.cc @@ -31,7 +31,7 @@ LY_DEFINE (ly_make_stream_event, "ly:make-stream-event", "Create a stream event of class @var{cl} with the given" " mutable property list.") { - LY_ASSERT_TYPE (ly_is_symbol, cl, 1); + LY_ASSERT_TYPE (ly_is_pair, cl, 1); /* should be scm_list_p, but scm_list_p is expensive. */ LY_ASSERT_TYPE (scm_is_pair, proplist, 2); diff --git a/lily/text-engraver.cc b/lily/text-engraver.cc index ffd669ef80..373cbf7ac7 100644 --- a/lily/text-engraver.cc +++ b/lily/text-engraver.cc @@ -20,6 +20,8 @@ #include "directional-element-interface.hh" #include "engraver.hh" #include "item.hh" +#include "note-column.hh" +#include "pointer-group-interface.hh" #include "side-position-interface.hh" #include "stream-event.hh" #include "text-interface.hh" @@ -29,15 +31,18 @@ /** typeset directions that are plain text. */ + class Text_engraver : public Engraver { vector evs_; + vector scripts_; public: TRANSLATOR_DECLARATIONS (Text_engraver); protected: void stop_translation_timestep (); void process_music (); + DECLARE_ACKNOWLEDGER (note_column); DECLARE_TRANSLATOR_LISTENER (text_script); }; @@ -53,26 +58,44 @@ Text_engraver::process_music () { for (vsize i = 0; i < evs_.size (); i++) { - Stream_event *r = evs_[i]; + Stream_event *ev = evs_[i]; - // URG: Text vs TextScript - Item *text = make_item ("TextScript", r->self_scm ()); + Item *script = make_item ("TextScript", ev->self_scm ()); + scripts_.push_back (script); - int priority = robust_scm2int (text->get_property ("script-priority"), + int priority = robust_scm2int (script->get_property ("script-priority"), 200); /* see script-engraver.cc */ priority += i; - text->set_property ("script-priority", scm_from_int (priority)); + script->set_property ("script-priority", scm_from_int (priority)); - Direction dir = to_dir (r->get_property ("direction")); + Direction dir = to_dir (ev->get_property ("direction")); if (dir) - set_grob_direction (text, dir); + set_grob_direction (script, dir); + + SCM mark = ev->get_property ("text"); + + script->set_property ("text", mark); + } +} - SCM mark = r->get_property ("text"); +void +Text_engraver::acknowledge_note_column (Grob_info info) +{ + // Make note column (or rest, if there are no heads) the parent of the script. + extract_grob_set (info.grob (), "note-heads", heads); + Grob *x_parent = (heads.size () + ? info.grob () + : unsmob_grob (info.grob ()->get_object ("rest"))); - text->set_property ("text", mark); + for (vsize i = 0; i < scripts_.size (); i++) + { + Grob *el = scripts_[i]; + + if (el && !el->get_parent (X_AXIS) && x_parent) + el->set_parent (x_parent, X_AXIS); } } @@ -80,12 +103,15 @@ void Text_engraver::stop_translation_timestep () { evs_.clear (); + scripts_.clear (); } Text_engraver::Text_engraver () { } +ADD_ACKNOWLEDGER (Text_engraver, note_column); + ADD_TRANSLATOR (Text_engraver, /* doc */ "Create text scripts.", diff --git a/ly/Welcome-to-LilyPond-MacOS.ly b/ly/Welcome-to-LilyPond-MacOS.ly index b09c00757a..5c341cf028 100644 --- a/ly/Welcome-to-LilyPond-MacOS.ly +++ b/ly/Welcome-to-LilyPond-MacOS.ly @@ -23,7 +23,7 @@ That's it. For more information, visit http://lilypond.org . %} -\version "2.19.8" % necessary for upgrading to future LilyPond versions. +\version "2.19.10" % necessary for upgrading to future LilyPond versions. \header{ title = "A scale in LilyPond" diff --git a/ly/Welcome_to_LilyPond.ly b/ly/Welcome_to_LilyPond.ly index 5655a7334c..94949cb20c 100644 --- a/ly/Welcome_to_LilyPond.ly +++ b/ly/Welcome_to_LilyPond.ly @@ -32,7 +32,7 @@ Good luck with LilyPond! Happy engraving. %} -\version "2.19.8" % necessary for upgrading to future LilyPond versions. +\version "2.19.10" % necessary for upgrading to future LilyPond versions. \header{ title = "A scale in LilyPond" diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index ebfff6a2fc..ec34cd64c3 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -420,13 +420,6 @@ a collection of staves, with a bracket in front and spanning bar lines." \override DynamicLineSpanner.outside-staff-priority = ##f \override DynamicText.outside-staff-priority = ##f \override Hairpin.outside-staff-priority = ##f - \override DynamicText.X-offset = - #(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::centered-on-note-columns)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self)))) \description "Holds a single line of dynamics, which will be centered between the staves surrounding this context." diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly index 9e5d3c223b..65b4a6db7a 100644 --- a/ly/music-functions-init.ly +++ b/ly/music-functions-init.ly @@ -633,26 +633,119 @@ languageRestore = magnifyMusic = -#(define-music-function (parser location mag mus) (number? ly:music?) - (_i "Magnify the notation of @var{mus} without changing the -staff-size, using @var{mag} as a size factor. Stems, beams, and -horizontal spacing are adjusted automatically.") +#(define-music-function (parser location mag music) (positive? ly:music?) + (_i "Magnify the notation of @var{music} without changing the +staff-size, using @var{mag} as a size factor. Stems, beams, +slurs, ties, and horizontal spacing are adjusted automatically.") + + ;; these props are NOT allowed to shrink below default size + (define unshrinkable-props + '( + ;; stems + (Stem thickness) + + ;; slurs + (Slur line-thickness) + (Slur thickness) + (PhrasingSlur line-thickness) + (PhrasingSlur thickness) + + ;; ties + (Tie line-thickness) + (Tie thickness) + (LaissezVibrerTie line-thickness) + (LaissezVibrerTie thickness) + (RepeatTie line-thickness) + (RepeatTie thickness) + )) + + ;; these props ARE allowed to shrink below default size + (define shrinkable-props + '( + ;; TODO: uncomment spacing-increment here once Issue 3987 is fixed + ;; override at the 'Score level + ;(SpacingSpanner spacing-increment) + + ;; lengths and heights + (Beam length-fraction) + (Stem length-fraction) + (Stem beamlet-default-length) + (Slur height-limit) + (Slur minimum-length) + (PhrasingSlur height-limit) + (PhrasingSlur minimum-length) + + ;; Beam.beam-thickness is dealt with separately below + )) #{ - \set fontSize = #(magnification->font-size mag) - % gives beam-thickness=0.48 when mag=1 (like default), - % gives beam-thickness=0.35 when mag=0.63 (like CueVoice) - \temporary \override Beam.beam-thickness = #(+ 119/925 (* mag 13/37)) - \temporary \override Beam.length-fraction = #mag - \temporary \override Stem.length-fraction = #mag - \temporary \override Stem.thickness = #(* 1.3 (max 1 mag)) - \temporary \override Score.SpacingSpanner.spacing-increment = #(* 1.2 mag) - #mus - \set fontSize = 0 - \revert Beam.beam-thickness - \revert Beam.length-fraction - \revert Stem.length-fraction - \revert Stem.thickness - \revert Score.SpacingSpanner.spacing-increment + \context Bottom { + %% TODO: uncomment \newSpacingSection once Issue 3990 is fixed + %\newSpacingSection + #(scale-fontSize 'magnifyMusic mag) + #(scale-props 'magnifyMusic mag #f unshrinkable-props) + #(scale-props 'magnifyMusic mag #t shrinkable-props) + #(scale-beam-thickness mag) + + #music + + %% TODO: uncomment \newSpacingSection once Issue 3990 is fixed + %\newSpacingSection + %% reverse engineer the former fontSize value instead of using \unset + #(revert-fontSize 'magnifyMusic mag) + #(revert-props 'magnifyMusic mag (append unshrinkable-props + shrinkable-props + '((Beam beam-thickness)))) + } + #}) + +magnifyStaff = +#(define-music-function (parser location mag) (positive?) + (_i "Change the size of the staff, adjusting notation size and +horizontal spacing automatically, using @var{mag} as a size factor.") + + ;; these props are NOT allowed to shrink below default size + (define unshrinkable-props + '((StaffSymbol thickness))) + + ;; these props ARE allowed to shrink below default size + (define shrinkable-props + (let ((space-alist-props + (find-all-space-alist-props all-grob-descriptions))) + (append + space-alist-props + '( + ;; override at the 'Score level + (SpacingSpanner spacing-increment) + + (StaffSymbol staff-space) + (BarLine kern) + (BarLine segno-kern) + (BarLine hair-thickness) + (BarLine thick-thickness) + (Stem beamlet-default-length) + )))) + + #{ + \stopStaff + + %% revert settings from last time + %% (but only if \magnifyStaff has already been used + %% and the staff magnification is changing) + #(revert-fontSize 'magnifyStaff mag) + #(revert-props 'magnifyStaff mag (append unshrinkable-props + shrinkable-props)) + + %% scale settings + %% (but only if staff magnification is changing) + #(scale-fontSize 'magnifyStaff mag) + #(scale-props 'magnifyStaff mag #f unshrinkable-props) + #(scale-props 'magnifyStaff mag #t shrinkable-props) + + %% this might cause problems until Issue 3990 is fixed + \newSpacingSection + + \startStaff + \set Staff.magnifyStaffValue = #mag #}) makeClusters = @@ -910,100 +1003,101 @@ Example: C = { e e | f f | } @end verbatim ") + (define voice-count (length voice-ids)) (define (bar-check? m) "Checks whether m is a bar check." (eq? (ly:music-property m 'name) 'BarCheck)) + (define (recurse-and-split-list lst) + "Return either a list of music lists split along barchecks, or @code{#f}." + (if (any bar-check? lst) + (let* ((voices (apply circular-list (make-list voice-count '()))) + (current-voices voices) + (current-sequence '())) + ;; + ;; utilities + (define (push-music m) + "Push the music expression into the current sequence" + (set! current-sequence (cons m current-sequence))) + (define (change-voice) + "Store the previously built sequence into the current voice and +change to the following voice." + (set-car! current-voices + (cons (reverse! current-sequence) + (car current-voices))) + (set! current-sequence '()) + (set! current-voices (cdr current-voices))) + (for-each (lambda (m) + (let ((split? (recurse-and-split m))) + (if split? + (for-each + (lambda (m) + (push-music m) + (change-voice)) + split?) + (begin + (push-music m) + (if (bar-check? m) (change-voice)))))) + lst) + (if (pair? current-sequence) (change-voice)) + ;; un-circularize `voices' and reorder the voices + (set! voices (map reverse! + (list-head voices voice-count))) + ;; check sequence length + (apply for-each (lambda seqs + (define (seq-len seq) + (reduce ly:moment-add + (ly:make-moment 0) + (map ly:music-length seq))) + (let ((moment-reference (seq-len (car seqs)))) + (for-each (lambda (seq) + (if (not (equal? (seq-len seq) + moment-reference)) + (ly:music-warning + (if (pair? seq) + (last seq) + (caar seqs)) + (_ "Bars in parallel music don't have the same length")))) + seqs))) + voices) + (map concatenate! voices)) + (let ((deeper (map recurse-and-split lst))) + (and (any pair? deeper) + (apply zip (map + (lambda (m split) + (or split + (ly:music-deep-copy (make-list voice-count m)))) + lst deeper)))))) (define (recurse-and-split music) "This returns either a list of music split along barchecks, or @code{#f}." - (let ((elt (ly:music-property music 'element)) - (elts (ly:music-property music 'elements))) - (cond ((ly:music? elt) - (let ((lst (recurse-and-split elt))) - (and lst - (map - (lambda (x) - (let ((res (music-clone music 'element x))) - (if (ly:input-location? - (ly:music-property x 'origin)) - (set! (ly:music-property res 'origin) - (ly:music-property x 'origin))) - res)) - lst)))) - ((any bar-check? elts) - (let* ((voices (apply circular-list - (make-list (length voice-ids) - '()))) - (current-voices voices) - (current-sequence '())) - ;; - ;; utilities - (define (push-music m) - "Push the music expression into the current sequence" - (set! current-sequence (cons m current-sequence))) - (define (change-voice) - "Stores the previously built sequence into the current voice and - change to the following voice." - (set-car! current-voices - (cons (reverse! current-sequence) - (car current-voices))) - (set! current-sequence '()) - (set! current-voices (cdr current-voices))) - (for-each (lambda (m) - (let ((split? (recurse-and-split m))) - (if split? - (for-each - (lambda (m) - (push-music m) - (change-voice)) - split?) - (begin - (push-music m) - (if (bar-check? m) (change-voice)))))) - elts) - (if (pair? current-sequence) (change-voice)) - ;; un-circularize `voices' and reorder the voices - - (set! voices (map reverse! - (list-head voices (length voice-ids)))) - - ;; check sequence length - (apply for-each (lambda seqs - (define (seq-len seq) - (reduce ly:moment-add - (ly:make-moment 0) - (map ly:music-length seq))) - (let ((moment-reference (seq-len (car seqs)))) - (for-each (lambda (seq) - (if (not (equal? (seq-len seq) - moment-reference)) - (ly:music-warning - (if (pair? seq) - (last seq) - (caar seqs)) - (_ "Bars in parallel music don't have the same length")))) - seqs))) - voices) - (map - (lambda (lst) - (set! lst (concatenate! lst)) - (let ((res (music-clone music 'elements lst))) - (if (and (pair? lst) - (ly:input-location? (ly:music-property - (car lst) - 'origin))) - (set! (ly:music-property res 'origin) - (ly:music-property (car lst) 'origin))) - res)) - voices))) - (else #f)))) + (let* ((elt (ly:music-property music 'element)) + (elts (ly:music-property music 'elements)) + (split-elt (and (ly:music? elt) (recurse-and-split elt))) + (split-elts (and (pair? elts) (recurse-and-split-list elts)))) + (and (or split-elt split-elts) + (map + (lambda (e es) + (apply music-clone music + (append + ;; reassigning the origin of the parent only + ;; makes sense if the first expression in the + ;; result is from a distributed origin + (let ((origin + (if (ly:music? elt) + (and (ly:music? e) (ly:music-property e 'origin #f)) + (and (pair? es) (ly:music-property (car es) 'origin #f))))) + (if origin (list 'origin origin) '())) + (if (ly:music? e) (list 'element e) '()) + (if (pair? es) (list 'elements es) '())))) + (or split-elt (circular-list #f)) + (or split-elts (circular-list #f)))))) (let ((voices (recurse-and-split music))) (if voices ;; ;; bind voice identifiers to the voices (for-each (lambda (voice-id voice) (ly:parser-define! parser voice-id voice)) - voice-ids voices) + voice-ids voices) (ly:music-warning music (_ "ignoring parallel music without barchecks"))))) diff --git a/po/ca.po b/po/ca.po index c7cdb60f2a..4de6ae201c 100644 --- a/po/ca.po +++ b/po/ca.po @@ -620,8 +620,8 @@ msgid "\\bar \".\" now produces a thick barline.\n" msgstr "\\bar \".\" produeix ara una línia divisòria gruixuda.\n" #: convertrules.py:2849 -msgid "Dash parameters for slurs and ties are now in 'dash-details.\n" -msgstr "Els paràmetres de discontinuïtat per a lligadures d'expressió i d'unió estan ara a 'dash-details.\n" +msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n" +msgstr "Els paràmetres de discontinuïtat per a lligadures d'expressió i d'unió estan ara a 'dash-definition.\n" #: convertrules.py:2854 msgid "" diff --git a/po/cs.po b/po/cs.po index 23a8e371dc..2fe5cf6ffd 100644 --- a/po/cs.po +++ b/po/cs.po @@ -583,8 +583,8 @@ msgid "\\bar \".\" now produces a thick barline.\n" msgstr "\\bar \".\" nyní vytváří silnou taktovou čáru.\n" #: convertrules.py:2848 -msgid "Dash parameters for slurs and ties are now in 'dash-details.\n" -msgstr "Parametry čárky pro legatové obloučky a ligatury jsou nyní v 'dash-details.\n" +msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n" +msgstr "Parametry čárky pro legatové obloučky a ligatury jsou nyní v 'dash-definition.\n" #: convertrules.py:2853 msgid "" diff --git a/po/de.po b/po/de.po index b1298eb540..465e9e5e32 100644 --- a/po/de.po +++ b/po/de.po @@ -622,8 +622,8 @@ msgid "\\bar \".\" now produces a thick barline.\n" msgstr "\\bar \".\" erstellt jetzt einen dicken Taktstrich.\n" #: convertrules.py:2849 -msgid "Dash parameters for slurs and ties are now in 'dash-details.\n" -msgstr "Strichelunsparameter für Binde- und Legatobögen sind jetzt in 'dash-details.\n" +msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n" +msgstr "Strichelunsparameter für Binde- und Legatobögen sind jetzt in 'dash-definition.\n" #: convertrules.py:2854 msgid "" diff --git a/po/el.po b/po/el.po index 9ef44c3a13..f578a7b762 100644 --- a/po/el.po +++ b/po/el.po @@ -547,8 +547,8 @@ msgid "\\bar \".\" now produces a thick barline.\n" msgstr "Το \\bar \".\" τώρα παράγει χοντρή γραμμή μέτρου.\n" #: convertrules.py:2912 -msgid "Dash parameters for slurs and ties are now in 'dash-details.\n" -msgstr "Οι παράμετροι παύλας για ενωτικά και δεσμούς βρίσκονται τώρα στο 'dash-details.\n" +msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n" +msgstr "Οι παράμετροι παύλας για ενωτικά και δεσμούς βρίσκονται τώρα στο 'dash-definition.\n" #: convertrules.py:2917 msgid "" diff --git a/po/eo.po b/po/eo.po index fb3de779cf..df69d720e8 100644 --- a/po/eo.po +++ b/po/eo.po @@ -619,8 +619,8 @@ msgid "\\bar \".\" now produces a thick barline.\n" msgstr "\\bar \".\" nun produktas dikan taktostrekon.\n" #: convertrules.py:2849 -msgid "Dash parameters for slurs and ties are now in 'dash-details.\n" -msgstr "Strekaj parametroj por ligarkoj kaj ligaturoj estas nun en 'dash-details.\n" +msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n" +msgstr "Strekaj parametroj por ligarkoj kaj ligaturoj estas nun en 'dash-definition.\n" #: convertrules.py:2854 msgid "" diff --git a/po/es.po b/po/es.po index b426376fec..c92cf7e332 100644 --- a/po/es.po +++ b/po/es.po @@ -627,10 +627,10 @@ msgid "\\bar \".\" now produces a thick barline.\n" msgstr "\\bar \".\" ahora produce una línea divisoria gruesa.\n" #: convertrules.py:2849 -msgid "Dash parameters for slurs and ties are now in 'dash-details.\n" +msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n" msgstr "" "Los parámetros de discontinuidad para las ligaduras\n" -"de expresión y de unión ahora están en 'dash-details.\n" +"de expresión y de unión ahora están en 'dash-definition.\n" #: convertrules.py:2854 msgid "" diff --git a/po/fr.po b/po/fr.po index f619630922..fd58545747 100644 --- a/po/fr.po +++ b/po/fr.po @@ -629,8 +629,8 @@ msgid "\\bar \".\" now produces a thick barline.\n" msgstr "\\bar \".\" produit désormais une barre épaisse.\n" #: convertrules.py:2849 -msgid "Dash parameters for slurs and ties are now in 'dash-details.\n" -msgstr "Les paramètres du pointillé des liaisons sont gérés par `dash-details.\n" +msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n" +msgstr "Les paramètres du pointillé des liaisons sont gérés par `dash-definition.\n" #: convertrules.py:2854 msgid "" diff --git a/po/it.po b/po/it.po index 7992882887..a7872d9b79 100644 --- a/po/it.po +++ b/po/it.po @@ -622,8 +622,8 @@ msgid "\\bar \".\" now produces a thick barline.\n" msgstr "\\bar \".\" ora crea una stanghetta spessa.\n" #: convertrules.py:2849 -msgid "Dash parameters for slurs and ties are now in 'dash-details.\n" -msgstr "I parametri del tratteggiato per le legature di portamento e di valore si trovano ora in 'dash-details.\n" +msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n" +msgstr "I parametri del tratteggiato per le legature di portamento e di valore si trovano ora in 'dash-definition.\n" #: convertrules.py:2854 msgid "" diff --git a/po/ja.po b/po/ja.po index e8c4849776..bef615d178 100644 --- a/po/ja.po +++ b/po/ja.po @@ -550,7 +550,7 @@ msgid "\\bar \".\" now produces a thick barline.\n" msgstr "" #: convertrules.py:2848 -msgid "Dash parameters for slurs and ties are now in 'dash-details.\n" +msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n" msgstr "" #: convertrules.py:2853 diff --git a/po/lilypond.pot b/po/lilypond.pot index 558ca2b134..ce445c6c9c 100644 --- a/po/lilypond.pot +++ b/po/lilypond.pot @@ -6,10 +6,10 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: lilypond 2.19.8\n" +"Project-Id-Version: lilypond 2.19.10\n" "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu." "lilypond.bugs\n" -"POT-Creation-Date: 2014-06-15 16:22+0100\n" +"POT-Creation-Date: 2014-07-13 15:39+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -570,7 +570,7 @@ msgid "\\bar \".\" now produces a thick barline.\n" msgstr "" #: convertrules.py:2849 -msgid "Dash parameters for slurs and ties are now in 'dash-details.\n" +msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n" msgstr "" #: convertrules.py:2854 @@ -2171,8 +2171,10 @@ msgstr "" msgid "cannot find Voice `%s'" msgstr "" -#: lyric-engraver.cc:186 -msgid "Lyric syllable does not have note. Use \\lyricsto or associatedVoice." +#: lyric-engraver.cc:185 +msgid "" +"Aligning lyric syllables to notes was requested, but there are no notes in " +"the specified context. Syllable will be attached to a PaperColumn instead." msgstr "" #: main.cc:104 @@ -2720,7 +2722,7 @@ msgstr "" msgid "Conversion of string `%s' to UTF-16be failed: %s" msgstr "" -#: percent-repeat-engraver.cc:147 +#: percent-repeat-engraver.cc:148 msgid "unterminated percent repeat" msgstr "" @@ -3650,12 +3652,12 @@ msgstr "" msgid "~a function cannot return ~a" msgstr "" -#: ly-syntax-constructors.scm:75 +#: ly-syntax-constructors.scm:76 #, scheme-format msgid "wrong type for argument ~a. Expecting ~a, found ~s" msgstr "" -#: ly-syntax-constructors.scm:199 +#: ly-syntax-constructors.scm:200 #, scheme-format msgid "Invalid property operation ~a" msgstr "" @@ -3727,30 +3729,30 @@ msgstr "" msgid "music expected: ~S" msgstr "" -#: music-functions.scm:1244 +#: music-functions.scm:1246 #, scheme-format msgid "cannot find quoted music: `~S'" msgstr "" -#: music-functions.scm:1383 +#: music-functions.scm:1386 msgid "Add @var{octave-shift} to the octave of @var{pitch}." msgstr "" -#: music-functions.scm:1446 +#: music-functions.scm:1449 #, scheme-format msgid "Unknown octaveness type: ~S " msgstr "" -#: music-functions.scm:1447 +#: music-functions.scm:1450 msgid "Defaulting to 'any-octave." msgstr "" -#: music-functions.scm:1833 +#: music-functions.scm:1838 #, scheme-format msgid "unknown accidental style: ~S" msgstr "" -#: music-functions.scm:2051 +#: music-functions.scm:2056 msgid "Missing duration" msgstr "" @@ -3827,40 +3829,40 @@ msgstr "" msgid "assertion failed: ~S" msgstr "" -#: translation-functions.scm:388 +#: translation-functions.scm:389 #, scheme-format msgid "Negative fret for pitch ~a on string ~a" msgstr "" -#: translation-functions.scm:391 +#: translation-functions.scm:392 #, scheme-format msgid "Missing fret for pitch ~a on string ~a" msgstr "" -#: translation-functions.scm:434 +#: translation-functions.scm:435 #, scheme-format msgid "No open string for pitch ~a" msgstr "" -#: translation-functions.scm:449 translation-functions.scm:461 +#: translation-functions.scm:450 translation-functions.scm:462 #, scheme-format msgid "Requested string for pitch requires negative fret: string ~a pitch ~a" msgstr "" -#: translation-functions.scm:452 +#: translation-functions.scm:453 msgid "Ignoring string request and recalculating." msgstr "" -#: translation-functions.scm:464 +#: translation-functions.scm:465 msgid "Ignoring note in tablature." msgstr "" -#: translation-functions.scm:489 +#: translation-functions.scm:490 #, scheme-format msgid "No string for pitch ~a (given frets ~a)" msgstr "" -#: translation-functions.scm:594 +#: translation-functions.scm:595 #, scheme-format msgid "" "No label for fret ~a (on string ~a);\n" diff --git a/po/nl.po b/po/nl.po index 596fa9fcf3..ceec43aa8e 100644 --- a/po/nl.po +++ b/po/nl.po @@ -576,7 +576,7 @@ msgid "\\bar \".\" now produces a thick barline.\n" msgstr "" #: convertrules.py:2849 -msgid "Dash parameters for slurs and ties are now in 'dash-details.\n" +msgid "Dash parameters for slurs and ties are now in 'dash-definition.\n" msgstr "" #: convertrules.py:2854 diff --git a/python/convertrules.py b/python/convertrules.py index 5eb2a75bfc..c506bc1542 100644 --- a/python/convertrules.py +++ b/python/convertrules.py @@ -2846,7 +2846,7 @@ def conv(str): if re.search("(Slur|Tie)\w+#\'dash-fraction", str) \ or re.search("(Slur|Tie)\w+#\'dash-period", str): stderr_write (NOT_SMART % "dash-fraction, dash-period") - stderr_write (_ ("Dash parameters for slurs and ties are now in \'dash-details.\n")) + stderr_write (_ ("Dash parameters for slurs and ties are now in \'dash-definition.\n")) stderr_write (UPDATE_MANUALLY) return str @@ -3450,7 +3450,7 @@ def conv (str): if m.group (1): return m.group (0) x = m.group (2) + m.group (4) - + if m.group (3): x = x + re.sub (r"(\s*)(" + symbol_list + ")", fn_path_replace, m.group (3)) @@ -3718,6 +3718,11 @@ def conv(str): str = re.sub (r'\blocalKeySignature\b', 'localAlterations', str) return str +@rule ((2, 19, 11), "thin-kern -> segno-kern") +def conv(str): + str = re.sub (r'\bthin-kern\b', 'segno-kern', str) + return str + # Guidelines to write rules (please keep this at the end of this file) # # - keep at most one rule per version; if several conversions should be done, diff --git a/scm/bar-line.scm b/scm/bar-line.scm index ff2d3f29b4..e3e295075d 100644 --- a/scm/bar-line.scm +++ b/scm/bar-line.scm @@ -440,14 +440,14 @@ is not used within the routine." the segno sign is drawn over the double bar line; otherwise, it draws the span bar variant, i.e. without the segno sign." (let* ((line-thickness (layout-line-thickness grob)) - (thinkern (* (ly:grob-property grob 'thin-kern 1) line-thickness)) + (segno-kern (* (ly:grob-property grob 'segno-kern 1) line-thickness)) (thin-stil (make-simple-bar-line grob extent)) (double-line-stil (ly:stencil-combine-at-edge thin-stil X LEFT thin-stil - thinkern)) + segno-kern)) (segno (ly:font-get-glyph (ly:grob-default-font grob) "scripts.varsegno")) (stencil (ly:stencil-add @@ -459,7 +459,7 @@ draws the span bar variant, i.e. without the segno sign." (cons 0 0))) (ly:stencil-translate-axis double-line-stil - (* 1/2 thinkern) + (* 1/2 segno-kern) X)))) stencil)) diff --git a/scm/chord-entry.scm b/scm/chord-entry.scm index 0ea8e032a0..ae649700ae 100644 --- a/scm/chord-entry.scm +++ b/scm/chord-entry.scm @@ -16,7 +16,7 @@ ;;;; along with LilyPond. If not, see . ;; for define-safe-public when byte-compiling using Guile V2 -(use-modules (scm safe-utility-defs)) +(use-modules (scm safe-utility-defs) (ice-9 receive)) (define-public (construct-chord-elements root duration modifications) "Build a chord on root using modifiers in @var{modifications}. @@ -174,26 +174,42 @@ the bass specified. (define (make-chord-elements pitches bass duration inversion original-inv-pitch) "Make EventChord with notes corresponding to PITCHES, BASS and -DURATION, and INVERSION." - (define (make-note-ev pitch) - (make-music 'NoteEvent - 'duration duration - 'pitch pitch)) - (let ((nots (map make-note-ev pitches)) - (bass-note (if bass (make-note-ev bass) #f)) - (inv-note (if inversion (make-note-ev inversion) #f))) - (if bass-note - (begin - (set! (ly:music-property bass-note 'bass) #t) - (set! nots (cons bass-note nots)))) - (if inv-note - (begin - (set! (ly:music-property inv-note 'inversion) #t) - (set! (ly:music-property inv-note 'octavation) - (- (ly:pitch-octave inversion) - (ly:pitch-octave original-inv-pitch))) - (set! nots (cons inv-note nots)))) - nots)) +DURATION, and INVERSION. Notes above INVERSION are transposed downward +along with the inversion as long as they end up below at least one +non-inverted note." + (define (make-note-ev pitch . rest) + (apply make-music 'NoteEvent + 'duration duration + 'pitch pitch + rest)) + (cond (inversion + (let* ((octavation (- (ly:pitch-octave inversion) + (ly:pitch-octave original-inv-pitch))) + (down (ly:make-pitch octavation 0 0))) + (define (invert p) (ly:pitch-transpose down p)) + (define (make-inverted p . rest) + (apply make-note-ev (invert p) 'octavation octavation rest)) + (receive (uninverted high) + (span (lambda (p) (ly:pitch rather than + ;; or + (values '() high) + (span (lambda (p) + (ly:pitchitalian-markup re-with-eacute) pitch lowercase?) +(define ((chord-name->italian-markup re-with-eacute) pitch lowercase?) "Return pitch markup for @var{pitch}, using Italian/@/French note names. If @var{re-with-eacute} is set to @code{#t}, french `ré' is returned for pitch@tie{}D instead of `re'." @@ -125,6 +125,7 @@ pitch@tie{}D instead of `re'." lowercase?)) (accidental->markup-italian alt) )))) +(export chord-name->italian-markup) ;; fixme we should standardize on omit-root (or the other one.) ;; perhaps the default should also be reversed --hwn diff --git a/scm/define-context-properties.scm b/scm/define-context-properties.scm index 2d38188d29..b88c8f59f8 100644 --- a/scm/define-context-properties.scm +++ b/scm/define-context-properties.scm @@ -562,6 +562,8 @@ part-combining.") @rinternals{Pitch_squash_engraver}.") (staffLineLayoutFunction ,procedure? "Layout of staff lines, @code{traditional}, or @code{semitone}.") + (magnifyStaffValue ,positive? "The most recent value set with +@code{\\magnifyStaff}.") (stanza ,markup? "Stanza @q{number} to print before the start of a verse. Use in @code{Lyrics} context.") (startRepeatSegnoType ,string? "Set the default bar line for the diff --git a/scm/define-event-classes.scm b/scm/define-event-classes.scm index 40b1b7de40..ac6f215ae2 100644 --- a/scm/define-event-classes.scm +++ b/scm/define-event-classes.scm @@ -158,7 +158,7 @@ previously defined event class." ;;(pretty-print (cons (car music-event-tree) (sort-tree (cdr music-event-tree)))) (defmacro-public make-stream-event (expr) - (Stream_event::undump (primitive-eval (list 'quasiquote expr)))) + (ly:stream-event::undump (primitive-eval (list 'quasiquote expr)))) (define* (simplify e) (cond @@ -167,7 +167,7 @@ previously defined event class." ((pair? e) (cons (simplify (car e)) (simplify (cdr e)))) ((ly:stream-event? e) - (list 'unquote (list 'make-stream-event (simplify (Stream_event::dump e))))) + (list 'unquote (list 'make-stream-event (simplify (ly:stream-event::dump e))))) ((ly:music? e) (list 'unquote (music->make-music e))) ((ly:moment? e) @@ -182,7 +182,7 @@ previously defined event class." (list 'unquote `(ly:make-duration ,(ly:duration-log e) ,(ly:duration-dot-count e) - ,(ly:duration-scale)))) + ,(ly:duration-scale e)))) ((ly:pitch? e) (list 'unquote `(ly:make-pitch ,(ly:pitch-octave e) diff --git a/scm/define-grob-interfaces.scm b/scm/define-grob-interfaces.scm index 4ffd761607..2c3290a4c8 100644 --- a/scm/define-grob-interfaces.scm +++ b/scm/define-grob-interfaces.scm @@ -59,7 +59,7 @@ found in @file{scm/bar-line.scm}. has-span-bar kern rounded - thin-kern + segno-kern thick-thickness)) (ly:add-interface diff --git a/scm/define-grob-properties.scm b/scm/define-grob-properties.scm index 6f080aeb2d..cd5b663f3b 100644 --- a/scm/define-grob-properties.scm +++ b/scm/define-grob-properties.scm @@ -239,6 +239,11 @@ elements closer together.") (dot-placement-list ,list? "List consisting of @code{(@var{description} @var{string-number} @var{fret-number} @var{finger-number})} entries used to define fret diagrams.") + (double-stem-separation ,number? "The distance between the two +stems of a half note in tablature when using @code{\\tabFullNotation}, +not counting the width of the stems themselves, expressed as a multiple +of the default height of a staff-space in the traditional five-line +staff.") (duration-log ,integer? "The 2-log of the note head duration, i.e., @code{0} = whole note, @code{1} = half note, etc.") @@ -371,6 +376,13 @@ label the lowest fret number. Default@tie{}0.5. the center of the fret in direction parallel to strings. Default@tie{}0. @item +@code{fret-label-horizontal-offset} -- The offset of the fret label from +the center of the fret in direction orthogonal to strings. +Default@tie{}0. +@item +@code{paren-padding} -- The padding for the parenthesis. +Default@tie{}0.05. +@item @code{label-dir} -- Side to which the fret label is attached. @w{@code{-1}}, @code{LEFT}, or @code{DOWN} for left or down; @code{1}, @code{RIGHT}, or @code{UP} for right or up. Default @code{RIGHT}. @@ -451,7 +463,9 @@ etc. are already taken.") ;;; h ;;; (hair-thickness ,number? "Thickness of the thin line in a bar -line.") +line, expressed as a multiple of the default staff-line thickness +(i.e. the visual output is @emph{not} influenced by changes to +@code{@var{Staff}.StaffSymbol.thickness}).") (harp-pedal-details ,list? "An alist of detailed grob properties for harp pedal diagrams. Each alist entry consists of a @code{(@var{property} . @var{value})} pair. The properties which can @@ -524,8 +538,11 @@ slur quants to this position, and print the respective scores.") ;;; (keep-inside-line ,boolean? "If set, this column cannot have objects sticking into the margin.") - (kern ,ly:dimension? "Amount of extra white space to add. For -bar lines, this is the amount of space after a thick line.") + (kern ,ly:dimension? "The space between individual elements +in any compound bar line, expressed as a multiple of the default +staff-line thickness (i.e. the visual output is @emph{not} +influenced by changes to +@code{@var{Staff}.StaffSymbol.thickness}).") (knee ,boolean? "Is this beam kneed?") (knee-spacing-correction ,number? "Factor for the optical correction amount for kneed beams. Set between @code{0} for no @@ -570,8 +587,12 @@ whether to put a line break at this column. Can be @code{force} or if this column is the start of a system.") (line-count ,integer? "The number of staff lines.") (line-positions ,list? "Vertical positions of staff lines.") - (line-thickness ,number? "The thickness of the tie or slur -contour.") + (line-thickness ,number? "For slurs and ties, this is the +diameter of the virtual @qq{pen} that draws the two arcs of the +curve's outline, which intersect at the endpoints. This property +is expressed as a multiple of the current staff-line thickness +(i.e. the visual output is influenced by changes to +@code{@var{Staff}.StaffSymbol.thickness}).") (long-text ,markup? "Text markup. See @ruser{Formatting text}.") @@ -784,6 +805,11 @@ stem distance.") scripts in a stack, by being added to the position of the script in the user input, the sum being the overall priority. Smaller means closer to the head.") + (segno-kern ,number? "The space between the two thin lines +of the segno bar line symbol, expressed as a multiple of the +default staff-line thickness (i.e. the visual output is @emph{not} +influenced by changes to +@code{@var{Staff}.StaffSymbol.thickness}).") (self-alignment-X ,number? "Specify alignment of an object. The value @w{@code{-1}} means left aligned, @code{0}@tie{}centered, and @code{1}@tie{}right-aligned in X@tie{}direction. Other numerical @@ -958,11 +984,17 @@ this property.") (text-direction ,ly:dir? "This controls the ordering of the words. The default @code{RIGHT} is for roman text. Arabic or Hebrew should use @code{LEFT}.") - (thick-thickness ,number? "Bar line thickness, measured in -@code{line-thickness}.") - (thickness ,number? "Line thickness, generally measured in -@code{line-thickness}.") - (thin-kern ,number? "The space after a hair-line in a bar line.") + (thick-thickness ,number? "Thickness of the thick line in a +bar line, expressed as a multiple of the default staff-line +thickness (i.e. the visual output is @emph{not} influenced by +changes to @code{@var{Staff}.StaffSymbol.thickness}).") + (thickness ,number? "For grobs made up of lines, this is the +thickness of the line. For slurs and ties, this is the distance +between the two arcs of the curve's outline at its thickest point, +not counting the diameter of the virtual @qq{pen} that draws the +arcs. This property is expressed as a multiple of the current +staff-line thickness (i.e. the visual output is influenced by +changes to @code{@var{Staff}.StaffSymbol.thickness}).") (tie-configuration ,list? "List of @code{(@var{position} . @var{dir})} pairs, indicating the desired tie configuration, where @var{position} is the offset from the center of the staff in staff @@ -1016,6 +1048,8 @@ texts.") ;;; ;;; x ;;; + (X-align-on-main-noteheads ,boolean? "If true, this grob will +ignore suspended noteheads when aligning itself on NoteColumn.") (X-extent ,number-pair? "Extent (size) in the X@tie{}direction, measured in staff-space units, relative to object's reference point.") (X-offset ,number? "The horizontal amount that this object is diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 62473075de..ea606ece06 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -85,12 +85,7 @@ (staff-padding . 0.25) (stencil . ,ly:accidental-interface::print) (X-extent . ,ly:accidental-interface::width) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::centered-on-x-parent)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self))))) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,accidental-interface::height) (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Item) @@ -221,7 +216,7 @@ ;; TODO: ;; kern should scale with line-thickness too. (kern . 3.0) - (thin-kern . 3.0) + (segno-kern . 3.0) (hair-thickness . 1.9) (thick-thickness . 6.0) @@ -582,24 +577,19 @@ . ( (break-visibility . ,(grob::inherit-parent-property X 'break-visibility)) - (font-shape . italic) - (font-size . -4) - (transparent . ,(grob::inherit-parent-property - X 'transparent)) (color . ,(grob::inherit-parent-property X 'color)) + (font-shape . italic) + (font-size . -4) (self-alignment-X . ,CENTER) (staff-padding . 0.7) (stencil . ,ly:text-interface::print) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::centered-on-x-parent))))) - (Y-offset . ,side-position-interface::y-aligned-side) + (transparent . ,(grob::inherit-parent-property + X 'transparent)) (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,grob::always-Y-extent-from-stencil) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Item) (interfaces . (clef-modifier-interface font-interface @@ -636,16 +626,17 @@ (outside-staff-priority . 450) (padding . 0.5) (script-priority . 200) + (self-alignment-X . #f) (side-axis . ,Y) (staff-padding . 0.5) - ;; todo: add X self alignment? (stencil . ,ly:text-interface::print) - (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-offset . ,side-position-interface::y-aligned-side) (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) (interfaces . (font-interface outside-staff-interface + self-alignment-interface side-position-interface text-interface text-script-interface)))))) @@ -784,14 +775,9 @@ (side-axis . ,Y) (staff-padding . 0.25) (stencil . ,ly:text-interface::print) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::centered-on-y-parent)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self))))) - (Y-offset . ,side-position-interface::y-aligned-side) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,grob::always-Y-extent-from-stencil) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Item) (interfaces . (font-interface outside-staff-interface @@ -857,7 +843,8 @@ (stencil . ,ly:text-interface::print) (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) (Y-extent . ,grob::always-Y-extent-from-stencil) - (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) + (X-align-on-main-noteheads . #t) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-offset . ,(scale-by-font-size -0.6)) ; center on an 'm' (meta . ((class . Item) (interfaces . (dynamic-interface @@ -1107,13 +1094,8 @@ (layer . 0) (self-alignment-X . ,CENTER) (stencil . ,ly:grid-line-interface::print) - (X-extent . ,ly:grid-line-interface::width) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::centered-on-x-parent)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self))))) + (X-extent . ,ly:grid-line-interface::width) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (meta . ((class . Item) (interfaces . (grid-line-interface self-alignment-interface)))))) @@ -1220,7 +1202,8 @@ (key-signature . (extra-space . 0.5)) (cue-clef . (extra-space . 0.5)) (right-edge . (extra-space . 0.5)) - (first-note . (fixed-space . 2.5)))) + (first-note . (fixed-space . 2.5)) + (custos . (extra-space . 1.0)))) (stencil . ,ly:key-signature-interface::print) (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) (Y-extent . ,grob::always-Y-extent-from-stencil) @@ -1416,6 +1399,7 @@ (word-space . 0.6) (skyline-horizontal-padding . 0.1) (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) + (X-align-on-main-noteheads . #t) (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,grob::always-Y-extent-from-stencil) (meta . ((class . Item) @@ -1541,15 +1525,10 @@ (springs-and-rods . ,ly:multi-measure-rest::set-text-rods) (staff-padding . 0.4) (stencil . ,ly:text-interface::print) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-centered-on-y-parent))))) - (Y-offset . ,side-position-interface::y-aligned-side) (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,grob::always-Y-extent-from-stencil) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Spanner) (interfaces . (font-interface multi-measure-interface @@ -1567,15 +1546,10 @@ (skyline-horizontal-padding . 0.2) (staff-padding . 0.25) (stencil . ,ly:text-interface::print) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-centered-on-y-parent)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self))))) - (Y-offset . ,side-position-interface::y-aligned-side) (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,grob::always-Y-extent-from-stencil) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Spanner) (interfaces . (font-interface multi-measure-interface @@ -1774,14 +1748,9 @@ (self-alignment-X . ,CENTER) (staff-padding . 0.25) (stencil . ,ly:text-interface::print) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-centered-on-y-parent)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self))))) - (Y-offset . ,side-position-interface::y-aligned-side) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,grob::always-Y-extent-from-stencil) + (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Spanner) (interfaces . (font-interface percent-repeat-interface @@ -2146,6 +2115,7 @@ ;; and the extreme minima as abolute minimum length. (direction . ,ly:stem::calc-direction) + (double-stem-separation . 0.5) (duration-log . ,stem::calc-duration-log) (length . ,(ly:make-unpure-pure-container ly:stem::calc-length ly:stem::pure-calc-length)) (neutral-direction . ,DOWN) @@ -2178,13 +2148,8 @@ (stencil . ,ly:stem-tremolo::print) (style . ,ly:stem-tremolo::calc-style) (X-extent . ,ly:stem-tremolo::width) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-extent . ,(grob::unpure-Y-extent-from-stencil ly:stem-tremolo::pure-height)) - (X-offset . ,(ly:make-simple-closure - `(,+ - ,(ly:make-simple-closure - (list ly:self-alignment-interface::centered-on-x-parent)) - ,(ly:make-simple-closure - (list ly:self-alignment-interface::x-aligned-on-self))))) (Y-offset . ,(ly:make-unpure-pure-container ly:stem-tremolo::calc-y-offset ly:stem-tremolo::pure-calc-y-offset)) (meta . ((class . Item) (interfaces . (self-alignment-interface @@ -2388,7 +2353,7 @@ (TextScript . ( (avoid-slur . around) - (cross-staff . ,script-or-side-position-cross-staff) + (cross-staff . #f) (direction . ,DOWN) (extra-spacing-width . (+inf.0 . -inf.0)) (outside-staff-horizontal-padding . 0.2) @@ -2398,14 +2363,16 @@ (padding . 0.3) (script-priority . 200) + ;; self-alignment cannot be LEFT because of fingering diagrams. + (self-alignment-X . #f) (side-axis . ,Y) (slur-padding . 0.5) (staff-padding . 0.5) (stencil . ,ly:text-interface::print) (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) - ;; todo: add X self alignment? (Y-extent . ,grob::always-Y-extent-from-stencil) - (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) + (X-align-on-main-noteheads . #t) + (X-offset . ,ly:self-alignment-interface::aligned-on-x-parent) (Y-offset . ,side-position-interface::y-aligned-side) (meta . ((class . Item) (interfaces . (font-interface diff --git a/scm/document-backend.scm b/scm/document-backend.scm index d9ec2b00b5..406f09aacb 100644 --- a/scm/document-backend.scm +++ b/scm/document-backend.scm @@ -176,6 +176,16 @@ node." (cons (cons key val) prior)) '() (ly:all-grob-interfaces))) +;; sort user-settable and internal props within each grob-interface +(set! interface-description-alist + (map! (lambda (iface-desc) + (let* ((key-name-docstr (list-head iface-desc 3)) + (props (list-tail iface-desc 3)) + (sorted-props (list (sort (car props) ly:symbol-cistring finger) finger)) - (inverted-color (eq? 'inverted (cadddr mypair))) - (dot-color (if (or (and (eq? default-dot-color 'black) inverted-color) - (and (eq? default-dot-color 'white) (not inverted-color))) - 'white - 'black)) - (dot-stencil (if (eq? dot-color 'white) - (ly:stencil-add - (make-circle-stencil - scale-dot-radius scale-dot-thick #t) - (ly:stencil-in-color - (make-circle-stencil - (- scale-dot-radius (* 0.5 scale-dot-thick)) - 0 #t) - 1 1 1)) - (make-circle-stencil - scale-dot-radius scale-dot-thick #t))) + (parenthesized + (if (not (null? (dot-is-parenthesized mypair))) + (dot-is-parenthesized mypair) + #f)) + (parenthesis-color + (if (not (null? (default-paren-color mypair))) + (default-paren-color mypair) + #f)) + (inverted + (if (not (null? (dot-is-inverted mypair))) + (dot-is-inverted mypair) + #f)) + (dot-color-is-white? + (or inverted + (and (eq? default-dot-color 'white) (not inverted)))) + (what-color + (x11-color + (cond ((and inverted + (not (dot-has-color mypair)) + (not (eq? default-dot-color 'white))) + (or default-dot-color 'black)) + (dot-color-is-white? + (or (dot-has-color mypair) 'black)) + (else + (or (dot-has-color mypair) + default-dot-color + 'black))))) + (inverted-stil + (lambda (color) + (ly:stencil-add + (stencil-with-color + (make-circle-stencil + scale-dot-radius scale-dot-thick #t) + color) + (stencil-with-color + (make-circle-stencil + (- scale-dot-radius (* 0.5 scale-dot-thick)) + 0 #t) + (x11-color 'white))))) + (dot-stencil + (if dot-color-is-white? + (inverted-stil what-color) + (stencil-with-color + (make-circle-stencil + scale-dot-radius scale-dot-thick #t) + what-color))) + (par-dot-stencil + (let ((paren-color + (if (and parenthesis-color + (not (eq? default-dot-color 'white))) + (x11-color (or default-dot-color 'black)) + what-color))) + (stencil-with-color + (parenthesize-stencil + dot-stencil ;; stencil + (* size th 0.75) ;; half-thickness + (* 0.15 size) ;;width + 0 ;; angularity + paren-padding ;; padding + ) + paren-color))) + (final-dot-stencil + (if parenthesized + par-dot-stencil + dot-stencil)) (positioned-dot - (ly:stencil-translate dot-stencil dot-coordinates)) + (ly:stencil-translate final-dot-stencil dot-coordinates)) (labeled-dot-stencil (cond ((or (eq? finger '())(eq? finger-code 'none)) @@ -581,10 +674,12 @@ fret-diagram overall parameters." layout props dot-label-font-mag finger)))) (ly:stencil-translate (ly:stencil-add - dot-stencil - (if (eq? dot-color 'white) - finger-label - (ly:stencil-in-color finger-label 1 1 1))) + final-dot-stencil + (if dot-color-is-white? + (stencil-with-color + finger-label + what-color) + (stencil-with-color finger-label white))) dot-coordinates))) ((eq? finger-code 'below-string) (let* ((label-stencil @@ -701,6 +796,8 @@ at @var{fret}." (label-dir (assoc-get 'label-dir details RIGHT)) (label-vertical-offset (assoc-get 'fret-label-vertical-offset details 0)) + (label-horizontal-offset + (assoc-get 'fret-label-horizontal-offset details 0)) (number-type (assoc-get 'number-type details 'roman-lower)) (label-text @@ -726,7 +823,10 @@ at @var{fret}." label-stencil 'string orientation)) - (label-outside-diagram (+ label-space label-half-width))) + (label-outside-diagram + (+ label-space + (* size label-horizontal-offset) + label-half-width))) (ly:stencil-translate label-stencil (stencil-coordinates @@ -972,15 +1072,30 @@ to string @var{end-string} at fret @var{fret-number}. Place a capo indicator (a large solid bar) across the entire fretboard at fret location @var{fret-number}. Also, set fret @var{fret-number} to be the lowest fret on the fret diagram. - -@item (place-fret @var{string-number} @var{fret-number} [@var{finger-value} [@var{color-modifier}]]) +@item +(place-fret @var{string-number} + @var{fret-number} + [@var{finger-value}] + [@var{color-modifier}] + [@var{color}] + [@code{'parenthesized} [@code{'default-paren-color}]]) Place a fret playing indication on string @var{string-number} at fret @var{fret-number} with an optional fingering label @var{finger-value}, -and an optional color modifier @var{color-modifier}. +an optional color modifier @var{color-modifier}, an optional color +@var{color}, an optional parenthesis @code{'parenthesized} and an +optional paranthesis color @code{'default-paren-color}. By default, the fret playing indicator is a solid dot. This can be -globally changed by setting the value of the variable @var{dot-color}. +globally changed by setting the value of the variable @var{dot-color} +or for a single dot by setting the value of @var{color}. The dot can +be parenthesized by adding @code{'parenthesized}. By default the +color for the parenthesis is taken from the dot. Adding +@code{'default-paren-color} will take the parenthesis-color from the +global @var{dot-color}, as a fall-back black will be used. Setting @var{color-modifier} to @code{inverted} inverts the dot color for a specific fingering. +The values for @var{string-number}, @var{fret-number}, and the optional +@var{finger} should be entered first in that order. +The order of the other optional arguments does not matter. If the @var{finger} part of the @code{place-fret} element is present, @var{finger-value} will be displayed according to the setting of the variable @var{finger-code}. There is no limit to the number of fret diff --git a/scm/ly-syntax-constructors.scm b/scm/ly-syntax-constructors.scm index 2712fc21f3..73e871686e 100644 --- a/scm/ly-syntax-constructors.scm +++ b/scm/ly-syntax-constructors.scm @@ -64,7 +64,8 @@ (if good (ly:parser-error parser (format #f (_ "~a function cannot return ~a") - (type-name pred) m) + (type-name pred) + (value->lily-string m parser)) loc)) (and (pair? (car sig)) (cdar sig)))))) diff --git a/scm/modal-transforms.scm b/scm/modal-transforms.scm index 3e31f660e4..4200a1f176 100644 --- a/scm/modal-transforms.scm +++ b/scm/modal-transforms.scm @@ -130,9 +130,8 @@ LilyPond scheme pitches, e.g. @code{(ly:make-pitch 0 2 0)} "Recurse through @var{music}, extracting pitches. Returns a list of pitch objects, e.g @code{'((ly:make-pitch 0 2 0) (ly:make-pitch 0 4 0) ... )} -Typically used to construct a scale for input to transposer-factory -(see). -" +Typically used to construct a scale for input to +@code{transposer-factory}." (let ((elements (ly:music-property music 'elements)) (element (ly:music-property music 'element)) @@ -192,12 +191,15 @@ Typically used to construct a scale for input to transposer-factory ;; inversion and retrograding. (let* ((elements (ly:music-property music 'elements)) + (arts (ly:music-property music 'articulations)) (reversed (reverse elements)) (element (ly:music-property music 'element)) (span-dir (ly:music-property music 'span-direction))) (ly:music-set-property! music 'elements reversed) + (for-each retrograde-music arts) + (if (ly:music? element) (ly:music-set-property! music 'element diff --git a/scm/music-functions.scm b/scm/music-functions.scm index ba567229e7..2638e99979 100644 --- a/scm/music-functions.scm +++ b/scm/music-functions.scm @@ -906,17 +906,19 @@ NUMBER is 0-base, i.e., Voice=1 (upstems) has number 0. (lambda (elt) (grob::has-interface elt symbol))) -(define-public ((outputproperty-compatibility func sym val) grob g-context ao-context) +(define ((outputproperty-compatibility func sym val) grob g-context ao-context) (if (func grob) (set! (ly:grob-property grob sym) val))) +(export outputproperty-compatibility) -(define-public ((set-output-property grob-name symbol val) grob grob-c context) +(define ((set-output-property grob-name symbol val) grob grob-c context) "Usage example: @code{\\applyoutput #(set-output-property 'Clef 'extra-offset '(0 . 1))}" (let ((meta (ly:grob-property grob 'meta))) (if (equal? (assoc-get 'name meta) grob-name) (set! (ly:grob-property grob symbol) val)))) +(export set-output-property) (define-public (skip->rest mus) @@ -1065,10 +1067,6 @@ value (evaluated at definition time). An optional parameter can be omitted in a call only when it can't get confused with a following parameter of different type. -Predicates with syntactical significance are @code{ly:pitch?}, -@code{ly:duration?}, @code{ly:music?}, @code{markup?}. Other -predicates require the parameter to be entered as Scheme expression. - @code{result-type?} can specify a default in the same manner as predicates, to be used in case of a type error in arguments or result." @@ -1119,10 +1117,6 @@ value (evaluated at definition time). An optional parameter can be omitted in a call only when it can't get confused with a following parameter of different type. -Predicates with syntactical significance are @code{ly:pitch?}, -@code{ly:duration?}, @code{ly:music?}, @code{markup?}. Other -predicates require the parameter to be entered as Scheme expression. - Must return a music expression. The @code{origin} is automatically set to the @code{location} parameter." @@ -1143,10 +1137,6 @@ value (evaluated at definition time). An optional parameter can be omitted in a call only when it can't get confused with a following parameter of different type. -Predicates with syntactical significance are @code{ly:pitch?}, -@code{ly:duration?}, @code{ly:music?}, @code{markup?}. Other -predicates require the parameter to be entered as Scheme expression. - Can return arbitrary expressions. If a music expression is returned, its @code{origin} is automatically set to the @code{location} parameter." @@ -1175,10 +1165,6 @@ value (evaluated at definition time). An optional parameter can be omitted in a call only when it can't get confused with a following parameter of different type. -Predicates with syntactical significance are @code{ly:pitch?}, -@code{ly:duration?}, @code{ly:music?}, @code{markup?}. Other -predicates require the parameter to be entered as Scheme expression. - Must return an event expression. The @code{origin} is automatically set to the @code{location} parameter." @@ -1229,7 +1215,7 @@ set to the @code{location} parameter." (and clef (make-cue-clef-unset)))))) quote-music)) -(define-public ((quote-substitute quote-tab) music) +(define ((quote-substitute quote-tab) music) (let* ((quoted-name (ly:music-property music 'quoted-music-name)) (quoted-vector (and (string? quoted-name) (hash-ref quote-tab quoted-name #f)))) @@ -1243,6 +1229,7 @@ set to the @code{location} parameter." ly:quote-iterator::constructor)) (ly:music-warning music (ly:format (_ "cannot find quoted music: `~S'") quoted-name)))) music)) +(export quote-substitute) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -1507,7 +1494,7 @@ also get an accidental." (cons need-restore need-accidental))) -(define-public ((make-accidental-rule octaveness laziness) context pitch barnum measurepos) +(define ((make-accidental-rule octaveness laziness) context pitch barnum measurepos) "Create an accidental rule that makes its decision based on the octave of the note and a laziness value. @@ -1525,12 +1512,14 @@ accidental lasts over that many bar lines. @w{@code{-1}} is `forget immediately', that is, only look at key signature. @code{#t} is `forever'." (check-pitch-against-signature context pitch barnum laziness octaveness #f)) +(export make-accidental-rule) -(define-public ((make-accidental-dodecaphonic-rule octaveness laziness) context pitch barnum measurepos) +(define ((make-accidental-dodecaphonic-rule octaveness laziness) context pitch barnum measurepos) "Variation on function make-accidental-rule that creates an dodecaphonic accidental rule." (check-pitch-against-signature context pitch barnum laziness octaveness #t)) +(export make-accidental-dodecaphonic-rule) (define (key-entry-notename entry) "Return the pitch of an @var{entry} in @code{localAlterations}. @@ -1575,7 +1564,8 @@ For convenience, returns @code{0} if entry is @code{#f}." 0)) (define-public (find-pitch-entry keysig pitch accept-global accept-local) - "Return the first entry in @var{keysig} that matches @var{pitch}. + "Return the first entry in @var{keysig} that matches @var{pitch} +by notename and octave. Alteration is not considered. @var{accept-global} states whether key signature entries should be included. @var{accept-local} states whether local accidentals should be included. If no matching entry is found, @var{#f} is returned." @@ -1615,15 +1605,19 @@ look at bar lines nor different accidentals at the same note name." note (just as in the dodecaphonic accidental style) @emph{except} if the note is immediately preceded by a note with the same pitch. This is a common accidental style in contemporary notation." - (let* ((keysig (ly:context-property context 'localKeySignature)) - (entry (find-pitch-entry keysig pitch #t #t))) + (let* ((keysig (ly:context-property context 'localAlterations)) + (entry (find-pitch-entry keysig pitch #f #t))) (if (not entry) - (cons #f #t) - (let* ((entrymp (key-entry-measure-position entry)) - (entrybn (key-entry-bar-number entry))) - (cons #f - (not - (and (equal? entrybn barnum) (equal? entrymp measurepos)))))))) + (cons #f #t) + (let ((entrymp (key-entry-measure-position entry)) + (entrybn (key-entry-bar-number entry)) + (entryalt (key-entry-alteration entry)) + (alt (ly:pitch-alteration pitch))) + (cons #t + (not (and (equal? entrybn barnum) + (or (equal? measurepos entrymp) + (ly:moment= (length siblings) 2) (helper siblings arg) (car arg)))) +(export value-for-spanner-piece) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; measure counter @@ -2392,3 +2386,193 @@ Offsets are restricted to immutable properties and values of type @code{number}, vals)))) ; return the closure named `self' self) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; \magnifyMusic and \magnifyStaff + +;; defined as a function instead of a list because the +;; all-grob-descriptions alist is not available yet +(define-public (find-all-space-alist-props grob-descriptions) + "Used by @code{\\magnifyStaff}. When @var{grob-descriptions} is equal +to the @code{all-grob-descriptions} alist (defined in +@file{scm/define-grobs.scm}), this will find all grobs that have an +initialized value for the @code{space-alist} property, and return them +as a list in the following format: +@example +'((Ambitus space-alist) + (BarLine space-alist) + ...) +@end example" + (define (has-space-alist? grob-desc) + (ly:assoc-get 'space-alist (cdr grob-desc))) + (let* ((grob-descriptions-with-space-alist + (filter has-space-alist? grob-descriptions)) + (grob-names-with-space-alist + (map car grob-descriptions-with-space-alist))) + (map (lambda (grob-name) (list grob-name 'space-alist)) + grob-names-with-space-alist))) + +(define (magnifyStaff-is-set? context mag) + (let* ((Staff (ly:context-find context 'Staff)) + (old-mag (ly:context-property Staff 'magnifyStaffValue))) + (not (null? old-mag)))) + +(define (staff-magnification-is-changing? context mag) + (let* ((Staff (ly:context-find context 'Staff)) + (old-mag (ly:context-property Staff 'magnifyStaffValue 1))) + (not (= old-mag mag)))) + +(define-public (scale-fontSize func-name mag) + "Used by @code{\\magnifyMusic} and @code{\\magnifyStaff}. Look up the +current @code{fontSize} in the appropriate context and scale it by the +magnification factor @var{mag}. @var{func-name} is either +@code{'magnifyMusic} or @code{'magnifyStaff}." + (make-apply-context + (lambda (context) + (if (or (eq? func-name 'magnifyMusic) + ;; for \magnifyStaff, only scale the fontSize + ;; if staff magnification is changing + (staff-magnification-is-changing? context mag)) + (let* ((where (case func-name + ((magnifyMusic) context) + ((magnifyStaff) (ly:context-find context 'Staff)))) + (fontSize (ly:context-property where 'fontSize 0)) + (new-fontSize (+ fontSize (magnification->font-size mag)))) + (ly:context-set-property! where 'fontSize new-fontSize)))))) + +(define-public (revert-fontSize func-name mag) + "Used by @code{\\magnifyMusic} and @code{\\magnifyStaff}. Calculate +the previous @code{fontSize} value (before scaling) by factoring out the +magnification factor @var{mag} (if @var{func-name} is +@code{'magnifyMusic}), or by factoring out the context property +@code{magnifyStaffValue} (if @var{func-name} is @code{'magnifyStaff}). +Revert the @code{fontSize} in the appropriate context accordingly. + +With @code{\\magnifyMusic}, the scaling is reverted after the music +block it operates on. @code{\\magnifyStaff} does not operate on a music +block, so the scaling from a previous call (if there is one) is reverted +before the new scaling takes effect." + (make-apply-context + (lambda (context) + (if (or (eq? func-name 'magnifyMusic) + ;; for \magnifyStaff... + (and + ;; don't revert the user's fontSize choice + ;; the first time \magnifyStaff is called + (magnifyStaff-is-set? context mag) + ;; only revert the previous fontSize + ;; if staff magnification is changing + (staff-magnification-is-changing? context mag))) + (let* ((where + (case func-name + ((magnifyMusic) context) + ((magnifyStaff) (ly:context-find context 'Staff)))) + (old-mag + (case func-name + ((magnifyMusic) mag) + ((magnifyStaff) + (ly:context-property where 'magnifyStaffValue 1)))) + (fontSize (ly:context-property where 'fontSize 0)) + (old-fontSize (- fontSize (magnification->font-size old-mag)))) + (ly:context-set-property! where 'fontSize old-fontSize)))))) + +(define-public (scale-props func-name mag allowed-to-shrink? props) + "Used by @code{\\magnifyMusic} and @code{\\magnifyStaff}. For each +prop in @var{props}, find the current value of the requested prop, scale +it by the magnification factor @var{mag}, and do the equivalent of a +@code{\\temporary@tie{}\\override} with the new value in the appropriate +context. If @var{allowed-to-shrink?} is @code{#f}, don't let the new +value be less than the current value. @var{func-name} is either +@code{'magnifyMusic} or @code{'magnifyStaff}. The @var{props} list is +formatted like: +@example +'((Stem thickness) + (Slur line-thickness) + ...) +@end example" + (make-apply-context + (lambda (context) + (define (scale-prop grob-prop-list) + (let* ((grob (car grob-prop-list)) + (prop (cadr grob-prop-list)) + (where (if (eq? grob 'SpacingSpanner) + (ly:context-find context 'Score) + (case func-name + ((magnifyMusic) context) + ((magnifyStaff) (ly:context-find context 'Staff))))) + (grob-def (ly:context-grob-definition where grob))) + (if (eq? prop 'space-alist) + (let* ((space-alist (ly:assoc-get prop grob-def)) + (scale-spacing-tuple (lambda (x) + (cons (car x) + (cons (cadr x) + (* mag (cddr x)))))) + (scaled-tuples (map scale-spacing-tuple space-alist)) + (new-alist (append scaled-tuples space-alist))) + (ly:context-pushpop-property where grob prop new-alist)) + (let* ((val (ly:assoc-get prop grob-def 1)) + (proc (lambda (x) + (if allowed-to-shrink? + (* x mag) + (* x (max 1 mag))))) + (new-val (if (number-pair? val) + (cons (proc (car val)) + (proc (cdr val))) + (proc val)))) + (ly:context-pushpop-property where grob prop new-val))))) + (if (or (eq? func-name 'magnifyMusic) + ;; for \magnifyStaff, only scale the properties + ;; if staff magnification is changing + (staff-magnification-is-changing? context mag)) + (for-each scale-prop props))))) + +(define-public (revert-props func-name mag props) + "Used by @code{\\magnifyMusic} and @code{\\magnifyStaff}. Revert each +prop in @var{props} in the appropriate context. @var{func-name} is +either @code{'magnifyMusic} or @code{'magnifyStaff}. The @var{props} +list is formatted like: +@example +'((Stem thickness) + (Slur line-thickness) + ...) +@end example" + (make-apply-context + (lambda (context) + (define (revert-prop grob-prop-list) + (let* ((grob (car grob-prop-list)) + (prop (cadr grob-prop-list)) + (where (if (eq? grob 'SpacingSpanner) + (ly:context-find context 'Score) + (case func-name + ((magnifyMusic) context) + ((magnifyStaff) (ly:context-find context 'Staff)))))) + (ly:context-pushpop-property where grob prop))) + (if (or (eq? func-name 'magnifyMusic) + ;; for \magnifyStaff... + (and + ;; don't revert the user's property overrides + ;; the first time \magnifyStaff is called + (magnifyStaff-is-set? context mag) + ;; revert the overrides from the previous \magnifyStaff, + ;; but only if staff magnification is changing + (staff-magnification-is-changing? context mag))) + (for-each revert-prop props))))) + +;; \magnifyMusic only +(define-public (scale-beam-thickness mag) + "Used by @code{\\magnifyMusic}. Scaling @code{Beam.beam-thickness} +exactly to the @var{mag} value will not work. This uses two reference +values for @code{beam-thickness} to determine an acceptable value when +scaling, then does the equivalent of a +@code{\\temporary@tie{}\\override} with the new value." + (make-apply-context + (lambda (context) + (let* ((grob-def (ly:context-grob-definition context 'Beam)) + (val (ly:assoc-get 'beam-thickness grob-def 0.48)) + (ratio-to-default (/ val 0.48)) + ;; gives beam-thickness=0.48 when mag=1 (like default), + ;; gives beam-thickness=0.35 when mag=0.63 (like CueVoice) + (scaled-default (+ 119/925 (* mag 13/37))) + (new-val (* scaled-default ratio-to-default))) + (ly:context-pushpop-property context 'Beam 'beam-thickness new-val))))) diff --git a/scm/output-lib.scm b/scm/output-lib.scm index 776e618e37..c607fe4122 100644 --- a/scm/output-lib.scm +++ b/scm/output-lib.scm @@ -562,34 +562,37 @@ and duration-log @var{log}." ;; a formatter function, which is simply a wrapper around an existing ;; tuplet formatter function. It takes the value returned by the given ;; function and appends a note of given length. -(define-public ((tuplet-number::append-note-wrapper function note) grob) +(define ((tuplet-number::append-note-wrapper function note) grob) (let ((txt (if function (function grob) #f))) (if txt (markup txt #:fontsize -5 #:note note UP) (markup #:fontsize -5 #:note note UP)))) +(export tuplet-number::append-note-wrapper) ;; Print a tuplet denominator with a different number than the one derived from ;; the actual tuplet fraction -(define-public ((tuplet-number::non-default-tuplet-denominator-text denominator) +(define ((tuplet-number::non-default-tuplet-denominator-text denominator) grob) (number->string (if denominator denominator (ly:event-property (event-cause grob) 'denominator)))) +(export tuplet-number::non-default-tuplet-denominator-text) ;; Print a tuplet fraction with different numbers than the ones derived from ;; the actual tuplet fraction -(define-public ((tuplet-number::non-default-tuplet-fraction-text +(define ((tuplet-number::non-default-tuplet-fraction-text denominator numerator) grob) (let* ((ev (event-cause grob)) (den (if denominator denominator (ly:event-property ev 'denominator))) (num (if numerator numerator (ly:event-property ev 'numerator)))) (format #f "~a:~a" den num))) +(export tuplet-number::non-default-tuplet-fraction-text) ;; Print a tuplet fraction with note durations appended to the numerator and the ;; denominator -(define-public ((tuplet-number::fraction-with-notes +(define ((tuplet-number::fraction-with-notes denominatornote numeratornote) grob) (let* ((ev (event-cause grob)) (denominator (ly:event-property ev 'denominator)) @@ -597,10 +600,11 @@ and duration-log @var{log}." ((tuplet-number::non-default-fraction-with-notes denominator denominatornote numerator numeratornote) grob))) +(export tuplet-number::fraction-with-notes) ;; Print a tuplet fraction with note durations appended to the numerator and the ;; denominator -(define-public ((tuplet-number::non-default-fraction-with-notes +(define ((tuplet-number::non-default-fraction-with-notes denominator denominatornote numerator numeratornote) grob) (let* ((ev (event-cause grob)) (den (if denominator denominator (ly:event-property ev 'denominator))) @@ -612,6 +616,7 @@ and duration-log @var{log}." (make-simple-markup " : ") (make-simple-markup (format #f "~a" num)) (markup #:fontsize -5 #:note numeratornote UP))))) +(export tuplet-number::non-default-fraction-with-notes) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -1021,7 +1026,7 @@ between the two text elements." '(bound-details left padding) (+ my-padding script-padding))))))) -(define-public ((elbowed-hairpin coords mirrored?) grob) +(define ((elbowed-hairpin coords mirrored?) grob) "Create hairpin based on a list of @var{coords} in @code{(cons x y)} form. @code{x} is the portion of the width consumed for a given line and @code{y} is the portion of the height. For example, @@ -1080,6 +1085,7 @@ and draws the stencil based on its coordinates. (if mirrored? (my-c-p-s downlist thick decresc?) empty-stencil)) (cons xtrans ytrans))) '()))) +(export elbowed-hairpin) (define-public flared-hairpin (elbowed-hairpin '((0.95 . 0.4) (1.0 . 1.0)) #t)) @@ -1099,13 +1105,14 @@ and draws the stencil based on its coordinates. (make-tied-lyric-markup text) text)))) -(define-public ((grob::calc-property-by-copy prop) grob) +(define ((grob::calc-property-by-copy prop) grob) (ly:event-property (event-cause grob) prop)) +(export grob::calc-property-by-copy) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; general inheritance -(define-public ((grob::inherit-parent-property axis property . default) grob) +(define ((grob::inherit-parent-property axis property . default) grob) "@var{grob} callback generator for inheriting a @var{property} from an @var{axis} parent, defaulting to @var{default} if there is no parent or the parent has no setting." @@ -1115,6 +1122,7 @@ parent or the parent has no setting." (apply ly:grob-property parent property default)) ((pair? default) (car default)) (else '())))) +(export grob::inherit-parent-property) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; fret boards diff --git a/scm/paper.scm b/scm/paper.scm index 8f6839ab35..d0adef3033 100644 --- a/scm/paper.scm +++ b/scm/paper.scm @@ -20,7 +20,8 @@ (define-public (set-paper-dimension-variables mod) (module-define! mod 'dimension-variables - '(blot-diameter + '(binding-offset + blot-diameter bottom-margin cm footnote-footer-padding diff --git a/scm/tablature.scm b/scm/tablature.scm index 668bf2faa3..615a6dcdf0 100644 --- a/scm/tablature.scm +++ b/scm/tablature.scm @@ -81,23 +81,33 @@ ;; (dotted) half notes to distinguish them from quarter notes: (define-public (tabvoice::make-double-stem-width-for-half-notes grob) (let ((X-extent (ly:stem::width grob))) - - ;; is the note a (dotted) half note? - (if (= 1 (ly:grob-property grob 'duration-log)) - ;; yes -> return double stem width - (cons (car X-extent) (+ 0.5 (* 2 (cdr X-extent)))) - ;; no -> return simple stem width - X-extent))) + ;; does the stem exist and is it on a (dotted) half note? + (if (and (not (equal? X-extent empty-interval)) + (= 1 (ly:grob-property grob 'duration-log))) + + ;; yes -> return double stem X-extent + (let* ((single-stem-width (- (cdr X-extent) (car X-extent))) + (separation (ly:grob-property grob 'double-stem-separation 0.5)) + (total-width (+ single-stem-width separation)) + (half-width (/ total-width 2))) + (cons (- half-width) half-width)) + ;; no -> return simple stem X-extent + X-extent))) (define-public (tabvoice::draw-double-stem-for-half-notes grob) - (let ((stem (ly:stem::print grob))) - - ;; is the note a (dotted) half note? - (if (= 1 (ly:grob-property grob 'duration-log)) - ;; yes -> draw double stem - (ly:stencil-combine-at-edge stem X RIGHT stem 0.5) - ;; no -> draw simple stem - stem))) + (let ((stem-stencil (ly:stem::print grob))) + ;; does the stem exist and is it on a (dotted) half note? + (if (and (ly:stencil? stem-stencil) + (= 1 (ly:grob-property grob 'duration-log))) + + ;; yes -> draw double stem + (let* ((separation (ly:grob-property grob 'double-stem-separation 0.5)) + (half-separation (/ separation 2))) + (ly:stencil-add + (ly:stencil-translate-axis stem-stencil (- half-separation) X) + (ly:stencil-translate-axis stem-stencil half-separation X))) + ;; no -> draw simple stem (or none at all) + stem-stencil))) ;; as default, the glissando line between fret numbers goes ;; upwards, here we have a function to correct this behavior: @@ -224,9 +234,10 @@ ;; a callback for custom fret labels -(define-public ((tab-note-head::print-custom-fret-label fret) grob) +(define ((tab-note-head::print-custom-fret-label fret) grob) (ly:grob-set-property! grob 'text fret) (tab-note-head::print grob)) +(export tab-note-head::print-custom-fret-label) (define-public (tab-note-head::print grob) (define (is-harmonic? grob) diff --git a/scm/titling.scm b/scm/titling.scm index 8e6ae7b7bb..41a32dd467 100644 --- a/scm/titling.scm +++ b/scm/titling.scm @@ -23,7 +23,7 @@ ;;;;;;;;;;;;;;;;;; -(define-public ((marked-up-headfoot what-odd what-even) +(define ((marked-up-headfoot what-odd what-even) layout scopes page-number is-last-bookpart is-bookpart-last-page) "Read variables @var{what-odd}, @var{what-even} from @var{layout}, and interpret them as markup. The @var{props} argument will include @@ -71,8 +71,9 @@ variables set in @var{scopes} and @code{page:is-bookpart-last-page}, (markup? (get what-even))) (get what-even) (get what-odd)))) +(export marked-up-headfoot) -(define-public ((marked-up-title what) layout scopes) +(define ((marked-up-title what) layout scopes) "Read variables @var{what} from @var{scopes}, and interpret it as markup. The @var{props} argument will include variables set in @var{scopes} (prefixed with `header:'." @@ -101,3 +102,4 @@ with `header:'." (if (markup? markup) (interpret-markup layout props markup) empty-stencil))) +(export marked-up-title) diff --git a/scm/translation-functions.scm b/scm/translation-functions.scm index 4479d3ae1b..3e65016edb 100644 --- a/scm/translation-functions.scm +++ b/scm/translation-functions.scm @@ -42,7 +42,7 @@ way the transposition number is displayed." ;; prepare using other fonts than 'fetaMusic. ;; Currently it ensures that the default-fonts are used by the ;; markup-command 'note-by-number' in 'metronome-markup' (see below). -(define*-public +(define* ((styled-metronome-markup #:optional (glyph-font 'default)) event context) (let ((hide-note (ly:context-property context 'tempoHideNote #f)) @@ -51,6 +51,7 @@ way the transposition number is displayed." (count (ly:event-property event 'metronome-count))) (metronome-markup glyph-font text dur count hide-note))) +(export styled-metronome-markup) (define-public format-metronome-markup (styled-metronome-markup)) @@ -634,16 +635,19 @@ only ~a fret labels provided") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; bar numbers -(define-public ((every-nth-bar-number-visible n) barnum mp) +(define ((every-nth-bar-number-visible n) barnum mp) (= 0 (modulo barnum n))) +(export every-nth-bar-number-visible) -(define-public ((modulo-bar-number-visible n m) barnum mp) +(define ((modulo-bar-number-visible n m) barnum mp) (and (> barnum 1) (= m (modulo barnum n)))) +(export modulo-bar-number-visible) -(define-public ((set-bar-number-visibility n) tr) +(define ((set-bar-number-visibility n) tr) (let ((bn (ly:context-property tr 'currentBarNumber))) (ly:context-set-property! tr 'barNumberVisibility (modulo-bar-number-visible n (modulo bn n))))) +(export set-bar-number-visibility) (define-public (first-bar-number-invisible barnum mp) (> barnum 1)) @@ -688,8 +692,9 @@ only ~a fret labels provided") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; percent repeat counters -(define-public ((every-nth-repeat-count-visible n) count context) +(define ((every-nth-repeat-count-visible n) count context) (= 0 (modulo count n))) +(export every-nth-repeat-count-visible) (define-public (all-repeat-counts-visible count context) #t) diff --git a/scripts/auxiliar/make-countdown-announcement.sh b/scripts/auxiliar/make-countdown-announcement.sh new file mode 100755 index 0000000000..fe1747f731 --- /dev/null +++ b/scripts/auxiliar/make-countdown-announcement.sh @@ -0,0 +1,259 @@ +#!/bin/bash + +# convert a Google code CSV file into a countdown announcement +# +# USAGE: +# make-countdown-announcement.sh NEXT_DEADLINE_DATE [PATCH-MEISTER] +# OR +# make-countdown-announcement.sh NEXT_DEADLINE_DATE [PATCH-MEISTER] > OUTPUT-FILE +# +# EXAMPLES: +# make-countdown-announcement.sh "Jan 1, 2001" "John Doe" +# make-countdown-announcement.sh "Jan 1, 2001" John +# make-countdown-announcement.sh "Jan 1, 2001" > countdown.txt + + +CSV_FILE=lilypond-issues.csv # comma-separated values +TSV_FILE=lilypond-issues.tsv # tab-separated values +URL_BASE="http://code.google.com/p/lilypond/issues" +QUERY_STR="q=Patch%3Apush%2Ccountdown%2Creview%2Cnew%2Cwaiting&colspec=Patch%20Owner%20ID%20Summary&sort=patch" +DEADLINE=$1 +PATCH_MEISTER=${2:-"The Patch Mister"} +MAILMAP=' +"adam.spiers","Adam Spiers" +"aleksandr.andreev","Aleksandr Andreev" +"benko.pal","Benkő Pál" +"bordage.bertrand","Bertrand Bordage" +"brownian.box","Dmytro O. Redchuk" +"Carl.D.Sorensen","Carl Sorensen" +"carlopeterson","Carl Peterson" +"colinghall","Colin Hall" +"ColinPKCampbell","Colin Campbell" +"d8valily","Mark Mathias" +"dak@gnu.org","David Kastrup" +"david.nalesnik","David Nalesnik" +"dschudy","Devon Schudy" +"Eluzew","Eluze W" +"erlenda","Erlend Aasland" +"fedelogy","Federico Bruni" +"frederic.bron.1995@polytechnique.org","Frédéric Bron" +"graham@percival-music.ca","Graham Percival" +"hanwenn","Han-Wen Nienhuys" +"hjunes","Heikki Junes" +"ianhulin44","Ian Hulin" +"idragosani","Brett McCoy" +"jameselihubailey","James E. Bailey" +"janek.lilypond","Janek Warchoł" +"jan.nieuwenhuizen","Jan Nieuwenhuizen" +"joeneeman","Joe Neeman" +"john.mandereau","John Mandereau" +"joseph.wakeling","Joseph Wakeling" +"julien.rioux","Julien Rioux" +"kieren@alumni.rice.edu","Kieren MacMillan" +"k-ohara5a5a@oco.net","Keith OHara" +"lemzwerg","Werner Lemberg" +"lilyliska","Urs Liska" +"lilypond.patchy.graham","Graham Percival" +"mandolaerik","Erik Sandberg" +"marc@hohlart.de","Marc Hohl" +"marek@gregoriana.sk","Marek Klein" +"markpolesky","Mark Polesky" +"milimetr88","Łukasz Czerwiński" +"mtsolo","Mike Solomon" +"neziap","Janek Warchoł" +"nicolas.sceaux","Nicolas Sceaux" +"n.puttock","Neil Puttock" +"paconet.org","Francisco Vila" +"PhilEHolmes","Phil Holmes" +"pkx166h","James Lowe" +"plroskin","Pavel Roskin" +"pnorcks","Patrick McCarty" +"RalphBugList","Ralph Palmer" +"reinhold.kainhofer","Reinhold Kainhofer" +"rzedeler","Rune Zedeler" +"schilke.60","Derek Klinge" +"shingarov","Boris Shingarov" +"tdanielsmusic","Trevor Daniels" +"thomasmorley65","Thomas Morley" +"v.villenave","Valentin Villenave" +' + + +usage() { + cat << EOF >&2 +USAGE: + `basename $0` NEXT_DEADLINE_DATE [PATCH-MEISTER] + OR + `basename $0` NEXT_DEADLINE_DATE [PATCH-MEISTER] > OUTPUT-FILE + +EXAMPLES: + `basename $0` "Jan 1, 2001" "John Doe" + `basename $0` "Jan 1, 2001" John + `basename $0` "Jan 1, 2001" > countdown.txt +EOF + exit 1 +} + + +# display USAGE +case $# in + 1|2) case $1 in + -h|--help) usage ;; + *) ;; + esac ;; + *) usage ;; +esac + + +# clean up in case of a previous interrupt +remove-if-exists() { + if [ -e $1 ]; then rm $1; fi +} +remove-if-exists push.tmp +remove-if-exists countdown.tmp +remove-if-exists review.tmp +remove-if-exists new.tmp +remove-if-exists waiting.tmp +remove-if-exists $TSV_FILE + + +# show initial instructions +read -p "First, in your web browser, make sure you're logged in to: + + $URL_BASE/list + +Then save the following link as a file called \"$CSV_FILE\" +(save it to this directory -- $PWD/): + + $URL_BASE/csv?$QUERY_STR + +Then press enter" + + +if [ ! -e $CSV_FILE ]; then + echo -e "\nError: can't find \`$CSV_FILE': No such file or directory" >&2 + exit 1 +fi + + +# If the user wasn't logged in when downloading $CSV_FILE, the emails will +# appear truncated, e.g. "abc...@gmail.com", and won't be properly replaced by +# the author names later on. This code block complains if the string "...@" is +# found anywhere in the email field. +if [ "`cut -d, -f2 $CSV_FILE | grep -o '\.\.\.@'`" ]; then + read -p " +It looks like you were not logged in to Google code when you downloaded +$CSV_FILE. Continue anyway (y/n)? " + while : + do + case "$REPLY" in + y) break ;; + n) exit 1 ;; + *) read -p "Enter \`y' to continue; \`n' to quit and try again: " + esac + done +fi + + +# change the quoted, comma-separated file +# into an unquoted, tab-separated file +# and keep only the first 4 fields: Patch,Owner,ID,Summary +sed '{ +1d +/^$/d +s/^"// +s/","/\t/g +s/",*$// +s/""/"/g +}' $CSV_FILE | cut -sf1-4 > $TSV_FILE + + +EMAILS_USED=`awk -F"\t" '{ print $2 }' $TSV_FILE | sort --unique` +KNOWN_EMAILS=` +IFS=$'\n' +for i in $MAILMAP; do + echo "$i" | sed 's/^"\(.*\)",".*/\1/' +done | sort --unique` +UNKNOWN_EMAILS=`comm -23 <(echo "$EMAILS_USED") <(echo "$KNOWN_EMAILS")` + + +# Unknown emails/usernames usually mean new contributors. +# If any are found, the user is prompted to add the new +# authors' names to the MAILMAP list above. +if [ "$UNKNOWN_EMAILS" ]; then + COUNT=`wc --lines <(echo "$UNKNOWN_EMAILS") | sed 's/ .*//'` + if [ $COUNT -eq 1 ]; then + echo -e "\nError: The following email/username needs to be associated with a name:" >&2 + echo "$UNKNOWN_EMAILS" | sed 's/^/ /' >&2 + echo -e "Please add it to the MAILMAP list in\n $0" >&2 + else + echo -e "\nError: The following emails/usernames need to be associated with names:" >&2 + echo "$UNKNOWN_EMAILS" | sed 's/^/ /' >&2 + echo -e "Please add them to the MAILMAP list in\n $0" >&2 + fi + echo "using the following form:" >&2 + echo "$UNKNOWN_EMAILS" | sed 's/.*/ "&","author name"/' >&2 + echo "and commit your changes to the main git repository." >&2 + remove-if-exists $TSV_FILE + exit 1 +fi + + +EMAIL_REPLACEMENTS=` +IFS=$'\n' +for i in $MAILMAP; do + echo "$i" | sed 's/^"\(.*\)","\(.*\)"$/s\/\1\/\2\/g/' +done` + + +# replace emails/usernames with author names +# and separate the issues by patch type +sed -n "{ +$EMAIL_REPLACEMENTS +/^push/w push.tmp +/^countdown/w countdown.tmp +/^review/w review.tmp +/^new/w new.tmp +/^waiting/w waiting.tmp +}" $TSV_FILE + + +# clean up; $TSV_FILE is no longer needed +remove-if-exists $TSV_FILE + + +format-entry() { + TYPE=$1 + FILE="$1.tmp" + if [ -s $FILE ]; then + echo -e "$TYPE:\n" | tr 'a-z' 'A-Z' + awk -v UB=$URL_BASE -F"\t" \ + '{ printf("%s: %s\n%s/detail?id=%d\n\n"), $2, $4, UB, $3 }' $FILE + echo -e "____________________\n\n" + fi + remove-if-exists $FILE +} + +echo >&2 + + +# display the countdown announcement +echo "Hello, + +Here is the current patch countdown list. +The next countdown will be on $DEADLINE. + +You can always view the most current countdown list here: +$URL_BASE/list?$QUERY_STR + +____________________ + +" + +format-entry push +format-entry countdown +format-entry review +format-entry new +format-entry waiting + +echo -e "Thank you,\n$PATCH_MEISTER" diff --git a/scripts/auxiliar/makelsr.py b/scripts/auxiliar/makelsr.py index 8d06023b01..d17fd53c71 100755 --- a/scripts/auxiliar/makelsr.py +++ b/scripts/auxiliar/makelsr.py @@ -28,7 +28,7 @@ lilypond_bin = os.path.join (conv_path, 'lilypond') LY_HEADER_LSR = '''%% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it +%% generated from LSR http://lsr.di.unimi.it %% Make any changes in LSR itself, or in Documentation/snippets/new/ , %% and then run scripts/auxiliar/makelsr.py %% diff --git a/scripts/musicxml2ly.py b/scripts/musicxml2ly.py index e6a6807440..e270aed95e 100644 --- a/scripts/musicxml2ly.py +++ b/scripts/musicxml2ly.py @@ -41,7 +41,7 @@ additional_definitions = { "tuplet-note-wrapper": """ % a formatter function, which is simply a wrapper around an existing % tuplet formatter function. It takes the value returned by the given % function and appends a note of given length. - #(define-public ((tuplet-number::append-note-wrapper function note) grob) + #(define ((tuplet-number::append-note-wrapper function note) grob) (let* ((txt (if function (function grob) #f))) (if txt (markup txt #:fontsize -5 #:note note UP) @@ -1315,7 +1315,7 @@ def musicxml_words_to_lily_event (words): # convert accordion-registration to lilypond. # Since lilypond does not have any built-in commands, we need to create # the markup commands manually and define our own variables. -# Idea was taken from: http://lsr.dsi.unimi.it/LSR/Item?id=194 +# Idea was taken from: http://lsr.di.unimi.it/LSR/Item?id=194 def musicxml_accordion_to_markup (mxl_event): commandname = "accReg" command = ""