@seealso
-Programmreferenz: @rinternals{NewBassFigure}-,
+Programmreferenz: @rinternals{BassFigure}-,
@rinternals{BassFigureAlignment}-, @rinternals{BassFigureLine}-,
@rinternals{BassFigureBracket}- und
@rinternals{BassFigureContinuation}-Objekte und der
@untranslated
@menu
-* Guitar tablatures::
* Indicating position and barring::
+* Indicating harmonics and dampened notes::
@end menu
-@node Guitar tablatures
-@unnumberedsubsubsec Guitar tablatures
-
-@untranslated
-
@node Indicating position and barring
@unnumberedsubsubsec Indicating position and barring
wird mit Kreuz-Notenköpfen notiert, wie im Abschnitt @ref{Special note heads}
gezeigt.
+@node Indicating harmonics and dampened notes
+@unnumberedsubsubsec Indicating harmonics and dampened notes
+
+@untranslated
+
+
@node Banjo
@subsection Banjo
@seealso
-Référence du programme : les objets @rinternals{NewBassFigure},
+Référence du programme : les objets @rinternals{BassFigure},
@rinternals{BassFigureAlignment}, @rinternals{BassFigureLine},
@rinternals{BassFigureBracket} et
@rinternals{BassFigureContinuation}, ainsi que le contexte
@seealso
-Références internes : @rinternals{Engravers and performers}.
+Références internes : @rinternals{Engravers and Performers}.
@node Modifying context properties
@cindex unmetered music
Bar lines and bar numbers are calculated automatically. For
-unmetered music (cadenzas, for example), this is not desirable.
+unmetered music (some cadenzas, for example), this is not desirable.
To turn off automatic calculation of bar lines and bar numbers,
use the command @code{\cadenzaOn}, and use @code{\cadenzaOff}
to turn them on again.
@cindex aligning to cadenza
In an orchestral context, cadenzas present a special problem: when
-constructing a score that includes a cadenza, all other
-instruments should skip just as many notes as the length of the
-cadenza, otherwise they will start too soon or too late.
+constructing a score that includes a measured cadenza or other solo
+passage, all other instruments should skip just as many notes as the
+length of the cadenza, otherwise they will start too soon or too late.
-A solution to this problem is to use the functions
+One solution to this problem is to use the functions
@code{mmrest-of-length} and @code{skip-of-length}. These Scheme
-functions take a piece of music as argument, and generate a multi-measure
-rest or @code{\skip}, exactly as long as the piece.
+functions take a defined piece of music as an argument and generate a
+multi-measure rest or @code{\skip} exactly as long as the piece.
@lilypond[verbatim,ragged-right,quote]
-cadenza = \relative c' {
+MyCadenza = \relative c' {
c4 d8 e f g g4
f2 g4 g
}
\new GrandStaff <<
- \new Staff { \cadenza c'1 }
+ \new Staff {
+ \MyCadenza c'1
+ \MyCadenza c'1
+ }
\new Staff {
- #(ly:export (mmrest-of-length cadenza))
+ #(ly:export (mmrest-of-length MyCadenza))
+ c'1
+ #(ly:export (skip-of-length MyCadenza))
c'1
}
>>
@seealso
+Music Glossary:
+@rglos{cadenza}.
+
Snippets:
@rlsr{Rhythms}.
(space-before-divider . 0.1)
(space-after-divider . 1.2))) {
\harp-pedal #"o^ovo-|vovo-o^"}
+ \revert Voice.TextScript #'harp-pedal-details #'box-width
+ \override Voice.TextScript #'harp-pedal-details #'circle-thickness = #3
+ \override Voice.TextScript #'harp-pedal-details #'circle-x-padding = #0.6
+ \override Voice.TextScript #'harp-pedal-details #'circle-y-padding = #-0.3
+ c1^\markup \harp-pedal #"o^ovo-|vovo-o^"
}
scm_to_double (blot)).smobbed_copy ();
}
+LY_DEFINE (ly_round_filled_polygon, "ly:round-filled-polygon",
+ 2, 0, 0,
+ (SCM points, SCM blot),
+ "Make a @code{Stencil} object that prints a black polygon with "
+ "corners at the points defined by @var{points} (list of coordinate "
+ "pairs) and roundness @var{blot}.")
+{
+ SCM_ASSERT_TYPE (scm_ilength (points) > 0, points, SCM_ARG1, __FUNCTION__, "list of coordinate pairs");
+ LY_ASSERT_TYPE (scm_is_number, blot, 2);
+ vector<Offset> pts;
+ for (SCM p = points; scm_is_pair (p); p = scm_cdr (p))
+ {
+ SCM scm_pt = scm_car (p);
+ if (scm_is_pair (scm_pt)) {
+ pts.push_back (ly_scm2offset (scm_pt));
+ } else {
+ // TODO: Print out warning
+ }
+ }
+ return Lookup::round_filled_polygon (pts, scm_to_double (blot)).smobbed_copy ();
+}
+
LY_DEFINE (ly_register_stencil_expression, "ly:register-stencil-expression",
1, 0, 0,
(SCM symbol),
#
msgid ""
msgstr ""
-"Project-Id-Version: lilypond 2.11.56\n"
+"Project-Id-Version: lilypond 2.11.57\n"
"Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
-"POT-Creation-Date: 2008-08-17 15:57+0200\n"
+"POT-Creation-Date: 2008-08-23 18:49+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
#: abc2ly.py:1351 convert-ly.py:79 etf2ly.py:1190 lilypond-book.py:195
-#: midi2ly.py:882 musicxml2ly.py:2170 main.cc:161
+#: midi2ly.py:882 musicxml2ly.py:2185 main.cc:161
msgid "show version number and exit"
msgstr ""
#: abc2ly.py:1355 convert-ly.py:83 etf2ly.py:1186 lilypond-book.py:126
-#: midi2ly.py:861 musicxml2ly.py:2152 main.cc:150
+#: midi2ly.py:861 musicxml2ly.py:2167 main.cc:150
msgid "show this help and exit"
msgstr ""
msgstr ""
#: abc2ly.py:1363 convert-ly.py:120 etf2ly.py:1199 lilypond-book.py:202
-#: midi2ly.py:894 musicxml2ly.py:2225
+#: midi2ly.py:894 musicxml2ly.py:2240
msgid "Report bugs via"
msgstr ""
"file.\n"
msgstr ""
-#: etf2ly.py:1192 midi2ly.py:866 musicxml2ly.py:2218 main.cc:154 main.cc:159
+#: etf2ly.py:1192 midi2ly.py:866 musicxml2ly.py:2233 main.cc:154 main.cc:159
msgid "FILE"
msgstr ""
msgid "create PDF files for use with PDFTeX"
msgstr ""
-#: lilypond-book.py:187 midi2ly.py:876 musicxml2ly.py:2175 main.cc:162
+#: lilypond-book.py:187 midi2ly.py:876 musicxml2ly.py:2190 main.cc:162
msgid "be verbose"
msgstr ""
msgid "unknown span type %s for %s"
msgstr ""
-#: musicxml2ly.py:1207
+#: musicxml2ly.py:1222
msgid "Unknown metronome mark, ignoring"
msgstr ""
#. TODO: Implement the other (more complex) way for tempo marks!
-#: musicxml2ly.py:1212
+#: musicxml2ly.py:1227
msgid ""
"Metronome marks with complex relations (<metronome-note> in MusicXML) are "
"not yet implemented."
msgstr ""
-#: musicxml2ly.py:1368
+#: musicxml2ly.py:1383
#, python-format
msgid "Unable to convert chord type %s to lilypond."
msgstr ""
-#: musicxml2ly.py:1514
+#: musicxml2ly.py:1529
#, python-format
msgid "drum %s type unknown, please add to instrument_drumtype_dict"
msgstr ""
-#: musicxml2ly.py:1518
+#: musicxml2ly.py:1533
msgid "cannot find suitable event"
msgstr ""
-#: musicxml2ly.py:1608
+#: musicxml2ly.py:1623
#, python-format
msgid "Negative skip %s"
msgstr ""
-#: musicxml2ly.py:1760
+#: musicxml2ly.py:1775
#, python-format
msgid "Negative skip found: from %s to %s, difference is %s"
msgstr ""
-#: musicxml2ly.py:1787
+#: musicxml2ly.py:1802
#, python-format
msgid "unexpected %s; expected %s or %s or %s"
msgstr ""
-#: musicxml2ly.py:1897
+#: musicxml2ly.py:1912
msgid "cannot have two simultaneous slurs"
msgstr ""
-#: musicxml2ly.py:2035
+#: musicxml2ly.py:2050
#, python-format
msgid "cannot simultaneously have more than one mode: %s"
msgstr ""
-#: musicxml2ly.py:2133
+#: musicxml2ly.py:2148
msgid "Converting to LilyPond expressions..."
msgstr ""
-#: musicxml2ly.py:2144
+#: musicxml2ly.py:2159
msgid "musicxml2ly [OPTION]... FILE.xml"
msgstr ""
-#: musicxml2ly.py:2146
+#: musicxml2ly.py:2161
msgid ""
"Convert MusicXML from FILE.xml to LilyPond input.\n"
"If the given filename is -, musicxml2ly reads from the command line.\n"
msgstr ""
-#: musicxml2ly.py:2156
+#: musicxml2ly.py:2171
msgid ""
"Copyright (c) 2005--2008 by\n"
" Han-Wen Nienhuys <hanwen@xs4all.nl>,\n"
" Reinhold Kainhofer <reinhold@kainhofer.com>\n"
msgstr ""
-#: musicxml2ly.py:2181
+#: musicxml2ly.py:2196
msgid "use lxml.etree; uses less memory and cpu time"
msgstr ""
-#: musicxml2ly.py:2187
+#: musicxml2ly.py:2202
msgid "input file is a zip-compressed MusicXML file"
msgstr ""
-#: musicxml2ly.py:2193
+#: musicxml2ly.py:2208
msgid "convert pitches in relative mode (default)"
msgstr ""
-#: musicxml2ly.py:2198
+#: musicxml2ly.py:2213
msgid "convert pitches in absolute mode"
msgstr ""
-#: musicxml2ly.py:2201
+#: musicxml2ly.py:2216
msgid "LANG"
msgstr ""
-#: musicxml2ly.py:2203
+#: musicxml2ly.py:2218
msgid ""
"use a different language file 'LANG.ly' and corresponding pitch names, e.g. "
"'deutsch' for deutsch.ly"
msgstr ""
-#: musicxml2ly.py:2209
+#: musicxml2ly.py:2224
msgid "do not convert directions (^, _ or -) for articulations, dynamics, etc."
msgstr ""
-#: musicxml2ly.py:2215
+#: musicxml2ly.py:2230
msgid ""
"do not convert beaming information, use lilypond's automatic beaming instead"
msgstr ""
-#: musicxml2ly.py:2223
+#: musicxml2ly.py:2238
msgid "set output filename to FILE, stdout if -"
msgstr ""
-#: musicxml2ly.py:2305
+#: musicxml2ly.py:2320
#, python-format
msgid "unknown part in part-list: %s"
msgstr ""
-#: musicxml2ly.py:2367
+#: musicxml2ly.py:2382
msgid "Input is compressed, extracting raw MusicXML data from stdin"
msgstr ""
-#: musicxml2ly.py:2370
+#: musicxml2ly.py:2385
#, python-format
msgid "Input file %s is compressed, extracting raw MusicXML data"
msgstr ""
-#: musicxml2ly.py:2400
+#: musicxml2ly.py:2415
msgid "Reading MusicXML from Standard input ..."
msgstr ""
-#: musicxml2ly.py:2402
+#: musicxml2ly.py:2417
#, python-format
msgid "Reading MusicXML from %s ..."
msgstr ""
-#: musicxml2ly.py:2435
+#: musicxml2ly.py:2450
#, python-format
msgid "Output to `%s'"
msgstr ""
-#: musicxml2ly.py:2497
+#: musicxml2ly.py:2512
#, python-format
msgid "Unable to find input file %s"
msgstr ""
msgid "setting to zero"
msgstr ""
-#: general-scheme.cc:422 output-ps.scm:61
+#: general-scheme.cc:422 output-ps.scm:62
msgid "Found infinity or nan in output. Substituting 0.0"
msgstr ""
msgid "program too old: %s (file requires: %s)"
msgstr ""
-#: backend-library.scm:19 lily.scm:776 ps-to-png.scm:58
+#: backend-library.scm:19 lily.scm:777 ps-to-png.scm:58
#, scheme-format
msgid "Invoking `~a'..."
msgstr ""
msgid "translator listens to nonexisting event class ~A"
msgstr ""
-#: define-markup-commands.scm:608
+#: define-markup-commands.scm:599
msgid "no systems found in \\score markup, does it have a \\layout block?"
msgstr ""
-#: define-markup-commands.scm:2386
+#: define-markup-commands.scm:2428
#, scheme-format
msgid "Cannot find glyph ~a"
msgstr ""
-#: define-markup-commands.scm:2697
+#: define-markup-commands.scm:2737
#, scheme-format
msgid "not a valid duration string: ~a"
msgstr ""
msgid "wrong type for argument ~a. Expecting ~a, found ~s"
msgstr ""
-#: lily.scm:640
+#: lily.scm:641
#, scheme-format
msgid "job ~a terminated with signal: ~a"
msgstr ""
-#: lily.scm:643
+#: lily.scm:644
#, scheme-format
msgid ""
"logfile ~a (exit ~a):\n"
"~a"
msgstr ""
-#: lily.scm:668 lily.scm:766
+#: lily.scm:669 lily.scm:767
#, scheme-format
msgid "failed files: ~S"
msgstr ""
-#: lily.scm:756
+#: lily.scm:757
#, scheme-format
msgid "Redirecting output to ~a..."
msgstr ""
msgid "unknown accidental style: ~S"
msgstr ""
-#: output-ps.scm:276
+#: output-ps.scm:285
msgid "utf-8-string encountered in PS backend"
msgstr ""
include the following:
@itemize @bullet
@item
-@code{box-offset} -- Vertical shift of the center of flat / sharp pedal
+@code{box-offset} -- Vertical shift of the center of flat / sharp pedal
boxes above / below the horizontal line. Default value 0.8.
@item
@code{box-width} -- Width of each pedal box. Default value 0.4.
@item
@code{box-height} -- Height of each pedal box. Default value 1.0.
@item
-@code{space-before-divider} -- Space between boxes before the first divider
+@code{space-before-divider} -- Space between boxes before the first divider
(so that the diagram can be made symmetric). Default value 0.8.
@item
-@code{space-after-divider} -- Space between boxes after the first divider.
+@code{space-after-divider} -- Space between boxes after the first divider.
Default value 0.8.
+@item
+@code{circle-thickness} -- Thickness (in unit of the line-thickness) of the
+ellipse around circled pedals. Default value 0.5.
+@item
+@code{circle-x-padding} -- Padding in X direction of the ellipse around
+circled pedals. Default value 0.15.
+@item
+@code{circle-y-padding} -- Padding in Y direction of the ellipse around
+circled pedals. Default value 0.2.
@end itemize")
(head-direction ,ly:dir? "Are the note heads left or right in a
(box-hheight (* size (/ (assoc-get 'box-height details 1.0) 2))) ; half the box-height, saves some divisions by 2
(spacebeforedivider (* size (assoc-get 'space-before-divider details 0.8))) ; full space between boxes before the first divider
(spaceafterdivider (* size (assoc-get 'space-after-divider details 0.8))) ; full space between boxes
- ;(spacebeforedivider (/ (+ box-width (* 8 spaceafterdivider)) 8))
+ (circle-thickness (* (ly:output-def-lookup layout 'line-thickness)
+ (assoc-get 'circle-thickness details 0.5)))
+ (circle-x-padding (* size (assoc-get 'circle-x-padding details 0.15)))
+ (circle-y-padding (* size (assoc-get 'circle-y-padding details 0.2)))
(box-x-dimensions (lambda (prev-x p space) (cons (+ prev-x space)
(+ prev-x space box-width))))
(box-y-dimensions (lambda (prev-x p space) (cons (- (* p dy) box-hheight)
(+ (* p dy) box-hheight))))
- (divider-stencil (lambda (xpos) (make-line-stencil line-width xpos (- 0 dy box-hheight) xpos (+ dy box-hheight))))
+ (divider-stencil (lambda (xpos) (make-line-stencil line-width
+ xpos (- 0 dy box-hheight)
+ xpos (+ dy box-hheight))))
(result (let process-pedal ((remaining pedal-list)
(prev-x 0)
(stencils '())
(box-y-dimensions prev-x p space)))
(pedal-stencil
(if circled
- (ellipse-stencil stencil 0.05 0.1 )
+ (ellipse-stencil stencil circle-thickness
+ circle-x-padding circle-y-padding)
stencil))
(new-prev-x (+ prev-x space box-width)))
(process-pedal (cdr remaining) new-prev-x
(interval-center x-ext)
(interval-center y-ext))))))
-(define-public (ellipse-stencil stencil thickness padding)
- "Add an ellipse around STENCIL, producing a new stencil."
+(define-public (ellipse-stencil stencil thickness x-padding y-padding)
+ "Add an ellipse around STENCIL, padded by the padding pair,
+ producing a new stencil."
(let* ((x-ext (ly:stencil-extent stencil X))
(y-ext (ly:stencil-extent stencil Y))
- (x-length (+ (interval-length x-ext) padding thickness))
- (y-length (+ (interval-length y-ext) padding thickness))
+ (x-length (+ (interval-length x-ext) x-padding thickness))
+ (y-length (+ (interval-length y-ext) y-padding thickness))
;(aspect-ratio (/ x-length y-length))
(x-radius (* 0.707 x-length) )
(y-radius (* 0.707 y-length) )