@item
Page layout: changing the appearance of the spacing, line
breaks, and page dimensions. These modifications are discussed
-in @ref{Non-musical notation}, and @ref{Spacing issues}.
+@c in @ref{notation}, and @ref{Spacing issues}.
@end itemize
Internally, LilyPond uses Scheme (a LISP dialect) to provide
@end lilypond
Fingering instructions may be manually placed above or below the
-staff, see @ref{Controlling direction and placement}.
+staff, see @ref{Direction and placement}.
@snippets
@seealso
Notation Reference:
-@ref{Controlling direction and placement}
+@ref{Direction and placement}
Snippets:
@rlsr{Editorial annotations}.
@seealso
Notation Reference:
-@ref{Controlling direction and placement}.
+@ref{Direction and placement}.
Snippets:
@rlsr{Editorial annotations}.
The rules for the default placement of articulations are defined
in @file{scm/@/script@/.scm}. Articulations and ornamentations
may be manually placed above or below the staff, see
-@ref{Controlling direction and placement}.
+@ref{Direction and placement}.
@snippets
@rglos{portato}.
Notation Reference:
-@ref{Controlling direction and placement}.
+@ref{Direction and placement}.
Installed Files:
@file{scm/@/script@/.scm}.
@code{\mp}, @code{\mf}, @code{\f}, @code{\ff}, @code{\fff},
@code{\ffff}, @code{\fp}, @code{\sf}, @code{\sff}, @code{\sp},
@code{\spp}, @code{\sfz}, and @code{\rfz}. The dynamic marks may
-be manually placed above or below the staff, see @ref{Controlling
-direction and placement}.
+be manually placed above or below the staff, see
+@ref{Direction and placement}.
@lilypond[verbatim,quote,relative=2]
c2\ppp c\mp
@rlearning{Articulation and dynamics}.
Notation Reference:
-@ref{Controlling direction and placement}.
+@ref{Direction and placement}.
Snippets:
@rlsr{Expressive marks}.
@code{\slur@emph{DIR}}, where @code{@emph{DIR}} is either
@code{Up}, @code{Down}, or @code{Neutral} (@code{Neutral} is the
default). Slurs may be manually placed above or below the staff,
-see @ref{Controlling direction and placement}.
+see @ref{Direction and placement}.
@lilypond[verbatim,quote,relative=2]
c4_( c) c^( c)
@rglos{slur}.
Notation Reference:
-@ref{Controlling direction and placement}.
+@ref{Direction and placement}.
Snippets:
@rlsr{Expressive marks}.
@code{\slurUp} will have no effect on a phrasing slur; instead,
use @code{\phrasingSlurUp}, @code{\phrasingSlurDown}, and
@code{\phrasingSlurNeutral}. Phrasing slurs may be manually
-placed above or below the staff, see @ref{Controlling direction
+placed above or below the staff, see @ref{Direction
and placement}.
You cannot have simultaneous phrasing slurs.
@seealso
Notation Reference:
-@ref{Controlling direction and placement}.
+@ref{Direction and placement}.
Snippets:
@rlsr{Expressive marks}.
under heavy development.
@menu
-* Input structure::
-* Useful concepts and properties::
-* Titles and headers::
-* Working with input files::
-* Controlling output::
+* Input structure::
+* Useful concepts and properties::
+* Titles and headers::
+* Working with input files::
+* Controlling output::
+* MIDI output::
@end menu
these files end with @code{.ly}.
@menu
-* Structure of a score::
-* Multiple scores in a book::
-* File structure::
+* Structure of a score::
+* Multiple scores in a book::
+* File structure::
@end menu
@rlearning{Working on input files},
@rlearning{Music expressions explained},
-@rlearning{Score is a single (compound) music expression}.
+@rlearning{Score is a single (compound) musical expression}.
@node Multiple scores in a book
@menu
-* Input modes::
-* Controlling direction and placement::
-* Distances and measurements::
-* Spanners::
+* Input modes::
+* Direction and placement::
+* Distances and measurements::
+* Spanners::
@end menu
@node Input modes
-@node Controlling direction and placement
-@subsection Controlling direction and placement
-
-TODO: Maybe rename section to "directions".
+@node Direction and placement
+@subsection Direction and placement
In typesetting music the direction and placement of many items is
a matter of choice. For example, the stems of notes can
@node Spanners
@subsection Spanners
+Many objects of musical notation extend over several notes or even
+several bars. Examples are crescendi, trills, tuplet brackets, and
+volta repeat brackets. Such objects are called @qq{spanners}, and
+have special properties to control their appearance and behaviour.
+Some of these properties are common to all spanners; others are
+restricted to a sub-set of the spanners.
@node Titles and headers
@section Titles and headers
some pieces include a lot more information.
@menu
-* Creating titles::
-* Custom titles::
-* Reference to page numbers::
-* Table of contents::
+* Creating titles::
+* Custom titles::
+* Reference to page numbers::
+* Table of contents::
@end menu
@section Controlling output
@menu
-* Extracting fragments of notation::
+* Extracting fragments of music::
* Skipping corrected music::
@end menu
-@node Extracting fragments of notation
-@subsection Extracting fragments of notation
+@node Extracting fragments of music
+@subsection Extracting fragments of music
It is possible to quote small fragments of a large score directly from
the output. This can be compared to clipping a piece of a paper score
voices and staves, saving even more time.
+
+@node MIDI output
+@section MIDI output
+
+@cindex Sound
+@cindex MIDI
+
+MIDI (Musical Instrument Digital Interface) is a standard for
+connecting and controlling digital instruments. A MIDI file is a
+series of notes in a number of tracks. It is not an actual
+sound file; you need special software to translate between the
+series of notes and actual sounds.
+
+Pieces of music can be converted to MIDI files, so you can listen to
+what was entered. This is convenient for checking the music; octaves
+that are off or accidentals that were mistyped stand out very much
+when listening to the MIDI output.
+
+@knownissues
+
+Many musically interesting effects, such as swing, articulation,
+slurring, etc., are not translated to midi.
+
+The midi output allocates a channel for each staff, and one for global
+settings. Therefore the midi file should not have more than 15 staves
+(or 14 if you do not use drums). Other staves will remain silent.
+
+Not all midi players correctly handle tempo changes in the midi
+output. Players that are known to work include
+@uref{http://@/timidity@/.sourceforge@/.net/,timidity}.
+
+@menu
+* Creating MIDI files::
+* MIDI block::
+* MIDI instrument names::
+* What goes into the MIDI? FIXME::
+* other midi::
+@end menu
+
+@node Creating MIDI files
+@subsection Creating MIDI files
+
+To create a MIDI from a music piece of music, add a @code{\midi} block
+to a score, for example,
+
+@example
+\score @{
+ @var{...music...}
+ \midi @{
+ \context @{
+ \Score
+ tempoWholesPerMinute = #(ly:make-moment 72 4)
+ @}
+ @}
+@}
+@end example
+
+The tempo can be specified using the @code{\tempo} command within the
+actual music, see @ref{Metronome marks}. An alternative, which does not
+result in a metronome mark in the printed score, is shown in the example
+above. In this example the tempo of quarter notes is set to 72 beats per
+minute.
+This kind of tempo
+specification can not take dotted note lengths as an argument. In this
+case, break the dotted notes into smaller units. For example, a tempo
+of 90 dotted quarter notes per minute can be specified as 270 eighth
+notes per minute
+
+@example
+tempoWholesPerMinute = #(ly:make-moment 270 8)
+@end example
+
+If there is a @code{\midi} command in a @code{\score}, only MIDI will
+be produced. When notation is needed too, a @code{\layout} block must
+be added
+
+@example
+\score @{
+ @var{...music...}
+ \midi @{ @}
+ \layout @{ @}
+@}
+@end example
+@cindex layout block
+
+
+
+Ties, dynamics, and tempo changes are interpreted. Dynamic marks,
+crescendi and decrescendi translate into MIDI volume levels. Dynamic
+marks translate to a fixed fraction of the available MIDI volume
+range, crescendi and decrescendi make the volume vary linearly between
+their two extremes. The fractions can be adjusted by
+@code{dynamicAbsoluteVolumeFunction} in @rinternals{Voice} context.
+For each type of MIDI instrument, a volume range can be defined. This
+gives a basic equalizer control, which can enhance the quality of
+the MIDI output remarkably. The equalizer can be controlled by
+setting @code{instrumentEqualizer}, or by setting
+
+@example
+\set Staff.midiMinimumVolume = #0.2
+\set Staff.midiMaximumVolume = #0.8
+@end example
+
+To remove dynamics from the MIDI output, insert the following lines
+in the @code{\midi@{@}} section.
+
+@example
+\midi @{
+ ...
+ \context @{
+ \Voice
+ \remove "Dynamic_performer"
+ @}
+@}
+@end example
+
+
+@knownissues
+
+Unterminated (de)crescendos will not render properly in the midi file,
+resulting in silent passages of music. The workaround is to explicitly
+terminate the (de)crescendo. For example,
+
+@example
+@{ a\< b c d\f @}
+@end example
+
+@noindent
+will not work properly but
+
+@example
+@{ a\< b c d\!\f @}
+@end example
+
+@noindent
+will.
+
+
+MIDI output is only created when the @code{\midi} command is within
+a @code{\score} block. If you put it within an explicitly instantiated
+context ( i.e. @code{\new Score} ) the file will fail. To solve this,
+enclose the @code{\new Score} and the @code{\midi} in a @code{\score} block.
+
+@example
+\score @{
+ \new Score @{ @dots{}notes@dots{} @}
+ \midi
+@}
+@end example
+
+
+@node MIDI block
+@subsection MIDI block
+@cindex MIDI block
+
+
+The MIDI block is analogous to the layout block, but it is somewhat
+simpler. The @code{\midi} block is similar to @code{\layout}. It can contain
+context definitions.
+
+
+@cindex context definition
+
+Context definitions follow precisely the same syntax as within the
+\layout block. Translation modules for sound are called performers.
+The contexts for MIDI output are defined in @file{ly/@/performer@/-init@/.ly}.
+
+
+@node MIDI instrument names
+@subsection MIDI instrument names
+
+@cindex instrument names
+@funindex Staff.midiInstrument
+
+The MIDI instrument name is set by the @code{Staff.midiInstrument}
+property. The instrument name should be chosen from the list in
+@ref{MIDI instruments}.
+
+@example
+\set Staff.midiInstrument = "glockenspiel"
+@var{...notes...}
+@end example
+
+If the selected instrument does not exactly match an instrument from
+the list of MIDI instruments, the Grand Piano (@code{"acoustic grand"})
+instrument is used.
+
+
+@node What goes into the MIDI? FIXME
+@subsection What goes into the MIDI? FIXME
+
+@menu
+* Repeats and MIDI::
+@end menu
+
+@node Repeats and MIDI
+@subsubsection Repeats and MIDI
+
+@cindex expanding repeats
+@funindex \unfoldRepeats
+
+With a little bit of tweaking, all types of repeats can be present
+in the MIDI output. This is achieved by applying the
+@code{\unfoldRepeats} music function. This function changes all
+repeats to unfold repeats.
+
+@lilypond[quote,verbatim,fragment,line-width=8.0\cm]
+\unfoldRepeats {
+ \repeat tremolo 8 {c'32 e' }
+ \repeat percent 2 { c''8 d'' }
+ \repeat volta 2 {c'4 d' e' f'}
+ \alternative {
+ { g' a' a' g' }
+ {f' e' d' c' }
+ }
+}
+\bar "|."
+@end lilypond
+
+When creating a score file using @code{\unfoldRepeats} for MIDI,
+it is necessary to make two @code{\score} blocks: one for MIDI
+(with unfolded repeats) and one for notation (with volta, tremolo,
+and percent repeats). For example,
+
+@example
+\score @{
+ @var{..music..}
+ \layout @{ .. @}
+@}
+\score @{
+ \unfoldRepeats @var{..music..}
+ \midi @{ .. @}
+@}
+@end example
+
+
+@node other midi
+@subsection other midi
+
+Micro tones are also exported to the MIDI file.
+
+Figured bass has no effect on MIDI.
+
specific purposes.
* Input syntax:: General information about
lilypond input files.
-* Non-musical notation:: Output that is not musical notation.
* Spacing issues:: Display of output on paper.
* Changing defaults:: Tuning output.
* Interfaces for programmers:: Expert usage.
@include specialist.itely
@include input.itely
-@include non-music.itely
@include spacing.itely
@include changing-defaults.itely
+++ /dev/null
-@c -*- coding: utf-8; mode: texinfo; -*-
-@c This file is part of lilypond.tely
-@ignore
- Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
-
- When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
-@end ignore
-
-@c \version "2.11.38"
-
-@c A menu is needed before every deeper *section nesting of @node's; run
-@c M-x texinfo-all-menus-update
-@c to automatically fill in these menus before saving changes
-
-@node Non-musical notation
-@chapter Non-musical notation
-
-This section deals with general LilyPond issues, rather than
-specific notation.
-
-@menu
-* MIDI output::
-* other midi::
-@end menu
-
-
-@node MIDI output
-@section MIDI output
-
-@cindex Sound
-@cindex MIDI
-
-MIDI (Musical Instrument Digital Interface) is a standard for
-connecting and controlling digital instruments. A MIDI file is a
-series of notes in a number of tracks. It is not an actual
-sound file; you need special software to translate between the
-series of notes and actual sounds.
-
-Pieces of music can be converted to MIDI files, so you can listen to
-what was entered. This is convenient for checking the music; octaves
-that are off or accidentals that were mistyped stand out very much
-when listening to the MIDI output.
-
-@knownissues
-
-Many musically interesting effects, such as swing, articulation,
-slurring, etc., are not translated to midi.
-
-The midi output allocates a channel for each staff, and one for global
-settings. Therefore the midi file should not have more than 15 staves
-(or 14 if you do not use drums). Other staves will remain silent.
-
-Not all midi players correctly handle tempo changes in the midi
-output. Players that are known to work include
-@uref{http://@/timidity@/.sourceforge@/.net/,timidity}.
-
-@menu
-* Creating MIDI files::
-* MIDI block::
-* MIDI instrument names::
-* What goes into the MIDI? FIXME::
-@end menu
-
-@node Creating MIDI files
-@subsection Creating MIDI files
-
-To create a MIDI from a music piece of music, add a @code{\midi} block
-to a score, for example,
-
-@example
-\score @{
- @var{...music...}
- \midi @{
- \context @{
- \Score
- tempoWholesPerMinute = #(ly:make-moment 72 4)
- @}
- @}
-@}
-@end example
-
-The tempo can be specified using the @code{\tempo} command within the
-actual music, see @ref{Metronome marks}. An alternative, which does not
-result in a metronome mark in the printed score, is shown in the example
-above. In this example the tempo of quarter notes is set to 72 beats per
-minute.
-This kind of tempo
-specification can not take dotted note lengths as an argument. In this
-case, break the dotted notes into smaller units. For example, a tempo
-of 90 dotted quarter notes per minute can be specified as 270 eighth
-notes per minute
-
-@example
-tempoWholesPerMinute = #(ly:make-moment 270 8)
-@end example
-
-If there is a @code{\midi} command in a @code{\score}, only MIDI will
-be produced. When notation is needed too, a @code{\layout} block must
-be added
-
-@example
-\score @{
- @var{...music...}
- \midi @{ @}
- \layout @{ @}
-@}
-@end example
-@cindex layout block
-
-
-
-Ties, dynamics, and tempo changes are interpreted. Dynamic marks,
-crescendi and decrescendi translate into MIDI volume levels. Dynamic
-marks translate to a fixed fraction of the available MIDI volume
-range, crescendi and decrescendi make the volume vary linearly between
-their two extremes. The fractions can be adjusted by
-@code{dynamicAbsoluteVolumeFunction} in @rinternals{Voice} context.
-For each type of MIDI instrument, a volume range can be defined. This
-gives a basic equalizer control, which can enhance the quality of
-the MIDI output remarkably. The equalizer can be controlled by
-setting @code{instrumentEqualizer}, or by setting
-
-@example
-\set Staff.midiMinimumVolume = #0.2
-\set Staff.midiMaximumVolume = #0.8
-@end example
-
-To remove dynamics from the MIDI output, insert the following lines
-in the @code{\midi@{@}} section.
-
-@example
-\midi @{
- ...
- \context @{
- \Voice
- \remove "Dynamic_performer"
- @}
-@}
-@end example
-
-
-@knownissues
-
-Unterminated (de)crescendos will not render properly in the midi file,
-resulting in silent passages of music. The workaround is to explicitly
-terminate the (de)crescendo. For example,
-
-@example
-@{ a\< b c d\f @}
-@end example
-
-@noindent
-will not work properly but
-
-@example
-@{ a\< b c d\!\f @}
-@end example
-
-@noindent
-will.
-
-
-MIDI output is only created when the @code{\midi} command is within
-a @code{\score} block. If you put it within an explicitly instantiated
-context ( i.e. @code{\new Score} ) the file will fail. To solve this,
-enclose the @code{\new Score} and the @code{\midi} in a @code{\score} block.
-
-@example
-\score @{
- \new Score @{ @dots{}notes@dots{} @}
- \midi
-@}
-@end example
-
-
-@node MIDI block
-@subsection MIDI block
-@cindex MIDI block
-
-
-The MIDI block is analogous to the layout block, but it is somewhat
-simpler. The @code{\midi} block is similar to @code{\layout}. It can contain
-context definitions.
-
-
-@cindex context definition
-
-Context definitions follow precisely the same syntax as within the
-\layout block. Translation modules for sound are called performers.
-The contexts for MIDI output are defined in @file{ly/@/performer@/-init@/.ly}.
-
-
-@node MIDI instrument names
-@subsection MIDI instrument names
-
-@cindex instrument names
-@funindex Staff.midiInstrument
-
-The MIDI instrument name is set by the @code{Staff.midiInstrument}
-property. The instrument name should be chosen from the list in
-@ref{MIDI instruments}.
-
-@example
-\set Staff.midiInstrument = "glockenspiel"
-@var{...notes...}
-@end example
-
-If the selected instrument does not exactly match an instrument from
-the list of MIDI instruments, the Grand Piano (@code{"acoustic grand"})
-instrument is used.
-
-
-@node What goes into the MIDI? FIXME
-@subsection What goes into the MIDI? FIXME
-
-@menu
-* Repeats and MIDI::
-@end menu
-
-@node Repeats and MIDI
-@subsubsection Repeats and MIDI
-
-@cindex expanding repeats
-@funindex \unfoldRepeats
-
-With a little bit of tweaking, all types of repeats can be present
-in the MIDI output. This is achieved by applying the
-@code{\unfoldRepeats} music function. This function changes all
-repeats to unfold repeats.
-
-@lilypond[quote,verbatim,fragment,line-width=8.0\cm]
-\unfoldRepeats {
- \repeat tremolo 8 {c'32 e' }
- \repeat percent 2 { c''8 d'' }
- \repeat volta 2 {c'4 d' e' f'}
- \alternative {
- { g' a' a' g' }
- {f' e' d' c' }
- }
-}
-\bar "|."
-@end lilypond
-
-When creating a score file using @code{\unfoldRepeats} for MIDI,
-it is necessary to make two @code{\score} blocks: one for MIDI
-(with unfolded repeats) and one for notation (with volta, tremolo,
-and percent repeats). For example,
-
-@example
-\score @{
- @var{..music..}
- \layout @{ .. @}
-@}
-\score @{
- \unfoldRepeats @var{..music..}
- \midi @{ .. @}
-@}
-@end example
-
-
-@node other midi
-@section other midi
-
-Micro tones are also exported to the MIDI file.
-
-Figured bass has no effect on MIDI.
-
Print a @code{:|} bar line.
@item @code{(volta @var{text})}
-Print a volta bracket saying @var{text}. The text can be specified as
-a text string or as a markup text, see @ref{Formatting text}. Do not
-forget to change the font, as the default number font does not contain
-alphabetic characters;
-
+Print a volta bracket saying @var{text}.
@item @code{(volta #f)}
Stop a running volta bracket.
@end table
+Printing a @code{|:} bar line:
+
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+c1
+\set Score.repeatCommands = #'( start-repeat )
+d4 e f g
+c1
+@end lilypond
+
+Printing a @code{:|} bar line:
+
@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
-c4
-\set Score.repeatCommands = #'((volta "93") end-repeat)
-c4 b
-\set Score.repeatCommands = #'((volta #f))
-d4 e
+c1
+d4 e f g
+\set Score.repeatCommands = #'( end-repeat )
+c1
+@end lilypond
+
+Printing a volta bracket saying @var{text}. The text can be specified
+as a text string or as a markup text, see @ref{Formatting text}. Do
+not forget to change the font, as the default number font does not
+contain alphabetic characters.
+
+
+@lilypond[verbatim,quote,relative=2]
+c1
+d4 e f g
+\override Staff.VoltaBracket #'font-name = #"sans"
+\set Score.repeatCommands = #'( ( volta "1. Repeat to CHORUS" ) )
+f4 g a b
+\set Score.repeatCommands = #'( ( volta #f ) \text ( volta "2., 3. To VERSE" ) end-repeat )
+g4 a g a
+c1
@end lilypond
+Note: unless explicitly stopped as in the next example, the volta
+bracket will continue indefinitely.
+
+Stopping a running volta bracket:
+
+@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+c1
+d4 e f g
+\set Score.repeatCommands = #'( ( volta #f ) ( volta "2" ) end-repeat )
+g4 a g a
+f4 e f
+\set Score.repeatCommands = #'( ( volta #f ) )
+d4
+c1
+@end lilypond
+
@c FIXME: improve visibility of bar lines link?
@seealso
@seealso
-@c Notation Reference: @re
+Snippets: @rlsr{Repeats}.
+
Dots are normally moved up to avoid staff lines, except in
polyphonic situations. Predefined commands are available to
force a particular direction manually, for details
-see @ref{Controlling direction and placement}.
+see @ref{Direction and placement}.
@predefined
The automatic placement of the tuplet bracket above or below the
notes may be overridden manually with predefined commands, for
-details see @ref{Controlling direction and placement}.
+details see @ref{Direction and placement}.
Tuplets may be nested:
The vertical placement of ties may be controlled, see
Predefined commands, or for details, see
-@ref{Controlling direction and placement}.
+@ref{Direction and placement}.
@cindex ties, appearance
@funindex \tieDotted
missing from the list. Who has the
knowledge to fix this?
+
+Clarify
+http://code.google.com/p/lilypond/issues/detail?id=68
+
@end ignore
@node Spacing issues
to a score, as demonstrated in the following example.
Such indications can also be manually placed
above or below the staff, using the
-simple syntax described in @ref{Controlling direction and
+simple syntax described in @ref{Direction and
placement}.
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
@seealso
Notation Reference: @ref{Formatting text},
-@ref{Controlling direction and placement}.
+@ref{Direction and placement}.
Snippets:
@rlsr{Text}.
$(MAKE) test
$(MAKE) out=test -C input/regression/ local-test-baseline
$(MAKE) out=test -C input/regression/musicxml local-test-baseline
- rm -rf out/lybook-testdb/
+ $(MAKE) test-snippets-clean
local-check: test
done
$(MAKE) check
-test-clean: snippets-clean
+test-clean: test-snippets-clean
$(MAKE) -C input/regression/ out=test clean
snippets-clean:
rm -rf out/lybook-db
+
+test-snippets-clean:
+ rm -rf out/lybook-testdb
Georg Romstorfer
Gilles Thibault
Hernán J. González
+Hu Haipeng
Jay Anderson
James Kilfinger
Jean-Marie Mouchel
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "chords, ancient-notation, contexts-and-engravers"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "pitches, staff-notation, vocal-music"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "staff-notation, contexts-and-engravers, breaks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "staff-notation, contexts-and-engravers"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "chords"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms, expressive-marks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms, percussion"
\override StaffSymbol #'line-count = #2
\override BarLine #'bar-size = #2
} <<
- \set Staff.instrumentName = "timbales"
+ \set Staff.instrumentName = #"timbales"
\timb
>>
\new DrumStaff <<
- \set Staff.instrumentName = "drums"
+ \set Staff.instrumentName = #"drums"
\new DrumVoice { \stemUp \drh }
\new DrumVoice { \stemDown \drl }
>>
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "titles"
"
doctitle = "Adding the current date to a score"
} % begin verbatim
-\version "2.11.46"
+\version "2.11.48"
% first, define a variable to hold the formatted date:
date = #(strftime "%d-%m-%Y" (localtime (current-time)))
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "repeats"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "text, vocal-music, spacing"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "text, paper-and-layout, titles"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "text, vocal-music"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "text"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "tweaks-and-overrides, paper-and-layout, spacing"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "editorial-annotations, spacing"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "pitches, vocal-music"
texidoc = "
-Adding the @code{Ambitus_engraver} to the @code{Staff} context create a
-single ambitus per staff, even in the case of staves with multiple
+Adding the @code{Ambitus_engraver} to the @code{Staff} context creates
+a single ambitus per staff, even in the case of staves with multiple
voices.
"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "ancient-notation"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "ancient-notation, template"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "ancient-notation, template"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "ancient-notation"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "pitches, editorial-annotations"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms"
% _ _
% Required | | | |
-% The good way adapted from David Bobroff
-
% macro for beamed two per two in 2/2 and 4/4 time signature
qBeam = {
#(override-auto-beam-setting '(end 1 8 * *) 1 4 'Staff)
<<
\new Staff \relative c'' {
\time 4/4
- g8^\markup { without the macro } g g g g g g g |
- g8 g g g4 g8 g g |
+ g8^\markup { without the macro } g g g g g g g
+ g8 g g g4 g8 g g
}
%Use the macro
\new Staff \relative c'' {
\time 4/4
\qBeam
- g8^\markup { with the macro } g g g g g g g |
- g8 g g g4 g8 g g |
+ g8^\markup { with the macro } g g g g g g g
+ g8 g g g4 g8 g g
}
>>
\layout {
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+ lsrtags = "repeats, staff-notation, editorial-annotations"
+
+ texidoc = "
+This snippet provides an example how to emit bar counters which
+LilyPond doesn't provide currently.
+
+"
+ doctitle = "Bar counter"
+} % begin verbatim
+
+<<
+ \context Voice = "foo" {
+ \clef bass
+ c4 r g r |
+ c4 r g r |
+ c4 r g r |
+ c4 r g r |
+ }
+ \context Voice = "foo" {
+ \set countPercentRepeats = ##t
+ \override PercentRepeat #'transparent = ##t
+ \repeat percent 4 { s1 }
+ }
+>>
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms, breaks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "editorial-annotations, text"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "winds"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks, tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks, text"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks, unfretted-strings"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "simultaneous-notes, editorial-annotations, tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
-\layout { ragged-right = ##t }
+\version "2.11.48"
\header {
lsrtags = "rhythms,tweaks-and-overrides"
texidoc = "
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "tweaks-and-overrides"
-%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
-
+\version "2.11.48"
\header {
- lsrtags = "expressive-marks"
-
+ lsrtags = "rhythms,tweaks-and-overrides"
texidoc = "
-The text used for crescendos and decrescendos can be changed by
-modifying the context properties @code{crescendoText} and
-@code{decrescendoText}. The style of the spanner line can be changed
-by modifying the context properties @code{crescendoSpanner} and
-@code{decrescendoSpanner}. Available values for the spanner properties
-are @code{'hairpin}, @code{'line}, @code{'dashed-line}, and
-@code{'dotted-line}. If unset, a hairpin crescendo is used:
-
+The text used for crescendos and decrescendos can be
+changed by modifying the context properties @code{crescendoText}
+and @code{decrescendoText}. The style of the spanner line can
+be changed by modifying the @code{'style} property of
+@code{DynamicTextSpanner}. The default value is
+@code{'hairpin}, and other possible values include
+@code{'line}, @code{'dashed-line}, and
+@code{'dotted-line}:
"
doctitle = "Changing text and spanner styles for text dynamics"
} % begin verbatim
+
\relative c'' {
\set crescendoText = \markup { \italic { cresc. poco } }
- \set crescendoSpanner = #'dotted-line
+ \set crescendoSpanner = #'text
+ \override DynamicTextSpanner #'style = #'dotted-line
a2\< a
a2 a
a2 a
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks, editorial-annotations"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "chords"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "text, tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "staff-notation"
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+ lsrtags = "chords"
+
+ texidoc = "
+Accidentals and plus signs can appear before or after the numbers,
+depending on the @code{figuredBassAlterationDirection} and
+@code{figuredBassPlusDirection} properties.
+
+"
+ doctitle = "Changing the positions of figured bass alterations"
+} % begin verbatim
+\figures {
+ <6\+> <5+> <6 4-> r
+ \set figuredBassAlterationDirection = #RIGHT
+ <6\+> <5+> <6 4-> r
+ \set figuredBassPlusDirection = #LEFT
+ <6\+> <5+> <6 4-> r
+ \set figuredBassAlterationDirection = #LEFT
+ <6\+> <5+> <6 4-> r
+}
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "staff-notation, tweaks-and-overrides, paper-and-layout"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms"
\header {
lsrtags = "rhythms,contexts-and-engravers"
texidoc = "The @code{measureLength} property, together with
-@code{measurePosition}, determines when a bar line is needed. However,
+@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 without making a mess of it.
-Therefore, @code{measureLength} has to be set manually, using the
-@code{ly:make-moment} callback. The second argument must be the same as
-the second argument of @code{\\scaleDurations}."
+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 @code{\\scaleDurations}"
} % begin verbatim
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms, vocal-music, ancient-notation, contexts-and-engravers"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "chords"
+changing-the-positions-of-figured-bass-alterations.ly
changing-the-chord-names-to-german-or-semi-german-notation.ly
adding-a-figured-bass-above-or-below-the-notes.ly
+single-staff-template-with-notes,-lyrics,-chords-and-frets.ly
+showing-chords-at-changes.ly
single-staff-template-with-notes-and-chords.ly
controlling-the-placement-of-chord-fingerings.ly
clusters.ly
single-staff-template-with-notes,-lyrics,-and-chords.ly
+adding-bars-to-chordnames.ly
chord-name-exceptions.ly
volta-below-chords.ly
-adding-bars-to-chordnames.ly
+simple-lead-sheet.ly
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
-\layout { ragged-right= ##t }
+\version "2.11.48"
\header {
lsrtags = "paper-and-layout" % a new tag like "Mixing text and music" or
% "Special output" might be more adequate -jm
\relative c' {
\set Staff.instrumentName = #"bla"
c1
- d
+ d1
\grace c16 e1
\key d \major
- f \break
+ f1 \break
\clef bass
- g,
- fis
+ g,1
+ fis1
}
}
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "simultaneous-notes, chords, keyboards"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks, text"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "simultaneous-notes, text"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms"
\time 5/8
#(override-auto-beam-setting '(end 1 8 5 8) 1 4)
c8 d e fis gis
- c fis, gis e d
+ c8 fis, gis e d
c8 d e4 gis8
}
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "editorial-annotations, chords, keyboards"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks, tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms, tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "pitches"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "staff-notation, editorial-annotations, contexts-and-engravers, paper-and-layout"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks, text"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks,text,tweaks-and-overrides"
texidoc = "
doctitle = "Creating simultaneous rehearsal marks"
} % begin verbatim
-% Thanks to Risto Vääräniemi for this snippet
-
{
\key a \major
\set Score.markFormatter = #format-mark-box-letters
\once \override Score.RehearsalMark #'outside-staff-priority = #5000
\once \override Score.RehearsalMark #'self-alignment-X = #LEFT
\once \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
- \mark \markup { \bold "Senza denti" }
+ \mark \markup { \bold { Senza denti } }
% the hidden measure and bar line
\once \override Score.TimeSignature #'stencil = ##f
\time 4/4
\once \override Score.RehearsalMark #'self-alignment-X = #LEFT
\once \override Score.RehearsalMark #'break-align-symbols = #'(bar-line)
- \mark \markup { \box \bold "Intro" }
+ \mark \markup { \box \bold Intro }
d'1
\mark \default
d'1
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks, keyboards, unfretted-strings"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks, text, tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "ancient-notation, tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "editorial-annotations"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "vocal-music, keyboards, unfretted-strings, midi"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "text, paper-and-layout, titles"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "staff-notation,tweaks-and-overrides"
texidoc = "If there is only one staff in one of the staff types
c'1
}
>>
- \layout {}
+ \layout { }
}
\score {
\new PianoStaff <<
c'1
}
>>
- \layout {}
+ \layout { }
}
}
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "pitches"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "tweaks-and-overrides"
texidoc = "
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "tweaks-and-overrides"
texidoc = "
applying-note-head-styles-depending-on-the-step-of-the-scale.ly
embedding-native-postscript-in-a--markup-block.ly
changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly
-grid-lines--emphasizing-rhythms-and-notes-synchronization.ly
+default-direction-of-stems-on-the-center-line-of-the-staff.ly
changing-a-single-notes-size-in-a-chord.ly
+grid-lines--emphasizing-rhythms-and-notes-synchronization.ly
grid-lines--changing-their-appearance.ly
controlling-the-placement-of-chord-fingerings.ly
allowing-fingerings-to-be-printed-inside-the-staff.ly
blanking-staff-lines-using-the--whiteout-command.ly
-default-direction-of-stems-on-the-center-line-of-the-staff.ly
+bar-counter.ly
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "editorial-annotations, text"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "contexts-and-engravers"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms"
doctitle = "Engraving ties manually"
} % begin verbatim
\relative c' {
- <c e g>2 ~ <c e g> |
+ <c e g>2 ~ <c e g>
\override TieColumn #'tie-configuration =
#'((0.0 . 1) (-2.0 . 1) (-4.0 . 1))
- <c e g> ~ <c e g> |
+ <c e g> ~ <c e g>
}
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "text, vocal-music"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "pitches"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "editorial-annotations"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "editorial-annotations"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms, percussion"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "text, vocal-music"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "staff-notation,ancient-notation"
texidoc = "Incipits can be added using the instrument name grob, but
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "keyboards"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "staff-notation"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms, text"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "keyboards, percussion, template"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
texidoc = "Arrows can be applied to text-spanners and line-spanners
-(such as the Glissando)"
+(such as the Glissando)."
doctitle = "Line arrows"
} % begin verbatim
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "pitches"
texidoc = "Makam is a type of melody from Turkey using 1/9th-tone
microtonal alterations. Consult the initialization file
-@code{makam-init.ly} (in @code{/usr/share/lilypond/current/ly})
-for details of pitch names and alterations.
-"
+@code{makam-init.ly} (see the `Learning Manual @version{},
+4.6.3 Other sources of information' for the location of this file)
+for details of pitch names and alterations."
doctitle = "Makam"
} % begin verbatim
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms,tweaks-and-overrides"
texidoc = "
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "staff-notation, editorial-annotations"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms, tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "text"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "staff-notation, ancient-notation, contexts-and-engravers, tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
% possible rename to scheme- or something like that. -gp
\header {
lsrtags = "tweaks-and-overrides"
'extra-offset '(-3.5 . -4.5))
a^2^"m.d."
}
- \layout { ragged-right = ##t}
+ \layout { }
}
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "staff-notation, contexts-and-engravers, tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "pitches, staff-notation"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "pitches, text"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "text"
} % begin verbatim
\score {
- \context Lyrics {
+ \new Lyrics {
\override Score.RehearsalMark #'self-alignment-X = #LEFT
\mark #(ly:export (string-append "Processed with LilyPond version "
(lilypond-version)))
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "spacing"
texidoc = "Page labels may be placed inside music or at top-level,
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "keyboards, template"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks,keyboards,template"
texidoc = "
Many piano scores have the dynamics centered between the two staves.
This requires a bit of tweaking to implement, but since the template is
-right here, you don't have to do the tweaking yourself. Note that
-the two piano staves will move closer together in any system that
-does not contain at least one dynamic marking.
+right here, you don't have to do the tweaking yourself.
"
doctitle = "Piano template with centered dynamics"
} % begin verbatim
\clef treble
\key c \major
\time 4/4
-
+
a4 b c d
}
\clef bass
\key c \major
\time 4/4
-
+
a2 c
}
% So that \cresc works, for example.
\alias Voice
\consists "Output_property_engraver"
-
+
\override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1)
\override DynamicLineSpanner #'Y-offset = #0
pedalSustainStrings = #'("Ped." "*Ped." "*")
pedalUnaCordaStrings = #'("una corda" "" "tre corde")
-
+
\consists "Piano_pedal_engraver"
\consists "Script_engraver"
\consists "Dynamic_engraver"
\consists "Text_engraver"
-
+
\override TextScript #'font-size = #2
\override TextScript #'font-shape = #'italic
-
+
\consists "Skip_event_swallow_translator"
-
+
\consists "Axis_group_engraver"
}
\context {
}
}
\score {
- \unfoldRepeats {
- \new PianoStaff <<
- \new Staff = "upper" << \upper \dynamics \pedal >>
- \new Staff = "lower" << \lower \dynamics \pedal >>
- >>
- }
- \midi {}
+ \new PianoStaff <<
+ \new Staff = "upper" << \upper \dynamics \pedal >>
+ \new Staff = "lower" << \lower \dynamics \pedal >>
+ >>
+ \midi { }
}
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "text, keyboards, template"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "vocal-music, keyboards, template"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms,tweaks-and-overrides"
texidoc = "
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "repeats, breaks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "pitches"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "pitches"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "text"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "text"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms, expressive-marks, staff-notation, tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms, percussion"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "tweaks-and-overrides, spacing"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "pitches,staff-notation"
texidoc = "Quotations take into account the transposition of both
\addQuote clarinet {
\transposition bes
- \repeat unfold 8 { d'16 d'16 d'8 }
+ \repeat unfold 8 { d'16 d' d'8 }
}
\addQuote sax {
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "staff-notation"
texidoc = "With @code{\\quote}, fragments of previously entered
<<
\new Staff {
- \set Staff.instrumentName = "quoteMe"
+ \set Staff.instrumentName = #"quoteMe"
\quoteMe
}
\new Staff {
- \set Staff.instrumentName = "orig"
+ \set Staff.instrumentName = #"orig"
\original
}
\new Staff \relative c'' <<
- \set Staff.instrumentName = "orig+quote"
+ \set Staff.instrumentName = #"orig+quote"
\set Staff.quotedEventTypes = #'(note-event articulation-event)
\original
\new Voice {
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "staff-notation, tweaks-and-overrides, breaks"
volta-below-chords.ly
adding-volta-brackets-to-additional-staves.ly
volta-multi-staff.ly
+bar-counter.ly
+volta-text-markup-using-repeatcommands.ly
shortening-volta-brackets.ly
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms, ancient-notation, tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms, tweaks-and-overrides"
heavily-customized-polymetric-time-signatures.ly
positioning-multi--measure-rests.ly
using-ties-with-arpeggios.ly
+changing-text-and-spanner-styles-for-text-dynamics.ly
forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly
integrating-text-indications-in-metronome-marks.ly
compound-time-signatures.ly
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "template"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
texidoc = "If the note which ends a hairpin falls on a downbeat,
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "repeats"
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+ lsrtags = "chords"
+
+ texidoc = "
+Chord names can be displayed only at the start of lines and when the
+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
+ \harmonies
+ }
+ \new Staff {
+ \relative c' { \harmonies }
+ }
+>>
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+ lsrtags = "chords"
+
+ texidoc = "
+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'' {
+ a4 e c8 e r4
+ b2 c4( d)
+ }
+ \addlyrics { One day this shall be free __ }
+>>
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "vocal-music, chords, template"
--- /dev/null
+%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+ lsrtags = "vocal-music, chords, template"
+
+ texidoc = "
+Here is a simple lead sheet template with melody, lyrics, chords and
+fret diagrams.
+
+"
+ doctitle = "Single staff template with notes, lyrics, chords and frets"
+} % begin verbatim
+% Define the fret diagrams to be used
+cFretDiagram = \markup {
+ \fret-diagram #"5-3-3;4-2-2;3-o;2-1-1;1-o"
+}
+
+gFretDiagram = \markup {
+ \fret-diagram #"6-3-2;5-2-1;4-o;3-o;2-o;1-3-3"
+}
+
+verseI = \lyricmode {
+ \set stanza = #"1."
+ This is the first verse
+}
+
+verseII = \lyricmode {
+ \set stanza = #"2."
+ This is the second verse.
+}
+
+theChords = \new ChordNames {
+ \chordmode {
+ % insert the chords for chordnames here
+ c2 g4 c
+ }
+}
+
+staffMelody = \new Staff {
+ \context Voice = "voiceMelody" {
+ \key c \major
+ \clef treble
+ \relative c' {
+ % Type notes and fret diagram markups here
+ c4^\cFretDiagram d8 e f4^\gFretDiagram g^\cFretDiagram
+ \bar "|."
+ }
+ }
+}
+
+\score {
+ <<
+ \theChords
+ \staffMelody
+ \new Lyrics = "lyricsI" \lyricmode {
+ \lyricsto "voiceMelody" \verseI
+ }
+ \new Lyrics = "lyricsII" \lyricmode {
+ \lyricsto "voiceMelody" \verseII
+ }
+ >>
+ \layout { }
+ \midi { }
+}
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "chords, template"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "vocal-music, template"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "template"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms, vocal-music"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms, vocal-music"
tweaking-clef-properties.ly
quoting-another-voice.ly
volta-multi-staff.ly
+bar-counter.ly
non-traditional-key-signatures.ly
creating-blank-staves.ly
adding-ambitus-per-voice.ly
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "unfretted-strings, template"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "unfretted-strings, template"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "paper-and-layout"
texidoc = "A table of contents is included using
-@code{\\markuplines \\table-of-contents}. The TOC items are added with
-the @code{\\tocItem} command."
+@w{@code{\\markuplines \\table-of-contents}}. The TOC items are
+added with the @code{\\tocItem} command."
doctitle = "Table of contents"
} % begin verbatim
vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
single-staff-template-with-notes-and-lyrics.ly
+single-staff-template-with-notes,-lyrics,-chords-and-frets.ly
single-staff-template-with-only-notes.ly
piano-template-with-centered-lyrics.ly
vocal-ensemble-template-with-automatic-piano-reduction.ly
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms, text"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "staff-notation, tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "ancient-notation, tweaks-and-overrides"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
texidoces = "
Este ejemplo utiliza código de Scheme para forzar las
(ly:music?)
(naturalize m))
-music = \relative c' { c4 d e g }
+music = \relative c' { c4 d e g }
\score {
\new Staff {
\transpose c deses \music
\naturalizeMusic \transpose c deses \music
}
- \layout {}
+ \layout { }
}
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "pitches, staff-notation, tweaks-and-overrides"
controlling-tuplet-bracket-visibility.ly
positioning-multi--measure-rests.ly
changing-the-staff-size.ly
+changing-text-and-spanner-styles-for-text-dynamics.ly
controlling-the-vertical-ordering-of-scripts.ly
vertically-aligning-ossias-and-lyrics.ly
changing-properties-for-individual-grobs.ly
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "staff-notation, contexts-and-engravers"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
-\layout { ragged-right= ##t }
+\version "2.11.48"
\header {
lsrtags = "tweaks-and-overrides"
texidoc = "
With the @code{\\tweak} command, every grob can be tuned directly. Here
are some examples of available tweaks.
"
- doctitle = "Using the @code{\tweak} command to tweak individual grobs"
+ doctitle = "Using the @code{\\tweak} command to tweak individual grobs"
} % begin verbatim
\relative c' {
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "rhythms"
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
%% Edit this file using a Unicode aware editor, such as GVIM, GEDIT, Emacs
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "expressive-marks"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "vocal-music, tweaks-and-overrides, spacing"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "tweaks-and-overrides, spacing"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "vocal-music, keyboards, template"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "text, vocal-music, contexts-and-engravers, template"
%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "vocal-music, template"
vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
single-staff-template-with-notes-and-lyrics.ly
adding-ambitus-per-voice.ly
+single-staff-template-with-notes,-lyrics,-chords-and-frets.ly
skips-in-lyric-mode-2.ly
skips-in-lyric-mode.ly
vocal-ensemble-template-with-automatic-piano-reduction.ly
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
-\layout { ragged-right= ##t }
+\version "2.11.48"
\header {
lsrtags = "repeats,staff-notation,chords"
texidoc = "By adding the @code{Volta_engraver} to the relevant
doctitle = "Volta under chords"
} % begin verbatim
-% chords above volta
\score {
<<
\chords {
c1
- c
- }
- \new Staff \with { \consists Volta_engraver } {
- \repeat volta 2 { c'1 }
- \alternative { c' }
- }
+ c1
+ }
+ \new Staff \with { \consists "Volta_engraver" } {
+ \repeat volta 2 { c'1 }
+ \alternative { c' }
+ }
>>
\layout {
\context {
\Score
- \remove Volta_engraver
+ \remove "Volta_engraver"
}
}
}
-
%% Do not edit this file; it is auto-generated from input/new
%% This file is in the public domain.
-\version "2.11.46"
+\version "2.11.48"
\header {
lsrtags = "repeats,staff-notation,fretted-strings"
texidoc = "By adding the @code{Volta_engraver} to the relevant
} % begin verbatim
voltaMusic = \relative c'' {
- \repeat volta 2
+ \repeat volta 2 {
c1
- \alternative {
+ }
+ \alternative {
d1
e
- }
+ }
}
<<
--- /dev/null
+%% Do not edit this file; it is auto-generated from input/new
+%% This file is in the public domain.
+\version "2.11.48"
+
+\header {
+ lsrtags = "repeats"
+ texidoc = "Though volte are best specified using
+@code{\\repeat volta}, the context property @code{repeatCommands}
+must be used in cases where the volta text needs more advanced
+formatting with @code{\\markup}.
+
+Since @code{repeatCommands} takes a list, the simplest method of
+including markup is to use an identifier for the text and embed
+it in the command list using the Scheme syntax
+@w{@code{#(list (list 'volta textIdentifier))}}. Start- and end-repeat commands
+can be added as separate list elements:"
+doctitle = "Volta text markup using @code{\\repeatCommands}"
+} % begin verbatim
+
+voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
+
+\relative c'' {
+ c1
+ \set Score.repeatCommands = #(list (list 'volta voltaAdLib) 'start-repeat)
+ c4 b d e
+ \set Score.repeatCommands = #'((volta #f) (volta "4.") end-repeat)
+ f1
+ \set Score.repeatCommands = #'((volta #f))
+}
\version "2.11.42"
-\layout { ragged-right = ##t }
\header {
lsrtags = "rhythms,tweaks-and-overrides"
texidoc = "
--- /dev/null
+\version "2.11.47"
+\header {
+ lsrtags = "rhythms,tweaks-and-overrides"
+ texidoc = "
+The text used for crescendos and decrescendos can be
+changed by modifying the context properties @code{crescendoText}
+and @code{decrescendoText}. The style of the spanner line can
+be changed by modifying the @code{'style} property of
+@code{DynamicTextSpanner}. The default value is
+@code{'hairpin}, and other possible values include
+@code{'line}, @code{'dashed-line}, and
+@code{'dotted-line}:
+"
+ doctitle = "Changing text and spanner styles for text dynamics"
+}
+
+\relative c'' {
+ \set crescendoText = \markup { \italic { cresc. poco } }
+ \set crescendoSpanner = #'text
+ \override DynamicTextSpanner #'style = #'dotted-line
+ a2\< a
+ a2 a
+ a2 a
+ a2 a\mf
+}
\header {
lsrtags = "rhythms,contexts-and-engravers"
texidoc = "The @code{measureLength} property, together with
-@code{measurePosition}, determines when a bar line is needed. However,
+@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 without making a mess of it.
-Therefore, @code{measureLength} has to be set manually, using the
-@code{ly:make-moment} callback. The second argument must be the same as
-the second argument of @code{\\scaleDurations}."
+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 @code{\\scaleDurations}"
}
\version "2.10.0"
-\layout { ragged-right= ##t }
\header {
lsrtags = "paper-and-layout" % a new tag like "Mixing text and music" or
% "Special output" might be more adequate -jm
\relative c' {
\set Staff.instrumentName = #"bla"
c1
- d
+ d1
\grace c16 e1
\key d \major
- f \break
+ f1 \break
\clef bass
- g,
- fis
+ g,1
+ fis1
}
}
doctitle = "Creating simultaneous rehearsal marks"
}
-% Thanks to Risto Vääräniemi for this snippet
+% LSR: Thanks to Risto Vääräniemi for this snippet
{
\key a \major
\once \override Score.RehearsalMark #'outside-staff-priority = #5000
\once \override Score.RehearsalMark #'self-alignment-X = #LEFT
\once \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
- \mark \markup { \bold "Senza denti" }
+ \mark \markup { \bold { Senza denti } }
% the hidden measure and bar line
\once \override Score.TimeSignature #'stencil = ##f
\time 4/4
\once \override Score.RehearsalMark #'self-alignment-X = #LEFT
\once \override Score.RehearsalMark #'break-align-symbols = #'(bar-line)
- \mark \markup { \box \bold "Intro" }
+ \mark \markup { \box \bold Intro }
d'1
\mark \default
d'1
c'1
}
>>
- \layout {}
+ \layout { }
}
\score {
\new PianoStaff <<
c'1
}
>>
- \layout {}
+ \layout { }
}
}
\header {
lsrtags = "expressive-marks"
texidoc = "Arrows can be applied to text-spanners and line-spanners
-(such as the Glissando)"
+(such as the Glissando)."
doctitle = "Line arrows"
}
lsrtags = "pitches"
texidoc = "Makam is a type of melody from Turkey using 1/9th-tone
microtonal alterations. Consult the initialization file
-@code{makam-init.ly} (in @code{/usr/share/lilypond/current/ly})
-for details of pitch names and alterations.
-"
+@code{makam-init.ly} (see the `Learning Manual @version{},
+4.6.3 Other sources of information' for the location of this file)
+for details of pitch names and alterations."
doctitle = "Makam"
}
'extra-offset '(-3.5 . -4.5))
a^2^"m.d."
}
- \layout { ragged-right = ##t}
+ \layout { }
}
}
\score {
- \context Lyrics {
+ \new Lyrics {
\override Score.RehearsalMark #'self-alignment-X = #LEFT
\mark #(ly:export (string-append "Processed with LilyPond version "
(lilypond-version)))
\new Staff = "upper" << \upper \dynamics \pedal >>
\new Staff = "lower" << \lower \dynamics \pedal >>
>>
- \midi {}
+ \midi { }
}
\addQuote clarinet {
\transposition bes
- \repeat unfold 8 { d'16 d'16 d'8 }
+ \repeat unfold 8 { d'16 d' d'8 }
}
\addQuote sax {
<<
\new Staff {
- \set Staff.instrumentName = "quoteMe"
+ \set Staff.instrumentName = #"quoteMe"
\quoteMe
}
\new Staff {
- \set Staff.instrumentName = "orig"
+ \set Staff.instrumentName = #"orig"
\original
}
\new Staff \relative c'' <<
- \set Staff.instrumentName = "orig+quote"
+ \set Staff.instrumentName = #"orig+quote"
\set Staff.quotedEventTypes = #'(note-event articulation-event)
\original
\new Voice {
\header {
lsrtags = "paper-and-layout"
texidoc = "A table of contents is included using
-@code{\\markuplines \\table-of-contents}. The TOC items are added with
-the @code{\\tocItem} command."
+@w{@code{\\markuplines \\table-of-contents}}. The TOC items are
+added with the @code{\\tocItem} command."
doctitle = "Table of contents"
}
(ly:music?)
(naturalize m))
-music = \relative c' { c4 d e g }
+music = \relative c' { c4 d e g }
\score {
\new Staff {
\transpose c deses \music
\naturalizeMusic \transpose c deses \music
}
- \layout {}
+ \layout { }
}
\version "2.11.23"
-\layout { ragged-right= ##t }
\header {
lsrtags = "tweaks-and-overrides"
texidoc = "
With the @code{\\tweak} command, every grob can be tuned directly. Here
are some examples of available tweaks.
"
- doctitle = "Using the @code{\tweak} command to tweak individual grobs"
+ doctitle = "Using the @code{\\tweak} command to tweak individual grobs"
}
\relative c' {
-\version "2.11.36"
-\layout { ragged-right= ##t }
+\version "2.11.47"
\header {
lsrtags = "repeats,staff-notation,chords"
texidoc = "By adding the @code{Volta_engraver} to the relevant
doctitle = "Volta under chords"
}
-% chords above volta
\score {
<<
\chords {
c1
- c
- }
- \new Staff \with { \consists Volta_engraver } {
- \repeat volta 2 { c'1 }
- \alternative { c' }
- }
+ c1
+ }
+ \new Staff \with { \consists "Volta_engraver" } {
+ \repeat volta 2 { c'1 }
+ \alternative { c' }
+ }
>>
\layout {
\context {
\Score
- \remove Volta_engraver
+ \remove "Volta_engraver"
}
}
}
-
}
voltaMusic = \relative c'' {
- \repeat volta 2
+ \repeat volta 2 {
c1
- \alternative {
+ }
+ \alternative {
d1
e
- }
+ }
}
<<
--- /dev/null
+\version "2.11.48"
+
+\header {
+ lsrtags = "repeats"
+ texidoc = "Though volte are best specified using
+@code{\\repeat volta}, the context property @code{repeatCommands}
+must be used in cases where the volta text needs more advanced
+formatting with @code{\\markup}.
+
+Since @code{repeatCommands} takes a list, the simplest method of
+including markup is to use an identifier for the text and embed
+it in the command list using the Scheme syntax
+@w{@code{#(list (list 'volta textIdentifier))}}. Start- and end-repeat commands
+can be added as separate list elements:"
+doctitle = "Volta text markup using @code{\\repeatCommands}"
+}
+
+voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
+
+\relative c'' {
+ c1
+ \set Score.repeatCommands = #(list (list 'volta voltaAdLib) 'start-repeat)
+ c4 b d e
+ \set Score.repeatCommands = #'((volta #f) (volta "4.") end-repeat)
+ f1
+ \set Score.repeatCommands = #'((volta #f))
+}
\version "2.10.19"
\header {
- texidoc = "extenders will not protude into the right margin"
+ texidoc = "Extenders will not protrude into the right margin"
}
\score{
e d c
}
}
-
-}
-\paper {
- ragged-right = ##t
-}
+}
\ No newline at end of file
--- /dev/null
+\version "2.11.48"
+
+\header {
+ texidoc = "Volte using @code{repeatCommands} can have markup
+text."
+}
+
+voltaAdLib = \markup { 1. 2. 3... \text \italic { ad lib. } }
+
+\relative c'' {
+ c1
+ \set Score.repeatCommands = #(list (list 'volta voltaAdLib) 'start-repeat)
+ c4 b d e
+ \set Score.repeatCommands = #'((volta #f) (volta "4.") end-repeat)
+ f1
+ \set Score.repeatCommands = #'((volta #f))
+}
%% A simple piece in LilyPond, a scale.
-\relative {
- c d e f g a b c
+\relative c' {
+ c d e f g a b c
}
%% Optional helper for automatic updating by convert-ly. May be omitted.
protected:
DECLARE_TRANSLATOR_LISTENER (bend_after);
+ void finalize ();
void process_music ();
void stop_translation_timestep ();
void start_translation_timestep ();
Moment stop_moment_;
Stream_event *fall_event_;
Spanner *fall_;
+ Spanner *last_fall_;
Grob *note_head_;
};
+void
+Bend_engraver::finalize ()
+{
+ // We shouldn't end a spanner on the last musical column of a piece because then
+ // it would extend past the last breakable column of the piece.
+ if (last_fall_)
+ last_fall_->set_bound (RIGHT, unsmob_grob (get_property ("currentCommandColumn")));
+}
+
void
Bend_engraver::stop_fall ()
{
fall_->set_bound (RIGHT, unsmob_grob (bar
? get_property ("currentCommandColumn")
: get_property ("currentMusicalColumn")));
+ last_fall_ = fall_;
fall_ = 0;
note_head_ = 0;
fall_event_ = 0;
void
Bend_engraver::start_translation_timestep ()
{
+ last_fall_ = 0;
+
if (fall_ && now_mom ().main_part_ >= stop_moment_.main_part_)
{
stop_fall ();
Bend_engraver::Bend_engraver ()
{
fall_ = 0;
+ last_fall_ = 0;
note_head_ = 0;
fall_event_ = 0;
}
return name;
}
+/*
+ Given a name of a context that we want to create, finds a list of context
+ definitions such that:
+ - the first element in the list defines a context that is a valid child of
+ the context defined by this Context_def
+ - each subsequent element in the list defines a context that is a valid child
+ of the the context defined by the preceding element in the list
+ - the last element in the list defines a context with the given name
+
+ The ADDITIONAL_ACCEPTS parameter is a list of additional contexts that this
+ specific context def (but not any of the child context defs) should accept.
+*/
vector<Context_def*>
-Context_def::path_to_acceptable_context (SCM type_sym, Output_def *odef) const
+Context_def::path_to_acceptable_context (SCM type_sym, Output_def *odef, SCM additional_accepts) const
{
assert (scm_is_symbol (type_sym));
- SCM accepted = get_accepted (SCM_EOL);
+ SCM accepted = get_accepted (additional_accepts);
vector<Context_def*> accepteds;
for (SCM s = accepted; scm_is_pair (s); s = scm_cdr (s))
Context_def *g = accepteds[i];
vector<Context_def*> result
- = g->path_to_acceptable_context (type_sym, odef);
+ = g->path_to_acceptable_context (type_sym, odef, SCM_EOL);
if (result.size () && result.size () < best_depth)
{
best_depth = result.size ();
if (gthis && gthis->get_score_context ())
return gthis->get_score_context ()->create_unique_context (name, id, operations);
- /*
- TODO: use accepts_list_.
- */
- vector<Context_def*> path
- = unsmob_context_def (definition_)->path_to_acceptable_context (name, get_output_def ());
-
+ vector<Context_def*> path = path_to_acceptable_context (name);
if (path.size ())
{
Context *current = this;
- // start at 1. The first one (index 0) will be us.
+ // Iterate through the path and create all of the implicit contexts.
for (vsize i = 0; i < path.size (); i++)
{
SCM ops = SCM_EOL;
return tg;
}
- /*
- TODO: use accepts_list_.
- */
- vector<Context_def*> path
- = unsmob_context_def (definition_)->path_to_acceptable_context (n, get_output_def ());
+ vector<Context_def*> path = path_to_acceptable_context (n);
if (path.size ())
{
SCM type_scm = ev->get_property ("type");
string type = ly_symbol2string (type_scm);
- vector<Context_def*> path
- = unsmob_context_def (definition_)->path_to_acceptable_context (type_scm, get_output_def ());
+ vector<Context_def*> path = path_to_acceptable_context (type_scm);
+
if (path.size () != 1)
{
programming_error (_f ("Invalid CreateContext event: Cannot create %s context", type.c_str ()));
ly_symbol2scm ("creator"), sev);
}
+vector<Context_def*>
+Context::path_to_acceptable_context (SCM name) const
+{
+ // The 'accepts elements in definition_mods_ is a list of ('accepts string),
+ // but the Context_def expects to see elements of the form ('accepts symbol).
+ SCM accepts = SCM_EOL;
+ for (SCM s = scm_reverse (definition_mods_); scm_is_pair (s); s = scm_cdr (s))
+ if (scm_caar (s) == ly_symbol2scm ("accepts"))
+ {
+ SCM elt = scm_list_2 (scm_caar (s), scm_string_to_symbol (scm_cadar (s)));
+ accepts = scm_cons (elt, accepts);
+ }
+
+ return unsmob_context_def (definition_)->path_to_acceptable_context (name,
+ get_output_def (),
+ accepts);
+
+}
+
Context *
Context::create_context (Context_def *cdef,
string id,
VIRTUAL_COPY_CONSTRUCTOR(Context_def, Context_def);
vector<Context_def*> path_to_acceptable_context (SCM type_string,
- Output_def *) const;
+ Output_def *, SCM) const;
Context *instantiate (SCM extra_ops);
SCM to_alist () const;
string id, SCM ops);
Context *create_unique_context (SCM context_name, string context_id,
SCM ops);
- vector<Context*> path_to_acceptable_context (SCM alias,
- Output_def *) const;
+ vector<Context_def*> path_to_acceptable_context (SCM alias) const;
};
/*
struct Lookup
{
static Stencil dot (Offset p, Real radius);
- static Stencil bracket (Axis a, Interval iv, Real thick, Real protude, Real blot);
+ static Stencil bracket (Axis a, Interval iv, Real thick, Real protrude, Real blot);
static Stencil accordion (SCM arg, Real interline_f, Font_metric *fm);
static Stencil rotated_box (Real slope, Real width, Real thick, Real blot);
static Stencil round_filled_polygon (vector<Offset> const &points, Real blotdiameter);
static Stencil slur (Bezier controls, Real cthick, Real thick);
static Stencil bezier_sandwich (Bezier top_curve, Bezier bottom_curve);
static Stencil beam (Real slope, Real width, Real thick, Real blot);
- static Stencil dashed_slur (Bezier, Real thick, Real dash_period, Real dash_fraction);
+ static Stencil dashed_slur (Bezier b, Real thick, Real dash_period, Real dash_fraction);
static Stencil blank (Box b);
static Stencil filled_box (Box b);
static Stencil round_filled_box (Box b, Real blotdiameter);
static Stencil repeat_slash (Real w, Real slope, Real th);
static Stencil horizontal_line (Interval w, Real th);
- static Stencil triangle (Interval, Real, Real);
+ static Stencil triangle (Interval iv, Real thick, Real protrude);
static Stencil points_to_line_stencil (Real thick, vector<Offset> const &points);
};
}
Stencil
-Lookup::bracket (Axis a, Interval iv, Real thick, Real protude, Real blot)
+Lookup::bracket (Axis a, Interval iv, Real thick, Real protrude, Real blot)
{
Box b;
Axis other = Axis ((a + 1)%2);
Stencil m = round_filled_box (b, blot);
b[a] = Interval (iv[UP] - thick, iv[UP]);
- Interval oi = Interval (-thick / 2, thick / 2 + fabs (protude));
- oi *= sign (protude);
+ Interval oi = Interval (-thick / 2, thick / 2 + fabs (protrude));
+ oi *= sign (protrude);
b[other] = oi;
m.add_stencil (round_filled_box (b, blot));
b[a] = Interval (iv[DOWN], iv[DOWN] + thick);
}
Stencil
-Lookup::triangle (Interval iv, Real thick, Real protude)
+Lookup::triangle (Interval iv, Real thick, Real protrude)
{
Box b;
b[X_AXIS] = Interval (0, iv.length ());
- b[Y_AXIS] = Interval (min (0., protude), max (0.0, protude));
+ b[Y_AXIS] = Interval (min (0., protrude), max (0.0, protrude));
vector<Offset> points;
points.push_back (Offset (iv[LEFT], 0));
points.push_back (Offset (iv[RIGHT], 0));
- points.push_back (Offset (iv.center (), protude));
+ points.push_back (Offset (iv.center (), protrude));
return points_to_line_stencil (thick, points);
/* find the translator for NAME. NAME must be a symbol. */
SCM
find_context_def (Output_def const *m, SCM name)
-{
+{
Context_def *cd = unsmob_context_def (m->lookup_variable (name));
return cd ? cd->self_scm () : SCM_EOL;
}
4, 0, 0,
(SCM a, SCM iv, SCM t, SCM p),
"Make a bracket in direction@tie{}@var{a}. The extent of the"
- " bracket is given by @var{iv}. The wings protude by an amount"
+ " bracket is given by @var{iv}. The wings protrude by an amount"
" of@tie{}@var{p}, which may be negative. The thickness is given"
" by@tie{}@var{t}.")
{
textSpannerNeutral = \revert TextSpanner #'direction
+
+bassFigureExtendersOn = {
+ \set useBassFigureExtenders = ##t
+ \set Staff.useBassFigureExtenders = ##t
+}
+
+bassFigureExtendersOff = {
+ \set useBassFigureExtenders = ##f
+ \set Staff.useBassFigureExtenders = ##f
+}
+
+bassFigureStaffAlignmentDown = {
+ \override Staff.BassFigureAlignmentPositioning #'direction = #DOWN
+}
+
+bassFigureStaffAlignmentUp = {
+ \override Staff.BassFigureAlignmentPositioning #'direction = #UP
+}
+
+bassFigureStaffAlignmentNeutral = {
+ \revert Staff.BassFigureAlignmentPositioning #'direction
+}
+
save twiddle_thick, stem_thick, cheek_thick, cheek_width;
save fill_up, straigh_len;
save serif, dishing_angle, p, tmp;
- save cheek_medium, left_serif_protude, right_serif_protude;
+ save cheek_medium, left_serif_protrude, right_serif_protrude;
save lower_overshoot;
save blot_t, corner_t;
path serif, p;
stem_thick = 2/6 ex;
cheek_thick = 13/32 ex;
cheek_width = 0.72 ex;
- left_serif_protude = 18/60 ex;
- right_serif_protude = 15/60 ex;
+ left_serif_protrude = 18/60 ex;
+ right_serif_protrude = 15/60 ex;
currenttransform := currenttransform slanted slant;
pickup pencircle scaled serif_thick;
- lft x11 = -left_serif_protude;
- rt x10 = stem_thick + right_serif_protude;
+ lft x11 = -left_serif_protrude;
+ rt x10 = stem_thick + right_serif_protrude;
bot y10 = bot y11 = -descender;
z15 = z6l + up * fill_up;
def draw_bass_clef (expr exact_center, reduction) =
save reduced_ss, swoosh_width;
- save right_thickness, right_offset, tip_protude;
+ save right_thickness, right_offset, tip_protrude;
save dot_diam, bulb_y_offset, bulb_flare;
- pair tip_protude;
+ pair tip_protrude;
reduced_ss# = staff_space# * reduction;
2.2 dot_diam# = reduction * (staff_space# - stafflinethickness#);
right_offset = 0.05 staff_space;
bulb_y_offset := 0.075 staff_space;
bulb_flare := 2.5 linethickness;
-% tip_protude := (-linethickness, -.2 staff_space);
- tip_protude := (0, 0);
+% tip_protrude := (-linethickness, -.2 staff_space);
+ tip_protrude := (0, 0);
set_char_box (-xpart exact_center,
xpart exact_center + swoosh_width# + 7/12 reduced_ss#,
% optical correction: the top dot seems farther away if y3l = 0.
y3l = right_offset;
- z4 = -(0, 2.0 reduced_ss) + tip_protude;
+ z4 = -(0, 2.0 reduced_ss) + tip_protrude;
penpos3 (whatever, 185);
penpos4 (linethickness, 135);
% * The inside curve of the C is rather straight.
% * The outside curve of the C is rather round.
% * Right tips of the C point slightly outward.
-% * Lower tip protudes to the right very slightly.
+% * Lower tip protrudes to the right very slightly.
%
def draw_C =
(default-direction ,ly:dir? "Direction determined by note head
positions.")
(digit-names ,vector "Names for string finger digits.")
- (direction ,ly:dir? "If @code{side-axis} is @code{1} (or
+ (direction ,ly:dir? "If @code{side-axis} is @code{0} (or
@code{#X}), then this property determines whether the object is placed
@code{#LEFT}, @code{#CENTER} or @code{#RIGHT} with respect to the
other object. Otherwise, it determines whether the object is placed
@code{#UP}, @code{#CENTER} or @code{#DOWN}. Numerical values may also
be used: @code{#UP}=@code{1}, @code{#DOWN}=@code{-1},
-@code{#LEFT}=@code{-1}, @code{#RIGHT}=@code{1}, @code{#CENTER}=@code{0}
-but also other numerical values are permitted.")
+@code{#LEFT}=@code{-1}, @code{#RIGHT}=@code{1}, @code{#CENTER}=@code{0}.")
(dot-color ,symbol? "Color of dots. Options include
@code{black} and @code{white}.")
(dot-count ,integer? "The number of dots.")
order a script is within a stack of scripts.")
(self-alignment-X ,number? "Specify alignment of an object. The
value @code{-1} means left aligned, @code{0}@tie{}centered, and
-@code{1}@tie{}right-aligned in X@tie{}direction. Values in-between
-may also be specified.")
+@code{1}@tie{}right-aligned in X@tie{}direction. Other numerical
+values may also be specified.")
(self-alignment-Y ,number? "Like @code{self-alignment-X} but for
the Y@tie{}axis.")
(shorten-pair ,number-pair? "The lengths to shorten a
(thickness . 1.6) ;; line-thickness
(edge-height . (2.0 . 2.0)) ;; staff-space;
(font-size . -4)
+ (word-space . 0.6)
(direction . ,UP)
(meta . ((class . Spanner)
(interfaces . (volta-bracket-interface
A circle of radius @var{radius}, thickness @var{thickness} and
optionally filled.
-@c
+
@lilypond[verbatim,quote]
\\markup { \\draw-circle #2 #0.5 ##f \\hspace #2 \\draw-circle #2 #0 ##t }
@end lilypond"
@cindex drawing triangles within text
A triangle, either filled or empty.
-@c
+
@lilypond[verbatim,quote]
-\\markup { \\triangle ##f \\triangle ##t }
+\\markup { \\triangle ##t \\hspace #2 \\triangle ##f }
@end lilypond"
(let ((ex (* (magstep font-size) 0.8 baseline-skip)))
(ly:make-stencil
Add a link to URL @var{url} around @var{arg}. This only works in
the PDF backend.
+
@lilypond[verbatim,quote]
\\markup {
\\with-url #\"http://lilypond.org/web/\" {
- LilyPond ... \\italic \"music notation for everyone\"
+ LilyPond ... \\italic { music notation for everyone }
}
}
@end lilypond"
@end verbatim
creates a box extending horizontally from -0.3 to 1.8 and
vertically from -0.3 up to 1.8, with corners formed from a
-circle of diameter@tie{}0 (i.e. sharp corners)."
+circle of diameter@tie{}0 (i.e. sharp corners).
+
+@lilypond[verbatim,quote]
+\\markup {
+ \\filled-box #'(0 . 4) #'(0 . 4) #0
+ \\filled-box #'(0 . 2) #'(-4 . 2) #0.4
+ \\filled-box #'(1 . 8) #'(0 . 7) #0.2
+ \\with-color #white \\filled-box #'(-4.5 . -2.5) #'(3.5 . 5.5) #0.7
+}
+@end lilypond"
(ly:round-filled-box
xext yext blot))
@cindex inlining an Encapsulated PostScript image
Inline an EPS image. The image is scaled along @var{axis} to
-@var{size}."
+@var{size}.
+
+@lilypond[verbatim,quote]
+\\markup {
+ \\general-align #Y #DOWN {
+ \\epsfile #X #20 #\"context-example.eps\"
+ \\epsfile #Y #20 #\"context-example.eps\"
+ }
+}
+@end lilypond"
(if (ly:get-option 'safe)
(interpret-markup layout props "not allowed in safe")
(eps-file->stencil axis size file-name)
gsave /ecrm10 findfont
10.0 output-scale div
scalefont setfont 90 rotate (hello) show grestore
-@end example"
+@end example
+
+@lilypond[verbatim,quote]
+eyeglassesps = #\"
+ 0.15 setlinewidth
+ -0.9 0 translate
+ 1.1 1.1 scale
+ 1.2 0.7 moveto
+ 0.7 0.7 0.5 0 361 arc
+ stroke
+ 2.20 0.70 0.50 0 361 arc
+ stroke
+ 1.45 0.85 0.30 0 180 arc
+ stroke
+ 0.20 0.70 moveto
+ 0.80 2.00 lineto
+ 0.92 2.26 1.30 2.40 1.15 1.70 curveto
+ stroke
+ 2.70 0.70 moveto
+ 3.30 2.00 lineto
+ 3.42 2.26 3.80 2.40 3.65 1.70 curveto
+ stroke\"
+
+eyeglasses = \\markup {
+ \\with-dimensions #'(0 . 4.4) #'(0 . 2.5)
+ \\postscript #eyeglassesps
+}
+
+\\relative c'' { c2^\\eyeglasses a_\\eyeglasses }
+@end lilypond"
;; FIXME
(ly:make-stencil
(list 'embedded-ps
"
@cindex inserting music into text
-Inline an image of music."
+Inline an image of music.
+
+@lilypond[verbatim,quote]
+\\markup {
+ \\score {
+ \\new PianoStaff <<
+ \\new Staff \\relative c' {
+ \\key f \\major
+ \\time 3/4
+ \\mark \\markup { Allegro }
+ f2\\p( a4)
+ c2( a4)
+ bes2( g'4)
+ f8( e) e4 r
+ }
+ \\new Staff \\relative c {
+ \\clef bass
+ \\key f \\major
+ \\time 3/4
+ f8( a c a c a
+ f c' es c es c)
+ f,( bes d bes d bes)
+ f( g bes g bes g)
+ }
+ >>
+ \\layout {
+ indent = 0.0\\cm
+ \\context {
+ \\Score
+ \\override RehearsalMark #'break-align-symbols =
+ #'(time-signature key-signature)
+ \\override RehearsalMark #'self-alignment-X = #LEFT
+ }
+ \\context {
+ \\Staff
+ \\override TimeSignature #'break-align-anchor-alignment = #LEFT
+ }
+ }
+ }
+}
+@end lilypond"
(let* ((output (ly:score-embedded-format score layout)))
(if (ly:music-output? output)
"
@cindex merging text
-Print two markups on top of each other."
+Print two markups on top of each other.
+@lilypond[verbatim,quote]
+\\markup {
+ \\fontsize #5
+ \\override #'(thickness . 2)
+ \\combine \\draw-line #'(0 . 4) \\arrow-head #Y #DOWN ##f
+}
+@end lilypond"
(let* ((s1 (interpret-markup layout props m1))
(s2 (interpret-markup layout props m2)))
(ly:stencil-add s1 s2)))
(string?)
other
()
- "Read the contents of a file, and include it verbatim."
+ "Read the contents of a file, and include it verbatim.
+
+@lilypond[verbatim,quote]
+\\markup \\verbatim-file #\"simple.ly\"
+@end lilypond"
(interpret-markup layout props
(if (ly:get-option 'safe)
"verbatim-file disabled in safe mode"
(markup?)
font
()
- "Set the argument as small numbers."
+ "Set the argument as small numbers.
+@lilypond[verbatim,quote]
+\\markup \\finger { 1 2 3 4 5 }
+@end lilypond"
(interpret-markup layout
(cons '((font-size . -5) (font-encoding . fetaNumber)) props)
arg))
()
"Set font family to @code{number}, which yields the font used for
time signatures and fingerings. This font only contains numbers and
-some punctuation. It doesn't have any letters."
+some punctuation. It doesn't have any letters.
+
+@lilypond[verbatim,quote]
+\\markup \\number { 0 1 2 3 4 5 6 7 8 9 . , + - }
+@end lilypond"
(interpret-markup layout (prepend-alist-chain 'font-encoding 'fetaNumber props) arg))
(define-builtin-markup-command (roman layout props arg)
"Use the dynamic font. This font only contains @b{s}, @b{f}, @b{m},
@b{z}, @b{p}, and @b{r}. When producing phrases, like
@q{pi@`{u}@tie{}@b{f}}, the normal words (like @q{pi@`{u}}) should be
-done in a different font. The recommended font for this is bold and italic."
+done in a different font. The recommended font for this is bold and italic.
+@lilypond[verbatim,quote]
+\\markup { \\dynamic sfzp }
+@end lilypond"
(interpret-markup
layout (prepend-alist-chain 'font-encoding 'fetaDynamic props) arg))
(markup?)
font
()
- "Use italic @code{font-shape} for @var{arg}."
+ "Use italic @code{font-shape} for @var{arg}.
+
+@lilypond[verbatim,quote]
+\\markup \\italic { scherzando e leggiero }
+@end lilypond"
(interpret-markup layout (prepend-alist-chain 'font-shape 'italic props) arg))
(define-builtin-markup-command (typewriter layout props arg)
music
()
"Draw a double sharp symbol.
-@c
+
@lilypond[verbatim,quote]
\\markup { \\doublesharp }
@end lilypond"
music
()
"Draw a 3/2 sharp symbol.
-@c
+
@lilypond[verbatim,quote]
\\markup { \\sesquisharp }
@end lilypond"
music
()
"Draw a sharp symbol.
-@c
+
@lilypond[verbatim,quote]
\\markup { \\sharp }
@end lilypond"
music
()
"Draw a semi sharp symbol.
-@c
+
@lilypond[verbatim,quote]
\\markup { \\semisharp }
@end lilypond"
music
()
"Draw a natural symbol.
-@c
+
@lilypond[verbatim,quote]
\\markup { \\natural }
@end lilypond"
music
()
"Draw a semiflat symbol.
-@c
+
@lilypond[verbatim,quote]
\\markup { \\semiflat }
@end lilypond"
music
()
"Draw a flat symbol.
-@c
+
@lilypond[verbatim,quote]
\\markup { \\flat }
@end lilypond"
music
()
"Draw a 3/2 flat symbol.
-@c
+
@lilypond[verbatim,quote]
\\markup { \\sesquiflat }
@end lilypond"
music
()
"Draw a double flat symbol.
-@c
+
@lilypond[verbatim,quote]
\\markup { \\doubleflat }
@end lilypond"
graphic
()
"Produce an arrow head in specified direction and axis.
-Use the filled head if @var{filled} is specified."
+Use the filled head if @var{filled} is specified.
+@lilypond[verbatim,quote]
+\\markup {
+ \\fontsize #5
+ \\general-align #Y #DOWN {
+ \\arrow-head #Y #UP ##t
+ \\arrow-head #Y #DOWN ##f
+ \\hspace #2
+ \\arrow-head #X #RIGHT ##f
+ \\arrow-head #X #LEFT ##f
+ }
+}
+@end lilypond"
(let*
((name (format "arrowheads.~a.~a~a"
(if filled
"@var{glyph-name} is converted to a musical symbol; for example,
@code{\\musicglyph #\"accidentals.natural\"} selects the natural sign from
the music font. See @ruser{The Feta font} for a complete listing of
-the possible glyphs."
+the possible glyphs.
+
+@lilypond[verbatim,quote]
+\\markup {
+ \\musicglyph #\"f\"
+ \\musicglyph #\"rests.2\"
+ \\musicglyph #\"clefs.G_change\"
+}
+@end lilypond"
(ly:font-get-glyph
(ly:paper-get-font layout (cons '((font-encoding . fetaMusic))
props))
other
()
"Make a markup letter for @var{num}. The letters start with A to@tie{}Z
-(skipping letter@tie{}I), and continue with double letters."
+(skipping letter@tie{}I), and continue with double letters.
+
+@lilypond[verbatim,quote]
+\\markup { \\markletter #8 \\hspace #2 \\markletter #26 }
+@end lilypond"
(ly:text-interface::interpret-markup layout props
(number->markletter-string number->mark-letter-vector num)))
other
()
"Make a markup letter for @var{num}. The letters start with A to@tie{}Z
-and continue with double letters."
+and continue with double letters.
+
+@lilypond[verbatim,quote]
+\\markup { \\markalphabet #8 \\hspace #2 \\markalphabet #26 }
+@end lilypond"
(ly:text-interface::interpret-markup layout props
(number->markletter-string number->mark-alphabet-vector num)))
@cindex slashed digits
A feta number, with slash. This is for use in the context of
-figured bass notation."
+figured bass notation.
+@lilypond[verbatim,quote]
+\\markup {
+ \\slashed-digit #5
+ \\hspace #2
+ \\override #'(thickness . 3)
+ \\slashed-digit #7
+}
+@end lilypond"
(let* ((mag (magstep font-size))
(thickness (* mag
(ly:output-def-lookup layout 'line-thickness)
positions it next to the staff cancels any shift made with
@code{\\raise}. For vertical positioning, use the @code{padding}
and/or @code{extra-offset} properties.
-@c
+
@lilypond[verbatim,quote]
-\\markup { C \\small \\raise #1.0 \\bold { \"9/7+\" } }
+\\markup { C \\small \\raise #1.0 \\bold 9/7+ }
@end lilypond"
(ly:stencil-translate-axis (interpret-markup layout props arg) amount Y))
"
@cindex creating text fractions
-Make a fraction of two markups."
+Make a fraction of two markups.
+@lilypond[verbatim,quote]
+\\markup { π ≈ \\fraction 355 113 }
+@end lilypond"
(let* ((m1 (interpret-markup layout props arg1))
(m2 (interpret-markup layout props arg2))
(factor (magstep font-size))
Raising and lowering texts can be done with @code{\\super} and
@code{\\sub}:
-@c
+
@lilypond[verbatim,quote]
-\\markup { E \"=\" \\concat { \"mc\" \\super \"2\" } }
+\\markup { E = \\concat { mc \\super 2 } }
@end lilypond"
(ly:stencil-translate-axis
(interpret-markup
"
@cindex placing horizontal brackets around text
-Draw horizontal brackets around @var{arg}."
+Draw horizontal brackets around @var{arg}."
(let ((th 0.1) ;; todo: take from GROB.
(m (interpret-markup layout props arg)))
(bracketify-stencil m X th (* 2.5 th) th)))
;; don't use decimals.
;; ISO 216 has a tolerance of +- 2mm
-
- '(("a7" . (cons (* 74 mm) (* 105 mm)))
+
+ '(("a10" . (cons (* 26 mm) (* 37 mm)))
+ ("a9" . (cons (* 37 mm) (* 52 mm)))
+ ("a8" . (cons (* 52 mm) (* 74 mm)))
+ ("a7" . (cons (* 74 mm) (* 105 mm)))
("a6" . (cons (* 105 mm) (* 148 mm)))
("a5" . (cons (* 148 mm) (* 210 mm)))
("a4" . (cons (* 210 mm) (* 297 mm)))
("a3" . (cons (* 297 mm) (* 420 mm)))
+ ("a2" . (cons (* 420 mm) (* 594 mm)))
+ ("a1" . (cons (* 594 mm) (* 841 mm)))
+ ("a0" . (cons (* 841 mm) (* 1189 mm)))
+ ("b10" . (cons (* 31 mm) (* 44 mm)))
+ ("b9" . (cons (* 44 mm) (* 62 mm)))
+ ("b8" . (cons (* 62 mm) (* 88 mm)))
+ ("b7" . (cons (* 88 mm) (* 125 mm)))
+ ("b6" . (cons (* 125 mm) (* 176 mm)))
+ ("b5" . (cons (* 176 mm) (* 250 mm)))
+ ("b4" . (cons (* 250 mm) (* 353 mm)))
+ ("b3" . (cons (* 353 mm) (* 500 mm)))
+ ("b2" . (cons (* 500 mm) (* 707 mm)))
+ ("b1" . (cons (* 707 mm) (* 1000 mm)))
+ ("b0" . (cons (* 1000 mm) (* 1414 mm)))
+ ;; Below are two extended sizes defined in DIn 476
+ ("4a0" . (cons (* 1682 mm) (* 2378 mm)))
+ ("2a0" . (cons (* 1189 mm) (* 1682 mm)))
+ ;; Below are ISO 269 standard C series
+ ("c10" . (cons (* 28 mm) (* 40 mm)))
+ ("c9" . (cons (* 40 mm) (* 57 mm)))
+ ("c8" . (cons (* 57 mm) (* 81 mm)))
+ ("c7" . (cons (* 81 mm) (* 114 mm)))
+ ("c6" . (cons (* 114 mm) (* 162 mm)))
+ ("c5" . (cons (* 162 mm) (* 229 mm)))
+ ("c4" . (cons (* 229 mm) (* 324 mm)))
+ ("c3" . (cons (* 324 mm) (* 458 mm)))
+ ("c2" . (cons (* 458 mm) (* 648 mm)))
+ ("c1" . (cons (* 648 mm) (* 917 mm)))
+ ("c0" . (cons (* 917 mm) (* 1297 mm)))
+ ;; Below are North American paper sizes
("legal" . (cons (* 8.5 in) (* 14.0 in)))
("letter" . (cons (* 8.5 in) (* 11.0 in)))
+ ;; Ledger (17x11) is a 90 degree rotation of Tabloid
("11x17" . (cons (* 11.0 in) (* 17.0 in)))
- ))
+ ;; government-letter by IEEE Printer Working Group, for children's writing
+ ("government-letter" . (cons (* 8 in) (* 10.5 in)))
+ ("government-legal" . (cons (* 8.5 in) (* 13.0 in)))
+ ("philippine-legal" . (cons (* 8.5 in) (* 13.0 in)))
+ ;; ANSI sizes
+ ("ansi a" . (cons (* 8.5 in) (* 11.0 in)))
+ ("ansi b" . (cons (* 17.0 in) (* 11.0 in)))
+ ("ansi c" . (cons (* 17.0 in) (* 22.0 in)))
+ ("ansi d" . (cons (* 22.0 in) (* 34.0 in)))
+ ("ansi e" . (cons (* 34.0 in) (* 44.0 in)))
+ ("engineering f" . (cons (* 28.0 in) (* 40.0 in)))
+ ;; G and H are very rare, and the lengths are variable up to 90 inches
+ ;; North American Architectural sizes
+ ("arch a" . (cons (* 9.0 in) (* 12.0 in)))
+ ("arch b" . (cons (* 12.0 in) (* 18.0 in)))
+ ("arch c" . (cons (* 18.0 in) (* 24.0 in)))
+ ("arch d" . (cons (* 24.0 in) (* 36.0 in)))
+ ("arch e" . (cons (* 36.0 in) (* 48.0 in)))
+ ("arch e1" . (cons (* 30.0 in) (* 42.0 in)))
+ ;; Other sizes
+ ;; Some are antique sizes which are still using in UK
+ ("statement" . (cons (* 5.5 in) (* 8.5 in)))
+ ("half letter" . (cons (* 5.5 in) (* 8.5 in)))
+ ("quarto" . (cons (* 8.0 in) (* 10.0 in)))
+ ("executive" . (cons (* 7.25 in) (* 10.5 in)))
+ ("monarch" . (cons (* 7.25 in) (* 10.5 in)))
+ ("foolscap" . (cons (* 8.27 in) (* 13.0 in)))
+ ("folio" . (cons (* 8.27 in) (* 13.0 in)))
+ ("super-b" . (cons (* 13.0 in) (* 19.0 in)))
+ ("post" . (cons (* 15.5 in) (* 19.5 in)))
+ ("crown" . (cons (* 15.0 in) (* 20.0 in)))
+ ("large post" . (cons (* 16.5 in) (* 21.0 in)))
+ ("demy" . (cons (* 17.5 in) (* 22.5 in)))
+ ("medium" . (cons (* 18.0 in) (* 23.0 in)))
+ ("broadsheet" . (cons (* 18.0 in) (* 24.0 in)))
+ ("royal" . (cons (* 20.0 in) (* 25.0 in)))
+ ("elephant" . (cons (* 23.0 in) (* 28.0 in)))
+ ("double demy" . (cons (* 22.5 in) (* 35.0 in)))
+ ("quad demy" . (cons (* 35.0 in) (* 45.0 in)))
+ ("atlas" . (cons (* 26.0 in) (* 34.0 in)))
+ ("imperial" . (cons (* 22.0 in) (* 30.0 in)))
+ ("antiquarian" . (cons (* 31.0 in) (* 53.0 in)))
+ ;; PA4 based sizes
+ ("pa0" . (cons (* 840 mm) (* 1120 mm)))
+ ("pa1" . (cons (* 560 mm) (* 840 mm)))
+ ("pa2" . (cons (* 420 mm) (* 560 mm)))
+ ("pa3" . (cons (* 280 mm) (* 420 mm)))
+ ("pa4" . (cons (* 210 mm) (* 280 mm)))
+ ("pa5" . (cons (* 140 mm) (* 210 mm)))
+ ("pa6" . (cons (* 105 mm) (* 140 mm)))
+ ("pa7" . (cons (* 70 mm) (* 105 mm)))
+ ("pa8" . (cons (* 52 mm) (* 70 mm)))
+ ("pa9" . (cons (* 35 mm) (* 52 mm)))
+ ("pa10" . (cons (* 26 mm) (* 35 mm)))
+ ;; F4 used in southeast Asia and Australia
+ ("f4" . (cons (* 210 mm) (* 330 mm)))
+ ))
;; todo: take dimension arguments.