]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'lilypond/translation' of ssh://git.sv.gnu.org/srv/git/lilypond into...
authorTill Paala <till.rettig@gmx.de>
Tue, 22 Mar 2011 19:14:13 +0000 (21:14 +0200)
committerTill Paala <till.rettig@gmx.de>
Tue, 22 Mar 2011 19:14:13 +0000 (21:14 +0200)
304 files changed:
Documentation/changes.tely
Documentation/contributor/administration.itexi
Documentation/contributor/build-notes.itexi
Documentation/es/changes.tely
Documentation/es/notation/editorial.itely
Documentation/es/notation/fretted-strings.itely
Documentation/es/texidocs/accordion-discant-symbols.texidoc
Documentation/es/texidocs/adding-a-figured-bass-above-or-below-the-notes.texidoc
Documentation/es/texidocs/adding-ambitus-per-voice.texidoc
Documentation/es/texidocs/adding-an-extra-staff-at-a-line-break.texidoc
Documentation/es/texidocs/adding-an-extra-staff.texidoc
Documentation/es/texidocs/adding-bar-lines-to-chordnames-context.texidoc
Documentation/es/texidocs/adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rhythms.texidoc
Documentation/es/texidocs/adding-drum-parts.texidoc
Documentation/es/texidocs/adding-fingerings-to-tablatures.texidoc
Documentation/es/texidocs/adding-orchestral-cues-to-a-vocal-score.texidoc
Documentation/es/texidocs/adding-parentheses-around-an-expressive-mark-or-chordal-note.texidoc
Documentation/es/texidocs/adding-the-current-date-to-a-score.texidoc
Documentation/es/texidocs/adding-volta-brackets-to-additional-staves.texidoc
Documentation/es/texidocs/additional-voices-to-avoid-collisions.texidoc
Documentation/es/texidocs/adjusting-grace-note-spacing.texidoc
Documentation/es/texidocs/adjusting-lyrics-vertical-spacing.texidoc
Documentation/es/texidocs/adjusting-the-shape-of-falls-and-doits.texidoc
Documentation/es/texidocs/aligning-and-centering-instrument-names.texidoc
Documentation/es/texidocs/aligning-bar-numbers.texidoc
Documentation/es/texidocs/aligning-marks-with-various-notation-objects.texidoc
Documentation/es/texidocs/allowing-fingerings-to-be-printed-inside-the-staff.texidoc
Documentation/es/texidocs/altering-the-length-of-beamed-stems.texidoc
Documentation/es/texidocs/ambitus-with-multiple-voices.texidoc
Documentation/es/texidocs/analysis-brackets-above-the-staff.texidoc
Documentation/es/texidocs/ancient-fonts.texidoc
Documentation/es/texidocs/ancient-notation-template----modern-transcription-of-gregorian-music.texidoc
Documentation/es/texidocs/ancient-notation-template----modern-transcription-of-mensural-music.texidoc
Documentation/es/texidocs/ancient-time-signatures.texidoc
Documentation/es/texidocs/applying-note-head-styles-depending-on-the-step-of-the-scale.texidoc
Documentation/es/texidocs/arabic-improvisation.texidoc
Documentation/es/texidocs/asymmetric-slurs.texidoc
Documentation/es/texidocs/automatic-beam-subdivisions.texidoc
Documentation/es/texidocs/avoiding-collisions-with-chord-fingerings.texidoc
Documentation/es/texidocs/beam-endings-in-score-context.texidoc
Documentation/es/texidocs/beam-grouping-in-7-8-time.texidoc
Documentation/es/texidocs/beams-across-line-breaks.texidoc
Documentation/es/texidocs/blanking-staff-lines-using-the--whiteout-command.texidoc
Documentation/es/texidocs/broken-crescendo-hairpin.texidoc
Documentation/es/texidocs/caesura-railtracks-with-fermata.texidoc
Documentation/es/texidocs/center-text-below-hairpin-dynamics.texidoc
Documentation/es/texidocs/changing--flageolet-mark-size.texidoc
Documentation/es/texidocs/changing-a-single-notes-size-in-a-chord.texidoc
Documentation/es/texidocs/changing-beam-knee-gap.texidoc
Documentation/es/texidocs/changing-chord-separator.texidoc
Documentation/es/texidocs/changing-form-of-multi-measure-rests.texidoc
Documentation/es/texidocs/changing-fret-orientations.texidoc
Documentation/es/texidocs/changing-midi-output-to-one-channel-per-voice.texidoc
Documentation/es/texidocs/changing-partcombine-texts.texidoc
Documentation/es/texidocs/changing-text-and-spanner-styles-for-text-dynamics.texidoc
Documentation/es/texidocs/changing-the-ambitus-gap.texidoc
Documentation/es/texidocs/changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.texidoc
Documentation/es/texidocs/changing-the-breath-mark-symbol.texidoc
Documentation/es/texidocs/changing-the-chord-names-to-german-or-semi-german-notation.texidoc
Documentation/es/texidocs/changing-the-number-of-augmentation-dots-per-note.texidoc
Documentation/es/texidocs/changing-the-positions-of-figured-bass-alterations.texidoc
Documentation/es/texidocs/changing-the-size-of-woodwind-diagrams.texidoc
Documentation/es/texidocs/changing-the-tempo-without-a-metronome-mark.texidoc
Documentation/es/texidocs/changing-the-text-for-sustain-markings.texidoc
Documentation/es/texidocs/changing-the-time-signature-without-affecting-the-beaming.texidoc
Documentation/es/texidocs/changing-the-tuplet-number.texidoc
Documentation/es/texidocs/changing-time-signatures-inside-a-polymetric-section-using--scaledurations.texidoc
Documentation/es/texidocs/chant-or-psalms-notation.texidoc
Documentation/es/texidocs/chord-glissando-in-tablature.texidoc [new file with mode: 0644]
Documentation/es/texidocs/chord-name-exceptions.texidoc
Documentation/es/texidocs/chord-name-major7.texidoc
Documentation/es/texidocs/chordchanges-for-fretboards.texidoc
Documentation/es/texidocs/clip-systems.texidoc
Documentation/es/texidocs/clusters.texidoc
Documentation/es/texidocs/combining-dynamics-with-markup-texts.texidoc
Documentation/es/texidocs/combining-two-parts-on-the-same-staff.texidoc
Documentation/es/texidocs/compound-time-signatures.texidoc
Documentation/es/texidocs/conducting-signs,-measure-grouping-signs.texidoc
Documentation/es/texidocs/contemporary-glissando.texidoc
Documentation/es/texidocs/controlling-spanner-visibility-after-a-line-break.texidoc
Documentation/es/texidocs/controlling-the-placement-of-chord-fingerings.texidoc
Documentation/es/texidocs/controlling-the-vertical-ordering-of-scripts.texidoc
Documentation/es/texidocs/controlling-tuplet-bracket-visibility.texidoc
Documentation/es/texidocs/creating-a-delayed-turn.texidoc
Documentation/es/texidocs/creating-a-sequence-of-notes-on-various-pitches.texidoc
Documentation/es/texidocs/creating-arpeggios-across-notes-in-different-voices.texidoc
Documentation/es/texidocs/creating-blank-staves.texidoc
Documentation/es/texidocs/creating-cross-staff-arpeggios-in-a-piano-staff.texidoc
Documentation/es/texidocs/creating-cross-staff-arpeggios-in-other-contexts.texidoc
Documentation/es/texidocs/creating-metronome-marks-in-markup-mode.texidoc
Documentation/es/texidocs/creating-real-parenthesized-dynamics.texidoc
Documentation/es/texidocs/creating-simultaneous-rehearsal-marks.texidoc
Documentation/es/texidocs/creating-slurs-across-voices.texidoc
Documentation/es/texidocs/creating-text-spanners.texidoc
Documentation/es/texidocs/cross-staff-tremolos.texidoc
Documentation/es/texidocs/custodes.texidoc
Documentation/es/texidocs/customizing-fretboard-fret-diagrams.texidoc
Documentation/es/texidocs/customizing-markup-fret-diagrams.texidoc
Documentation/es/texidocs/default-direction-of-stems-on-the-center-line-of-the-staff.texidoc
Documentation/es/texidocs/defining-an-engraver-in-scheme-ambitus-engraver.texidoc
Documentation/es/texidocs/defining-predefined-fretboards-for-other-instruments.texidoc
Documentation/es/texidocs/display-bracket-with-only-one-staff-in-a-system.texidoc
Documentation/es/texidocs/displaying-complex-chords.texidoc
Documentation/es/texidocs/displaying-grob-ancestry.texidoc
Documentation/es/texidocs/dodecaphonic-style-accidentals-for-each-note-including-naturals.texidoc
Documentation/es/texidocs/dynamics-custom-text-spanner-postfix.texidoc
Documentation/es/texidocs/dynamics-text-spanner-postfix.texidoc
Documentation/es/texidocs/embedding-native-postscript-in-a--markup-block.texidoc
Documentation/es/texidocs/engravers-one-by-one.texidoc
Documentation/es/texidocs/engraving-ties-manually.texidoc
Documentation/es/texidocs/entering-several-tuplets-using-only-one--times-command.texidoc
Documentation/es/texidocs/faking-a-hammer-in-tablatures.texidoc
Documentation/es/texidocs/fingering-symbols-for-wind-instruments.texidoc
Documentation/es/texidocs/fingerings,-string-indications,-and-right-hand-fingerings.texidoc
Documentation/es/texidocs/flamenco-notation.texidoc
Documentation/es/texidocs/flat-flags-and-beam-nibs.texidoc
Documentation/es/texidocs/forcing-horizontal-shift-of-notes.texidoc
Documentation/es/texidocs/forcing-hyphens-to-be-shown.texidoc
Documentation/es/texidocs/fretboards-alternate-tables.texidoc
Documentation/es/texidocs/fretted-string-harmonics-in-tablature.texidoc [new file with mode: 0644]
Documentation/es/texidocs/generating-random-notes.texidoc
Documentation/es/texidocs/graphical-and-text-woodwind-diagrams.texidoc
Documentation/es/texidocs/grid-lines--changing-their-appearance.texidoc
Documentation/es/texidocs/grid-lines--emphasizing-rhythms-and-notes-synchronization.texidoc
Documentation/es/texidocs/grouping-beats.texidoc
Documentation/es/texidocs/guitar-slides.texidoc
Documentation/es/texidocs/guitar-strum-rhythms.texidoc
Documentation/es/texidocs/hairpins-with-different-line-styles.texidoc
Documentation/es/texidocs/hiding-accidentals-on-tied-notes-at-the-start-of-a-new-system.texidoc
Documentation/es/texidocs/hiding-the-extender-line-for-text-dynamics.texidoc
Documentation/es/texidocs/hymn-template.texidoc
Documentation/es/texidocs/incipit.texidoc
Documentation/es/texidocs/indicating-cross-staff-chords-with-arpeggio-bracket.texidoc
Documentation/es/texidocs/inserting-a-caesura.texidoc
Documentation/es/texidocs/isolated-percent-repeats.texidoc
Documentation/es/texidocs/jazz-combo-template.texidoc
Documentation/es/texidocs/keep-change-clefs-full-sized.texidoc
Documentation/es/texidocs/letter-tablature-formatting.texidoc
Documentation/es/texidocs/line-arrows.texidoc
Documentation/es/texidocs/lyrics-alignment.texidoc
Documentation/es/texidocs/makam-example.texidoc
Documentation/es/texidocs/making-slurs-with-complex-dash-structure.texidoc
Documentation/es/texidocs/making-some-staff-lines-thicker-than-the-others.texidoc
Documentation/es/texidocs/measure-counter.texidoc
Documentation/es/texidocs/mensurstriche-layout-bar-lines-between-the-staves.texidoc
Documentation/es/texidocs/modern-tab-text-clef.texidoc
Documentation/es/texidocs/modifying-default-values-for-articulation-shorthand-notation.texidoc
Documentation/es/texidocs/moving-dotted-notes-in-polyphony.texidoc
Documentation/es/texidocs/moving-slur-positions-vertically.texidoc
Documentation/es/texidocs/multi-measure-rest-markup.texidoc
Documentation/es/texidocs/nesting-staves.texidoc
Documentation/es/texidocs/non-default-tuplet-numbers.texidoc
Documentation/es/texidocs/non-traditional-key-signatures.texidoc
Documentation/es/texidocs/numbers-as-easy-note-heads.texidoc
Documentation/es/texidocs/open-string-harmonics-in-tablature.texidoc [new file with mode: 0644]
Documentation/es/texidocs/orchestra,-choir-and-piano-template.texidoc
Documentation/es/texidocs/ottava-text.texidoc
Documentation/es/texidocs/partcombine-and-autobeamoff.texidoc
Documentation/es/texidocs/percent-repeat-count-visibility.texidoc
Documentation/es/texidocs/percent-repeat-counter.texidoc
Documentation/es/texidocs/permitting-line-breaks-within-beamed-tuplets.texidoc
Documentation/es/texidocs/piano-template-simple.texidoc
Documentation/es/texidocs/piano-template-with-centered-dynamics.texidoc
Documentation/es/texidocs/piano-template-with-centered-lyrics.texidoc
Documentation/es/texidocs/piano-template-with-melody-and-lyrics.texidoc
Documentation/es/texidocs/placement-of-right-hand-fingerings.texidoc
Documentation/es/texidocs/polyphony-in-tablature.texidoc
Documentation/es/texidocs/positioning-arpeggios.texidoc
Documentation/es/texidocs/positioning-grace-note-beams-at-the-height-of-normal-note-beams.texidoc
Documentation/es/texidocs/positioning-grace-notes-with-floating-space.texidoc
Documentation/es/texidocs/positioning-multi-measure-rests.texidoc
Documentation/es/texidocs/positioning-text-markups-inside-slurs.texidoc
Documentation/es/texidocs/preventing-extra-naturals-from-being-automatically-added.texidoc
Documentation/es/texidocs/preventing-natural-signs-from-being-printed-when-the-key-signature-changes.texidoc
Documentation/es/texidocs/printing-a-repeat-sign-at-the-beginning-of-a-piece.texidoc
Documentation/es/texidocs/printing-bar-numbers-at-regular-intervals.texidoc
Documentation/es/texidocs/printing-bar-numbers-inside-boxes-or-circles.texidoc
Documentation/es/texidocs/printing-hairpins-using-al-niente-notation.texidoc
Documentation/es/texidocs/printing-marks-at-the-end-of-a-line.texidoc
Documentation/es/texidocs/printing-marks-on-every-staff.texidoc
Documentation/es/texidocs/printing-metronome-and-rehearsal-marks-below-the-staff.texidoc
Documentation/es/texidocs/printing-note-names-with-and-without-an-octave-marker.texidoc
Documentation/es/texidocs/printing-the-bar-number-for-the-first-measure.texidoc
Documentation/es/texidocs/quoting-another-voice-with-transposition.texidoc
Documentation/es/texidocs/quoting-another-voice.texidoc
Documentation/es/texidocs/recorder-fingering-chart.texidoc
Documentation/es/texidocs/redefining-grace-note-global-defaults.texidoc
Documentation/es/texidocs/removing-bar-numbers-from-a-score.texidoc
Documentation/es/texidocs/removing-connecting-bar-lines-on-staffgroup,-pianostaff,-or-grandstaff.texidoc
Documentation/es/texidocs/removing-the-first-empty-line.texidoc
Documentation/es/texidocs/rest-styles.texidoc
Documentation/es/texidocs/reverting-default-beam-endings.texidoc
Documentation/es/texidocs/script-chart.texidoc
Documentation/es/texidocs/setting-hairpin-behavior-at-bar-lines.texidoc
Documentation/es/texidocs/setting-system-separators.texidoc
Documentation/es/texidocs/setting-the-double-repeat-default-for-volte.texidoc
Documentation/es/texidocs/setting-the-minimum-length-of-hairpins.texidoc
Documentation/es/texidocs/shortening-volta-brackets.texidoc
Documentation/es/texidocs/showing-chords-at-changes.texidoc
Documentation/es/texidocs/simple-lead-sheet.texidoc
Documentation/es/texidocs/single-staff-template-with-notes,-lyrics,-and-chords.texidoc
Documentation/es/texidocs/single-staff-template-with-notes,-lyrics,-chords-and-frets.texidoc
Documentation/es/texidocs/single-staff-template-with-notes-and-chords.texidoc
Documentation/es/texidocs/single-staff-template-with-notes-and-lyrics.texidoc
Documentation/es/texidocs/single-staff-template-with-only-notes.texidoc
Documentation/es/texidocs/slides-in-tablature.texidoc [new file with mode: 0644]
Documentation/es/texidocs/snap-pizzicato-bartok-pizzicato.texidoc
Documentation/es/texidocs/stand-alone-two-column-markup.texidoc
Documentation/es/texidocs/stem-and-beam-behavior-in-tablature.texidoc
Documentation/es/texidocs/string-quartet-template-simple.texidoc
Documentation/es/texidocs/string-quartet-template-with-separate-parts.texidoc
Documentation/es/texidocs/subdividing-beams.texidoc
Documentation/es/texidocs/time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.texidoc
Documentation/es/texidocs/transcription-of-ancient-music-with-incipit.texidoc
Documentation/es/texidocs/transposing-pitches-with-minimum-accidentals-smart-transpose.texidoc
Documentation/es/texidocs/tweaking-clef-properties.texidoc
Documentation/es/texidocs/tweaking-grace-layout-within-music.texidoc
Documentation/es/texidocs/use-square-bracket-at-the-start-of-a-staff-group.texidoc
Documentation/es/texidocs/using-alternative-flag-styles.texidoc
Documentation/es/texidocs/using-arpeggiobracket-to-make-divisi-more-visible.texidoc
Documentation/es/texidocs/using-double-slurs-for-legato-chords.texidoc
Documentation/es/texidocs/using-grace-note-slashes-with-normal-heads.texidoc
Documentation/es/texidocs/using-ly-grob-object-to-access-grobs-with--tweak.texidoc
Documentation/es/texidocs/using-the-whiteout-property.texidoc
Documentation/es/texidocs/using-ties-with-arpeggios.texidoc
Documentation/es/texidocs/vertically-aligned-dynamics-and-textscripts.texidoc
Documentation/es/texidocs/vertically-aligning-dynamics-across-multiple-notes.texidoc
Documentation/es/texidocs/vertically-aligning-ossias-and-lyrics.texidoc
Documentation/es/texidocs/vertically-centering-paired-figured-bass-extenders.texidoc
Documentation/es/texidocs/vocal-ensemble-template-with-automatic-piano-reduction.texidoc
Documentation/es/texidocs/vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.texidoc
Documentation/es/texidocs/vocal-ensemble-template-with-verse-and-refrain.texidoc
Documentation/es/texidocs/vocal-ensemble-template.texidoc
Documentation/es/texidocs/volta-below-chords.texidoc
Documentation/es/texidocs/woodwind-diagrams-key-lists.texidoc
Documentation/es/texidocs/woodwind-diagrams-listing.texidoc
Documentation/ja/notation/expressive.itely [new file with mode: 0644]
Documentation/ja/notation/notation.itely
Documentation/ja/notation/repeats.itely [new file with mode: 0644]
Documentation/ja/notation/rhythms.itely [new file with mode: 0644]
Documentation/ja/usage/running.itely
Documentation/notation/editorial.itely
Documentation/notation/simultaneous.itely
Documentation/notation/spacing.itely
Documentation/snippets/chord-glissando-in-tablature.ly
Documentation/snippets/fretted-string-harmonics-in-tablature.ly
Documentation/snippets/open-string-harmonics-in-tablature.ly
Documentation/snippets/slides-in-tablature.ly
Documentation/snippets/woodwind-diagrams-listing.ly
Documentation/web/news-front.itexi
Documentation/web/news.itexi
GNUmakefile.in
VERSION
input/regression/GNUmakefile
input/regression/beam-feather-breaking.ly [new file with mode: 0644]
input/regression/footnote-spanner.ly
input/regression/fret-diagrams-fingering.ly
input/regression/fret-diagrams-fret-label.ly
input/regression/fret-diagrams-size.ly [new file with mode: 0644]
input/regression/markup-lines.ly
input/regression/midi/GNUmakefile [new file with mode: 0644]
input/regression/midi/key-initial.ly [new file with mode: 0644]
input/regression/midi/key-option.ly [new file with mode: 0644]
input/regression/midi/lyrics-addlyrics.ly [new file with mode: 0644]
input/regression/midi/quantize-duration.ly [new file with mode: 0644]
input/regression/midi/quantize-start.ly [new file with mode: 0644]
input/regression/midi/rest.ly [new file with mode: 0644]
input/regression/midi/staff-map-instrument.ly [new file with mode: 0644]
input/regression/midi/staff-map-voice.ly [new file with mode: 0644]
input/regression/midi/voice-2.ly [new file with mode: 0644]
input/regression/midi/voice-4.ly [new file with mode: 0644]
lily/audio-column.cc
lily/audio-item.cc
lily/audio-staff.cc
lily/balloon.cc
lily/beam.cc
lily/include/audio-item.hh
lily/include/audio-staff.hh
lily/include/midi-chunk.hh
lily/include/performance.hh
lily/include/spanner.hh
lily/midi-chunk.cc
lily/midi-item.cc
lily/paper-book.cc
lily/performance.cc
lily/score-performer.cc
lily/spanner.cc
lily/staff-performer.cc
lily/system.cc
ly/paper-defaults-init.ly
ly/performer-init.ly
ly/property-init.ly
make/lilypond-vars.make
make/midi-rules.make [new file with mode: 0644]
make/midi-targets.make [new file with mode: 0644]
make/midi-vars.make [new file with mode: 0644]
mf/feta-flags.mf
python/lilylib.py
scm/define-context-properties.scm
scm/define-grob-properties.scm
scm/define-grobs.scm
scm/define-markup-commands.scm
scm/fret-diagrams.scm
scripts/midi2ly.py

index 9ac6177dbd083de045008891f5fc9c13e88c51cb..eaa4f1b7d1bb4e79a06ed18782f4a2189cc64722 100644 (file)
@@ -61,6 +61,25 @@ which scares away people.
 
 @end ignore
 
+@item
+Lilypond typesets woodwind fingering charts.
+@lilypond
+\relative c' {
+  \textLengthOn
+  des1^\markup {
+    \woodwind-diagram #'bassoon #'((lh . (thumb-cis))
+                                   (cc . (one two three five six))
+                                   (rh . (f)))
+    } _"bassoon"
+  c1^\markup {
+    \woodwind-diagram #'oboe #'((rh . (c))
+                                (lh . ())
+                                (cc . (one two three four five six)))
+    } _"oboe"
+
+}
+@end lilypond
+
 @item
 MIDI-import through Midi2ly is improved
 @itemize @bullet
index 077eb15c157916810d864d93c1f0d229572c04dc..4f98519e91191757dba9c87f569da249fd632e37 100644 (file)
@@ -840,62 +840,3 @@ developers are tired of pushing patches for a contributor, we'll
 discuss giving them push access.  Unsolicited requests from
 contributors for access will almost always be turned down.
 
-
-@subsubheading Creating the @strong{Lilydev} respin
-
-@enumerate
-
-@item Install ubuntu, reboot
-
-@item Run all updates, reboot if asked
-
-@item Enable src repos, refresh package lists
-
-@item install LP build deps:
-
-@example
-sudo apt-get build-dep lilypond
-@end example
-
-@ install git and other stray build dependencies:
-
-@example
-sudo apt-get install git-core gitk autoconf dblatex
-@end example
-
-@item TEST TO SEE WHETHER EVERYTHING WORKS NOW:
-
-@itemize
-
-@item use @code{lily-git.tcl} to grab source files
-@item go to source directory and do @code{./autogen.sh ;
-make all ; make doc}
-
-@item if all compiles, move on to iso creation...
-
-@end itemize
-
-@item Download & install "remastersys" package:
-
-@example
-@uref{http://sourceforge.net/projects/remastersys/}
-@end example
-
-@item copy @code{lily-git.tcl} script file into @code{/etc/skel/}
-
-@item modify @code{/etc/remastersys.conf} as desired
-(change .iso name, default live session username, etc)
-
-@item Remove non-essential desktop software as desired
-@item create iso:
-
-@example
-sudo remastersys dist
-@end example
-
-@item new iso is in @code{/home/remastersys/remastersys/}
-
-@item test iso by installing in VM and repeating steps above for
-getting source files and building lp and docs
-
-@end enumerate
index 6bea5628c83cc0885dfa72065a04adbb3c22fb4c..ff6bf160707249c1edcdd98728a47c7afb9ca6c2 100644 (file)
@@ -13,6 +13,7 @@ chapter.}
 * Tips for working on the build system::
 * Doc build::
 * Website build::
+* Building an Ubuntu distro::
 @end menu
 
 
@@ -213,6 +214,17 @@ subdirectory.  This sets a load of other variables, does some
 testing to see if SCONS (another build tool?) is being used, and
 then runs @file{make/config.make} - which doesn't seem to exist...
 
+GP: scons is indeed a different build tool; I think that Jan
+experimented with it 5 years ago or something.  It seems like we
+still have bits and pieces of it floating around.
+
+GP: note that *none* of the variables that are loaded (from depth
+to version numbers to whatever) are used in website.make.
+Instead, website.make sets up its own variables at the top of the
+file.  If you're wondering if there's some smart reason for this,
+then the answer is "no".  It's because I didn't know/trust the
+original variables when I was writing that file.
+
 Next, it runs @file{make/toplevel-version.make}, which sets the
 version variables for major, minor, patch, stable, development and
 mypatchlevel (which seems to be used for patch numbers for
@@ -282,7 +294,7 @@ none of these files exist, either.  (Further note - I'm assuming
 all these lines of make I'm following are autogenerated, but
 that'll be something else to discover.)
 
-Next:
+Next in @file{stepmake.make}:
 
 @example
 include $(addprefix $(stepdir)/,$(addsuffix -vars.make, $(STEPMAKE_TEMPLATES)))
@@ -297,14 +309,255 @@ which expands to:
 /home/phil/lilypond-git/stepmake/stepmake/install-vars.make.
 @end example
 
-Woo.  They all exist (they should - no - in front of the include).
+Woo.  They all exist (they should as there's no - in front of the
+include).  @file{generic-vars.make} sets loads of variables
+(funnily enough).  @file{toplevel-vars.make} is very short - one
+line commented as @code{# override Generic_vars.make:} and 2 as
+follows:
+
+@example
+# urg?
+include $(stepdir)/documentation-vars.make
+@end example
+
+I assume the urg comment refers to the fact that this should
+really just create more variables, but it actually sends us off to
+@file{/home/phil/lilypond-git/stepmake/stepmake/documentation-vars.make}.
+
+That file is a 3 line variable setting one.
+
+@file{po-vars.make} has the one-line comment @code{# empty}, as
+does @file{install-vars.make}.
+
+So now we're back to @file{stepmake.make}.
+
+The next lines are
+:
+@example
+# ugh. need to do this because of PATH :=$(top-src-dir)/..:$(PATH)
+include $(addprefix $(depth)/make/,$(addsuffix -vars.make, $(LOCALSTEPMAKE_TEMPLATES)))
+@end example
+
+and the include expands to:
+
+@example
+include ./make/generic-vars.make ./make/lilypond-vars.make.
+@end example
+
+These again set variables, and in some cases export them to allow
+child @code{make} processes to use them.
+
+The final 4 lines of @file{stepmake.make} are:
+
+@example
+include $(addprefix $(depth)/make/,$(addsuffix -rules.make, $(LOCALSTEPMAKE_TEMPLATES)))
+include $(addprefix $(stepdir)/,$(addsuffix -rules.make, $(STEPMAKE_TEMPLATES)))
+include $(addprefix $(depth)/make/,$(addsuffix -targets.make, $(LOCALSTEPMAKE_TEMPLATES)))
+include $(addprefix $(stepdir)/,$(addsuffix -targets.make, $(STEPMAKE_TEMPLATES)))
+@end example
+
+which expand as follows:
 
-Next step will be to work out what these do.
+@example
+include ./make/generic-rules.make ./make/lilypond-rules.make
+include
+  /home/phil/lilypond-git/stepmake/stepmake/generic-rules.make
+  /home/phil/lilypond-git/stepmake/stepmake/toplevel-rules.make
+  /home/phil/lilypond-git/stepmake/stepmake/po-rules.make
+  /home/phil/lilypond-git/stepmake/stepmake/install-rules.make
+include ./make/generic-targets.make ./make/lilypond-targets.make
+include
+  /home/phil/lilypond-git/stepmake/stepmake/generic-targets.make
+  /home/phil/lilypond-git/stepmake/stepmake/toplevel-targets.make
+  /home/phil/lilypond-git/stepmake/stepmake/po-targets.make
+  /home/phil/lilypond-git/stepmake/stepmake/install-targets.make
+@end example
+
+@file{lilypond-rules.make} is @code{#empty}
+@file{generic-rules.make} does seem to have 2 rules in it.  They
+are:
+
+@example
+$(outdir)/%.ly: %.lym4
+       $(M4) $< | sed "s/\`/,/g" > $@
+
+$(outdir)/%: %.in
+       rm -f $@
+       cat $< | sed $(sed-atfiles) | sed $(sed-atvariables) > $@
+@end example
+
+I believe the first rule is for *.ly files, and has a prerequisite
+that *.lym4 files must be built first.  The recipe is @code{m4  |
+sed "s/\`/,/g" >}.  Perhaps someone with more Unix/make knowledge
+can comment on exactly what the rules mean/do.
+
+@file{toplevel-rules.make} is @code{#empty}
+@file{po-rules.make} is @code{#empty}
+@file{install-rules.make} is @code{#empty}
+@file{generic-targets.make} contains 2 lines of comments.
+@file{lilypond-targets.make} contains only:
+
+@example
+## TODO: fail dist or web if no \version present.
+check-version:
+       grep -L version $(LY_FILES)
+@end example
+
+@file{stepmake/generic-targets.make} contains lots of rules - too
+many to list here - it seems to be the main file for rules. (FWIW
+I haven't actually found a rule for website: anywhere, although
+it clearly exists.  I have also found that you can display a rule
+in the terminal by typing, say @code{make -n website}.  This is
+probably common knowledge.
+
+@file{stepmake/toplevel-targets.make} adds a load of other (and
+occasionally the same) rules to the gernric-targets.
+
+@file{stepmake/po-targets.make} is rules for po* makes.
+
+@file{stepmake/install-targets.make} has rules for local-install*.
+
+And that's the end of stepmake.make.  Back to
+@file{GNUmakefile.in}.  More some other time.
 
-That's my 30 minutes for Monday.
+Another alterative approach to understanding the website build
+would be to redirect @code{make -n website} and @code{make website}
+to a text file and work through a) what it does and b) where the
+errors are occurring.
+
+GP: wow, all the above is much more complicated than I've ever
+looked at stuff -- I tend to do a "back first" approach (where I
+begin from the command-line that I want to modify, figure out
+where it's generated, and then figure out how to change the
+generated command-line), rather than a "front first" (where you
+begin from the "make" command).  In the long term, we should
+probably move it to a general "how stepmake works" section,
+because it's not particularly relevant to the website build.
 
 Website build includes @ref{Building a bibliography}.
 
 
+@subsubheading website.make variables
+
+The file begins by setting up some variables.  These
+may/might/probably mirror existing variables, but lacking any docs
+about those variables, I thought it would be simpler to keep
+everything in the same file.
+
+Note that for security reasons, we *don't* call scripts in the git
+dir when building on the web server.  See @ref{Uploading and
+security}.  So we definitely want to keep those definitions for
+the WEBSITE_ONLY_BUILD.
+
+After some split WEBSITE_ONLY_BUILD vs. normal build definitions,
+there's another bunch of lines setting up generic variables.
+
+@subsubheading website.make building parts
+
+The website-version rule creates files that define macros for
+commands like @@stableDocsNotationPdf@{@}, by calling python scripts.
+Those scripts are scripts/build/create-version-itexi.py and
+scripts/build/create-weblinks-itexi.py.
+
+website-xrefs: creates files used for complicated "out-of-build"
+references.  If you just write @@ref@{@}, then all's groovy.  But
+if you do @@rlearning@{@}, then our custom texi2html init file
+needs to know about our custom xref file format, which tells our
+custom texi2html init file how to create the link.
+
+We should have a separate @@node to discuss xrefs.  Also, take a
+quick look at a generated xref file -- it's basically just a list
+of @@node's [sic teenager pluralization rule] from the file.
+
+website-bib: generates the bibliography texinfo files from the
+.bib files.
+
+website-texinfo: this is the money shot; it calles texi2html to
+generate the actual html.  It also has a ton of options to
+texi2html to pass info to our custom init file.
+
+After texi2html, it does some black magick to deal with
+untranslated nodes in the translations.  Despite writing that
+part, I can't remember how it works.  But in theory, you could
+figure it out by copy&pasting each part of the command (by "part",
+I mean "stuff before each | pipe"), substituting the variables,
+then looking at the text that's output.  For example,
+  ls $(OUT)/$$l/*.html
+is going to print a list of all html files, in all languages, in
+the build directory.  Then more stuff happens to each of those
+files (that's what xargs does).
+
+website-css: just copies files to the build dir.
+
+website-pictures, website-examples: more file copies, with an if
+statement to handle if you don't have any generated
+pictures/examples.
+
+web-post: buggered if I know.  Apparently it runs the
+scripts/build/website_post.py  file, which despite writing, I
+can't remember what it does.
+
+ok, it adds the "this page is translated in klingon" to the bottom
+of html pages, and adds the google analytics javascript.  It also
+has hard-coded lilypond version numbers.
+
+website: this is the "master" rule.  It calls the bits and pieces
+in order, then copies some extra files around.
+
+
+@node Building an Ubuntu distro
+@section Building an Ubuntu distro
+
+@enumerate
+@item
+Install ubuntu, reboot
+@item
+Run all updates, reboot if asked
+@item
+Enable src repos, refresh package lists
+@item
+Install LilyPond build deps:
+@example
+  sudo apt-get build-dep lilypond
+@end example
+@item
+Install git and autoconf:
+@example
+  sudo apt-get install git-core gitk autoconf
+@end example
+
+@item
+TEST TO SEE WHETHER EVERYTHING WORKS NOW:
+@enumerate
+@item
+Use lily-git.tcl to grab source files
+@item
+Go to source dir and do "./autogen.sh" ; make ; make doc
+@item
+If all compiles, move on to iso creation...
+
+@end enumerate
+
+@item
+Download & install "remastersys":
+@example
+  http://sourceforge.net/projects/remastersys/
+@end example
+@item
+Copy lily-git.tcl script file into /etc/skel/
+@item
+Modify /etc/remastersys.conf as desired (change .iso name, default
+live session username, etc)
+@item
+Remove non-essential desktop software as desired
+@item
+Create iso:  sudo remastersys dist
+@item
+New iso is in /home/remastersys/remastersys/
+@item
+Test iso by installing in VM and repeating steps above for
+getting source files and building lp and docs
+@end enumerate
+
 
 
index d6205d87ef03bb243fef89ba8399409a2a11a7b7..1394c2536e13bf35bd3e1f055f4850c645c03348 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 6255791221fd8197a23d3299fdad85a3a79336ab
+    Translation of GIT committish: aa493b320dcb35e7862c594497c63a32912aa243
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -69,6 +69,61 @@ which scares away people.
 
 @end ignore
 
+@item
+Lilypond produce diagramas de digitación para instrumentos de viento madera.
+@lilypond
+\relative c' {
+  \textLengthOn
+  des1^\markup {
+    \woodwind-diagram #'bassoon #'((lh . (thumb-cis))
+                                   (cc . (one two three five six))
+                                   (rh . (f)))
+    } _"bassoon"
+  c1^\markup {
+    \woodwind-diagram #'oboe #'((rh . (c))
+                                (lh . ())
+                                (cc . (one two three four five six)))
+    } _"oboe"
+
+}
+@end lilypond
+
+@item
+Se ha mejorado la importación de MIDI por medio de Midi2ly
+@itemize @bullet
+@item Midi2ly ahora funciona también en sistemas Windows
+@item ahora se manejan bien los archivos MIDI con más de 32 pistas
+@item ya no se ignoran las notas de ciertas voces simultáneas
+@item no se truncan las notas que sobrepasan una línea divisoria
+@item se respetan la armadura de la tonalidad y la indicación de compás iniciales
+@item se ha arreglado un problema con las octavas en pistas o voces subsiguientes
+@item se contemplan de forma incipiente varias voces sobre un pentagrama
+@item se fija el instrumentName a partir de los datos de la pista
+@item nueva opción --skip, por omisiión se muestran los silencios
+@item no se truncan los silencios que sobrepasan una línea divisoria
+@item nueva opción --include-header para establecer los títulos
+@item nueva opción --preview para archivos MIDI grandes
+@end itemize
+La primera funcionalidad estuvo patrocinada por Valentin Villenave,
+las otras funcionalidades han sido patrocinadas por Image-Line Software para FL Studio.
+
+@item
+Está disponible un nuevo grabador @code{Completion_rest_engraver} para convertir automáticamente
+silencios largos que sobrepasan a las líneas divisorias, de forma correspondiente al grabador
+@code{Completion_heads_engraver} para las notas
+@example
+\layout @{
+  \context @{
+    \Voice
+    \remove "Note_heads_engraver"
+    \consists "Completion_heads_engraver"
+    \remove "Rest_engraver"
+    \consists "Completion_rest_engraver"
+  @}
+@}
+@end example
+Esta funcionalidad ha sido patrocinada por Image-Line Software para FL Studio.
+
 @item
 Se pueden añadir puntos a los elementos del índice general utilizando:
 @example
index 301dacc23bc5926f926e28b7f19a532a08699b62..cbc3189faef365f07c94b547bd82d0523f197ba8 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is included from notation.itely
 @ignore
-    Translation of GIT committish: 10bd5cc93870ac4b884b8cb938cfc6a19c768097
+    Translation of GIT committish: f93bc90b3ee5e5de96b59c8e81b4ea354d5b1927
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -175,7 +175,7 @@ c4-1 d-2 f-4 c^\markup { \finger "2 - 3" }
 @funindex thumb
 
 Puede usar la articulación de pulgar para indicar que una nota se debe
-tocar con el pulgar (p.ej. en música de cello).
+tocar con el pulgar (p.ej. en música de violoncello).
 
 @lilypond[verbatim,quote,relative=2]
 <a_\thumb a'-3>2 <b_\thumb b'-3>
@@ -186,7 +186,7 @@ tocar con el pulgar (p.ej. en música de cello).
 @cindex acordes, digitación de
 
 Las digitaciones para los acordes también se pueden añadir a las notas
-individuales del acorde escribiéndolas después de las alturas.
+individuales escribiéndolas después de las alturas.
 
 @lilypond[verbatim,quote,relative=2]
 <c-1 e-2 g-3 b-5>2 <d-1 f-2 a-3 c-5>
@@ -221,6 +221,10 @@ Referencia de funcionamiento interno:
 @rinternals{New_fingering_engraver},
 @rinternals{Fingering}.
 
+@knownissues
+Por omisión, los números mayores de 9 no están coontemplados si se
+utiliza @samp{@var{nota}-@var{dígito}}.
+
 
 @node Notas ocultas
 @unnumberedsubsubsec Notas ocultas
index 52813040565de7c73409d0e3c5114d28dc0ae663..908fa67ff5294c3cbd846f8e82d59ee1caa58a69 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 3c00bd3295cf8542f610a4975b5e11d26cf6e009
+    Translation of GIT committish: da34fdfe2057ebaae080e20b5875f35e96010f40
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -380,15 +380,67 @@ ties = \relative c' {
 @cindex tablatura y armónicos
 @cindex deslizamientos en notación de tablatura
 @cindex tablatura y deslizamientos
+@cindex glissandos de acordes
+@funindex \harmonic
+@funindex \harmonicByFret
+@funindex \harmonicByRatio
+@funindex \chordGlissando
+
+Se pueden añadir indicaciones de armónicos a la notación de tablatura
+como sus alturas de sonido:
+
+@lilypond[verbatim,quote]
+firstHarmonic = {
+  <d'\4\harmonic>4
+  <g'\3\harmonic>4
+  <b'\2\harmonic>2
+}
+\score {
+  <<
+    \new Staff { \firstHarmonic }
+    \new TabStaff { \firstHarmonic }
+  >>
+}
+@end lilypond
 
-Se pueden añadir indicaciones de armónicos y @emph{slides} o
-deslizamientos a la notación de tablatura.
+Observe que la instrucción @code{\harmonic} se debe situar siempre
+dentro de una construcción de acorde. Sólo tiene sentido para
+armónicos sobre una cuerda abierta en el duodécimo traste.  Cualquier
+otro armónico debe estar calculado por parte de LilyPond.  Se puede
+conseguir esto indicando el traste en que debe rozar la cuerda el dedo
+de la mano que pisa.
 
-@lilypond[verbatim, quote, relative=1]
-\new TabStaff {
-  \new TabVoice {
-    <c g'\harmonic>4 d\2\glissando e\2
-  }
+
+@lilypond[verbatim,quote]
+fretHarmonics = {
+  \harmonicByFret #5 d16\4
+  \harmonicByFret #4 d16\4
+  \harmonicByFret #3 d8\4
+  \harmonicByFret #5 <g\3 b\2>2.
+}
+\score {
+  <<
+    \new Staff { \fretHarmonics }
+    \new TabStaff { \fretHarmonics }
+  >>
+}
+@end lilypond
+
+De forma alternativa, se pueden calcular los armónicos definiendo la
+razón de las longitudes de cuerda por encima y por debajo de la
+digitación de armónico.
+
+@lilypond[verbatim,quote]
+ratioHarmonics = {
+  \harmonicByRatio #1/2 <g\3 b\2 e'\1>4
+  \harmonicByRatio #1/3 <g\3 b\2 e'\1>4
+  \harmonicByRatio #1/4 { g8\3 b8\2 e'4\1 }
+}
+\score {
+  <<
+    \new Staff { \ratioHarmonics }
+    \new TabStaff { \ratioHarmonics }
+  >>
 }
 @end lilypond
 
@@ -401,10 +453,24 @@ deslizamientos a la notación de tablatura.
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
 {polyphony-in-tablature.ly}
 
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{open-string-harmonics-in-tablature.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{fretted-string-harmonics-in-tablature.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{slides-in-tablature.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{chord-glissando-in-tablature.ly}
+
 
 @seealso
 Referencia de la notación:
-@ref{Plicas}.
+@ref{Plicas},
+@ref{Armónicods},
+@ref{Glissando}.
 
 Fragmentos de código:
 @rlsr{Fretted strings}.
@@ -498,7 +564,7 @@ con Sol Mayor al aire).  Las afinaciones predefinidas están en
 
 @funindex contextStringTunings
 @funindex \contextStringTunings
-@cindex tablaturea, afinaciones personalizadas
+@cindex tablaturas, afinaciones personalizadas
 @cindex personalizadas, afinaciones de cuerdas
 
 Es posible crear cualquier afinación de cuerdas que se desee.  Se
index 8bb1834b8b37b936c3387a4917c7daff880378de..b08076178aa3bc6eb9829181ecc503b45b265811 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Los símbolos específicos de acordeón discanto se escriben mediante
 @code{\\markup}.  Se puede trucar la colocación vertical de los
index 8bdc520b112d716b2569e4ad547b9543bf6598cd..d60c286b42e5adeb7b7384b9681d8d9e0dc305c0 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Al escribir un bajo cifrado, podemos situar las cifras encima o debajo
index c363ead10fab8e5fab0df54d2242715b7e68604e..550f21289696d05b630d8a7209729072589c9453 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   doctitlees = "Añadir un ámbito por voz"
   texidoces = "
 Se puede añadir un ámbito por cada voz. En este caso, el ámbito se
index a3dd0a8365185a60031f431d866a7d1ec248591a..b55fdca27bdab792cd2df15ad990d41d02989474 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Al añadir un pentagrama nuevo en un salto de línea, por desgracia
 se añade un espacio adicional al final de la línea antes del salto
index 0fdfd93d3f7ef3f699cab51240083ad6a4e6c5fe..874c2f381da38c603e534b1dfcb0ca81899aebfc 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede añadir (posiblemente de forma temporal) un pentagrama
 nuevo una vez que la pieza ha comenzado.
index 2322ca033b1d593ab1343e023b5df4ec4cd511b2..f26f6c2f7c1e536926c0d5f8d8f3fe5ab00c4709 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Para añadir indicaciones de línea divisoria dentro del contexto de
 los nombres de acorde @code{ChordNames}, incluya el grabador
index 4d6575cd36ac94fd338ed6df9ef3b75de815534e..63611a7c4e3bb0158b7e7a5d5fbe6b23b40f1a21 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 La sintaxis de LilyPond puede implicar muchas colocaciones poco
 comunes para los paréntesis, corchetes, etc, que a veces se tienen
index a256d25563fc43c91ad23dc5e166c9e5557975a3..9585a37ef4b09f99017c1814ccffc31f60884017 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Mediante la utilización de las potentes herramientas preconfiguradas
 como la función @code{\\drummode} y el contexto @code{DrumStaff}, la
index c8b9d091ee8c45506ed532cbd3fc6d324830ca9e..1ad752d9f85cd7976ad8eddf6dcdf22c3111e158 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Para añadir digitaciones a las tablaturas, utilice una combinación de
 @code{\\markup} y @code{\\finger}.
index caa0ca3cc96e18fc0dbadb0d06dc43ca5438b90b..3a5c2b2ed2c9de5948e0e6bc39162b185a609dc8 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
    Este ejemplo muestra una forma de simplificar la adición de muchas
index 743df707e4b68d8bc79f644bbea397948853668d..ea7c0b51505503cfc3d2c47b937817bdc9b75e77 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 La función @code{\\parenthesize} es un truco especial que encierra
 objetos entre paréntesis.  El grob asociado es @code{ParenthesesItem}.
index 752c0bcdea9d3192cb9c7541747e4325172a7534..1ab09715e085b1a4958d94816a523e029047c14d 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Con algo de código de Scheme, se puede añadir fácilmente la fecha
 actual a una partitura.
index a15aa95b2be929e4e5221ecb1f20e0ac85972824..6f2ded599e6792d4dd89737b70e71a043a8cee65 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 El grabador @code{Volta_engraver} reside de forma predeterminada
 dentro del contexto de @code{Score}, y los corchetes de la repetición
index 2650b779da0a23a71f7a76fea457f01552922016..7ec8a4c47bef0ba4ecd8106be4b77f0a528a8120 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
  doctitlees = "Voces adicionales para evitar colisiones"
  texidoces = "
 En ciertos casos de polifonía compleja, se necesitan voces adicionales
index ccd57368276ef8a4114188fba6539d46949a5d76..9db99f4c15f96e0d5485355b1e421777ce8a36f8 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede ajustar la separación entre las notas de adorno utilizando la
 propiedad @code{spacing-increment} de @code{Score.GraceSpacing}.
index f845c092b57ab691c4a5289a7f23301dbd33b5e4..ca395d8ad9e89f7b46da49787138e4699f304b2a 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Este fragmento de código muestra cómo situar la línea de base de la
 letra más cerca del pentagrama.
index 1d6c0ccaff012afb2c8fb392f67f36f30275633e..3358f6d2a884bb1dbfe1307e203a97060ee697d4 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Puede ser necesario trucar la propiedad
 @code{shortest-duration-space} para poder ajustar el tamaño de las
index 4be89ae8132e4240d1f346783be26a4ddeced533..6faedbabcf0cccf0c41689ed3e284ac789042448 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 La alineación horizontal de los nombres de instrumento se puede
 trucar modificando la propiedad @code{Staff.InstrumentName
index f4af5b19a66f7bc74848aa3177c05be4b65600e9..e4d906104892ca7823efe8c2c0d25b67ec451e01 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Los números de compás se alinean de forma predeterminada por la
index 56a1b2a03b846d89c4c835f64e8fa38f37788b66..24f7b878f7459976eaf6fead581abeef4bfc2397 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Si están especificadas, las marcas de texto se pueden alinear con
 objetos de notación distintos a las líneas divisorias.  Entre estos
index 75ec9165667c0ab321e5a0739be08569374dc4f1..8f5075c5bc995a363a018b95f1837014374c49ca 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 Las cifras de digitación orientadas verticalmente se colocan de forma
index bc83fc2afeafb2c21e0ac14c7f621d99e7544cfe..e509925529e6ba159880b8aac363f53ec24ad132 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede variar la longitud de las plicas de las figuras unidas por
 una barra mediante la sobreescritura de la propiedad
index 09ad57b51b45f01bcb5d93a3dd20f7b4fe245c75..3f8b0ca2fb4217b4087f3b279c3ddc258bb1aa12 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   doctitlees = "Ámbitos con varias voces"
   texidoces = "
 La adición del grabador @code{Ambitus_engraver} al contexto de
index 7580cf20f7b3a3200e261aed3b22a8b033c8bb75..920dbdf06df43f6b0982f25c8a23708d321b12cb 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 De forma predeterminada se añaden corchetes de análisis sencillos
 debajo del pentagrama.  El ejemplo siguiente muestra una manera de
index 6933dda7a5af657364fe8b67af15434412cd8572..b0f5ee157025e753871b17254c01bc56d322a6a4 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Aquí se muestran muchos de (¿o quizá todos?) los símbolos que
 están contemplados por la capacidad de LilyPond para la música
index a45cb916d2b57819a7493ea74ed82ca3684fabce..228745983b77ca35040ceb210fdc3e0dc391a83b 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Este ejemplo muestra cómo hacer una transcripción moderna de canto
 gregoriano. El canto gregoriano no tiene compás ni plicas; utiliza
index 69dae35dfc15e2169d87a5fe2d080f0bc2d7a08a..0a0dbffb556e94ec71e8bf1ef2c46746d9c77e26 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Al transcribir música mensural, es útil un «incipit» al compienzo
 de la pieza para indicar la tonalidad y el tempo
index 74fe11d3031ab599888673bbb57e5e0f54fd8c7b..716d9c3c6f58202564e839dbb6853d58b0634f7a 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Las indicaciones de compás también se pueden grabar en estilo antiguo.
 
index 88995e542eb7b9bb5dd6afb356cb64e58cac88e7..18cd082432c8737675b12a3d80075fd5332508f1 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   doctitlees = "Aplicar estilos de cabeza según la nota de la escala"
   texidoces = "
 La propiedad @code{shapeNoteStyles} se puede usar para definir varios
index fbb555a1cbcfb63b09b56e71e4f0954b5d7dc3e5..8395f24c3a2b3ea2354f8d63fb7e585f8251d537 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Para las improvisaciones o @emph{taqasim} que son libres durante unos
 momentos, se puede omitir la indicación de compás y se puede usar
index 983fb991e12d4a14c19b52141ce8803a12e63682..c41441b0fad2e01b6b4004cf35fd9834a3511e11 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede hacer que una ligadura de expresión sea asimétrica para
 adaptarse mejor a un patrón asimétrico de notas.
index a44116e17720edc58d3afe8b235f5fb0d289d742..43e63dc424a58afa1fed21251cda5a0281275007 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se pueden subdividir las barras automáticamente.  Estableciendo la
 propiedad @code{subdivideBeams}, las barras se subdividen en
index 0e32d5644a7cb06418c8d85c1742fd6bdd625b27..e18b1a4a99b06762ce56d94bd05fe4fbaaa2318f 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 
index d7a460116c574a457105e7e3901611d7257e2bfa..bbdbdd92e0277707c6d7360da862a99ff6cb7f6a 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Las reglas de final de barra especificadas en el contexto
 @code{Score} se aplican a todos los pentagramas, pero se pueden
index 33122d1a4da727dc72a598b952ef509875be0e01..c2fc30b8c2d56ba6bfa3510298475806da7849ff 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 No está especificada ninguna agrupación predeterminada automática
 de las barras para el compás de 7/8, de forma que si se requieren
index 4863b0796c5dd50efec651d84df1ce6027151421..763774af8e682e6bd83ca8948349a8b55e155927 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Normalmente están prohibidos los saltos de línea si las barras
 atraviesan las líneas divisorias.  Se puede cambiar este
index ca0e1f1374b02658914b5301aad8118e3d783ee1..7b827b3d76e828f47ec2f17d28cbdf9fe8ffa881 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 La instrucción @code{\\whiteout} intercala un rectángulo blanco
 debajo de un elemento de marcado.  Este rectángulo blanco no tapa
index 1bd33944c2f6004f595fbdc7c08a9ce0ded51167..7b11323aa7a78dceb57f6f47a875b61f8aaef692 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Para hacer invisibles partes de un regulador de crescendo, se usa
 el método de dibujar un rectángulo blanco encima de la parte
index 6e6f8bc9bb9314e2d187e1af402f3a7b81ebb29e..b77dfb4c2e4c2d5a520a41cfd28c7d54201bba06 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 A veces se denota una «cesura» mediante una doble marca de respiración
 parecida a las vías del tren, con un calderón encima. Este fragmento
index 855e505060fea6fc72becabbfc72ae1276a54864..1a44e2c2a12592d58d5c342b51eb9670b4222554 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Este ejemplo proporciona una función para tipografiar un regulador con
 texto por debajo, como @qq{molto} o @qq{poco}. El ejemplo ilustra
index 3b25378a277a651990c9ca3ce138ad3cbf782c65..f40b6544f4bfa2329dc1d97d63005799e9f37025 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Para hacer más pequeño el círculo de @code{\\flageolet} (armónico)
 utilice la siguiente función de Scheme.
index 713536c019b974ba7df4df6aba67b83634f29e11..c5f97891d7b60f4d4fd24bb6a6ac3abf1e49726a 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se pueden modificar notas individuales de un acorde con la instrucción
 @code{\\tweak}, alterando la propiedad @code{font-size}.
index 7a00777bb2fa701706a130c44a0dbaf76b22b887..02b168b544de31ed4597a5fffa69ae0cd2aa2586 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se insertan automáticamente barras en ángulo cuando se detecta un
 intervalo muy grande entre las notas.  Se puede hacer un ajuste
index f85827afbef543d7184070b4c777fea7e6b136f0..5943f59439265adf0eb4ec8dbf2bae9b912fee1b 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede establecer el separador entre las distintas partes del
 nombre de un acorde para que sea cualquier elemento de marcado.
index f31a33df1f13d5547a7030bf2b0d7157a63a8ad3..0cc50833c77eea4d4b10d12291c331efd11b457a 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
  doctitlees = "Cambiar la forma de los silencios multicompás"
  texidoces = "
 Si hay diez compases de silencio o menos, se imprime en el pentagrama
index ebba6f1bb718169492a7d47a701d1a5eefbe8dff..58413d58a2f4d08a0a3ffa33a7327aa849bda444 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 
index 9d50bd2948900505634f1015345d41a6fe13d05b..800d55e56119e5e48899e12c1ebf4fa739ecf6ec 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Al producir una salida MIDI, el comportamiento predeterminado es
 que cada pentagrama representa un canal MIDI, con todas las voces
index a152ea73dee3b64c4330f19c40e10831018f62c7..aaf88bede47cb9189b40005c43f589ad26cc8fc5 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Al utilizar la posibilidad de combinación automática de partes, se
 puede modificar el texto que se imprime para las secciones de solo
index d888338e0454c184caf35aae65517222e0d3aacd..86959c210a8afa0422b1f27a47b5f4e054dd524b 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede modificar el texto empleado para los crescendos y
 decrescendos modificando las propiedades de contexto
index 69f157503c1b012128d47ffd76bd0a228d933d58..253935baf573afae486c6a81b63d00c96b65f5cb 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 Es posible ajustar la separación en las indicaciones de tesitura.
index e16ae52b7b1caa54a435be08c61ca70c8b8d2e08..792f28d3f5c40a63e33a872eed3c5e00d1b8a7f6 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede cambiar el aspecto de las ligaduras de expresión de
 continuas a punteadas o intermitentes.
index e46066e567e5ed1949b9c6f514d025d5ac190bcc..5a211fcb30182305a749d160d5af2bc650bd6e02 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 El glifo de la marca de respiración se puede ajustar
 sobreescribiendo la propiedad de texto del objeto de presentación
index fe86786f81d5784b0de8192885bb040d5dd38e3a..61b6250a1ecc9bf96ff05065ba76ee8f0777a65b 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 La nomenclatura inglesa (predeterminada) para los acordes del cifrado
 americano se puede cambiar por la alemana (@code{\\germanChords}
index 71f05b6536a215d715073973980b20267520f324..4cc6a3c123a44bf66912b16c10aec20e7ee607ab 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 Este código muestra cómo cambiar la cantidad de puntillos de una nota.
index 4444b79f899834dd530535868d79182ccdb5788e..54c02def645b679695207ddc7b9a85318f93b4ca 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Las alteraciones y los signos «más» pueden aparecer antes o
 después de los números, según el valor de las propiedades
index 41deaadd27d27567a1997d3f7039e6ff0c1481e9..25d5a0eee01d555f7ae591b91fdcdcfc32a79663 100644 (file)
@@ -1,4 +1,4 @@
-%%%    Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%%%    Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 
index cfec9c420caa2fdcaf7639296cc854706a3af03b..68c41c096acbd6d8dff6179fa627ab9d9c91eb0e 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Para cambiar el tempo en la salida MIDI sin
 imprimir nada, hacemos invisible la indicación metronómica:
index d9e464adfaadd3701a44ff369929612108c27f87..05fce78fd5a0bb27e8ce1a5bc7a085f800edeef6 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede usar @code{Staff.pedalSustainStrings} para fijar el texto de
 las indicaciones de pisar pedal y levantar pedal.  Observe que las
index da87cbfacb44cb189e67ebdc4cb7663496b289b2..a72129e685d69d241ceb2b3250fe3c4f46971c12 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 La instrucción @code{\\time} establece las propiedades
 @code{timeSignatureFraction}, @code{beatLength}, @code{beatGrouping} y
index d60d0afd985800a5838b7b40ebe81e74e496b365..c57bd331ef5537ee6e9c99a7f0df7b0563d843b6 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
  doctitlees = "Cambiar el número del grupo especial"
  texidoces = "
 
index 4ab4f49b58cf5646b02c36238bfafa18cd971b0f..6f304dfdf2f0dfa4082e4664910b3572076fcc94 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 La propiedad @code{measureLength}, junto con
 @code{measurePosition}, determina cuándo es necesario dibujar una
index cd8f53ae388f1188816fa6a6e66d032f62ca690a..2a51dac8b994673a1e2c35de97239138337e55d3 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Este tipo de notación se utiliza para el canto de los Salmos, en
 que las estrofas no siempre tienen la misma longitud.
diff --git a/Documentation/es/texidocs/chord-glissando-in-tablature.texidoc b/Documentation/es/texidocs/chord-glissando-in-tablature.texidoc
new file mode 100644 (file)
index 0000000..af8d334
--- /dev/null
@@ -0,0 +1,12 @@
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
+
+  texidoces = "
+Los deslizamientos para acordes se pueden indicar tanto en el contexto
+Staff como en TabStaff.  Los números de cuerda son necesarios para
+TabStaff porque los cálculos de cuerda automáticos son diferentes para
+los acordes y para notas sueltas, y @code{\\chordGlissando} traza
+líneas entre las notas individuales.
+
+"
+
+  doctitlees = "Glissando de acordes en tablatura"
\ No newline at end of file
index 7d4f00f8474f8ce54961871c1ace0038bbead12f..a835f3c64931f33c247c2cba482906660a54d4e3 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede usar la propiedad @code{chordNameExceptions} para
 almacenar una lista de notaciones espaciales para acordes
index 474ebe1d0c81bd33f57f9d11479ada522f471597..273d6e516e100a685a1187dccefc6d9fd398bf8e 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 La presentación del acorde de séptima mayor se
 puede ajustar mediante majorSevenSymbol.
index 2c32dd0affa8596be01507807aa68f3769114b36..0f607be30a8d7bf05e27a377ef81ea5378a1c6eb 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede hacer que los diagramas de posiciones se muestren sólo
 cuando el acorde cambia o al comienzo de una nueva línea.
index f374a0fd41efd385edb89a4ab3ed689111c46050..7f53891fd2b87f900200f51b7ae684503f427bd2 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Este código muestra cómo recortar (extraer) fragmentos a partir de una
 partitura completa.
index 727ddbb6b371159a9e053dfcdc36ad34123b401d..b589cee3274942c1e16c8386422d728b903e5e13 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Los «clusters» o racimos son un mecanismo para indicar la
 interpretación de un ámbito de notas al mismo tiempo.
index 7f315423cfec7f9a48dd21f9f08a05986589fe60..b9a47d4aa6b21342a3acd1e9e6fea99077339328 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Ciertas indicaciones dinámicas pueden llevar textos (como @qq{più
 forte} o @qq{piano subito}). Se pueden producir usando un bloque
index a3ce39c1ff40ede5c0adcb3a4ae778a32b88113b..f73086290e4c0c14ac8bf2c238c2b249c12c372b 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 La herramienta de combinación de partes (instrucción
index 1dac7d30ce8354327a09d6188bee5f63e7ed38d9..66af5d9d4d326d94f934fb40d958c6820799da80 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
  doctitlees = "Indicaciones de compases compuestos"
  texidoces = "
 Las indicaciones de compás poco frecuentes como @qq{5/8} se pueden
index e14e76616de5584026392fdf54956114ff62ed15..814697d10ae22a9de22334b748fc8cdb1d026b0f 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 La agrupación de pulsos dentro de un compás está controlada por la
 propiedad de contexto @code{beatStructure}.  Hay establecidos valores
index e8d07d2ac3055fb103810be1f8039a7758326cc8..694978f5614fe36bf8aa51f2d2d21ce6ebd9695c 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede tipografiar un gissando contemporáneo sin nota final
 utilizando una nota oculta y temporalización de cadenza.
index cd16dc152fbd3f84335309c1bc0388bf2e408468..d64ffc933347529b6dbb66bc1a3c1521453181bf 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 La visibilidad de los objetos de extensión que acaban en la primera
index 38ac267d6e4dae63f1f1f63e318dd3e63e9c9711..ac3703ea19740b2c9a71d4958b30d2549e974d12 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede controlar con precisión la colocación de los números de
 digitación.  Para que se tenga en cuenta la orientación de las
index 783e06a6c7c598458e33cdf87c68a59ef60763ab..d43d9655954f427d1c36548f552c8fa1056ae6fa 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 El orden vertical que ocupan las inscripciones gráficas está
 controlado con la propiedad @code{'script-priority}. Cuanto más
index 0af8679901e2ade5ad2605704ec44396a2fbc16a..81d06e12adcc26b3cbab5359d01ca6c1a5d58885 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 El comportamiento predeterminado de la visibilidad de los corchetes de
index 04dbc37dc71dc9ab10bc335a2c10cd1876dfd776..fef982d8d291f85ad42f4ed371d04a3a1a3b706e 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 texidoces = "
 La creación de un grupeto circular de anticipación entre dos notas,
 donde la nota inferior del grupeto utiliza una alteración, requiere
index 294b5072c8b4ea59975ff21a2d1e7d25c310bb7c..1b1baa0460846ff71f5136541a9266db5010cde2 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 En una música que tenga muchas apariciones de la
 misma secuencia de notas a distintas alturas, podría ser de
index e44cc6030bc8e5716ae03c2bb0899f330873ee6f..469b9fb6f02742a87d0a879091ed8fd3879d405e 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede trazar un símbolo de arpegio entre notas de distintas
 voces que están sobre el mismo pentagrama si el grabador
index bc9045ab711fb2bf203f7629d40d24d6cb1579ae..ec5181f69c32770d3be47f334b42372503a22dfd 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Para crear pentagramas en blanco, genere compases vacíos y después
 elimine el grabador de números de compás @code{Bar_number_engraver}
index 4d3f3ba55f4ee24ef5aca66bf6c59f2554c1dd64..41008bf944a403f2647d425668dbea58266bd918 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Dentro de un @code{PianoStaff}, es posible hacer que un arpegio
 cruce entre los pentagramas ajustando la propiedad
index e08f7862103db1fb1211337dcfb8c58408c3567f..df2897cda38e9fb4a5d27733b0e90e8423e95b51 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se pueden crear arpegios que se cruzan entre pentagramas dentro de
 contextos distintos a @code{GrandStaff}, @code{PianoStaff} y
index 2b04aee37115ee67ac3790373b9c4804c2676ef0..fbe3b31162fc318e2598706b67a606fb8c0e147a 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se pueden crear indicaciones metronómicas nuevas en modo de
 marcado, pero no cambian el tempo en la salida MIDI.
index 1d0cdf97c4f358c248e63980fc1905e17c635843..e689236573266569d6a75aeca928d6676a0dfdcf 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Aunque la manera más fácil de añadir paréntesis a una indicación
 de dinámica es utilizar un bloque @code{\\markup}, este método
index 4c4e4c6bc1da788f62e61f25dedac334dd5b1060..dbdc0caf076fbe019fcee65013cf59b503bfc79b 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 A diferencia de las inscripciones de texto, las lestras de ensayo
 no se pueden apilar en un punto concreto de la partitura: sólo se
index eb9a44fd25382ad6eedddacb6cec584e0d82bbee..86bcbead46b60f3073030483537f1c501c6752dd 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 En determinadas situaciones es necesario crear ligaduras de
 expresión entre notas que están en voces distintas.
index 3a409e9e953f5b9a6f3e916e410bf3906c06380d..6d10ed411f35ffd53a3fb2994f7dcd3e6e85497c 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Las instrucciones @code{\\startTextSpan} y @code{\\stopTextSpan}
 permiten la creación de elementos de extensión textuales tan
index a0abdc22cba2b198d7b747d74a9061db0fea3ca8..a755ca8e2289b18f72803cb5e44dd5893272a031 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 
index 774e9b2854ca97a1f42f0f336a8858c8bdfd33fd..7221f0daccd5833e99b902a4a33cf1201321c75b 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se pueden tipografiar «custos» en diferentes estilos.
 
index 2dc3d98bc2becd39426ba2a79d6f805c1fb9aaca..562f8b2c4b30bbb0f043d20a8f5c0b0084515b77 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se pueden establecer las propiedades de los diagramas de
 posiciones de acordes por medio de @code{'fret-diagram-details}.
index e8e4030049f13459e5ca4259acc93caecf2a5b01..218399eb270aaf5ba1c43d4bd5981fbf647ddb3c 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se pueden establecer las propiedades de los diagramas de
 posiciones a través de @code{'fret-diagram-details}.  Para los
index 59f0ae7bc071b3301b9c2fabaad95fdea9551cbf..df9ccd242a40607ffac0ecf9f8c2f1f029819152 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 La dirección predeterminada de las plicas sobre la tercera línea
 del pentagrama está determinada por la propiedad
index 7a94ea1c135dd619f8ea73a293b3a4f52b09e08f..91efd71f14788a45f107c8b45b8b17396af1b934 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 Este ejemplo demuestra cómo se puede definir el grabador de ámbito en
index b97ac9d026d25ab4c7804403c5fe5c493e7e350e..a9749fb54df689deb633c9828b86f52488e85e02 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Se pueden añadir diagramas de posiciones predefinidas para
index ceef3ec943de86653f19926b68f85539d17201b1..cb00528a7c61fea007b39e481f7d5b4b4bf02747 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Si hay un solo pentagrama en un de los tipos de sistema
 @code{ChoirStaff} o @code{StaffGroup}, el comportamiento
index efd39929a0709ccc7e212be679453f1c891b9de3..c8c75f5851fb5ddbd25a87daac7138719d65cfa3 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 He aquí una forma de imprimir un acorde en el que suena la misma nota
index 4458368bf90da863b6d63a21a098d8ce7c55991f..c5a16363e0db3657582655fab0919db5f0d6008c 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 Al trabajar con los callbacks de un grob, puede ser de mucha ayuda
index 7964651229f27bb832ab37785528ebf1f30af5ae..f493a12d3b43dd33480ba3355fd2ea1dd58cca91 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   doctitlees = "Alteraciones de estilo dodecafónico para todas las notas, incluidas las naturales"
   texidoces = "
 En las obras de principios del s.XX, empezando por Schoenberg, Berg y
index 72aca29afd12d6534a4d97196eb9796c82986da7..03777c2c253d21cb48f91831b36fff88341c169f 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 Funciones postfijas para la creación de objetos de extensión de texto
index 7674ea6980ca6039c79ad14c5aa3488f271c31fc..4d759c27c535530a72ae3fa17f712769c0cef6b6 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 Los objetos de extensión \cresc, \dim y \decresc ahora se pueden
index cc7c549321487f7e9f5b30c14d43f6c25e0bef61..e371917b5c3d0454840bc1c46e556a613db3b3b9 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede insertar códico PostScript directamente dentro de un
 bloque @code{\\markup}.
index 5a06673225514fb8ed9f05eccf46d7b5d697c18d..41f29de12e7de06b8a6739aa27f5461bed4bbee4 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Del problema central de la notación, esto es, crear un determinado
 símbolo, se encargan los «plugins» o complementos añadidos.  Cada
index 0ecc1269e4f89821b510726e85315d0c41d9f7e6..7413554287c7e53f46c880232313be146006504a 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
  doctitlees = "Grabado manual de las ligaduras"
  texidoces = "
 Se pueden grabar a mano las ligaduras modificando la propiedad
index 2879a1698195928712f09b2dd84748a461274535..f5e887372e9d1851c50ae6f97b5952740a4bc94a 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
  doctitlees = "Escribir varios grupos especiales usando una sola instrucción \\times"
  texidoces = "
 La propiedad @code{tupletSpannerDuration} establece cuánto debe durar
index b655967ba6a00e33f0d3824a9ea138791f1efca6..71a50e58ae7f274a7700ec321123e2a1f98e95ef 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 Se puede simular un @qq{hammer} o ligado ascendente con ligaduras de
index 80cd7359cf559bdea9dd4d7f5f9564fd27469a58..ef7fdd667730e2e350720f69940c93f755875171 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se pueden conseguir símbolos especiales combinando glifos existentes,
 lo que es de utilidad para la notación de instrumentos de viento.
index d85cc70e9f426baa8b2d1823eb65783a874de212..90ce5eff2394d8ee990fd3bf4cc2adcbb0693e71 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 En este ejemplo se combinan las digitaciones de la mano izquierda,
 indicaciones del número de cuerda y digitaciones de la mano
index b938c21ef6f31367633380e66e6926aa72395a4c..7b00faec2476897a032b838811215ef2acf65401 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 
index 74d2d9b8525c77d680fa0338edfa24479503c8e1..d0bc5c8481ae2ca963160f848a396d9f3886c5ad 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Son posibles tanto los corchetes rectos sobre notas sueltas como
 extremos de barra sueltos en figuras unidas, con una combinación de
index 51c16c14ed3949541a7914c4483b355eda42d94f..6ba99dd72256c6954823566421ad1a006f2d1167 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
  doctitlees = "Forzar el desplazamiento horizontal de las notas"
 
index 82b99a006d33406d90bebb96df066c447e1f3113..426e8b48176c60a672ffb01d421ae0f082921043 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Si LilyPond no cree que haya sitio suficiente para un guión separador
index ff9bab6d0c5bcc594ab044a60d2e40105f452a43..f0986e1e3629bc9d67f5123edff72690f1c8506d 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 Se pueden crear tablas alternativas de diagramas de posiciones.  Se
diff --git a/Documentation/es/texidocs/fretted-string-harmonics-in-tablature.texidoc b/Documentation/es/texidocs/fretted-string-harmonics-in-tablature.texidoc
new file mode 100644 (file)
index 0000000..251d0e3
--- /dev/null
@@ -0,0 +1,7 @@
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
+  texidoces = "
+Armónicos sobre cuerdas pisadas (armónicos artificiales):
+"
+  doctitlees = "Armónicos sobre cuerdas pisadas en tablatura"
+
+
index a425da3d78712af21d2a9b138a6148bf6d5b5732..0853bbdf03044ec74e1026643ccc41d9826836a8 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Este fragmento de código basado en Scheme genera
 24 notas aleatorias (o tantas como se necesiten), basándose en la
index 23b8707ea5325d8ed220776bbf2a4b2cdb35dc7f..3689848a0a0cac7ac9380bba4070c1c4270e2cef 100644 (file)
@@ -1,4 +1,4 @@
-%%%    Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%%%    Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 En muchos casos, las llaves que no están en la columna central se
index c04a05a6ac21bfa6f5633305609f1bad8cd19a40..d9310dce7210c9136a1d4fe1ff7c1d9ad2bf4d01 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede cambiar el aspecto de las líneas de rejilla
 sobreescribiendo algunas de sus propiedades.
index 2ee19f29e904237a271b22e562e1539a8d4b145e..3cbdea6b84dd05529b4e15f33725a8e57e77cbb7 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se pueden trazar líneas verticales normales entre pentagramas para
 mostrar la relación entre notas; sin embargo, en caso de música
index c54999ab1a836713fa9f893acf4a90c9e534853e..eddef7bda05487d5131b22da7e102a836b2dd24e 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Los patrones de barrado se pueden alterar con la propiedad
 @code{beatGrouping}:
index 5e21d3e12138e909fff035cfecb34e5efdc066e8..9e583a96af5934aa87b3d0bb370c0d9dcd1454aa 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
 
   texidoces = "
index 07e33921a1ecb25bb6608a1e542bda91296efa26..825473ba74400b0c95cf6ed4fc737df5a32d9a69 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Para la música de guitarra, es posible mostrar los ritmos de rasgueo,
 además de las notas de la melodía, acordes y diagramas de posiciones.
index 82810bad0979ae97c840bba6159faf3cc4d4f7fe..7796c6ef7a5e0338dd8cbf10bcea3ac77a40d9bb 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Los reguladores pueden imprimirse en uno cualquiera de los estilos de
 @code{line-interface}: discontinuo, punteado, línea, trino o zig-zag.
index 892b08cb1a1c7bae9edab31a5a5b69364cdc6a7e..4d103705e70b9ceb5cae3de92bb860f4168e5657 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 Aquí se muestra la manera de ocultar las alteraciones de las notas
index f18dce23c9df0097be6ab2a9199aea4de0c934b3..72a3a083e40efe88e4053043600486cd00ca4d75 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Los cambios de dinámica con estilo de texto (como cresc. y dim.)
 se imprimen con una línea intermitente que muestra su alcance.
index 06c16bfb5e8a8859e1a7f281f137b0b7b9dc20d8..f22c153348504cb0405bc3a0707f1f618dcc26cb 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
   Este fragmento de código muestra una forma de preparar un himno cuando
 cada línea comienza con un compás parcial.  También muestra cómo
index 5075f1d6d4bdf7e887f2c4dce746027674cab603..3325848f09ceb8f8a16f717c3dfa14dac93f355a 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Los «incipit» se pueden escribir utilizando el grob del nombre del
 instruemento, pero manteniendo independientes las definiciones del
index 4778dc8a09dd7df933f4608a28b65003959c1d61..5c70c47aae1b6906d1a81d785ba64f27923f463b 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Un corchete de arpegio puede indicar que se tienen que tocar con la
 misma mano notas que están en dos pentagramas distintos. Para hacerlo,
index 788c73478e160167f77eb98648b0cf23c1773211..fc21376dab09ddfb26a1d11ce6097d309aa010e0 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Las marcas de cesura se pueden crear sobreescribiendo la propiedad
 @code{'text} del objeto @code{BreathingSign}.  También está disponible
index 7d634214b37b08d9ee1253c5824413bf3fe1c690..e5020853512bd58a334e360d782cdf2941ddf8cd 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 También se pueden imprimir símbolos de porcentaje sueltos.
 
index 5c205d0fb78e1515e19bec1779b0f99c918681a5..1287d0ba9587d2d2dda88be885e99496250201c3 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Ésta es una plantilla bastante avanzada, para un conjunto de
 jazz. Observe que la notación de todos los instrumentos está en
index b61947b8bf923070bd10d8c15052599cf3e45caf..4c8f81e07202a2b917abe016aca21726ac2a56f1 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Cuando se produce un cambio de clave, el símbolo de clave se imprime a
 un tamaño menor que la clave inicial.  Esto se puede ajustar con
index d378ae729762fab5e7f33dd127b3d237f3429ecf..9f610d0b1386d9cb1f116a7d798366e367b36a44 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 La tablatura se puede formatear utilizando letras en lugar de números.
 
index 53b2783d60cfee2723fdf1b52a19b37c5cb30b11..b081c5cd42115974381c936f9dd24aa7cc11de97 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se pueden aplicar puntas de flecha a los elementos de extensión de
 texto y de línea (como el Glissando).
index 34d4083e81b8e4603807eea55de2b3200cc7b4b0..9497b84a47d1233894a5f5d4e5f5f872dec561d1 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 La alineación horizontal de la letra se puede ajustar sobreescribiendo
 la propiedad @code{self-alignment-X} del objeto @code{LyricText}.
index 62150020e7d07957ea70b6f977393d90617c76e5..fd31fee2907d747ac289c15f2a4e54c458b41aac 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 El «Makam» es un tipo de melodía de Turquía que
 utiliza alteraciones microtonales de 1/9 de tono.  Consulte el
index 6554bbe26e838fcf7a14f9b052857035c7084a91..94ec209d6bd59db14316d768ed2c2562aa761640 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Las ligaduras de expresión se pueden construir con patrones de
index f4ed3759d182064e9b7d62f19a86da55b892146a..3b14dd858c3c78e0ae620599d911404eea2cec36 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede engrosar una línea del pentagrama con fines pedagógicos
 (p.ej. la tercera línea o la de la clave de Sol).  Esto se puede
index ddf9970033e4cbb8ee6450f2bc467f1c6484aba4..282daa5a9919a924c4e6b3d2212ce09ffeb1282c 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Este fragmento de código proporciona una solución alternativa a la
 producción de contadores de compás utilizando repeticiones
index 4c9f72d357ddcedfacb19f5991aeaa0464c7bd26..e1ecf217722529dd9c72b8e4cbefd1b9f5747a03 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 La disposición «mensurstriche» en que las líneas divisorias no
 están dibujadas sobre los pentagramas, sino entre ellos, se puede
index ac9dec3a6b664b652ac337496804c4638d58074d..377b15875db8c7a8edad318e716b245200df2920 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Utilice un texto de marcado para sustituir el glifo de clave (TAB) con
 una fuente tipográfica moderna.
index 71456ef23eaa6bd7c2ebb67c4db9b54c43fc5249..b3a86c59249267683cc9f40043f4ae907573c50b 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Las abreviaturas se encuentran definidas dentro del archivo
 @file{ly/script-init.ly}, donde las variables @code{dashHat},
index ee64ddbb9b8dfb7449c71753f54b2ae8120f4f84..8dcf067624182795d21bba6a8cd03a18dfa526ae 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Cuando se puede una nota en la voz superior para evitar la colisión
 con una nota de otra voz, el comportamiento predeterminado es
index 05116a0e3278b65ec443ed629993645dd77fbc01..5e590f908dbc0b3d06e316894a436331e9e46a04 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede ajustar la posición vertical de una ligadura de
 expresión utilizando la propiedad @code{positions} del objeto
index 916531fd507dd4ffa1071919e9a7d6b2e8a48226..05bdf4d84f5da594473390b90f9346e9cddd8c37 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 texidoces = "
 Los elementos de marcado aplicados a un silencio multicompás se
 centran encima o debajo de éste.  Los elementos de marcado extensos
index b8b70d650a4c3d439edae142af0c03cc9571337a..08d3554288975cf3e743ab5dd4951f95e4df1685 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede utilizar la propiedad
 @code{systemStartDelimiterHierarchy} para crear grupos de
index d412b4baab912026426a2ec367861e2b544b1d69..d08a79c0b507b32769bc949d5d1ee76baaad945a 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 LilyPond también proporciona funciones de formato para imprimir
 números de grupo especial diferentes a la propia fracción, así
index 02e6dfca0416381be275d730b4e2924cadfbef87..099c52d8e7546f3187d36f49b2dc2ec1776da11a 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   doctitlees = "Armaduras de tonalidad no tradicionales"
   texidoces = "
 
index b1af14a6afa9b4bb4edf2a4301bf38719ee094ab..29e07b48d32256b23eb1be5f56d16cc8486a19a5 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Las cabezas de nota de notación fácil utilizan la propiedad
diff --git a/Documentation/es/texidocs/open-string-harmonics-in-tablature.texidoc b/Documentation/es/texidocs/open-string-harmonics-in-tablature.texidoc
new file mode 100644 (file)
index 0000000..447bae1
--- /dev/null
@@ -0,0 +1,6 @@
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
+  texidoces = "
+Referencia para armónicos sobre cuerdas al aire (armónicos naturales):
+
+"
+  doctitlees = "Referencia para armónicos sobre cuerdas al aire"
index 3e69e34161927fe04224a63d8385701fcffc320e..8d125c4a1550ea755aa471a41dabbbd82b8d82f6 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Esta plantilla muestra el uso de contextos @code{StaffGroup} y
 @code{GrandStaff} anidados para sub-agrupar instrumentos del mismo
index 55db8b8e7e818fcc3f9ad25c20d21f61910ee991..fd55a56a99c48329638181ddd286adc406970840 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Internamente, @code{\\ottava} establece las propiedades
index d451154b980482ffad56e40e8b16b03954a4701a..094a6fa85f6669e9b47c18f04186e1d410449a46 100644 (file)
@@ -1,4 +1,4 @@
-%%   Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%%   Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 
index 7a8e70aff3d7b2a71b361e8c47641cac45b2d690..104500413b41316565dcd8a70d893cc2378dd4ef 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se pueden mostrar los contadores de las repeticiones del tipo
 porcentaje a intervalos regulares mediante el establecimiento de
index 07e7e97f28b31d9a1902f71d92f9597b2981638c..5aa81d086f4e91a0fc76d994b7552b50f283630f 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Las repeticiones de compases completos de más de dos repeticiones
 pueden llevar un contador si se activa la propiedad adecuada, como se
index 3adce6c055d07412bd0fa33f07023dc6885ab46e..351f6e3875a015eeb8ff11dc3320d46b30bd2491 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
  doctitlees = "Permitir saltos de línea dentro de grupos especiales con barra"
  texidoces = "
 Este ejemplo artificial muestra cómo se pueden permitir tanto los
index 07fb5487d93eaa63df88368075606d58e983cd1d..c3ffcbaec7981d6a96cba586fee482563c3a6464 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Presentamos a continuación una plantilla de piano sencilla con algunas
 notas.
index ff444ab0831f76a730babf973b2fd97c5227ffbb..90765a34b9b308cf0bcb49a89889a61fc648faa8 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Muchas partituras de piano tienen las indicaciones dinámicas centradas
 entre los dos pentagramas.  El contexto @code{Dynamics}, si se sitúa
index 237f710d41ea026a5026ff60b214decb29a9b4c3..90544355aacea6f01a63d72f2cb38cfc535a2d93 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 En lugar de tener un pentagrama dedicado a la melodía y la letra, ésta
 se puede centrar entre los pentagramas de un sistema de piano.
index 5cf74bd49410e3f851d732600d505c89f2226546..358d3c78793a93bb4443f12bac24e40789f2a518 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 He aquí el típico formato dde una canción: un pentagrama con la
 melodía y la letra, y el acompañamiento de piano por debajo.
index dc3888604ac2cc856d6b6ead3b2dcaa0451b4f5d..cb47f44c9ebd348797e1dcf6d0a30201802a3b4f 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Es posible ejercer un mayor control sobre la colocación de las
 digitaciones de la mano derecha estableciendo el valor de una
index 0f27662a65374c922c1b34b037bc1b16a47e46c8..99a08c9063b07e102acfa72758474b5a3dd45432 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 La polifonía se crea de la misma forma en un @code{TabStaff} que
 en una pauta normal.
index 7ce1d5d6626b000d91a2d7ae20819a8fbb34a32b..9bf8b1d97cac05f8dd766041b732a5209f7c20d1 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Si necesitamos alargar o acortar un símbolo de arpegio, podemos
 modificar independientemente los extremos superior e inferior.
index 7fa63285241a9d42e1b06079850e69057b2635d6..6f56d8db462dc96f36d02cd52c99cbefc034cf75 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Cuando se colocan figuras sobre líneas adicionales, sus barras se
index 6df5f871218742a06afeb931fbdccb9d8104f6c0..4480c67cb8c0a12d15caac30fb42cf85c8f2c4d5 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Al establecer la propiedad @code{'strict-grace-spacing} hacemos que
index 39bdf8e5525318ea8c61e3d859d4da9e6a440696..7d062752fc790e7849a75bba34e0156ecb30c953 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
  doctitlees = "Posicionar los silencios multicompás"
  texidoces = "
 A diferencia de los silencios normales, no existe una instrucción
index 509f7a1c920e85294572a5bb0d388e629597349d..da4ac34d2de8859e9581bd2aaf317cba62b8300c 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Los elementos de marcado de texto deben tener la propiedad
index 06a36e6e3db4e9dd2f660cb6e86f690bf06377e3..247cc7260261850c8f247ebda52fe25cedbb4126 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 doctitlees = "Evitar que se añadan becuadros adicionales automáticamente"
 
 texidoces = "
index d476a8bb370ff0a4f41a6a2df951ce1582aad4a7..66ed4854c431629bf67dacef197d3eecaf7006a1 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 doctitlees = "Evitar que se impriman becuadros cuando cambia la armadura"
 
 texidoces = "
index 81a620fb1d4d97a5b3ef487e23297b2f7a7a4af8..6a878fc0b60842382422a4d5486e068561bdc651 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede imprimir una línea divisoria de la forma @code{|:} al
 principio de la pieza, sobreescribiendo la propiedad correspondiente:
index a37589c31b0a6f34c7861a35c43f763c63c23bbc..1afd581132cdd44d9f032a5fe728e3b325aba690 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Se pueden imprimir los números de compás a intervalos regulares
index 5975b2fb3ad6bf1265d9827d3363f057822a63c8..45b6664dd97e1c613feb8b3e42c859c49407a1c0 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Los números de compás también se pueden imprimir dentro de rectángulos o de circunferencias.
index 1b2040ff7ae7c5f7dea9f648caae36ffdd3e3b2d..55b4345365c994350ccc41b36879a42d649ecece 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se pueden imprimir reguladores con un círculo en la punta (notación
 «al niente») estableciendo la propiedad @code{circled-tip} del objeto
index 0e41db2b5ceadb6f3c4f0181ce30053bfc8f9b25..9974f456086b2703f41ed85e961a3979bda80158 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 
index 76481d5f2db2f8ccfdb16a3911c86eedd56ea1b8..d6212c91e64b232dd926e5571f97479fea77ab17 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Aunque normalmente las marcas de texto sólo se imprimen sobre el
 pentagrama superior, también se pueden imprimir en otro pentagrama
index 38ce20092d82ded3708b1d2ce066a6bd72e5d67f..88fe101f9c94e3c05633cc742a9584e981d3d516 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 De forma predeterminada, las indicaciones metronómicas y las
 letras de ensayo se imprimen encima del pentagrama.  Para
index eb0e4fcfc9b32120c1b2c0fa44b56996b92b74f5..2038d8f37e36062840250dd31dd840401d80aa01 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede usar el contexto @code{NoteNames} para imprimir el valor
 textual de las notas.  La propiedad @code{printOctaveNames} activa o
index 96a4a1fb991bed1308cf0b09e43eba0377af9720..1af1f5efe426a27426dff726c4bcc1f8d5620f56 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 De forma predeterminada se suprime el número del primer compás de una
index 24ede68c86695cd15ed26e611bdf118911a1c77d..1f125302121f676cf8179a705b0dfd9de1cb4468 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Los pasajes citados tienen en cuenta la transposición de la fuente
 tanto como la del destino.  En este ejemplo, todos los
index 5c895730fed1bdf6d9ec9d701e9dfbfa720a25de..d35fbbdeeefc3ede9b473f0ba353df22aa62e473 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 La propiedad @code{quotedEventTypes} determina los tipos de eventos
index 6feb07ea8002fd7b9e7b860dec10afa2a88666bb..5fd814a5c8cd0472c2ae72a58d5fb255ea61fa5e 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 El ejemplo siguiente muestra cómo se pueden realizar diagramas de
index cfc969ccf535e287d3dd192be62a8465a3f3cbc7..67ef7b5b22de6950e1ce4d64a7de7a3386d147f9 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Los valores predeterminados para las notas de adorno están
index 5211beba5d7c94a6e73a432950ea17e68c8fd213..3e09b65476b507170cca774b111e8711935c9b2a 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Se pueden eliminar completamente los números de compás quitando el
index c1c38937b8d1dfedfa7486a4eb4aaaaf54fe8c59..9143acef7ab6f6936704c043bc2c2b9676aa37b0 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 De forma predeterminada, las líneas divisorias en los grupos
 StaffGroup, PianoStaff o GrandStaff se conectan entre los pentagramas.
index 6f80d4933fd8a206814cc731125a1656781ddaab..66a0314089fcb0d95a06587387311bd82a949220 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 El primer pentagrama vacío también se puede suprimir de la
 partitura estableciendo la propiedad @code{remove-first} de
index 07bd5441085175034c1c12c18b608fce10aa615e..d6352bd220344bc68f04664f2249e48266d87fbc 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   doctitlees = "Estilos de silencios"
   texidoces = "
 Los silencios se pueden imprimir en distintos estilos.
index 22ca82b66a74999db0a04ea4b4bd4bd3c772e13b..5a0ea145188b6f3b212fd86c6816569c105fb0a1 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Para tipografiar las barras agrupadas en la forma @code{3-4-3-2} sólo
 es necesario modificar la estructura de pulsos:
index 3d9aa8ad57526b83654ea9d9fc2ebd11746fd245..469768abdd4ae3c7f2b81bbb0689e3dd274eb95f 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: d0a39a10d625c28a43acd9641aefeb2c7218ab41
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 texidoces = "
 He aquí un cuadro que muestra todas las articulaciones disponibles:
 
index 58c0fbcd91fd0845eaf4f5c71125d088c1b309dc..12a6ec350bf588e5ba2d6298a6d3e6b61c46d3f7 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Si la nota que da fin a un regulador cae sobre la primera parte de
 un compás, el regulador se detiene en la línea divisoria
index c8e907cdb39e2c149abddb996a1913d6e8bb4cad..393af33cceccc2f8c47e145d7cf7c273f433e8a4 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se pueden insertar separadores sistema entre los sistemas de una
 página.  Se puede usar cualquier elemento de marcado, pero
index 2a64e000d0d0ce1fdee2f547b5f1e9bb52456ec3..ad04cd82cfdd3fc438f616a0f07f698a0d9f1448 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 
index 699178ba6d6b407bb4197c3a79f941247c0a3f17..eeab7575c36feaf5bb8ce5e68e8e65f80ff3e3b7 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Si los reguladores son demasiado cortos, se pueden alargar
 modificando la propiedad @code{minimum-length} del objeto
index a0408b9a3f86c70ebc0ac88bdb373ad6a0a5e6a8..aa5461adc72bf2402f245d54ce238329d9b1b254 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 De forma predeterminada, los corchetes de primera y segunda vez se
 trazan encima de los finales alternativos completos, pero es posible
index c0bd3e2bac08cd8bd005fd992f60e9b41edb54dd..fa4a60f0470b048a935d8c6ac7ddfe992e42fdab 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se pueden imprimir los acordes exclusivamente al comienzo de las
 líneas y cuando cambia el acorde.
index b20070ef6d41227dc0fe030ddbb2ea1c59ebafe1..d5f5946ae351ecb1c1f59a1d4be249f9222ab2ce 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Al juntar nombres de acorde en cifrado americano, melodía y letra,
 obtenemos una hoja guía de acordes o «lead sheet»:
index c162efc0d3be8bcc324334550dd6309e6402c992..08a64c8b36c4fc4f63092a3f9de39c6311405d1d 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Esta plantilla facilita la preparación de una canción con melodía,
 letra y acordes.
index 1d5ae3d0dbd39dd0378336a72b889e0e89b48d72..9fda415f24cc28596af63f4912cc82fab9f3d528 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Presentamos a continuación un ejemplo de plantilla para una hoja
 guía de acordes con melodía, letra, acordes y diagramas de
index e2948db3419de0c76dcac6dfcdc770e98ccc6d5d..64dcd9b57f8abe173353b0d6c41a8a6acb374a04 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 ¿Quiere preparar una hoja guía de acordes (o «lead sheet») con
 melodía y acordes?  ¡No busque más!
index 5fd88f3ec12757cf9e28e8d85954249973b624fc..3c42c1cd7084ae8019e40dc1592d1666b54d91fe 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Esta pequeña plantilla muestra una melodía sencilla con letra. Córtela
 y péguela, escriba las notas y luego la letra. Este ejemplo desactiva
index 1c3f86b0ac6c90da5f92cb35f4b24d23eff273fc..998d0d2ea17322b7aae060b4421ac8c3d6cbe403 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Esta plantilla simple prepara un pentagrama con notas, adecuado para
 un instrumento solista o un fragmento melódico. Córtelo y péguelo en
diff --git a/Documentation/es/texidocs/slides-in-tablature.texidoc b/Documentation/es/texidocs/slides-in-tablature.texidoc
new file mode 100644 (file)
index 0000000..4e9461e
--- /dev/null
@@ -0,0 +1,9 @@
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
+  texidoces = "
+
+Los deslizamientos se pueden componer tipográficamente tanto en los
+contextos de @code{Staff} como en los de @code{TabStaff}:
+
+"
+
+  doctitlees = "Deslizamientos en tablatura"
index 9e4824a840b33e492fe82bd25ff3f8f2e436fe9f..c2015662e728a5cdfe05d080628cb7c8f7c63f2d 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   doctitlees = "Marca de pizzicato de chasquido (@q{pizzicato de Bartók})"
   texidoces = "
 El pizzicato de chasquido (también llamado @q{Pizzicato de Bartók}) es un
index 787871f2819cfe556db7e3560a91ae409adbd3a8..5c004584f770dc013056bbeb240d29ee209e44ae 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Los textos independientes se pueden disponer en varias columnas
 utilizando instrucciones @code{\\markup}:
index c81d8d3e6572f1e5c70ecf9385359fb4fbac2e3a..ea4f67360e73a067a564ccf3f34022a6ed68c6fd 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 La dirección de las plicas se contola de la misma forma en la
 tablatura que en la notación tradicional. Las barras se pueden
index d4a1de3a3c07d20f828ab2dd00a1262255692411..040dd82c21dfa11416cc9f22471604890403ebaf 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Esta plantilla muestra un cuarteto de cuerda normal. También utiliza
 una sección @code{\\global} para el compás y la armadura
index dc1d502d94ff071bf1d4030d9deff8aa777e2ce1..0840ec64d4db79f7f8819f4e1449b746d8c0a227 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 El fragmento de código @qq{Plantilla de cuarteto de cuerda} produce un
 resultado satisfactorio para el cuarteto, pero ¿y si tenemos que
index c9fc11542ecc0f318aaf2339371765d6e4ee3b28..d1337fb848c06140f3ae13a3341da910c0311823 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 
index 66b0d898e7c459cf7b9214b0124afeb386731666..2d0b9361ef09c11267fc2e81c1ac2a92c4469e49 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 A veces, la indicación de compás no debe imprimir la fracción completa
index 009b2fce89a1fa52d7e966fb9a0fb70e1c6efd0c..494a0934e709f44a34ce7ae03bc63460132492e3 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 A modo de alternativa para obtener auténticos «incipit»
 independientes de la partitura principal, se incluyen como
index 7aa894ef53ea9759e34da3a45fccbb531e38ef16..b19099d802fa347dec88d2c3f84b79e0a185c6dc 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 doctitlees = "Transportar música con el menor número de alteraciones"
 texidoces = "
 Este ejemplo utiliza código de Scheme para forzar las
index 1782adc755e4ba26b0e20bf5e95544a4e8f4b3f6..fae6ef85333e358e4e509f39b9198a79582fe032 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   doctitlees = "Trucaje de las propiedades de clave"
   texidoces = "
 La instrucción @code{\\clef \"treble_8\"} equivale a un ajuste de
index 9bb45cd5fef57ac34948c06c4748fad561c6ba0d..708c53dc5470a586366964f279036d8c6a3185cf 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 La disposición de las expresiones de adorno se puede cambiar a lo
index 517d9712e39d85d4371f4ef4bffe0c6565655c8b..db398bb706de3e9d9f3f992524a23e7db609da0c 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Se puede usar el delimitador de comienzo de un sistema
 @code{SystemStartSquare} estableciéndolo explícitamente dentro de
index bc63d0b8d9d3b4d8dddd40a0d294fb7eacaba6c7..69da8b4a384c3335c6b3c241428e2b1ca844bd76 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Se pueden imprimir estilos alternativos del corchete o gancho de las
index 6bd01afddcde8ab7de144947a0accc4987cca7c7..f3b2f4fd332fc7f15afcf91de82e3594eed91271 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 El corchete de arpegios @code{arpeggioBracket} se puede usar para
 indicar la división de voces cuando no hay plicas que puedan ofrecer
index 6b8d2666a38a8939f1c3951b79e1c32e3d5c1def..38cc4f368d6d9d780e7691cf9005d4a6a3e58907 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Algunos compositores escriben dos ligaduras cuando quieren acordes
 legato.  Esto se puede conseguir estableciendo @code{doubleSlurs}.
index fd739f407b481d1812ade56d6a6bbc5863a55ab4..3e13c1ce33cfdf6ceefd401c6cfb900fb6ff827c 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Es posible aplicar la barrita que cruza la barra de las
index e13b7515cbf9302cd92dcf13778fc1f39855260f..ea771e0b4bfb64625e3d3c31b474b16b0eaa7844 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 
index 5bb3c8872c92372c535a8506967166271a97d935..253af97b1fa8ada4f4ce41918136d118843b1673 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 
index ce17bc9660004f12ebfec067d45d168b2f719f7b..0043e338ad15eb1ff90a0140b8500f2ae73f9dc7 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
  doctitlees = "Uso de ligaduras en los arpegios"
  texidoces = "
 En ocasiones se usan ligaduras de unión para escribir los arpegios.
index c7ad2902e9a65f9cda50895c3e964d695dc67a58..94d3717243131c2d3d65b0d6ee7673cb678e70a9 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Mediante el establecimiento de la propiedad @code{'Y-extent} a un valor
 adecuado, todos los objetos @code{DynamicLineSpanner} (reguladores e
index b4e2d09a864c2144f7cdfc48e1aa16adff8d497f..b8ca195d8d988673cffc2d82bd13a34b4969717b 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Las expresiones dinámicas que se comienzan, terminan o se producen
 en la misma nota se alinean verticalmente.  Para asegurar que las
index 9af234d566a816b99608f41762cc9857af9181a9..36368c7e372d770449f10d3d6988e63cac7291e5 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Este fragmento de código muestra el uso de las propiedades de
 contexto @code{alignBelowContext} y @code{alignAboveContext} para
index 9cc3f2bc4fead5dacff27d3b346883face870e71..02daa06c1be4964ec68766e957099915e2cb6175 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Allí donde se utilicen líneas extensoras para el bajo cifrado mediante
 el establecimiento de @code{useBassFigureExtenders} al valor
index 41b8558923576752bdf2a72f9d1180aa06a3e3ff..d1c7025d5226f41fc44f7f6fdcb82c878c31a43e 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 
 Esta plantilla añade una reducción de piano automática a la partitura
index 3f9310e4c836c877edc06b85f40f38cf8e6a00f6..58d34004429644de605666d87e4400e41cd568f5 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Esta plantilla es, básicamente, la misma que la sencilla plantilla
 @qq{Conjunto vocal}, excepto que aquí todas las líneas de letra se
index 99f2109239a61d2d0bfbd7a986db6328fb255d15..335de6a1503946abe697f265392bdedfdbee7dc5 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 Esta plantilla crea una partitura que comienza con una estrofa para
index 7f82af0497839fcf36b8d734fd708c0dc77f13e0..1c015d05efe44640d2763bba33ef841ffbd154a3 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 He aquí una partitura vocal estándar para cuatro voces SATB. Con
 grupos mayores, suele ser útil incluir una sección que aparezca en
index 6e8e5065c56a61a981c82930af572bbdb062251d..5a12ae4aedf1308f3a43114dbefd799fe25f6f6e 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%% Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 Mediante la adición del grabador @code{Volta_engraver} al
 pentagrama pertinente, se pueden poner los corchetes de primera y
index 226c2a1d34cfb505329b4137f76cb726f2f6c2f3..34118116d10711b32ab463e9f8aa7fbcb0c198d8 100644 (file)
@@ -1,4 +1,4 @@
-%%%    Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%%%    Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
 
   texidoces = "
 
index 3f94c30c9b8b7efcd5a7233d098428ad9268c6af..097e28e738f5c5b5dc8a5b1fb8d6101e49052469 100644 (file)
@@ -1,4 +1,4 @@
-%%%    Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
+%%%    Translation of GIT committish: 59caa3adce63114ca7972d18f95d4aadc528ec3d
   texidoces = "
 El fragmento de música que aparece a continuación presenta todos los
 diagramas de viento madera que se encuentran definidos en LilyPond por
diff --git a/Documentation/ja/notation/expressive.itely b/Documentation/ja/notation/expressive.itely
new file mode 100644 (file)
index 0000000..d26647c
--- /dev/null
@@ -0,0 +1,1353 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@ignore
+    Translation of GIT committish: fe4f33aca60ea7c58bc9196eac43b4acca1d4437
+
+    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.13.36"
+
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+
+@node 表現記号
+@section 表現記号
+@translationof Expressive marks
+
+@lilypondfile[quote]{expressive-headword.ly}
+
+このセクションでは楽譜の中で作成可能なさまざまな表現記号をリストアップします。
+
+@menu
+* 音符に付けられる表現記号::
+* 曲線の表現記号::
+* 直線の表現記号::
+@end menu
+
+
+@node 音符に付けられる表現記号
+@subsection 音符に付けられる表現記号
+@translationof Expressive marks attached to notes
+
+このセクションでは、音符に添付される表現記号を作成する方法について説明します。@c
+音符に添付される表現記号には以下のものがあります:
+アーティキュレーション、装飾、強弱記号。@c
+新たに強弱記号を作成する方法についても議論します。
+
+
+@menu
+* アーティキュレーションと装飾::
+* 強弱記号::
+* 新たな強弱記号::
+@end menu
+
+
+@node アーティキュレーションと装飾
+@unnumberedsubsubsec アーティキュレーションと装飾
+@translationof Articulations and ornamentations
+
+@cindex articulations (アーティキュレーション)
+@cindex ornamentation (装飾)
+@cindex scripts (スクリプト)
+@cindex ornaments (装飾)
+@cindex espressivo (表現的な)
+@cindex fermata (フェルマータ)
+@cindex upbow (アップボー、上弓)
+@cindex downbow (ダウンボー、下弓)
+@cindex foot marks (フット マーク、足記号)
+@cindex organ pedal marks (オルガン ペダル記号)
+@cindex pedal marks, organ (オルガン ペダル記号)
+@cindex turn (ターン)
+@cindex open (オープン)
+@c 未訳
+@cindex stopped
+@c フラジョレット: 六孔の縦笛
+@cindex flageolet (フラジョレット)
+@cindex reverseturn (逆ターン)
+@cindex trill (トリル)
+@cindex prall (プラル)
+@cindex mordent (モルデント)
+@cindex prallprall (プラルプラル)
+@cindex prallmordent (プラルモルデント)
+@cindex prall, up (アップ プラル)
+@cindex prall, down (ダウン プラル)
+@cindex thumb marking
+@cindex segno (セーニョ)
+@cindex coda (コーダ)
+@c 未訳
+@cindex varcoda
+
+@funindex \accent
+@funindex \marcato
+@funindex \staccatissimo
+@funindex \espressivo
+@funindex \staccato
+@funindex \tenuto
+@funindex \portato
+@funindex \upbow
+@funindex \downbow
+@funindex \flageolet
+@funindex \thumb
+@funindex \lheel
+@funindex \rheel
+@funindex \ltoe
+@funindex \rtoe
+@funindex \open
+@funindex \halfopen
+@funindex \stopped
+@funindex \snappizzicato
+@funindex \turn
+@funindex \reverseturn
+@funindex \trill
+@funindex \prall
+@funindex \mordent
+@funindex \prallprall
+@funindex \prallmordent
+@funindex \upprall
+@funindex \downprall
+@funindex \upmordent
+@funindex \downmordent
+@funindex \pralldown
+@funindex \prallup
+@funindex \lineprall
+@funindex \signumcongruentiae
+@funindex \shortfermata
+@funindex \fermata
+@funindex \longfermata
+@funindex \verylongfermata
+@funindex \fermataMarkup
+@funindex \segno
+@funindex \coda
+@funindex \varcoda
+
+
+@funindex -
+
+
+アーティキュレーション、装飾音それに他の演奏指示を表すさまざまな記号は@c
+以下の構文を用いて音符に付けることができます:
+
+@example
+@var{note}\@var{name}
+@end example
+
+@code{@var{name}} に対してとり得る値は
+@ref{List of articulations} でリストアップしています。@c
+例えば:
+
+@lilypond[verbatim,quote,relative=2]
+c4\staccato c\mordent b2\turn
+c1\fermata
+@end lilypond
+
+@cindex marcato (マルカート)
+@cindex tenuto (テヌート)
+@cindex staccatissimo (スタッカーティシモ)
+@cindex accent (アクセント)
+@cindex staccato (スタッカート)
+@cindex portato (ポルタート)
+
+これらのアーティキュレーションのいくつかはより容易に入力できるよう@c
+短縮記法を持っています。@c
+短縮記法は音符名の後ろに付けられ、ダッシュ @code{-} と@c
+それに続くアーティキュレーションを表す記号から成ります。@c
+あらかじめ定義されている短縮記法は以下のアーティキュレーションです:
+@notation{marcato}, @notation{stopped}, @notation{tenuto},
+@notation{staccatissimo}, @notation{accent}, @notation{staccato}
+それに @notation{portato}。@c
+これらの出力は以下のように表示されます:
+
+@lilypond[verbatim,quote,relative=2]
+c4-^  c-+  c--  c-|
+c4->  c-.  c2-_
+@end lilypond
+
+アーティキュレーションのデフォルトの配置規則は@c
+ファイル @file{scm/@/script@/.scm} で定義されています。@c
+アーティキュレーションと装飾は手動で譜の上または下に配置されることもあります
+-- @ref{Direction and placement} を参照してください。
+
+アーティキュレーションは @code{Script} オブジェクトです。@c
+これらのプロパティについて @rinternals{Script} に説明があります。
+
+アーティキュレーションは音符と同様に休符に付けることもできますが、@c
+複数小節の休符に付けることはできません。@c
+特殊な定義済みコマンド @code{\fermataMarkup} は複数小節の休符に付ける@c
+ことができます (複数小節の休符にだけ付けることができます)。@c
+このコマンドは @code{MultiMeasureRestText} オブジェクトを作成します。
+
+@lilypond[verbatim,quote,relative=2]
+\override Script #'color = #red
+\override MultiMeasureRestText #'color = #blue
+a2\fermata r\fermata
+R1\fermataMarkup
+@end lilypond
+
+アーティキュレーションに加えて、テキストとマークアップを音符に付けることができます。@c
+@ref{Text scripts} を参照してください。
+
+音符につけられる Script と TextScript の配置順序についての更なる情報は、@c
+@rlearning{オブジェクトの配置} を参照してください。
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{modifying-default-values-for-articulation-shorthand-notation.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{controlling-the-vertical-ordering-of-scripts.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{creating-a-delayed-turn.ly}
+
+@seealso
+音楽用語集:
+@rglos{tenuto},
+@rglos{accent},
+@rglos{staccato},
+@rglos{portato}
+
+記譜法リファレンス:
+@ref{Direction and placement},
+@ref{List of articulations},
+@ref{トリル}
+
+インストールされているファイル:
+@file{scm/@/script@/.scm}
+
+コード断片集:
+@rlsrnamed{Expressive marks,表現記号}
+
+内部リファレンス:
+@rinternals{Script},
+@rinternals{TextScript}
+
+
+@node 強弱記号
+@unnumberedsubsubsec 強弱記号
+@translationof Dynamics
+
+@cindex absolute dynamics (絶対強弱記号)
+@cindex dynamics (強弱記号)
+@cindex dynamics, absolute (絶対強弱記号)
+
+@funindex \ppppp
+@funindex ppppp
+@funindex \pppp
+@funindex pppp
+@funindex \ppp
+@funindex ppp
+@funindex \pp
+@funindex pp
+@funindex \p
+@funindex p
+@funindex \mp
+@funindex mp
+@funindex \mf
+@funindex mf
+@funindex \f
+@funindex f
+@funindex \ff
+@funindex ff
+@funindex \fff
+@funindex fff
+@funindex \ffff
+@funindex ffff
+@funindex \fffff
+@funindex fffff
+@funindex \fp
+@funindex fp
+@funindex \sf
+@funindex sf
+@funindex \sff
+@funindex sff
+@funindex \sp
+@funindex sp
+@funindex \spp
+@funindex spp
+@funindex \sfz
+@funindex sfz
+@funindex \rfz
+@funindex rfz
+
+絶対強弱記号は音符の後にコマンドを用いて
+-- @code{c4\ff} などのように
+-- 指定します。
+利用可能な強弱記号は
+@code{\ppppp}, @code{\pppp}, @code{\ppp}, @code{\pp}, @code{\p},
+@code{\mp}, @code{\mf}, @code{\f}, @code{\ff}, @code{\fff},
+@code{\ffff}, @code{\fffff}, @code{\fp}, @code{\sf}, @code{\sff},
+@code{\sp}, @code{\spp}, @code{\sfz}, それに @code{\rfz} です。
+強弱記号を手動で譜の上または下に配置することもできます --
+@ref{Direction and placement} を参照してください。
+
+@lilypond[verbatim,quote,relative=2]
+c2\ppp c\mp
+c2\rfz c^\mf
+c2_\spp c^\ff
+@end lilypond
+
+@c 保留
+@cindex hairpin (ヘアピン)
+@cindex crescendo (クレッシェンド)
+@cindex decrescendo (デクレッシェンド)
+@cindex diminuendo (ディミヌエンド)
+
+@funindex \<
+@funindex \>
+@funindex \!
+@funindex \cr
+@funindex cr
+@funindex \decr
+@funindex decr
+
+@notation{クレッシェンド} 記号は @code{\<} で始まり、@code{\!}、@c
+絶対強弱記号あるいは追加のクレッシェンド記号またはデクレッシェンド記号で@c
+終わります。@c
+@notation{デクレッシェンド} 記号は @code{\>} で始まり、@code{\!}、@c
+絶対強弱記号あるいは次のクレッシェンド記号またはデクレッシェンド記号で@c
+終わります。@c
+@code{\cr} と @code{\decr} を @code{\<} と @code{\>} の代わりに@c
+用いる場合もあります。@c
+この記譜法を用いるとデフォルトでは @notation{ヘアピン} が譜刻されます。
+
+@lilypond[verbatim,quote,relative=2]
+c2\< c\!
+d2\< d\f
+e2\< e\>
+f2\> f\!
+e2\> e\mp
+d2\> d\>
+c1\!
+@end lilypond
+
+@code{\!} で終了するヘアピンは、@c
+@code{\!} が割り当てられた音符の右端で終了します。@c
+次の @notation{クレッシェンド} または @notation{デクレッシェンド} 記号の@c
+開始によってヘアピンが終了する場合、@c
+そのヘアピンは次の @code{\<} または @code{\>} が割り当てられた@c
+音符の中央で終了します。@c
+次のへアピンは、通常通りに音符の左端で始まる代わりに、右端から始まります。
+
+@lilypond[verbatim,quote,relative=2]
+c1\< | c4 a c\< a | c4 a c\! a\< | c4 a c a\!
+@end lilypond
+
+@code{\!} の代わりに絶対強弱記号で終了するヘアピも同じように譜刻されます。@c
+しかしながら、絶対強弱記号の幅によってヘアピンの終了点は変わります。
+
+@lilypond[verbatim,quote,relative=2]
+c1\< | c4 a c\mf a | c1\< | c4 a c\ffff a
+@end lilypond
+
+@cindex multiple dynamic marks on one note (1 つの音符に複数の強弱記号をつける)
+@cindex dynamic marks, multiple on one note (1 つの音符に複数の強弱記号をつける)
+1 つの音符に複数の記号を譜刻するには、空白休符を用いる必要があります。@c
+これは特に、同じ音符に @notation{クレッシェンド} と @notation{デクレッシェンド}
+を付ける場合に有用です。
+
+@lilypond[verbatim,quote,relative=2]
+c4\< c\! d\> e\!
+<< f1 { s4 s4\< s4\> s4\! } >>
+@end lilypond
+
+@cindex espressivo articulation (表現的なアーティキュレーション)
+
+@funindex \espressivo
+@funindex espressivo
+
+@code{\espressivo} コマンドを用いて、同じ音符にクレッシェンドとデクレッシェンドを@c
+付けることができます。@c
+しかしながら、これは強弱記号ではなくアーティキュレーションとして実装されている@c
+ということに注意してください。
+
+@lilypond[verbatim,quote,relative=2]
+c2 b4 a
+g1\espressivo
+@end lilypond
+
+
+@funindex \cresc
+@funindex cresc
+@funindex \decresc
+@funindex decresc
+@funindex \dim
+@funindex dim
+テキストのクレッシェンド記号は @code{\cresc} で開始します。@c
+テキストのデクレッシェンド記号は @code{\decresc} または
+@code{\dim} で開始します。@c
+必要に応じて延長線が譜刻されます。
+
+@lilypond[verbatim,quote,relative=2]
+g8\cresc a b c b c d e\mf |
+f8\decresc e d c e\> d c b |
+a1\dim ~ |
+a2. r4\! |
+@end lilypond
+
+@funindex \crescTextCresc
+@funindex crescTextCresc
+@funindex \dimTextDecresc
+@funindex dimTextDecresc
+@funindex \dimTextDecr
+@funindex dimTextDecr
+@funindex \dimTextDim
+@funindex dimTextDim
+@funindex \crescHairpin
+@funindex crescHairpin
+@funindex \dimHairpin
+@funindex dimHairpin
+
+強弱のテキスト符号の変更でヘアピンを置換することもできます:
+@lilypond[verbatim,quote,relative=2]
+\crescTextCresc
+c4\< d e f\! |
+\dimTextDecresc
+g4\> e d c\! |
+\dimTextDecr
+e4\> d c b\! |
+\dimTextDim
+d4\> c b a\! |
+\crescHairpin
+\dimHairpin
+c4\< d\! e\> d\! |
+@end lilypond
+
+新たに絶対強弱記号や強弱に対応させるテキストを作成するには、@c
+@ref{新たな強弱記号} を参照してください。
+
+@cindex dynamics, vertical positioning (強弱記号の垂直方向の位置)
+@cindex vertical positioning of dynamics (強弱記号の垂直方向の位置)
+
+@funindex DynamicLineSpanner
+
+
+強弱記号の垂直方向の位置は
+@rinternals{DynamicLineSpanner} によって処理されます。
+@funindex \dynamicUp
+@funindex dynamicUp
+@funindex \dynamicDown
+@funindex dynamicDown
+@funindex \dynamicNeutral
+@funindex dynamicNeutral
+
+@code{Dynamics} を用いて水平線上に強弱記号を譜刻することができます。@c
+タイミングを示すために空白休符を使用します。@c
+(@code{Dynamics} コンテキスト内の音符は音楽的時間を取りますが、@c
+譜刻されません。)@c
+@code{Dynamics} コンテキストはテキスト スクリプト、テキスト スパナ、@c
+ピアノ ペダル記号などを保持することができ、有用です。
+
+@lilypond[verbatim,quote]
+<<
+  \new Staff \relative c' {
+    c2 d4 e |
+    c4 e e,2 |
+    g'4 a g a |
+    c1 |
+  }
+  \new Dynamics {
+    s1\< |
+    s1\f |
+    s2\dim s2-"rit." |
+    s1\p |
+  }
+>>
+@end lilypond
+
+@predefined
+@code{\dynamicUp},
+@code{\dynamicDown},
+@code{\dynamicNeutral},
+@code{\crescTextCresc},
+@code{\dimTextDim},
+@code{\dimTextDecr},
+@code{\dimTextDecresc},
+@code{\crescHairpin},
+@code{\dimHairpin}
+@endpredefined
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{setting-hairpin-behavior-at-bar-lines.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{setting-the-minimum-length-of-hairpins.ly}
+
+@c 未訳
+@cindex al niente (アル ニエンテ)
+@cindex niente, al (アル ニエンテ)
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{printing-hairpins-using-al-niente-notation.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{vertically-aligned-dynamics-and-textscripts.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{hiding-the-extender-line-for-text-dynamics.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{changing-text-and-spanner-styles-for-text-dynamics.ly}
+
+
+@seealso
+音楽用語集:
+@rglos{al niente},
+@rglos{crescendo},
+@rglos{decrescendo},
+@rglos{hairpin}
+
+学習マニュアル:
+@rlearning{アーティキュレーションと強弱記号}
+
+記譜法リファレンス:
+@ref{Direction and placement},
+@ref{新たな強弱記号},
+@ref{What goes into the MIDI output?},
+@ref{Controlling MIDI dynamics}
+
+コード断片集:
+@rlsrnamed{Expressive marks,表現記号}
+
+内部リファレンス:
+@rinternals{DynamicText},
+@rinternals{Hairpin},
+@rinternals{DynamicLineSpanner},
+@rinternals{Dynamics}
+
+
+@node 新たな強弱記号
+@unnumberedsubsubsec 新たな強弱記号
+@translationof New dynamic marks
+
+@cindex new dynamic marks (新たな強弱記号)
+@cindex dynamic marks, new (新たな強弱記号)
+
+強弱記号を作成する最も容易な方法は、@c
+@code{\markup} オブジェクトを使用することです。
+
+@lilypond[verbatim,quote]
+moltoF = \markup { molto \dynamic f }
+
+\relative c' {
+  <d e>16_\moltoF <d e>
+  <d e>2..
+}
+@end lilypond
+
+@cindex dynamics, editorial (注釈の強弱記号)
+@cindex dynamics, parenthesis (括弧の強弱記号)
+@cindex editorial dynamics (注釈の強弱記号)
+@funindex \bracket
+@funindex bracket
+@funindex \dynamic
+@funindex dynamic
+
+マークアップ モードでは、@c
+注釈の強弱記号 (括弧や角括弧で囲まれます) を作成することができます。@c
+マークアップ モードの構文は @ref{Formatting text} で記述されています。
+
+@lilypond[verbatim,quote]
+roundF = \markup {
+    \center-align \concat { \bold { \italic ( }
+           \dynamic f \bold { \italic ) } } }
+boxF = \markup { \bracket { \dynamic f } }
+\relative c' {
+  c1_\roundF
+  c1_\boxF
+}
+@end lilypond
+
+@cindex make-dynamic-script
+@funindex make-dynamic-script
+
+単純に中央揃えの強弱記号は @code{make-dynamic-script} 関数を用いて@c
+簡単に作成できます。@c
+
+@lilypond[verbatim,quote]
+sfzp = #(make-dynamic-script "sfzp")
+\relative c' {
+  c4 c c\sfzp c
+}
+@end lilypond
+
+一般に、@code{make-dynamic-script} は引数として@c
+何らかのマークアップ オブジェクトをとります。@c
+強弱記号のフォントに含まれる文字は @code{f,m,p,r,s} それに @code{z} だけです。@c
+このため、テキストや句読点を含む強弱記号を必要とする場合、@c
+フォント ファミリとフォント エンコーディングを通常のテキストに戻すための@c
+マークアップ コマンド
+-- 例えば @code{\normal-text} -- を用いる必要があります。@c
+通常のマークアップの代わりに @code{make-dynamic-script} を用いる利点は、@c
+同じ符頭に付けられるマークアップ オブジェクトとヘアピンが垂直方向に揃うことを@c
+保証されている点にあります。
+
+@lilypond[verbatim,quote]
+roundF = \markup { \center-align \concat {
+           \normal-text { \bold { \italic ( } }
+           \dynamic f
+           \normal-text { \bold { \italic ) } } } }
+boxF = \markup { \bracket { \dynamic f } }
+mfEspress = \markup { \center-align \line {
+              \hspace #3.7 mf \normal-text \italic espress. } }
+roundFdynamic = #(make-dynamic-script roundF)
+boxFdynamic = #(make-dynamic-script boxF)
+mfEspressDynamic = #(make-dynamic-script mfEspress)
+\relative c' {
+  c4_\roundFdynamic\< d e f
+  g,1~_\boxFdynamic\>
+  g1
+  g'1~\mfEspressDynamic
+  g1
+}
+@end lilypond
+
+Scheme 形式のマークアップ モードを用いることもできます。@c
+マークアップ Scheme の構文は @rextend{Markup construction in Scheme} で@c
+説明されています。
+
+@lilypond[verbatim,quote]
+moltoF = #(make-dynamic-script
+            (markup #:normal-text "molto"
+                    #:dynamic "f"))
+\relative c' {
+  <d e>16 <d e>
+  <d e>2..\moltoF
+}
+@end lilypond
+
+マークアップ モードでのフォント設定は
+@ref{Selecting font and font size} で記述されています。
+
+
+@seealso
+記譜法リファレンス:
+@ref{Formatting text},
+@ref{Selecting font and font size},
+@ref{What goes into the MIDI output?},
+@ref{Controlling MIDI dynamics}
+
+コード断片集:
+@rlsrnamed{Expressive marks,表現記号}
+
+
+@node 曲線の表現記号
+@subsection 曲線の表現記号
+@translationof Expressive marks as curves
+
+@c 未訳
+このセクションでは曲線を持つさまざまな表現記号
+-- 通常のスラー、フレージング スラー、ブレス記号、falls それに doits --
+を作成する方法について説明します。
+
+@menu
+* スラー::
+* フレージング スラー::
+* ブレス記号::
+* Falls and doits::
+@end menu
+
+@node スラー
+@unnumberedsubsubsec スラー
+@translationof Slurs
+
+@cindex slurs (スラー)
+
+@notation{スラー} は括弧を用いて入力します:
+
+@warning{多声音楽では、@c
+スラーが始まったボイスでそのスラーを終わらせる必要があります。}
+
+@lilypond[verbatim,quote,relative=2]
+f4( g a) a8 b(
+a4 g2 f4)
+<c e>2( <b d>2)
+@end lilypond
+
+@cindex slurs, manual placement (手動でスラーを配置する)
+@cindex slurs, below notes (音符の下にスラーを配置する)
+@cindex slurs, above notes (音符の上にスラーを配置する)
+@funindex \slurDown
+@funindex slurDown
+@funindex \slurNeutral
+@funindex slurNeutral
+
+スラーを手動で音符の上または下に配置することができます。@c
+@ref{Direction and placement} を参照してください。
+
+@cindex phrasing slur (フレージング スラー)
+@cindex multiple slurs (多重スラー)
+@cindex simultaneous slurs (同時進行のスラー)
+@cindex slur, phrasing (フレージング スラー)
+@cindex slurs, multiple (多重スラー)
+@cindex slurs, simultaneous (同時進行のスラー)
+
+同時進行または重なり合うスラーは許可されません。@c
+しかしながら、フレージング スラーはスラーと重なり合うことができます。@c
+これにより、2 つのスラーを同時に譜刻することができます。@c
+詳細は @ref{フレージング スラー} を参照してください。
+
+@cindex slur style (スラーのスタイル)
+@cindex solid slur (実線のスラー)
+@cindex dotted slur (点線のスラー)
+@cindex dashed slur (破線のスラー)
+@cindex sytle, slur (スラーのスタイル)
+@cindex slur, solid (実線のスラー)
+@cindex slur, dotted (点線のスラー)
+@cindex slur, dashed (破線のスラー)
+@cindex style, slur (スラーのスタイル)
+@funindex \slurDashed
+@funindex slurDashed
+@funindex \slurDotted
+@funindex slurDotted
+@funindex \slurSolid
+@funindex slurSolid
+
+スラーは実線、点線あるいは破線のどれかになります。@c
+実線がスラーのデフォルト スタイルです:
+
+@lilypond[verbatim,quote,relative=1]
+c4( e g2)
+\slurDashed
+g4( e c2)
+\slurDotted
+c4( e g2)
+\slurSolid
+g4( e c2)
+@end lilypond
+
+@funindex \slurHalfDashed
+@funindex slurHalfDashed
+@funindex \slurHalfSolid
+@funindex slurHalfSolid
+@cindex slur, half dashed and half solid (半分が破線で半分が実線のスラー)
+
+スラーの半分を破線 (前半を破線、後半を実線) にする、あるいは、@c
+半分を実線 (前半を実線、後半を破線) にすることもできます:
+
+@lilypond[verbatim,quote,relative=1]
+c4( e g2)
+\slurHalfDashed
+g4( e c2)
+\slurHalfSolid
+c4( e g2)
+\slurSolid
+g4( e c2)
+@end lilypond
+
+@funindex \slurDashPattern
+@funindex slurDashPattern
+@cindex slur, defining dash patterns (スラーの破線パターンを定義する)
+
+スラーの破線パターンを定義することができます:
+
+@lilypond[verbatim,quote,relative=1]
+c4( e g2)
+\slurDashPattern #0.7 #0.75
+g4( e c2)
+\slurDashPattern #0.5 #2.0
+c4( e g2)
+\slurSolid
+g4( e c2)
+@end lilypond
+
+
+
+@funindex \slurUp
+@funindex slurUp
+
+
+@predefined
+@code{\slurUp},
+@code{\slurDown},
+@code{\slurNeutral},
+@code{\slurDashed},
+@code{\slurDotted},
+@code{\slurHalfDashed},
+@code{\slurHalfSolid},
+@code{\slurDashPattern},
+@code{\slurSolid}
+@endpredefined
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{using-double-slurs-for-legato-chords.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{positioning-text-markups-inside-slurs.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{making-slurs-with-complex-dash-structure.ly}
+
+@seealso
+音楽用語集:
+@rglos{slur}
+
+学習マニュアル:
+@rlearning{ネストされない括弧とタイ}
+
+記譜法リファレンス:
+@ref{Direction and placement},
+@ref{フレージング スラー}
+
+コード断片集:
+@rlsrnamed{Expressive marks,表現記号}
+
+内部リファレンス:
+@rinternals{Slur}
+
+
+@node フレージング スラー
+@unnumberedsubsubsec フレージング スラー
+@translationof Phrasing slurs
+
+@cindex phrasing slurs (フレージング スラー)
+@cindex phrasing marks (フレーズ記号)
+@cindex slur, phrasing (フレージング スラー)
+@cindex mark, phrasing (フレーズ記号)
+@funindex \(
+@funindex \)
+
+音楽センテンスを示す @notation{フレージング スラー} (またはフレーズ記号) は@c
+コマンド @code{\(} と @code{\)} を用いて記述します:
+
+@lilypond[verbatim,quote,relative=2]
+c4\( d( e) f(
+e2) d\)
+@end lilypond
+
+@funindex \phrasingSlurUp
+@funindex phrasingSlurUp
+@funindex \phrasingSlurDown
+@funindex phrasingSlurDown
+@funindex \phrasingSlurNeutral
+@funindex phrasingSlurNeutral
+
+印刷の上では、フレージング スラーは通常のスラーとほとんど同じです。@c
+しかしながら、それぞれ異なるオブジェクトとして取り扱われます。@c
+@code{\slurUp} はフレージング スラーには影響を与えません。@c
+フレージング スラーを手動で音符の上または下に配置することができます。@c
+@ref{Direction and placement} を参照してください。
+
+@cindex simultaneous phrasing slurs (同時進行のフレージング スラー)
+@cindex multiple phrasing slurs (多重フレージング スラー)
+@cindex slurs, simultaneous phrasing (同時進行のフレージング スラー)
+@cindex slurs, multiple phrasing (多重フレージング スラー)
+@cindex phrasing slurs, simultaneous (同時進行のフレージング スラー)
+@cindex phrasing slurs, multiple (多重フレージング スラー)
+
+同時進行あるいは重なり合うフレージング スラーは許可されません。
+
+@funindex phrasingSlurDashed
+@funindex \phrasingSlurDashed
+@funindex \phrasingSlurDotted
+@funindex phrasingSlurDotted
+@funindex \phrasingSlurSolid
+@funindex phrasingSlurSolid
+@cindex phrasing slur, dashed (破線のフレージング スラー)
+@cindex dashed phrasing slur (破線のフレージング スラー)
+@cindex phrasing slur, dotted (点線のフレージング スラー)
+@cindex dotted phrasing slurs (点線のフレージング スラー)
+@cindex slur, dashed phrasing (破線のフレージング スラー)
+@cindex slur, dotted phrasing (点線のフレージング スラー)
+
+フレージング スラーを実線、点線あるいは破線にすることができます。@c
+実線がフレージング スラーのデフォルト スタイルです:
+
+@lilypond[verbatim,quote,relative=1]
+c4\( e g2\)
+\phrasingSlurDashed
+g4\( e c2\)
+\phrasingSlurDotted
+c4\( e g2\)
+\phrasingSlurSolid
+g4\( e c2\)
+@end lilypond
+
+@funindex phrasingSlurHalfDashed
+@funindex \phrasingSlurHalfDashed
+@funindex \phrasingSlurHalfSolid
+@funindex phrasingSlurHalfSolid
+@cindex phrasing slur, half solid and half dashed (半分が実線で半分が破線のフレージング スラー)
+@cindex slur, half solid and half dashed phrasing (半分が実線で半分が破線のフレージング スラー)
+
+フレージング スラーの半分を破線 (前半を破線、後半を実線) にする、あるいは、@c
+半分を実線 (前半を実線、後半を破線) にすることもできます:
+
+@lilypond[verbatim,quote,relative=1]
+c4\( e g2\)
+\phrasingSlurHalfDashed
+g4\( e c2\)
+\phrasingSlurHalfSolid
+c4\( e g2\)
+\phrasingSlurSolid
+g4\( e c2\)
+@end lilypond
+
+@funindex \phrasingSlurDashPattern
+@funindex phrasingSlurDashPattern
+@cindex phrasing slur, defining dash patterns
+@cindex slur, phrasing, defining dash patterns (フレージング スラーの破線パターンを定義する)
+@cindex slur, defining dash patterns for phrasing (フレージング スラーの破線パターンを定義する)
+
+フレージング スラーの破線パターンを定義することができます:
+
+@lilypond[verbatim,quote,relative=1]
+c4\( e g2\)
+\phrasingSlurDashPattern #0.7 #0.75
+g4\( e c2\)
+\phrasingSlurDashPattern #0.5 #2.0
+c4\( e g2\)
+\phrasingSlurSolid
+g4\( e c2\)
+@end lilypond
+
+フレージング スラーに対する破線パターンの定義は、@c
+スラーに対する破線パターンの定義と同じ構造をとります。@c
+複雑な破線パターンについての更なる情報は、@c
+@ref{スラー} のコード断片集を参照してください。
+
+@predefined
+@code{\phrasingSlurUp},
+@code{\phrasingSlurDown},
+@code{\phrasingSlurNeutral},
+@code{\phrasingSlurDashed},
+@code{\phrasingSlurDotted},
+@code{\phrasingSlurHalfDashed},
+@code{\phrasingSlurHalfSolid},
+@code{\phrasingSlurDashPattern},
+@code{\phrasingSlurSolid}
+@endpredefined
+
+
+@seealso
+学習マニュアル:
+@rlearning{ネストされない括弧とタイ}
+
+記譜法リファレンス:
+@ref{Direction and placement},
+@ref{スラー}
+
+コード断片集:
+@rlsrnamed{Expressive marks,表現記号}
+
+内部リファレンス:
+@rinternals{PhrasingSlur}
+
+
+@node ブレス記号
+@unnumberedsubsubsec ブレス記号
+@translationof Breath marks
+
+@cindex breath marks (ブレス記号)
+@cindex pause mark (休止記号)
+@funindex \breathe
+@funindex breathe
+
+ブレス記号は @code{\breathe} を用いて入力します:
+
+@lilypond[verbatim,quote,relative=2]
+c2. \breathe d4
+@end lilypond
+
+ブレス記号は自動連桁を終わらせます。@c
+この振る舞いをオーバライドする方法は、@ref{手動連桁} を参照してください。
+
+@lilypond[verbatim,quote,relative=2]
+c8 \breathe d e f g2
+@end lilypond
+
+@c 保留
+古代記譜法でのブレス記号の音楽指示子 --
+divisiones (ディビジョン: 区切り) がサポートされています。@c
+詳細は @ref{Divisiones} を参照してください。
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{changing-the-breath-mark-symbol.ly}
+
+@c 未訳
+@cindex caesura
+@cindex railroad tracks
+
+@c 未訳
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{inserting-a-caesura.ly}
+
+
+@seealso
+音楽用語集:
+@rglos{caesura}
+
+記譜法リファレンス:
+@ref{Divisiones}
+
+コード断片集:
+@rlsrnamed{Expressive marks,表現記号}
+
+内部リファレンス:
+@rinternals{BreathingEvent},
+@rinternals{BreathingSign},
+@rinternals{Breathing_sign_engraver}
+
+
+@c 未訳
+@node Falls and doits
+@unnumberedsubsubsec Falls and doits
+
+@cindex falls
+@cindex doits
+@funindex \bendAfter
+@funindex bendAfter
+
+@notation{Falls} and @notation{doits} can be added to notes using
+the @code{\bendAfter} command.  The direction of the fall or doit
+is indicated with a plus or minus (up or down).  The number
+indicates the pitch interval that the fall or doit will extend
+@emph{beyond} the main note.
+
+@lilypond[verbatim,quote,relative=2]
+c2-\bendAfter #+4
+c2-\bendAfter #-4
+c2-\bendAfter #+8
+c2-\bendAfter #-8
+@end lilypond
+
+The dash @code{-} immediately preceding the @code{\bendAfter}
+command is @emph{required} when writing falls and doits.
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{adjusting-the-shape-of-falls-and-doits.ly}
+
+
+@seealso
+音楽用語集:
+@rglos{fall},
+@rglos{doit}
+
+コード断片集:
+@rlsrnamed{Expressive marks,表現記号}
+
+
+@node 直線の表現記号
+@subsection 直線の表現記号
+@translationof Expressive marks as lines
+
+このセクションでは直線的な軌道をとるさまざまな表現記号 --
+グリッサンド、アルペジオそれにトリル -- を作成する方法について説明します。
+
+@menu
+* グリッサンド::
+* アルペジオ::
+* トリル::
+@end menu
+
+@node グリッサンド
+@unnumberedsubsubsec グリッサンド
+@translationof Glissando
+
+@cindex glissando (グリッサンド)
+@funindex \glissando
+@funindex glissando
+
+@notation{グリッサンド} は音符に @code{\glissando} を付けることによって@c
+作成されます:
+
+@lilypond[verbatim,quote,relative=2]
+g2\glissando g'
+c2\glissando c,
+@end lilypond
+
+異なるスタイルのグリッサンドを作成することもできます。@c
+詳細は @ref{Line styles} を参照してください。
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{contemporary-glissando.ly}
+
+
+@seealso
+音楽用語集:
+@rglos{glissando}
+
+記譜法リファレンス:
+@ref{Line styles}
+
+コード断片集:
+@rlsrnamed{Expressive marks,表現記号}
+
+内部リファレンス:
+@rinternals{Glissando}
+
+
+@knownissues
+
+@c 未訳
+線の上にテキストを譜刻する (@notation{グリッサンド} など) ことは@c
+サポートされていません。
+
+
+@node アルペジオ
+@unnumberedsubsubsec アルペジオ
+@translationof Arpeggio
+
+@cindex arpeggio (アルペジオ)
+@cindex broken chord (変則和音)
+@cindex chord, broken (変則和音)
+
+@funindex \arpeggio
+@funindex arpeggio
+@funindex \arpeggioArrowUp
+@funindex arpeggioArrowUp
+@funindex \arpeggioArrowDown
+@funindex arpeggioArrowDown
+@funindex \arpeggioNormal
+@funindex arpeggioNormal
+
+和音の @notation{アルペジオ} (変則和音とも呼ばれます) は和音構造の後に
+@code{\arpeggio} を付けることによって記述されます:
+
+@lilypond[verbatim,quote,relative=1]
+<c e g c>1\arpeggio
+@end lilypond
+
+異なるタイプのアルペジオを描くこともできます。@c
+@code{\arpeggioNormal} は通常のアルペジオに戻します:
+
+@lilypond[verbatim,quote,relative=1]
+<c e g c>2\arpeggio
+
+\arpeggioArrowUp
+<c e g c>2\arpeggio
+
+\arpeggioArrowDown
+<c e g c>2\arpeggio
+
+\arpeggioNormal
+<c e g c>2\arpeggio
+@end lilypond
+
+@cindex arpeggio symbols, special (特殊なアルペジオ シンボル)
+@cindex special arpeggio symbols (特殊なアルペジオ シンボル)
+
+@funindex \arpeggioBracket
+@funindex arpeggioBracket
+@funindex \arpeggioParenthesis
+@funindex arpeggioParenthesis
+@funindex \arpeggioParenthesisDashed
+@funindex arpeggioParenthesisDashed
+
+特殊な @emph{括弧スタイル} のアルペジオ シンボルを作成することができます:
+
+@lilypond[verbatim,quote,relative=1]
+<c e g c>2
+
+\arpeggioBracket
+<c e g c>2\arpeggio
+
+\arpeggioParenthesis
+<c e g c>2\arpeggio
+
+\arpeggioParenthesisDashed
+<c e g c>2\arpeggio
+
+\arpeggioNormal
+<c e g c>2\arpeggio
+@end lilypond
+
+括弧スタイルのアルペジオの破線プロパティは @code{'dash-details} プロパティで@c
+制御します。@c
+@code{'dash-details} プロパティについては @ref{スラー} で説明しています。
+
+アルペジオをタイを用いて明示的に描き出すことができます。@c
+詳細は @ref{タイ} を参照してください。
+
+
+@predefined
+@code{\arpeggio},
+@code{\arpeggioArrowUp},
+@code{\arpeggioArrowDown},
+@code{\arpeggioNormal},
+@code{\arpeggioBracket},
+@code{\arpeggioParenthesis}
+@code{\arpeggioParenthesisDashed}
+@endpredefined
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{creating-cross-staff-arpeggios-in-a-piano-staff.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{creating-cross-staff-arpeggios-in-other-contexts.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{creating-arpeggios-across-notes-in-different-voices.ly}
+
+
+@seealso
+音楽用語集:
+@rglos{arpeggio}
+
+記譜法リファレンス:
+@ref{スラー},
+@ref{タイ}
+
+コード断片集:
+@rlsrnamed{Expressive marks,表現記号}
+
+内部リファレンス:
+@rinternals{Arpeggio},
+@rinternals{Slur},
+@rinternals{PianoStaff}
+
+
+@knownissues
+
+@cindex cross-staff parenthesis-style arpeggio (譜を跨ぐ括弧スタイルのアルペジオ)
+@cindex arpeggio, parenthesis-style, cross-staff (譜を跨ぐ括弧スタイルのアルペジオ)
+@cindex arpeggio, cross-staff parenthesis-style (譜を跨ぐ括弧スタイルのアルペジオ)
+
+ある @code{PianoStaff} の中の同時点で譜を跨ぐアルペジオと跨がないアルペジオを@c
+混在させることはできません。
+
+譜を跨ぐアルペジオに括弧スタイルのアルペジオを適用することはできません。
+
+
+@node トリル
+@unnumberedsubsubsec トリル
+@translationof Trills
+
+@cindex trills (トリル)
+
+@funindex \trill
+@funindex trill
+@funindex \startTrillSpan
+@funindex startTrillSpan
+@funindex \stopTrillSpan
+@funindex stopTrillSpan
+
+延長線を持たない短い @notation{トリル} は @code{\trill} で譜刻されます。@c
+@ref{アーティキュレーションと装飾} を参照してください。
+
+延長線を持つ長いトリルは @code{\startTrillSpan} と @code{\stopTrillSpan} で@c
+作成されます:
+
+@lilypond[verbatim,quote,relative=2]
+d1\startTrillSpan
+d1
+c2\stopTrillSpan
+r2
+@end lilypond
+
+改行を跨ぐトリルは、次行の最初の音符の上から再開されます。
+
+@lilypond[ragged-right,verbatim,quote,relative=2]
+d1\startTrillSpan
+\break
+d1
+c2\stopTrillSpan
+r2
+@end lilypond
+
+連続したトリルには、明示的な @code{\stopTrillSpan} コマンドは必要ありません。@c
+なぜなら、自動的に次のトリルが前のトリルの右端となるからです。
+
+@lilypond[verbatim,quote,relative=2]
+d1\startTrillSpan
+d1
+b1\startTrillSpan
+d2\stopTrillSpan
+r2
+@end lilypond
+
+トリルを装飾小音符と組み合わせることもできます。@c
+この組み合わせの構文と装飾小音符を正確に配置する方法については、@c
+@ref{装飾小音符} で説明しています。
+
+@lilypond[verbatim,quote,relative=2]
+d1~\afterGrace
+d1\startTrillSpan { c32[ d]\stopTrillSpan }
+c2 r2
+@end lilypond
+
+@cindex pitched trills (ピッチを持つトリル)
+@cindex trills, pitched (ピッチを持つトリル)
+@funindex \pitchedTrill
+@funindex pitchedTrill
+
+明示的なピッチを持つ予備の音符を必要とするトリルは
+@code{\pitchedTrill} コマンドを用いて譜刻することができます。@c
+最初の引数は主音符です。2 番目の引数は @emph{トリル} の音符であり、@c
+括弧で囲まれた符幹を持たない符頭として譜刻されます。
+
+@lilypond[verbatim,quote,relative=2]
+\pitchedTrill
+d2\startTrillSpan fis
+d2
+c2\stopTrillSpan
+r2
+@end lilypond
+
+@c 未訳
+@cindex pitched trill with forced accidental (ピッチを持つトリルに強制的に臨時記号を付ける)
+@cindex trill, pitched with forced accidental (ピッチを持つトリルに強制的に臨時記号を付ける)
+@cindex accidental, forced for pitched trill (ピッチを持つトリルに強制的に臨時記号を付ける)
+
+同じ小節内で、同一音符のためデフォルトでは譜刻されない臨時記号を譜刻するには@c
+手動で譜刻を指定する必要があります。@c
+最初の小節では、最初のピッチを持つトリルだけに臨時記号が譜刻されています。
+
+@lilypond[verbatim,quote,relative=2]
+\pitchedTrill
+eis4\startTrillSpan fis
+eis4\stopTrillSpan
+
+\pitchedTrill
+eis4\startTrillSpan fis
+eis4\stopTrillSpan
+
+\pitchedTrill
+eis4\startTrillSpan fis
+eis4\stopTrillSpan
+
+\pitchedTrill
+eis4\startTrillSpan fis!
+eis4\stopTrillSpan
+@end lilypond
+
+
+@predefined
+@code{\startTrillSpan},
+@code{\stopTrillSpan}
+@endpredefined
+
+
+@seealso
+音楽用語集:
+@rglos{trill}
+
+記譜法リファレンス:
+@ref{アーティキュレーションと装飾},
+@ref{装飾小音符}
+
+コード断片集:
+@rlsrnamed{Expressive marks,表現記号}
+
+内部リファレンス:
+@rinternals{TrillSpanner}
index 7a7e30662efff1c2fbe1d295bfcf7bd9c4380662..76e492a7007c196810cb2fd63f7e22cbc4fb0259 100644 (file)
@@ -20,9 +20,9 @@
 
 @menu
 * ピッチ::             音符のピッチを記述、表示する
-* Rhythms::            Writing and displaying the durations of notes.
-* Expressive marks::   Adding expression to notes.
-* Repeats::            Repeat music.
+* リズム::             音符の演奏時間を記述、表示する
+* 表現記号::           音符に表現を付け加える
+* 繰り返し::           音楽の繰り返し
 * Simultaneous notes:: More than one note at once.
 * Staff notation::     Displaying staves.
 * Editorial annotations:: Special notation to increase legibility.
 
 @ignore
 @menu
-* ピッチ::             音符のピッチを記述、表示する
-* リズム::             音符の演奏時間を記述、表示する
-* 表現記号::           音符に表現を付け加える
-* 繰り返し::           音楽の繰り返し
 * 同時進行する音符::   同時に複数の音符を演奏する
 * 譜の記譜法::         譜を表示する
 * 編集者の注釈::       可読性を良くするための特別な表記
diff --git a/Documentation/ja/notation/repeats.itely b/Documentation/ja/notation/repeats.itely
new file mode 100644 (file)
index 0000000..af1519d
--- /dev/null
@@ -0,0 +1,725 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@ignore
+    Translation of GIT committish: fe4f33aca60ea7c58bc9196eac43b4acca1d4437
+
+    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.13.36"
+
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+
+@node 繰り返し
+@section 繰り返し
+@translationof Repeats
+
+@lilypondfile[quote]{repeats-headword.ly}
+
+繰り返しは音楽の主要なコンセプトであり、@c
+繰り返しのために複数の記譜法が存在します。@c
+LilyPond は以下の種類の繰り返しをサポートします:
+
+
+@table @code
+@item volta
+繰り返される音楽は描き出されませんが、繰り返しの小節線で囲まれます。@c
+繰り返しが楽曲の先頭にある場合、繰り返しの小節線は繰り返しの終端にのみ@c
+譜刻されます。@c
+繰り返し時に入れ替えて演奏される部分 (volte) は囲みの右側に譜刻されます。@c
+これは入れ替えがある繰り返しの標準的な記譜法です。
+
+@item unfold
+繰り返される音楽は、@var{repeatcount} によって指定された回数だけ、@c
+描き出されます。@c
+これは反復の多い音楽を入力するときに有用です。
+
+@item percent
+これには拍の繰り返しや小節の繰り返しがあります。@c
+スラッシュまたはパーセント記号のような外見をしています。
+
+@item tremolo
+これはトレモロの連桁を描くために使用されます。
+@end table
+
+
+@menu
+* 長い繰り返し::
+* 短い繰り返し::
+@end menu
+
+@node 長い繰り返し
+@subsection 長い繰り返し
+@translationof Long repeats
+
+このセクションでは長い (通常は複数の小節) 繰り返しを入力する方法について@c
+議論します。@c
+繰り返しには 2 つの形式があります: 繰り返し記号によって囲まれる繰り返しと、@c
+描き出される繰り返し -- これは反復の多い音楽を入力するために使用されます
+-- です。@c
+繰り返し記号を手動で制御することもできます。
+
+@menu
+* 通常の繰り返し::
+* 手動の繰り返し記号::
+* 繰り返しを描き出す::
+@end menu
+
+@c 未訳
+@cindex volta
+@cindex prima volta
+@cindex seconda volta
+@cindex volta, prima
+@cindex volta, seconda
+@cindex repeat, normal
+@cindex normal repeat
+@cindex repeat with alternate endings
+@cindex alternate endings
+@funindex \repeat
+@funindex \alternative
+@funindex \partial
+
+@node 通常の繰り返し
+@unnumberedsubsubsec 通常の繰り返し
+@translationof Normal repeats
+
+通常の繰り返しの構文は以下の通りです。
+
+@example
+\repeat volta @var{repeatcount} @var{musicexpr}
+@end example
+
+@noindent
+ここで、@code{@var{musicexpr}} は音楽表記です。@c
+
+入れ替えを持たない 1 回の繰り返しは以下のようになります:
+
+@lilypond[verbatim,quote,relative=2]
+\repeat volta 2 { c4 d e f }
+c2 d
+\repeat volta 2 { d4 e f g }
+@end lilypond
+
+繰り返し時に入れ替えて演奏する部分は @code{\alternative} を@c
+用いて作り出すことができます。@c
+入れ替えの各グループを波括弧で囲んで、このブロックの中に配置します。
+
+@example
+\repeat volta @var{repeatcount} @var{musicexpr}
+\alternative @{
+  @{ @var{musicexpr} @}
+@}
+@end example
+
+@noindent
+ここで、@code{@var{musicexpr}} は音楽表記です。@c
+
+繰り返し回数が入れ替え部分の数よりも多い場合、始めの方の繰り返しには@c
+最初の入れ替え部分が使用されます。
+
+繰り返しが 1 回で、入れ替えも 1 つの場合は以下のようになります:
+
+@lilypond[verbatim,quote,relative=2]
+\repeat volta 2 { c4 d e f | }
+\alternative {
+  { c2 e | }
+  { f2 g | }
+}
+c1
+@end lilypond
+
+複数の入れ替え部分を 1 回ずつ演奏する繰り返しは以下のようになります:
+
+
+@lilypond[verbatim,quote,relative=2]
+\repeat volta 4 { c4 d e f | }
+\alternative {
+  { c2 e | }
+  { f2 g | }
+}
+c1
+@end lilypond
+
+繰り返し部分を複数回繰り返す場合は以下のようになります:
+
+@lilypond[verbatim,quote,relative=2]
+\repeat volta 3 { c4 d e f | }
+\alternative {
+  { c2 e | }
+  { f2 g | }
+  { a2 g | }
+}
+c1
+@end lilypond
+
+@warning{入れ替えが複数ある場合、入れ替えの閉じ波括弧と次の入れ替えの@c
+開始の波括弧の間に何かを置くべきではありません。@c
+さもないと、予期せぬ数の入れ替えが発生します。}
+
+@warning{@code{Voice} コンテキストを明示的にインスタンス化せずに@c
+@code{@bs{}relative} を @code{@bs{}repeat} の中に配置すると、@c
+余計な譜が表示されます。@c
+@rprogram{余計な譜が表示される} を参照してください。}
+
+@cindex repeat with upbeat (上拍を持つ繰り返し)
+@cindex upbeat in a repeat (繰り返しの中にある上拍)
+@cindex anacrucis in a repeat (繰り返しの中にある弱拍)
+@cindex repeat with anacrucis (弱拍を持つ繰り返し)
+@cindex repeat with pickup (ピックアップを持つ繰り返し)
+@cindex pickup in a repeat (繰り返しの中にあるピックアップ)
+@funindex \partial
+
+繰り返しが小節の途中から始まり、入れ替え部分が無い場合、@c
+風通は繰り返しの終わりも小節の途中になります。@c
+そのため、1 つ小節に 2 つの終わりが加えられます。@c
+そのような場合、繰り返し記号は本来の小節線とは異なります。@c
+繰り返し記号を譜刻する場所で @code{\partila} コマンドや小節チェックを@c
+使わないで下さい:
+
+@c KEEP LY
+@lilypond[verbatim,quote,relative=1]
+% ここで \partial を使わないで下さい
+c4 e g  % ここで小節チェックを行わないで下さい
+% ここで \partial を使わないで下さい
+\repeat volta 4 {
+  e4 |
+  c2 e |
+  % ここで \partial を使わないで下さい
+  g4 g g  % ここで小節チェックを行わないで下さい
+}
+% ここで \partial を使わないで下さい
+g4 |
+a2 a |
+g1 |
+@end lilypond
+
+同様に、繰り返しが楽譜の先頭の部分小節から始まり、入れ替え部分を持たない場合、@c
+楽譜の先頭で @code{\partial} コマンドを配置する必要があることを除いて、@c
+上の例と同じ条件が適用されます:
+
+@c KEEP LY
+@lilypond[verbatim,quote,relative=1]
+\partial 4  % \partial が必要です
+\repeat volta 4 {
+  e4 |
+  c2 e |
+  % ここで \partial を使わないで下さい
+  g4 g g  % ここで小節チェックを行わないで下さい
+}
+% ここで \partial を使わないで下さい
+g4 |
+a2 a |
+g1 |
+@end lilypond
+
+完全な長さを持たない小節で始まる小節に入れ替え部分を付け加える場合、@c
+以下の場所で @code{Timing.measureLength} コンテキスト プロパティを@c
+手動で設定する必要があります:
+
+@itemize
+@item
+@code{\alternative} ブロック内の不完全な小節の開始点。@c
+通常、これは (たいていの場合は) 最後の入れ替え部分を除く、@c
+各入れ替え部分の最後の小節になります。
+
+@item
+最初の入れ替え部分を除く、各入れ替え部分の開始点。
+@end itemize
+
+@lilypond[verbatim,quote,relative=1]
+\partial 4
+\repeat volta 2 { e4 | c2 e | }
+\alternative {
+  {
+    f2 d |
+    \set Timing.measureLength = #(ly:make-moment 3 4)
+    g4 g g  % optional bar check is allowed here
+  }
+  {
+    \set Timing.measureLength = #(ly:make-moment 4 4)
+    a2 a |
+  }
+}
+g1 |
+@end lilypond
+
+@code{measureLength} プロパティについての説明は @ref{時間管理} にあります。
+
+@cindex repeats with ties (タイを持つ繰り返し)
+@cindex alternative endings with ties (タイを持つ繰り返しの入れ替え部分)
+@cindex ties in repeats (繰り返しの中にあるタイ)
+@cindex ties in alternative endings (繰り返しの入れ替え部分の中にあるタイ)
+@funindex \repeatTie
+
+繰り返しの 2 回目の部分にタイを付け加えることもできます:
+
+@lilypond[verbatim,quote,relative=2]
+c1
+\repeat volta 2 { c4 d e f~ }
+\alternative {
+  { f2 d }
+  { f2\repeatTie f, }
+}
+@end lilypond
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{shortening-volta-brackets.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{adding-volta-brackets-to-additional-staves.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{setting-the-double-repeat-default-for-volte.ly}
+
+@seealso
+音楽用語集:
+@rglos{repeat},
+@rglos{volta}
+
+記譜法リファレンス:
+@ref{小節線},
+@ref{Modifying context plug-ins},
+@ref{時間管理}
+
+コード断片集:
+@rlsr{Repeats}
+
+内部リファレンス:
+@rinternals{VoltaBracket},
+@rinternals{RepeatedMusic},
+@rinternals{VoltaRepeatedMusic},
+@rinternals{UnfoldedRepeatedMusic}
+
+
+@knownissues
+
+@cindex repeat, ambiguous (あいまいな繰り返し)
+@cindex nested repeat (ネストされた繰り返し)
+@cindex repeat, nested (ネストされた繰り返し)
+@cindex repeat timing information (繰り返しタイミング情報)
+@cindex repeat and measure number (繰り返しと小節番号)
+@cindex timing information and repeats (タイミング情報と繰り返し)
+@cindex measure number and repeats (小節番号と繰り返し)
+@cindex repeat and slur (繰り返しとスラー)
+@cindex slur and repeat (スラーと繰り返し)
+
+@code{\repeat} ブロックから @code{\alternative} ブロックまで続くスラーは、@c
+最初の入れ替え部分に対してのみ機能します。@c
+さらに、スラーは入れ替え部分の終わりから繰り返しの先頭までをカバーすることは@c
+できません。
+
+不完全な小節で始まる繰り返しが @code{measureLength} プロパティの変更を行う@c
+@code{\alternative} ブロックを持つ場合、@c
+@code{\unfoldRepeats} を使用するとおかしな場所に小節線が引かれ、@c
+小節チェック警告が発生します。
+
+以下のようにネストされた繰り返し
+
+@example
+\repeat @dots{}
+\repeat @dots{}
+\alternative
+@end example
+
+@noindent
+はあいまいです。@c
+なぜなら、@code{\alternative} がどちらの @code{\repeat} に属するのか@c
+はっきりしないからです。@c
+このあいまいさは、常に @code{\alternative} を内側の @code{\repeat} に@c
+属させることによって解決されます。@c
+はっきりとさせるために、そのような状況では波括弧を使用すると賢明です。
+
+
+@node 手動の繰り返し記号
+@unnumberedsubsubsec 手動の繰り返し記号
+@translationof Manual repeat marks
+
+@cindex manual repeat mark (手動の繰り返し記号)
+@cindex repeat, manual (手動の繰り返し)
+@cindex start repeat (繰り返しの開始)
+@cindex repeat, start (繰り返しの開始)
+@cindex end repeat (繰り返しの終了)
+@cindex repeat, end (繰り返しの終了)
+@cindex repeat number, changing (繰り返しの回数を変更する)
+@cindex repeat volta, changing (繰り返し volta を変更する)
+@cindex volta bracket (volta 囲み)
+@cindex bracket, volta (volta 囲み)
+@funindex repeatCommands
+@funindex start-repeat
+
+@warning{以下の手法は特殊な繰り返し構造を表示するためだけに使用され、@c
+予期しない振る舞いをする可能性があります。@c
+たいていのケースでは、繰り返しは標準の @code{@bs{}repeat} コマンドを用いるか、@c
+適切な小節線を譜刻することによって作成すべきです。@c
+更なる情報は、@ref{小節線} を参照してください。}
+
+プロパティ @code{repeatCommands} を用いて繰り返しのレイアウトを@c
+制御することができます。@c
+このプロパティの値は繰り返しコマンドの Scheme リストです。
+
+@table @code
+@item start-repeat
+@code{|:} 小節線を譜刻します。
+
+@lilypond[verbatim,quote,relative=2]
+c1
+\set Score.repeatCommands = #'(start-repeat)
+d4 e f g
+c1
+@end lilypond
+
+標準の譜刻習慣に従い、楽曲の先頭では繰り返し記号は譜刻されません。
+
+@item end-repeat
+@code{:|} 小節線を譜刻します。
+
+@lilypond[verbatim,quote,relative=2]
+c1
+d4 e f g
+\set Score.repeatCommands = #'(end-repeat)
+c1
+@end lilypond
+
+@item (volta @var{number}) ... (volta #f)
+指定された番号を持つ新しい volta を作成します。@c
+Volta 囲みは明示的に終了させる必要があります。@c
+さもなければ、譜刻されません。
+
+@lilypond[verbatim,quote,relative=2]
+f4 g a b
+\set Score.repeatCommands = #'((volta "2"))
+g4 a g a
+\set Score.repeatCommands = #'((volta #f))
+c1
+@end lilypond
+
+@end table
+
+複数の繰り返しコマンドが同時に発生することもあります:
+
+@lilypond[verbatim,quote,relative=2]
+f4 g a b
+\set Score.repeatCommands = #'((volta "2, 5") end-repeat)
+g4 a g a
+c1
+\set Score.repeatCommands = #'((volta #f) (volta "95") end-repeat)
+b1
+\set Score.repeatCommands = #'((volta #f))
+@end lilypond
+
+@cindex volta bracket with text (テキストを持つ volta 囲み)
+@cindex text in volta bracket (volta 囲みの中にあるテキスト)
+
+テキストを volta 囲みに含めることができます。@c
+テキストに使用できるのは数字やマークアップ テキストです。@c
+@ref{Formatting text} を参照してください。@c
+マークアップ テキストを使用するための最も簡単な方法は、最初にマークアップを@c
+定義し、それからそのマークアップを Scheme リストに含める方法です。
+
+@lilypond[verbatim,quote]
+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))
+}
+@end lilypond
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{printing-a-repeat-sign-at-the-beginning-of-a-piece.ly}
+
+
+@seealso
+記譜法リファレンス:
+@ref{小節線},
+@ref{Formatting text}
+
+コード断片集:
+@rlsr{Repeats}
+
+内部リファレンス:
+@rinternals{VoltaBracket},
+@rinternals{RepeatedMusic},
+@rinternals{VoltaRepeatedMusic}
+
+
+@node 繰り返しを描き出す
+@unnumberedsubsubsec 繰り返しを描き出す
+@translationof Written-out repeats
+
+@cindex written-out repeats (繰り返しを描き出す)
+@cindex repetitious music (反復の多い音楽)
+@cindex repeats, written-out (繰り返しを描き出す)
+@cindex repeat, unfold (繰り返しを展開する)
+@cindex unfold music (音楽を展開する)
+@cindex unfold repeat (繰り返しを展開する)
+@cindex unfold repeat with alternate endings (入れ替え部分のある繰り返しを展開する)
+@cindex unfold music with alternate endings (入れ替え部分のある音楽を展開する)
+@cindex alternate ending in written-out repeats (描き出される繰り返しの中にある入れ替え部分)
+@funindex unfold
+
+@code{unfold} コマンドを用いることにより、@c
+繰り返しを単に反復する音楽を描き出すために使用することができます。@c
+構文は以下の通りです:
+
+@example
+\repeat unfold @var{repeatcount} @var{musicexpr}
+@end example
+
+ここで、@code{@var{musicexpr}} は音楽表記であり、@code{@var{repeatcount}} は
+@code{@var{musicexpr}} を繰り返す回数です。
+
+@lilypond[verbatim,quote,relative=2]
+\repeat unfold 2 { c4 d e f }
+c1
+@end lilypond
+
+入れ替え部分がある繰り返しを展開することもできます。@c
+
+@lilypond[verbatim,quote,relative=2]
+\repeat unfold 2 { c4 d e f }
+\alternative {
+  { c2 g' }
+  { c,2 b }
+}
+c1
+@end lilypond
+
+繰り返し回数が入れ替え部分の数よりも多い場合、@c
+最初の入れ替え部分が複数回使用して、入れ替え数と繰り返し回数を合わせます。
+
+@lilypond[verbatim,quote,relative=2]
+\repeat unfold 4 { c4 d e f }
+\alternative {
+  { c2 g' }
+  { c,2 b }
+  { e2 d }
+ }
+c1
+@end lilypond
+入れ替え部分の数が繰り返し回数よりも多い場合、@c
+最初の入れ替え部分が使用され、残りの繰り返し部分は無視され、譜刻されません。
+
+@lilypond[verbatim,quote,relative=2]
+\repeat unfold 2 { c4 d e f }
+\alternative {
+  { c2 g' }
+  { c,2 b }
+  { e2 d }
+}
+c1
+@end lilypond
+
+複数の @code{unfold} 関数をネストすることも可能です。@c
+(@code{unfold} は入れ替え部分を持っていても、持っていなくても構いません。)
+
+@lilypond[verbatim,quote,relative=2]
+\repeat unfold 2 {
+  \repeat unfold 2 { c4 d e f }
+  \alternative {
+    { c2 g' }
+    { c,2 b }
+  }
+}
+c1
+@end lilypond
+
+@warning{@code{Voice} コンテキストを明示的にインスタンス化せずに@c
+@code{@bs{}relative} を @code{@bs{}repeat} の中に配置すると、@c
+余計な譜が表示されます。@c
+@rprogram{余計な譜が表示される} を参照してください。}
+
+
+@seealso
+コード断片集:
+@rlsr{Repeats}
+
+内部リファレンス:
+@rinternals{RepeatedMusic},
+@rinternals{UnfoldedRepeatedMusic}
+
+
+@node 短い繰り返し
+@subsection 短い繰り返し
+@translationof Short repeats
+
+このセクションでは、短い繰り返しを入力する方法について議論します。@c
+短い繰り返しには 2 つの形式があります:
+単一の音符、単一の小節あるいは 2 小節の繰り返しを表す@c
+スラッシュまたはパーセント記号と、トレモロです。
+
+@menu
+* パーセント繰り返し::
+* トレモロの繰り返し::
+@end menu
+
+@node パーセント繰り返し
+@unnumberedsubsubsec パーセント繰り返し
+@translationof Percent repeats
+
+@cindex percent repeats (パーセント繰り返し)
+@cindex measure repeats (小節の繰り返し)
+@cindex repeat, percent (パーセント繰り返し)
+@cindex repeat, measure (小節の繰り返し)
+@cindex repeat, short (短い繰り返し)
+@funindex \repeat percent
+@funindex percent
+
+繰り返される短いパターンは 1 回だけ譜刻され、@c
+繰り返しは特殊な記号で置き換えられます。
+
+構文は以下の通りです
+
+@example
+\repeat percent @var{number} @var{musicexpr}
+@end example
+
+@noindent
+ここで、@code{@var{musicexpr}} は音楽表記です。
+
+1 小節よりも短いパターンはスラッシュで置き換えられます。
+
+@lilypond[verbatim,quote,relative=2]
+\repeat percent 4 { c8 d }
+\repeat percent 4 { c4 }
+\repeat percent 2 { c2 }
+@end lilypond
+
+1 または 2 小節のパターンはパーセントのような記号で置き換えられます。
+
+@lilypond[verbatim,quote,relative=2]
+\repeat percent 3 { c4 d e f }
+\repeat percent 4 { c2 d }
+@end lilypond
+
+@lilypond[verbatim,quote,relative=2]
+\repeat percent 3 { c4 d e f | c2 g' }
+@end lilypond
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{percent-repeat-counter.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{percent-repeat-count-visibility.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{isolated-percent-repeats.ly}
+
+
+@seealso
+音楽用語集:
+@rglos{percent repeat},
+@rglos{simile}
+
+コード断片集:
+@rlsr{Repeats}
+
+内部リファレンス:
+@rinternals{RepeatSlash},
+@rinternals{PercentRepeat},
+@rinternals{DoublePercentRepeat},
+@rinternals{DoublePercentRepeatCounter},
+@rinternals{PercentRepeatCounter},
+@rinternals{PercentRepeatedMusic}
+
+
+@knownissues
+
+パーセント繰り返しは 3 種類だけサポートされます:
+単一の拍を表す単線のスラッシュ (繰り返される音符の演奏時間とは関係ありません)、@c
+1 小節を表す単線の付点スラッシュ、@c
+それに 2 小節を表す 2 重線の付点スラッシュ
+-- これは小節線の上に譜刻されます -- です。@c
+16 分音符やそれよりも短い音符から成る単一拍の繰り返しを表す多重線スラッシュや、@c
+さまざまな演奏時間の音符から成る単一拍の繰り返しを表す
+2 重線の付点スラッシュはサポートされません。
+
+
+@node トレモロの繰り返し
+@unnumberedsubsubsec トレモロの繰り返し
+@translationof Tremolo repeats
+
+@cindex tremolo beams (トレモロの連桁)
+@cindex tremolo (トレモロ)
+@cindex repeat, tremolo (トレモロの繰り返し)
+@funindex \repeat tremolo
+@funindex tremolo
+
+トレモロには 2 つの形式があります:
+2 つの和音あるいは 2 つの音符を交互に演奏するものと、@c
+単一の音符あるいは和音を素早く繰り返すものです。@c
+交互に演奏するトレモロは、@c
+音符あるいは和音の間に多重連桁を付け加えることによって示され、@c
+一方、単一の音符を素早く繰り返すトレモロは単一の音符に@c
+多重連桁あるいは多重スラッシュを付け加えることによって示されます。
+
+2 つの音符の間にトレモロ記号を配置するには、トレモロ スタイルの @code{\repeat}
+を使用します:
+
+@lilypond[quote,verbatim,relative=2]
+\repeat tremolo 8 { c16 d }
+\repeat tremolo 6 { c16 d }
+\repeat tremolo 2 { c16 d }
+@end lilypond
+
+@code{\repeat tremolo} の構文では、@c
+波括弧の中にある音符の数がちょうど 2 つであること、@c
+それに、繰り返しの回数が普通の音符あるいは付点音符として表すことができる@c
+音価に相当することが必須です。@c
+それゆえ、@code{\repeat tremolo 7} は有効であり、2 重付点音符を作り出します。@c
+しかしながら、@code{\repeat tremolo 9} は無効です。
+
+トレモロの演奏時間は、@c
+波括弧で囲まれた音楽表記の演奏時間に繰り返し回数を掛けたものに等しいです:
+@code{\repeat tremolo 8 @{ c16 d16 @}} は全音符のトレモロであり、@c
+トレモロの連桁でつながれた 2 つの全音符として譜刻されます。
+
+単一の音符上にトレモロ記号を配置する方法は 2 つあります。@c
+@code{\repeat tremolo} 構文をここでも使用します
+-- この場合、音符を波括弧で囲むべきではありません:
+
+@lilypond[quote,verbatim,ragged-right]
+\repeat tremolo 4 c'16
+@end lilypond
+
+@cindex tremolo marks (トレモロ記号)
+@funindex tremoloFlags
+@funindex :
+
+音符の後に @code{:@var{N}} を付け加えることによって@c
+同じ出力を得ることができます。@c
+@code{@var{N}} は細部の演奏時間を表し、8 以上である必要があります。@c
+@code{@var{N}} が 8 である場合、音符の符幹に 1 本の連桁が付け加えられます。@c
+@code{@var{N}} が省略された場合、
+最後の値 (@code{tremoloFlags} に保存されています) が使用されます:
+
+@lilypond[quote,verbatim,relative=2]
+c2:8 c:32
+c: c:
+@end lilypond
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{cross-staff-tremolos.ly}
+
+
+@seealso
+コード断片集:
+@rlsr{Repeats}
+
+@cindex tremolo, cross-staff (譜を跨ぐトレモロ)
+@cindex cross-staff tremolo (譜を跨ぐトレモロ)
diff --git a/Documentation/ja/notation/rhythms.itely b/Documentation/ja/notation/rhythms.itely
new file mode 100644 (file)
index 0000000..b90f533
--- /dev/null
@@ -0,0 +1,3383 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
+@ignore
+    Translation of GIT committish: 1f655fba7d94feb67f846785f47ab6fb20dc2e59
+
+    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.13.44"
+
+@c Translators: Yoshiki Sawada
+@c Translation status: post-GDP
+
+
+@node リズム
+@section リズム
+@translationof Rhythms
+
+@lilypondfile[quote]{rhythms-headword.ly}
+
+このセクションではリズム、休符、演奏時間、連桁、小節について議論します。
+
+@menu
+* リズムを記述する::
+* 休符を記述する::
+* リズムを表示する::
+* 連桁::
+* 小節::
+* 特殊なリズム関連事項::
+@end menu
+
+
+@node リズムを記述する
+@subsection リズムを記述する
+@translationof Writing rhythms
+
+@menu
+* 演奏時間::
+* 連符::
+* 演奏時間を変更する::
+* タイ::
+@end menu
+
+@node 演奏時間
+@unnumberedsubsubsec 演奏時間
+@translationof Durations
+
+@cindex durations, of notes (音符の演奏時間)
+@cindex note durations (音符の演奏時間)
+@cindex length of notes (音符の長さ)
+@cindex note lengths (音符の長さ)
+
+@funindex \longa
+@funindex longa
+@funindex \breve
+@funindex breve
+@funindex \maxima
+@funindex maxima
+
+演奏時間は数とドットで指定されます。@c
+演奏時間はその演奏時間の逆数で入力されます。@c
+例えば、4 分音符は @code{4} で入力され (1/4 の音符だから)、半音符は @code{2}
+で入力されます (1/2 の音符だから)。@c
+全音符よりも長い音符を入力するには、@code{\longa} コマンド (全音符の 4 倍)
+と @code{\breve} コマンド (全音符の 2 倍) を使う必要があります。@c
+128 分音符のような短い音符を指定することもできます。@c
+それよりも短い音価を指定することも可能ですが、必ず連桁付きの音符となります。
+
+@c Two 64th notes are needed to obtain beams
+@lilypond[quote,verbatim,relative=2]
+\time 8/1
+c\longa c\breve c1 c2
+c4 c8 c16 c32 c64 c128 c128
+@end lilypond
+
+同じ例で自動連桁を off にしてみます。
+
+@c not strictly "writing rhythms"; more of a "displaying" thing,
+@c but it's ok here.  -gp
+@lilypond[quote,verbatim,relative=2]
+\time 8/1
+\autoBeamOff
+c\longa c\breve c1 c2
+c4 c8 c16 c32 c64 c128 c128
+@end lilypond
+
+全音符の 8 倍の演奏時間を持つ音符は
+@code{\maxima} を使って入力することができます。@c
+しかしながら、これは古代音楽表記でのみサポートされます。@c
+詳細は @ref{Ancient notation} を参照してください。
+
+@cindex duration, default (デフォルトの演奏時間)
+@cindex default note duration (デフォルトの音符演奏時間)
+@cindex note duration, default (デフォルトの音符演奏時間)
+
+演奏時間を省略した場合、前に入力された演奏時間にセットされます。@c
+最初の音符のデフォルト値は 4 分音符です。
+
+@lilypond[quote,verbatim,relative=2]
+a a a2 a a4 a a1 a
+@end lilypond
+
+@cindex notes, dotted (付点音符)
+@cindex dotted notes (付点音符)
+@cindex notes, double-dotted (2 重付点音符)
+@cindex double-dotted notes (2 重付点音符)
+
+@funindex .
+
+付点音符の演奏時間を得るには、演奏時間の後にドット (@code{.}) を置きます。@c
+2 重付点音符は 2 つのドットを置き、3 重付点音符は 3 つのドットなどとなります。
+
+@lilypond[quote,verbatim,relative=2]
+a4 b c4. b8 a4. b4.. c8.
+@end lilypond
+
+演奏時間の中には 2の倍数の演奏時間とドットだけでは表せないものもあります。@c
+それらを表すには 2 つかそれ以上の音符をタイでつなげるしかありません。@c
+詳細は @ref{タイ} を参照してください。
+
+歌詞の音節に対して演奏時間を指定する方法、歌詞を音符に揃える方法については
+@ref{Vocal music} を参照してください。
+
+オプションとして、音符を音符の演奏時間に厳密に比例させた間隔で@c
+配置することができます。@c
+このオプションとプロポーショナル表記を制御するその他の設定についての@c
+詳細は @ref{Proportional notation} を参照してください。
+
+@funindex \dotsUp
+@funindex dotsUp
+@funindex \dotsDown
+@funindex dotsDown
+@funindex \dotsNeutral
+@funindex dotsNeutral
+
+通常、多声でない限り、ドットは譜線を避けるために上に移動させられます。@c
+ある特定のドットの移動方向を手動で指定するための定義済みコマンドがあります
+-- 詳細は @ref{Direction and placement} を参照してください。
+
+
+@predefined
+@code{\autoBeamOn},
+@code{\autoBeamOff},
+@code{\dotsUp},
+@code{\dotsDown},
+@code{\dotsNeutral}
+@endpredefined
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-the-number-of-augmentation-dots-per-note.ly}
+
+
+@seealso
+音楽用語集:
+@rglos{breve},
+@rglos{longa},
+@rglos{maxima},
+@rglos{note value},
+@rglos{Duration names notes and rests}
+
+記譜法リファレンス:
+@ref{自動連桁},
+@ref{タイ},
+@ref{リズムを記述する},
+@ref{休符を記述する},
+@ref{Vocal music},
+@ref{Ancient notation},
+@ref{Proportional notation}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{Dots},
+@rinternals{DotColumn}
+
+
+@knownissues
+
+@c Deliberately duplicated in Durations and Rests.  -gp
+休符の演奏時間には基本的に限界がありません (最大値としても、最小値としても)。@c
+しかしながら、図柄の数には限界があります:
+128 分から全音符の 8 倍までの休符を譜刻することができます。
+
+
+@node 連符
+@unnumberedsubsubsec 連符
+@translationof Tuplets
+
+@cindex tuplets (連符)
+@cindex triplets (3 連符)
+
+@funindex \times
+@funindex times
+
+連符はその連符内のすべての音符の演奏時間に分数を掛け合わせる音楽表記によって@c
+作られます:
+
+@example
+\times @var{fraction} @{ @var{music} @}
+@end example
+
+@noindent
+@code{@var{music}} の演奏時間には分数 @code{@var{fraction}} が掛け合わされます。@c
+分数の分母が音符の上または下に譜刻され、オプションで囲みが付きます。@c
+最も一般的な連符は 3 連符であり、3 連符では 3 つの音符が音符 2 つ分の@c
+演奏時間を持ちます。@c
+そのため、3 連符で指定する分数は 2/3 です。
+
+@lilypond[quote,verbatim,relative=2]
+a2 \times 2/3 { b4 b b }
+c4 c \times 2/3 { b4 a g }
+@end lilypond
+
+@cindex tuplet bracket placement (連符囲みの配置)
+
+@funindex \tupletUp
+@funindex tupletUp
+@funindex \tupletDown
+@funindex tupletDown
+@funindex \tupletNeutral
+@funindex tupletNeutral
+
+連符囲みは手動で譜の上または下に配置することができます
+-- @ref{Direction and placement} を参照してください。
+
+連符はネストすることができます:
+
+@lilypond[quote,verbatim,relative=2]
+\autoBeamOff
+c4 \times 4/5 { f8 e f \times 2/3 { e[ f g] } } f4
+@end lilypond
+
+ネストされた連符の演奏開始点が同時である場合に、それらの連符を変更するには
+@code{\tweak} を使う必要があります。
+
+連符囲みを譜刻せずに音符の演奏時間を変更する方法は
+@ref{演奏時間を変更する} を参照してください。
+
+
+@predefined
+@code{\tupletUp},
+@code{\tupletDown},
+@code{\tupletNeutral}.
+@endpredefined
+
+
+@snippets
+
+@cindex tuplet formatting (連符のフォーマット)
+@cindex triplet formatting (3 連符のフォーマット)
+
+@funindex tupletNumberFormatFunction
+@funindex tupletSpannerDuration
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{entering-several-tuplets-using-only-one--times-command.ly}
+
+@cindex Tuplet number changes (連符の数の変更)
+
+@funindex TupletNumber
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-the-tuplet-number.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{non-default-tuplet-numbers.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{controlling-tuplet-bracket-visibility.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{permitting-line-breaks-within-beamed-tuplets.ly}
+
+
+@seealso
+音楽用語集:
+@rglos{triplet},
+@rglos{tuplet},
+@rglos{polymetric}
+
+学習マニュアル:
+@rlearning{調整手段}
+
+記譜法リファレンス:
+@ref{時間管理},
+@ref{演奏時間を変更する},
+@ref{The tweak command},
+@ref{複合拍子記譜法}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{TupletBracket},
+@rinternals{TupletNumber},
+@rinternals{TimeScaledMusic}.
+
+
+@cindex grace notes within tuplet brackets (連符囲み内の装飾小音符)
+
+@knownissues
+譜の先頭に装飾小音符とそれに続く連符を配置する場合でない限り、@c
+装飾を連符囲みの中に配置することができます。@c
+この特殊な場合では、エラーを避けるためにその装飾小音符を
+@code{\times} コマンドの前に置かなければなりません。
+
+@cindex tempo marks within tuplet brackets (連符囲み内でのテンポ記号)
+
+@code{\tempo} コマンドを持つ楽曲の先頭で連符を使う場合、@c
+@rlearning{音楽を保持するボイス} で説明されているように@c
+その音楽を明示的に @code{\new Voice} ブロックの中に入れる必要があります。
+
+
+@node 演奏時間を変更する
+@unnumberedsubsubsec 演奏時間を変更する
+@translationof Scaling durations
+
+@cindex scaling durations (演奏時間を伸縮する)
+@cindex durations, scaling (演奏時間を伸縮する)
+
+@code{*N/M} (または、@code{M} が 1 の場合は @code{*N}) を演奏時間の後に@c
+付け加えることによって、単一の音符、休符、和音の演奏時間を分数 @code{N/M} 倍
+に変更することができます。@c
+これは作り出される音符や休符の見た目には影響を与えませんが、@c
+変更された演奏時間は小節の中での位置を算出するためと、@c
+MIDI 出力での演奏時間を決定するために使用されます。@c
+掛け合わせる要素は @code{*L*M/N} などのように組み合わせることができます。
+
+以下の例では、最初の 3 つの音符で 2 拍ですが、連符囲みは譜刻されていません。
+
+@c KEEP LY
+@lilypond[quote,relative=2,verbatim]
+\time 2/4
+% 演奏時間を変更して 3 連符にします
+a4*2/3 gis4*2/3 a4*2/3
+% 通常の演奏時間
+a4 a4
+% 和音の演奏時間を 2 倍にします
+<a d>4*2
+% 演奏時間は 4 分音符ですが、見た目は 16 分音符です
+b16*4 c4
+@end lilypond
+
+空白音符の演奏時間も掛け算によって変更できます。@c
+これは @code{s1*23} のように多くの小節をスキップする場合に役に立ちます。
+
+@cindex compressing music (音楽を圧縮する)
+@cindex expanding music (音楽を伸長する)
+
+@funindex \scaleDurations
+@funindex scaleDurations
+
+同様の方法で分数を使うことで、長く伸びた音楽を圧縮することができます。@c
+それによりそれぞれの音符、和音、休符には@c
+分数が掛け合わせられたかのようになります。@c
+これは楽譜要素の見た目をそのままにして、要素の内部演奏時間に@c
+@emph{分子}/@emph{分母}を掛け合わせます。@c
+ドットの両側にはスペースが必要です。@c
+ここで、音楽がどのように圧縮され、伸張されるかを示す例を挙げます:
+
+@c KEEP LY
+@lilypond[quote,relative=2,verbatim]
+\time 2/4
+% 通常の演奏時間
+<c a>4 c8 a
+% 2/3 を掛けます
+\scaleDurations #'(2 . 3) {
+  <c a f>4. c8 a f
+}
+% 2 を掛けます
+\scaleDurations #'(2 . 1) {
+  <c' a>4 c8 b
+}
+@end lilypond
+
+このコマンドの応用例の 1 つは複合拍子表記での使用です。@c
+@ref{複合拍子記譜法} を参照してください。
+
+
+@seealso
+記譜法リファレンス:
+@ref{連符},
+@ref{不可視の休符},
+@ref{複合拍子記譜法}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+
+@node タイ
+@unnumberedsubsubsec タイ
+@translationof Ties
+
+@cindex tie (タイ)
+
+@funindex ~
+
+タイは同じピッチの隣り合う符頭を結び付けます。@c
+タイは音符の演奏時間を伸張する効果があります。
+
+@warning{タイを音楽的なフレーズを表す @emph{スラー} や
+@emph{フレージング スラー} と混同しないでください。@c
+タイは音符の演奏時間を伸ばす働きを持ち、音価を増やすドットに似ています。}
+
+タイはチルド記号 @code{~} を使って入力します:
+
+@lilypond[quote,verbatim,relative=2]
+a2 ~ a
+@end lilypond
+
+タイは、音符が小節線をまたがる場合か、リズムを表すためにドットを@c
+使うことができない場合に使用されます。@c
+さらに、以下の例のように音価が小節の区画をまたがる場合にも使用されます
+(訳者補足: 4/4 拍子では 1 小節は 1/4, 1/4, 1/4, 1/4 の区画に分けられます。@c
+下の例の第 2 小節では半音符が区画をまたがっているので良くない書き方であり、@c
+第 1 小節のように書くべきです。):
+
+@c KEEP LY
+@lilypond[verbatim,quote]
+\relative c' {
+  r8 c8 ~ c2 r4 |
+  r8^"こうすべきではありません" c2 ~ c8 r4
+}
+@end lilypond
+
+小節線をまたいで多くの音符をタイで結び付ける必要がある場合、@c
+自動音符分割を使用したほうが簡単かもしれません
+-- @ref{自動音符分割} を参照してください。@c
+これは長い音符を自動的に分割して、小節線をまたがる音符をタイで結び付けます。
+
+@cindex ties and chords (タイと和音)
+@cindex chords and ties (和音とタイ)
+
+タイを和音に適用する場合、ピッチが一致する符頭すべてが結ばれます。@c
+一致する符頭が無い場合、タイは作成されません。@c
+和音の内部にタイを置くことによって、和音の一部だけをタイで結ぶことができます。
+
+@lilypond[quote,verbatim,relative=1]
+<c e g> ~ <c e g>
+<c~ e g~ b> <c e g b>
+@end lilypond
+
+@cindex repeating ties (タイを含む繰り返し)
+@cindex ties, repeating (タイを含む繰り返し)
+@cindex volta brackets and ties (volta 囲みとタイ)
+@cindex ties and volta brackets (タイと volta 囲み)
+
+@funindex \repeatTie
+@funindex repeatTie
+
+繰り返しの 2 回目の差し替え部分はタイで結ばれた音符で始まっています。@c
+そのような繰り返し部分でのタイは以下のように指定する必要があります:
+
+@c KEEP LY
+@lilypond[quote,relative=2,verbatim]
+\repeat volta 2 { c g <c e>2 ~ }
+\alternative {
+  % 1 番目の差し替え部分: 後に続く音符は通常通りタイで結ばれます
+  { <c e>2. r4 }
+  % 2 番目の差し替え部分: 後に続く音符にはリピート用のタイを付けます
+  { <c e>2\repeatTie d4 c } }
+@end lilypond
+
+@cindex laissez vibrer (レセ ヴィブレ)
+@cindex ties, laissez vibrer (レセ ヴィブレのタイ)
+
+@funindex \laissezVibrer
+@funindex laissezVibrer
+
+@notation{L.v.}@: タイ (@notation{レセ ヴィブレ: laissez vibrer}) は@c
+音符を終端で途切れさせないということを示します。@c
+ピアノ、ハープ、他の弦楽器、それに打楽器のための楽譜で使用されます。@c
+L.v. タイは以下のように入力します:
+
+@lilypond[quote,verbatim,relative=1]
+<c f g>1\laissezVibrer
+@end lilypond
+
+@cindex ties, placement (タイの配置)
+
+@funindex \tieUp
+@funindex tieUp
+@funindex \tieDown
+@funindex tieDown
+@funindex \tieNeutral
+@funindex tieNeutral
+
+タイを手動で譜の上または下に配置することができます。
+@ref{Direction and placement} を参照してください。
+
+@cindex ties, appearance (タイの見た目)
+@cindex ties, dotted (点線のタイ)
+@cindex ties, dashed (破線のタイ)
+@cindex dashed ties (破線のタイ)
+@cindex dotted ties (点線のタイ)
+
+@funindex \tieDotted
+@funindex tieDotted
+@funindex \tieDashed
+@funindex tieDashed
+@funindex \tieSolid
+@funindex tieSolid
+
+タイを破線、点線、実線と破線の組み合わせにすることができます。
+
+@lilypond[quote, verbatim, relative=1]
+\tieDotted
+c2 ~ c
+\tieDashed
+c2 ~ c
+\tieHalfDashed
+c2 ~ c
+\tieHalfSolid
+c2 ~ c
+\tieSolid
+c2 ~ c
+@end lilypond
+
+破線パターンのカスタマイズを指定することができます:
+
+@lilypond[quote, verbatim, relative=1]
+\tieDashPattern #0.3 #0.75
+c2 ~ c
+\tieDashPattern #0.7 #1.5
+c2 ~ c
+\tieSolid
+c2 ~ c
+@end lilypond
+
+タイの破線パターン定義の構造は、スラーの破線パターン定義と同じです。@c
+複雑な破線パターンについての更なる情報は @ref{Slurs} にある@c
+コード断片集を参照してください。
+
+@predefined
+@code{\tieUp},
+@code{\tieDown},
+@code{\tieNeutral},
+@code{\tieDotted},
+@code{\tieDashed},
+@code{\tieDashPattern},
+@code{\tieHalfDashed},
+@code{\tieHalfSolid},
+@code{\tieSolid}
+@endpredefined
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{using-ties-with-arpeggios.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{engraving-ties-manually.ly}
+
+
+@seealso
+音楽用語集:
+@rglos{tie},
+@rglos{laissez vibrer}
+
+記譜法リファレンス:
+@ref{Slurs},
+@ref{自動音符分割}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{LaissezVibrerTie},
+@rinternals{LaissezVibrerTieColumn},
+@rinternals{TieColumn},
+@rinternals{Tie}
+
+
+@knownissues
+
+タイがアクティブなときに譜を切り換えても斜めのタイは作られません。
+
+タイの最中に音部記号やオクターブを変更することはきちんと定義されていません。@c
+そのような場合には、スラーを用いる方が好ましいです。
+
+
+@node 休符を記述する
+@subsection 休符を記述する
+@translationof Writing rests
+
+休符は音楽表記の中の音楽の一部として入力されます。
+
+@menu
+* 休符::
+* 不可視の休符::
+* 小節単位の休符::
+@end menu
+
+
+@node 休符
+@unnumberedsubsubsec 休符
+@translationof Rests
+
+@cindex rest (休符)
+@cindex rest, entering durations (休符の演奏時間を入力する)
+@cindex maxima rest (八全休符)
+@cindex longa rest (四全休符)
+@cindex breve rest (二全休符)
+
+@funindex \rest
+@funindex rest
+@funindex r
+@funindex \maxima
+@funindex maxima
+@funindex \longa
+@funindex longa
+@funindex \breve
+@funindex breve
+
+休符は音符名 @code{r} を持つ音符として入力されます。@c
+全休符よりも長い演奏時間を持つ休符には以下に示す定義済みコマンドを使用します:
+
+@c \time 16/1 is used to avoid spurious bar lines
+@c and long tracts of empty measures
+@c KEEP LY
+@lilypond[quote,verbatim,relative=2]
+\new Staff {
+  % この 2 本線には意味はありません
+  \time 16/1
+  \override Staff.TimeSignature #'stencil = ##f
+  % 八全休符を譜刻します。二全休符 4 つと等価です
+  r\maxima
+  % 四全休符を譜刻します。二全休符 2 つと等価です
+  r\longa
+  % 二全休符を譜刻します。
+  r\breve
+  r1 r2 r4 r8 r16 r32 r64 r128
+}
+@end lilypond
+
+@cindex rest, multi-measure (複数小節の休符)
+@cindex rest, whole-measure (全休符)
+
+全休符 -- 小節の中心に置かれます -- は複数小節の休符として@c
+入力する必要があります。@c
+複数小節の休符は多くの小節に対してと同様に単一の小節に対しても@c
+使用することができます。@c
+詳細は @ref{小節単位の休符} を参照してください。
+
+@cindex rest, specifying vertical position (休符の垂直方向の位置を指定する)
+
+休符の垂直方向の位置を明示的に指定するには、音符の後に続けて @code{\rest}
+を記述します。@c
+その音符が譜上で占める位置に、その音符の演奏時間を持つ休符が配置されます。@c
+これは多声部音楽を手動で精密にフォーマットすることを考慮したものです。@c
+なぜなら、自動休符フォーマットでは多声部音楽の休符の衝突を回避できないからです。
+
+@lilypond[quote,verbatim,relative=2]
+a4\rest d4\rest
+@end lilypond
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{rest-styles.ly}
+
+
+@seealso
+音楽用語集:
+@rglos{breve},
+@rglos{longa},
+@rglos{maxima}
+
+記譜法リファレンス:
+@ref{小節単位の休符}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{Rest}
+
+
+@knownissues
+
+@c Deliberately duplicated in Durations and Rests.  -gp
+休符の演奏時間には基本的に限界がありません (最大値としても、最小値としても)。@c
+しかしながら、図柄の数には限界があります: 128 分から全音符の 8 倍までの@c
+休符を譜刻することができます。
+
+
+@node 不可視の休符
+@unnumberedsubsubsec 不可視の休符
+@translationof Invisible rests
+
+@cindex skip (スキップ)
+@cindex invisible rest (不可視の休符)
+@cindex rest, invisible (不可視の休符)
+@cindex spacer note (空白音符)
+@cindex spacer rest (空白休符)
+
+@funindex s
+@funindex \skip
+@funindex skip
+
+不可視の休符 (@q{空白休符} とも呼ばれます) は音符名@tie{}@code{s} を@c
+持つ音符として入力することができます:
+
+@lilypond[verbatim,quote,relative=2]
+c4 c s c
+s2 c
+@end lilypond
+
+@cindex lyrics, skip (歌詞をスキップする)
+
+空白休符は音符モードと和音モードでのみ利用可能です。@c
+他のモードでは、例えば歌詞を入力している場合、音楽モーメントをスキップするには
+@code{\skip} を使用します。@c
+@code{\skip} は明示的な演奏時間を必要としますが、@c
+@code{\addlyrics} や @code{\lyricsto} を使っていて、@c
+歌詞が関係するメロディーの音符から演奏時間を得ている場合は無視されます。
+
+@lilypond[quote,verbatim,relative=2]
+<<
+  {
+    a2 \skip2 a2 a2
+  }
+  \new Lyrics {
+    \lyricmode {
+      foo2 \skip 1 bla2
+    }
+  }
+>>
+@end lilypond
+
+@code{\skip} はコマンドであるため、@c
+@code{s} とは異なり後に続く音符のデフォルト演奏時間には影響を与えません。
+
+@lilypond[quote,verbatim,relative=2]
+<<
+  {
+    \repeat unfold 8 { a4 }
+  }
+  {
+    a4 \skip 2 a |
+    s2 a
+  }
+>>
+@end lilypond
+
+
+空白休符は、音符や休符と同様に、@code{Staff} や @code{Voice} が@c
+存在しない場合に、それらを暗黙的に作成します:
+
+@lilypond[quote,verbatim,fragment]
+s1 s s
+@end lilypond
+
+@code{\skip} はただ音楽的な時間をスキップするだけです。@c
+これはいかなる種類の出力も作成しません。
+
+@c KEEP LY
+@lilypond[quote,verbatim,relative=2]
+% これは有効な入力ですが、何もしません
+\skip 1 \skip1 \skip 1
+@end lilypond
+
+
+@seealso
+学習マニュアル:
+@rlearning{オブジェクトの可視性と色}
+
+記譜法リファレンス:
+@ref{Hidden notes},
+@ref{Visibility of objects}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{SkipMusic}
+
+
+@node 小節単位の休符
+@unnumberedsubsubsec 小節単位の休符
+@translationof Full measure rests
+
+@cindex multi-measure rests (複数の小節にまたがる休符)
+@cindex full-measure rests (小節単位の休符)
+@cindex rest, multi-measure (複数の小節にまたがる休符)
+@cindex rest, full-measure (小節単位の休符)
+@cindex whole rest for a full measure (小節に対する全休符)
+@cindex rest, whole for a full measure (小節に対する全休符)
+
+@funindex R
+
+1 つまたは複数の小節に対する休符は@c
+音符名として大文字の @code{R} を持つ音符として入力します:
+
+@lilypond[quote,verbatim,relative=2]
+% 休みの小節は 1 つの小節にまとめられます
+\compressFullBarRests
+R1*4
+R1*24
+R1*4
+b2^"Tutti" b4 a4
+@end lilypond
+
+小節単位の休符の演奏時間は、音符に対する演奏時間と同じ表記を使います。@c
+複数小節にまたがる休符の演奏時間は常に小節の長さの整数倍になります。@c
+そのため、しばしばドットや分数を使う必要があります:
+
+@lilypond[quote,verbatim,relative=2]
+\compressFullBarRests
+\time 2/4
+R1 | R2 |
+\time 3/4
+R2. | R2.*2 |
+\time 13/8
+R1*13/8 | R1*13/8*12 |
+\time 10/8
+R4*5*4 |
+@end lilypond
+
+1 小節分の休符は、拍子次第で全休符または二全休符のどちらかとして、@c
+小節の中央に譜刻されます。
+
+@lilypond[quote,verbatim,relative=2]
+\time 4/4
+R1 |
+\time 6/4
+R1*3/2 |
+\time 8/4
+R1*2 |
+@end lilypond
+
+@cindex multi-measure rest, expanding (複数小節にまたがる休符を展開する)
+@cindex multi-measure rest, contracting (複数小節にまたがる休符をまとめる)
+
+@funindex \expandFullBarRests
+@funindex expandFullBarRests
+@funindex \compressFullBarRests
+@funindex compressFullBarRests
+
+デフォルトでは、複数小節にまたがる休符は@c
+休みの小節すべてを明示的に示すように譜刻される楽譜に展開されます。@c
+そうする代わりに、複数小節にまたがる休符を複数小節の休符記号を持つ単一の@c
+小節として譜刻することもできます -- 休みの小節数がその小節の上に譜刻されます。
+
+@c KEEP LY
+@lilypond[quote,verbatim,relative=2]
+% デフォルトの振る舞い
+\time 3/4 r2. | R2.*2 |
+\time 2/4 R2 |
+\time 4/4
+% 休みの小節を 1 つの小節にまとめます
+\compressFullBarRests
+r1 | R1*17 | R1*4 |
+% 休みの小節を展開します
+\expandFullBarRests
+\time 3/4
+R2.*2 |
+@end lilypond
+
+
+@cindex text on multi-measure rest (複数小節にまたがる休符上のテキスト)
+@cindex multi-measure rest, attaching text (複数小節にまたがる休符にテキストを付ける)
+@cindex script on multi-measure rest (複数小節にまたがる休符上のスクリプト)
+@cindex multi-measure rest, script (複数小節にまたがる休符上のスクリプト)
+@cindex fermata on multi-measure rest (複数小節にまたがる休符上のフェルマータ)
+@cindex multi-measure rest, attaching fermata (複数小節にまたがる休符にフェルマータを付ける)
+@cindex markup on multi-measure rest (複数小節にまたがる休符上のマークアップ)
+@cindex multi-measure rest with markup (マークアップを持つ複数小節にまたがる休符)
+
+@funindex \fermataMarkup
+@funindex fermataMarkup
+@funindex MultiMeasureRestText
+
+マークアップを複数小節にまたがる休符に付け加えることができます。@c
+フェルマータを付け加えるための定義済みコマンドとして
+@code{\fermataMarkup} が提供されています。
+
+@lilypond[quote,verbatim,relative=2]
+\compressFullBarRests
+\time 3/4
+R2.*10^\markup { \italic "ad lib." }
+R2.^\fermataMarkup
+@end lilypond
+
+@warning{
+複数小節にまたがる休符に付け加えられるマークアップはタイプ
+@code{MultiMeasureRestText} のオブジェクトであり、@c
+@code{TextScript} ではありません。@c
+オーバライドは正しいオブジェクトに対して行わなければなりません。@c
+さもないと無視されます。@c
+以下の例を見てください。
+}
+
+@c KEEP LY
+@lilypond[quote,verbatim,relative=2]
+% この例は誤ったオブジェクト名を指定しているため失敗します
+\override TextScript #'padding = #5
+R1^"wrong"
+% この例は正しいオブジェクト名が指定されています
+\override MultiMeasureRestText #'padding = #5
+R1^"right"
+@end lilypond
+
+複数小節にまたがる休符が @code{\partial} 設定の直後にある場合、@c
+小節チェックの警告が表示されないかもしれません。
+
+
+@funindex \textLengthOn
+@funindex textLengthOn
+@funindex \textLengthOff
+@funindex textLenthOff
+@funindex \fermataMarkup
+@funindex fermataMarkup
+@funindex \compressFullBarRests
+@funindex compressFullBarRests
+@funindex \expandFullBarRests
+@funindex expandFullBarRests
+
+@predefined
+@code{\textLengthOn},
+@code{\textLengthOff},
+@code{\fermataMarkup},
+@code{\compressFullBarRests},
+@code{\expandFullBarRests}
+@endpredefined
+
+
+@snippets
+
+@c 未訳
+@cindex church rest
+@cindex rest, church
+@cindex kirchenpausen
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-form-of-multi-measure-rests.ly}
+
+@cindex multi-measure rests, positioning
+@cindex positioning multi-measure rests
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{positioning-multi-measure-rests.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{multi-measure-rest-markup.ly}
+
+
+@seealso
+音楽用語集:
+@rglos{multi-measure rest}
+
+記譜法リファレンス:
+@ref{演奏時間},
+@ref{Text},
+@ref{Formatting text},
+@ref{Text scripts}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{MultiMeasureRest},
+@rinternals{MultiMeasureRestNumber},
+@rinternals{MultiMeasureRestText}
+
+
+@cindex fingerings and multi-measure rests (運指記号と複数小節にまたがる休符)
+@cindex multi-measure rests and fingerings (運指記号と複数小節にまたがる休符)
+
+@knownissues
+複数小節にまたがる休符の上に運指記号を配置すると (例えば、@code{R1*10-4})、@c
+運指の数字が休みの小節数と衝突する可能性があります。
+
+@cindex condensing rests (休符をまとめる)
+@cindex rest, condensing ordinary (通常の休符をまとめる)
+
+複数の通常の休符を自動的に単一の複数小節休符にまとめる方法はありません。
+
+@cindex rest, collisions of (休符の衝突)
+
+複数小節にまたがる休符が休符の衝突を引き起こすことはありません。
+
+
+@node リズムを表示する
+@subsection リズムを表示する
+@translationof Displaying rhythms
+
+@menu
+* 拍子::
+* メトロノーム記号::
+* 上拍::
+* 無韻律の音楽::
+* 複合拍子記譜法::
+* 自動音符分割::
+* 旋律のリズムを示す::
+@end menu
+
+@node 拍子
+@unnumberedsubsubsec 拍子
+@translationof Time signature
+
+@cindex time signature (拍子)
+@cindex meter (拍)
+
+@funindex \time
+@funindex time
+
+拍子は以下のようにセットします:
+
+@lilypond[quote,verbatim,relative=2]
+\time 2/4 c2
+\time 3/4 c2.
+@end lilypond
+
+@cindex time signature, visibility of (拍子の可視性)
+
+拍子は楽曲の始まりと拍子が変更されたときに譜刻されます。@c
+行の終わりで変更が起こる場合、警告の拍子が行の終わりに譜刻されます。@c
+デフォルトの振る舞いを変更することができます。@c
+@ref{Visibility of objects} を参照してください。
+
+@lilypond[quote,verbatim,relative=2]
+\time 2/4
+c2 c
+\break
+c c
+\break
+\time 4/4
+c c c c
+@end lilypond
+
+@cindex time signature style (拍子スタイル)
+@cindex meter style (拍スタイル)
+
+@funindex \numericTimeSignature
+@funindex numericTimeSignature
+@funindex \defaultTimeSignature
+@funindex defaultTimeSignature
+
+2/2 や 4/4 で使用される拍子は数字を使用するスタイルに変更することができます:
+
+@c KEEP LY
+@lilypond[quote,verbatim,relative=2]
+% デフォルトのスタイル
+\time 4/4 c1
+\time 2/2 c1
+% 数字を使うスタイルに変更します
+\numericTimeSignature
+\time 4/4 c1
+\time 2/2 c1
+% デフォルトのスタイルに戻します
+\defaultTimeSignature
+\time 4/4 c1
+\time 2/2 c1
+@end lilypond
+
+
+定量拍子については @ref{Mensural time signatures} でカバーされています。
+
+@cindex time signature default settings (拍子のデフォルト設定)
+@cindex autobeaming properties for time signatures (拍子のための自動連桁プロパティ)
+@cindex beaming, time signature default properties (連桁と拍子のデフォルト プロパティ)
+@funindex \overrideTimeSignatureSettings
+
+
+@predefined
+@code{\numericTimeSignature},
+@code{\defaultTimeSignature}
+@endpredefined
+
+譜刻される拍子を設定することに加えて、@c
+@code{\time} コマンドは拍子に基づくプロパティ
+@code{baseMoment}, @code{beatStructure}, それに @code{beamExceptions}
+のデフォルト値も設定します。@c
+これらのプロパティにあらかじめ定義されているデフォルト値は
+@file{scm/time-signature-settings.scm} で見つかります。@c
+既存のデフォルト値を変更したり、新しいデフォルト値を変更したりすることができます:
+
+@lilypond[quote,verbatim]
+\score {
+  \new Staff {
+    \relative c' {
+      \overrideTimeSignatureSettings
+        #'(4 . 4)  % timeSignatureFraction
+        #'(1 . 4)  % baseMomentFraction
+        #'(3 1)    % beatStructure
+        #'()       % beamExceptions
+      \time 4/4
+      \repeat unfold 8 { c8 } |
+    }
+  }
+}
+@end lilypond
+
+@code{\overrideTimeSignatureSettings} は 4 つの引数をとります:
+
+@enumerate
+
+@item
+@code{@var{timeSignatureFraction}}, 拍子を示す Scheme ペア。
+
+@item
+@code{@var{baseMomentFraction}}, 拍子の基本タイミングの単位となる@c
+分子と分母を保持する Scheme ペア。
+
+@item
+@code{@var{beatStructure}}, 小節の拍構造を示す Scheme リスト。@c
+基本タイミングを単位とします。
+
+@item
+@code{@var{beamExceptions}}, 指定された拍子でそれぞれの拍で終了しない@c
+連桁のルールを保持する配列リスト。@c
+@ref{自動連桁の振る舞いを設定する} に説明があります。
+@end enumerate
+
+@code{\overrideTimeSignatureSettings} を保持するコンテキストは、@c
+その @code{\overrideTimeSignatureSettings} 呼び出しが実行される前に@c
+インスタンス化されている必要があります。@c
+このことは、そのようなコンテキストは明示的にインスタンス化するか、@c
+そのコンテキスト内で @code{\overrideTimeSignatureSettings} の前に@c
+音楽を置いておく必要があるということを意味します:
+
+@c KEEP LY
+@lilypond[quote,verbatim]
+\score {
+  \relative c' {
+    % コンテキストがまだインスタンス化されていないため、この呼び出しは失敗します
+    \overrideTimeSignatureSettings
+      #'(4 . 4)  % timeSignatureFraction
+      #'(1 . 4)  % baseMomentFraction
+      #'(3 1)    % beatStructure
+      #'()       % beamExceptions
+    \time 4/4
+    c8^\markup {"Beamed (2 2)"}
+    \repeat unfold 7 { c8 } |
+    % この呼び出しは成功します
+    \overrideTimeSignatureSettings
+      #'(4 . 4)  % timeSignatureFraction
+      #'(1 . 4)  % baseMomentFraction
+      #'(3 1)    % beatStructure
+      #'()       % beamExceptions
+    \time 4/4
+    c8^\markup {"Beamed (3 1)"}
+    \repeat unfold 7 { c8 } |
+  }
+}
+@end lilypond
+
+@cindex time signature properties, restoring default values (拍子プロパティをデフォルト値に戻す)
+@cindex restoring default properties for time signatures (拍子をデフォルト プロパティに戻す)
+@funindex \revertTimeSignatureSettings
+
+デフォルトの拍子プロパティ値の変更を元の値に戻すことができます:
+
+@lilypond[quote,verbatim]
+\score{
+  \relative c' {
+    \repeat unfold 8 { c8 } |
+    \overrideTimeSignatureSettings
+      #'(4 . 4)  % timeSignatureFraction
+      #'(1 . 4)  % baseMomentFraction
+      #'(3 1)    % beatStructure
+      #'()       % beamExceptions
+    \time 4/4
+    \repeat unfold 8 { c8 } |
+    \revertTimeSignatureSettings #'(4 . 4)
+    \time 4/4
+    \repeat unfold 8 { c8 } |
+  }
+}
+@end lilypond
+
+@code{Timing_translator} と @code{Default_bar_line_engraver} を@c
+@code{Score} コンテキストから @code{Staff} コンテキストに移動させることにより、@c
+異なる譜に対して異なる値のデフォルト拍子プロパティを割り当てることができます。
+
+@lilypond[quote, verbatim]
+\score {
+  \new StaffGroup <<
+     \new Staff {
+        \overrideTimeSignatureSettings
+          #'(4 . 4)  % timeSignatureFraction
+          #'(1 . 4)  % baseMomentFraction
+          #'(3 1)    % beatStructure
+          #'()       % beamExceptions
+        \time 4/4
+        \repeat unfold 8 {c''8}
+     }
+     \new Staff {
+        \overrideTimeSignatureSettings
+          #'(4 . 4)  % timeSignatureFraction
+          #'(1 . 4)  % baseMomentFraction
+          #'(1 3)    % beatStructure
+          #'()       % beamExceptions
+        \time 4/4
+        \repeat unfold 8 {c''8}
+     }
+  >>
+  \layout {
+    \context {
+      \Score
+      \remove "Timing_translator"
+      \remove "Default_bar_line_engraver"
+    }
+    \context {
+      \Staff
+      \consists "Timing_translator"
+      \consists "Default_bar_line_engraver"
+    }
+  }
+}
+@end lilypond
+
+@predefined
+@code{\numericTimeSignature},
+@code{\defaultTimeSignature}
+@endpredefined
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-the-time-signature-without-affecting-the-beaming.ly}
+
+@cindex compound time signatures
+@cindex time signature, compound
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{compound-time-signatures.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.ly}
+
+
+@seealso
+音楽用語集:
+@rglos{time signature}
+
+記譜法リファレンス:
+@ref{Mensural time signatures},
+@ref{時間管理}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{TimeSignature},
+@rinternals{Timing_translator}
+
+
+@node メトロノーム記号
+@unnumberedsubsubsec メトロノーム記号
+@translationof Metronome marks
+
+@cindex tempo (テンポ)
+@cindex beats per minute (1 分毎の拍数)
+@cindex metronome mark (メトロノーム記号)
+@cindex metronome marking with text (テキストを持つメトロノーム記号)
+
+@funindex \tempo
+@funindex tempo
+
+基本的なメトロノーム記号は単純に以下のように記述します:
+
+@lilypond[verbatim,quote,relative=1]
+\tempo 4 = 120
+c2 d
+e4. d8 c2
+@end lilypond
+
+メトロノーム記号を 2 つの数の範囲として譜刻することもできます:
+
+@lilypond[verbatim,quote,relative=1]
+\tempo 4 = 40 ~ 46
+c4. e8 a4 g
+b,2 d4 r
+@end lilypond
+
+テキストを持つテンポ指示にすこともできます:
+
+@lilypond[verbatim,quote,relative=2]
+\tempo "Allegretto"
+c4 e d c
+b4. a16 b c4 r4
+@end lilypond
+
+メトロノーム記号とテキストを組み合わせると、@c
+メトロノーム記号は自動的に括弧で囲まれます:
+
+@lilypond[verbatim,quote,relative=2]
+\tempo "Allegro" 4 = 160
+g4 c d e
+d4 b g2
+@end lilypond
+
+一般に、テキストを任意のマークアップ オブジェクトにすることができます:
+
+@lilypond[verbatim,quote,relative=2]
+\tempo \markup { \italic Faster } 4 = 132
+a8-. r8 b-. r gis-. r a-. r
+@end lilypond
+
+テキストを伴わないメトロノーム記号を括弧で囲むには、@c
+空の文字列を含めて記述します:
+
+@lilypond[verbatim,quote,relative=2]
+\tempo "" 8 = 96
+d4 g e c
+@end lilypond
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{printing-metronome-and-rehearsal-marks-below-the-staff.ly}
+
+@c perhaps also an example of how to move it horizontally?
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{changing-the-tempo-without-a-metronome-mark.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{creating-metronome-marks-in-markup-mode.ly}
+
+詳細は @ref{Formatting text} を参照してください。
+
+
+@seealso
+音楽用語集:
+@rglos{metronome},
+@rglos{metronomic indication},
+@rglos{tempo indication},
+@rglos{metronome mark}
+
+記譜法リファレンス:
+@ref{Formatting text},
+@ref{MIDI output}
+
+コード断片集:
+@rlsr{Staff notation}
+
+内部リファレンス:
+@rinternals{MetronomeMark}
+
+
+@node 上拍
+@unnumberedsubsubsec 上拍
+@translationof Upbeats
+
+@cindex anacrusis (弱拍)
+@cindex upbeat (上拍)
+@cindex partial measure (部分小節)
+@cindex measure, partial (部分小節)
+@cindex pickup measure (ピックアップ小節)
+@cindex measure, change length (小節の長さの変更)
+
+@funindex measurePosition
+@funindex \partial
+@funindex partial
+
+弱拍や上拍などのような部分小節またはピックアップ小節は、@c
+@code{\partial} コマンドを使って入力します。@c
+以下の構文を使用します:
+
+@example
+\partial @var{duration}
+@end example
+
+@noindent
+@code{duration} は、最初の完全な長さを持つ小節の前に置かれる小節の長さです:
+
+@lilypond[quote,verbatim,relative=2]
+\partial 4 e4 |
+a2. c,4 |
+@end lilypond
+
+部分小節は、完全な長さを持つ小節よりも短い演奏時間なら、@c
+どのような長さでも持つことができます:
+
+@lilypond[quote,verbatim,relative=2]
+\partial 4 e4 |
+a2. c,4 |
+@end lilypond
+
+部分小節は 1 小節よりも短い任意の演奏時間にすることができます:
+
+@lilypond[quote,verbatim,relative=2]
+\partial 8*3 c8 d e |
+a2. c,4 |
+@end lilypond
+
+内部的には、@code{\partial @var{duration}} は以下のように翻訳されます:
+
+@example
+\set Timing.measurePosition -@var{duration}
+@end example
+
+例えば、@code{\partial 8*3} は以下のようになります:
+
+@example
+\set Timing.measurePosition = #(ly:make-moment -3 8)
+@end example
+
+プロパティ @code{measurePosition} は、@c
+ある時点でその小節はどれくらい演奏済みになっているかを示す有理数を保持します。@c
+このプロパティは @code{\partial} によって負の数にセットされるということに@c
+注意してください:
+すなわち、@code{\partial 4} は内部的に @code{-4} に翻訳され、@c
+@qq{その小節には 4 分音符が残っている} という意味になります。
+
+
+@seealso
+音楽用語集:
+@rglos{anacrusis}
+
+記譜法リファレンス:
+@ref{装飾小音符}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{Timing_translator}
+
+
+@knownissues
+
+@code{\partial} コマンドは楽曲の開始時で使用されることだけを@c
+意図したものです。@c
+楽曲の途中でこのコマンドを使用した場合、@c
+奇妙な警告がいくつか発生するかもしれません。@c
+曲の途中では @code{\set Timing.measurePosition} を使用してください。
+
+@node 無韻律の音楽
+@unnumberedsubsubsec 無韻律の音楽
+@translationof Unmetered music
+
+@cindex bar lines, turning off (小節線を付けない)
+@cindex bar numbering, turning off (小節の付番を off にする)
+@cindex cadenza (カデンツァ)
+@cindex unmetered music (無韻律の音楽)
+
+@funindex \cadenzaOn
+@funindex cadenzaOn
+@funindex \cadenzaOff
+@funindex cadenzaOff
+
+小節線と小節番号は自動的に算出されます。@c
+無韻律の音楽 (例えば、カデンツァの一部) では、この機能は望ましくありません。@c
+小節線と小節番号の自動算出を off にするには@c
+コマンド @code{\cadenzaOn} を使用し、@c
+再び on にするには @code{\cadenzaOff} を使用します。
+
+@lilypond[verbatim,relative=2,quote]
+c4 d e d
+\cadenzaOn
+c4 c d8[ d d] f4 g4.
+\cadenzaOff
+\bar "|"
+d4 e d c
+@end lilypond
+
+小節の付番は、カデンツァが存在しないかのように、@c
+カデンツァの終了点で再開されます:
+
+@lilypond[verbatim,relative=2,quote]
+% すべての小節番号を表示します
+\override Score.BarNumber #'break-visibility = #all-visible
+c4 d e d
+\cadenzaOn
+c4 c d8[ d d] f4 g4.
+\cadenzaOff
+\bar "|"
+d4 e d c
+@end lilypond
+
+@cindex beaming in cadenzas (カデンツァでの連桁)
+@cindex beaming in unmetered music (無韻律の音楽での連桁)
+@cindex cadenza, beaming in (カデンツァでの連桁)
+@cindex unmetered music, beaming in (無韻律の音楽での連桁)
+
+自動連桁は @code{\cadenzaOn} で off になり、@c
+@code{\cadenzaOff} で on になります。@c
+このため、カデンツァ内の連桁はすべて手動で入力する必要があります
+(@ref{手動連桁})。
+
+@lilypond[verbatim,relative=2,quote]
+\repeat unfold 8 { c8 }
+\cadenzaOn
+\repeat unfold 5 { c8 }
+\bar"|"
+\cadenzaOff
+\repeat unfold 8 { c8 }
+@end lilypond
+
+これらの定義済みコマンドは、@c
+たとえ @code{Voice} コンテキストの 1 つの中に配置したとしても、@c
+楽譜のすべての譜に影響を与えるということに注意してください。@c
+これを変更するには、@ref{複合拍子記譜法} で示されているように、@c
+@code{Timing_translator} を @code{Score} コンテキストから
+@code{Staff} コンテキストに移動させます。
+
+@predefined
+@code{\cadenzaOn},
+@code{\cadenzaOff}
+@endpredefined
+
+
+@seealso
+音楽用語集:
+@rglos{cadenza}
+
+記譜法リファレンス:
+@ref{Visibility of objects}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+
+@cindex cadenza line breaks (カデンツァでの改行)
+@cindex cadenza page breaks (カデンツァでの改ページ)
+@cindex unmetered music, line breaks (無韻律の音楽での改行)
+@cindex unmetered music, page breaks (無韻律の音楽での改ページ)
+@cindex breaks in unmetered music (無韻律の音楽での改行、改ページ)
+@cindex line breaks in cadenzas (カデンツァでの改行)
+@cindex page breaks in cadenzas (カデンツァでの改ページ)
+@cindex line breaks in unmetered music (無韻律の音楽での改行)
+@cindex page breaks in unmetered music (無韻律の音楽での改ページ)
+
+@knownissues
+
+LilyPond は改行と改ページを小節線の箇所にのみ挿入します。@c
+無韻律の音楽が譜の行の終わりまでに終了しないのならば、@c
+以下のように不可視の小節線を挿入して、@c
+改行または改ページを起こすことができる場所であることを示す必要があります:
+
+@example
+\bar ""
+@end example
+
+@code{\cadenzaOn} で楽曲を始める場合、@c
+@code{Voice} コンテキストを明示的に作成すべきです。@c
+さもないと、奇妙なエラーが発生する可能性があります。
+
+@example
+\new Voice @{
+  \relative c' @{
+    \cadenzaOn
+    c16[^"Solo Free Time" d e f] g2.
+    \bar "||"
+    \cadenzaOff
+  @}
+@}
+@end example
+
+
+@node 複合拍子記譜法
+@unnumberedsubsubsec 複合拍子記譜法
+@translationof Polymetric notation
+
+@c This section necessarily uses \set
+@c This is acceptable  -td
+
+@cindex double time signatures (2 重拍子)
+@cindex signatures, polymetric (複合韻律)
+@cindex time signatures, polymetric (複合拍子)
+@cindex time signatures, double (2 重拍子)
+@cindex polymetric signatures (複合韻律)
+@cindex meter, polymetric (複合韻律拍)
+
+@funindex timeSignatureFraction
+@funindex \scaleDurations
+@funindex scaleDurations
+@funindex \times
+@funindex times
+
+複合拍子記譜法がサポートされます。@c
+明示的な複合拍子と、拍子指定を変更して音符の演奏時間を@c
+伸縮することによる複合拍子のどちらもです。
+
+
+@strong{@i{それぞれの譜は異なる拍子を持ち、小節の長さは等価である場合}}
+
+この記譜を作成するには、各譜に共通の拍子をセットし、@c
+@code{timeSignatureFraction} に望みの分数をセットすることによって記号を@c
+手動で置き換え、各譜の演奏時間を伸縮させて共通の拍子に合わせます
+-- @ref{拍子} を参照してください。@c
+演奏時間の伸縮は @code{\scaleDurations} で行います。@c
+このコマンドの使用方法は @code{\times} と同じですが、連符囲みを@c
+作成しません -- @ref{演奏時間を変更する} を参照してください。
+
+@cindex beaming in polymetric music (複合拍子音楽での連桁)
+@cindex beaming in polymetric meter (複合拍での連桁)
+
+この例では、3/4, 9/8 それに 10/8 の拍子を持つ音楽が並列に並べられています。@c
+2 番目の譜では、演奏時間に 2/3 が掛けられ、それによって 2/3 * 9/8 = 3/4 と@c
+なっています。@c
+3 番目の譜では、演奏時間に 3/5 が掛けられ、それによって 3/5 * 10/8 = 3/4 と@c
+なっています。@c
+演奏時間の伸縮は自動連桁の規則に影響を与えるため、しばしば手動で連桁を@c
+挿入することが必要になります。
+
+@lilypond[quote,verbatim]
+\relative c' <<
+  \new Staff {
+    \time 3/4
+    c4 c c |
+    c c c |
+  }
+  \new Staff {
+    \time 3/4
+    \set Staff.timeSignatureFraction = #'(9 . 8)
+    \scaleDurations #'(2 . 3)
+    \repeat unfold 6 { c8[ c c] }
+  }
+  \new Staff {
+    \time 3/4
+    \set Staff.timeSignatureFraction = #'(10 . 8)
+    \scaleDurations #'(3 . 5) {
+      \repeat unfold 2 { c8[ c c] }
+      \repeat unfold 2 { c8[ c] } |
+      c4. c4. \times 2/3 { c8[ c c] } c4
+    }
+  }
+>>
+@end lilypond
+
+
+@strong{@i{それぞれの譜は異なる拍子を持ち、小節の長さは等価ではない場合}}
+
+@code{Timing_translator} と @code{Default_bar_line_engraver} を
+@code{Staff} コンテキストに移すことによって、@c
+それぞれの譜に独立した拍子を与えることができます。
+
+@c KEEP LY
+@lilypond[quote,verbatim]
+\layout {
+  \context {
+    \Score
+    \remove "Timing_translator"
+    \remove "Default_bar_line_engraver"
+  }
+  \context {
+    \Staff
+    \consists "Timing_translator"
+    \consists "Default_bar_line_engraver"
+  }
+}
+
+% 以上で、各譜はそれぞれに拍子を持つようになります
+
+\relative c' <<
+  \new Staff {
+    \time 3/4
+    c4 c c |
+    c4 c c |
+  }
+  \new Staff {
+    \time 2/4
+    c4 c |
+    c4 c |
+    c4 c |
+  }
+  \new Staff {
+    \time 3/8
+    c4. |
+    c8 c c |
+    c4. |
+    c8 c c |
+  }
+>>
+@end lilypond
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{compound-time-signatures.ly}
+
+
+@seealso
+音楽用語集:
+@rglos{polymetric},
+@rglos{polymetric time signature},
+@rglos{meter}
+
+記譜法リファレンス:
+@ref{拍子},
+@ref{演奏時間を変更する}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{TimeSignature},
+@rinternals{Timing_translator},
+@rinternals{Default_bar_line_engraver},
+@rinternals{Staff}
+
+
+@knownissues
+
+異なる拍子を持つ譜が並列に並べられている場合、@c
+同時に起こる音符の水平方向の位置は同じになります。@c
+しかしながら、それぞれの譜の小節線により、@c
+音符の間隔は通常の異なる拍子が無い場合よりも不規則になります。
+
+
+@node 自動音符分割
+@unnumberedsubsubsec 自動音符分割
+@translationof Automatic note splitting
+
+@cindex notes, splitting (音符を分割する)
+@cindex splitting notes (音符を分割する)
+
+@funindex Note_heads_engraver
+@funindex Completion_heads_engraver
+
+小節線をまたがる長い音符を自動的にタイで結ばれた音符に変換することができます。@c
+これを行うには、@code{Note_heads_engraver} を
+@code{Completion_heads_engraver} で置き換えます。@c
+以下の例では、小節線をまたがる音符が分割され、タイで結ばれています。
+
+@lilypond[quote,verbatim,relative=1]
+\new Voice \with {
+  \remove "Note_heads_engraver"
+  \consists "Completion_heads_engraver"
+}
+
+{ c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2 }
+@end lilypond
+
+このエングラーバは進行中の音符をすべて小節線のところで分割して、@c
+タイを挿入します。@c
+このエングラーバの用途の 1 つに複雑な楽譜のデバッグがあります:
+何小節かで音符がきちんと満たされていない場合、@c
+このエングラーバで挿入されたタイが、それぞれの小節の狂いを示します。
+
+
+@seealso
+音楽用語集: @rglos{tie}
+
+学習マニュアル:
+@rlearning{エングラーバの説明},
+@rlearning{エングラーバを追加 / 削除する}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{Note_heads_engraver},
+@rinternals{Completion_heads_engraver},
+@rinternals{Forbid_line_break_engraver}
+
+
+@knownissues
+
+すべての演奏時間を通常の音符と付点で正確に表すことはできません
+(特に、連符を含んでいる場合) が、@c
+@code{Completion_heads_engraver} が連符を挿入することはありません。
+
+@code{Completion_heads_engraver} は音符にだけ作用します。@c
+休符を分割することはありません。
+
+
+@node 旋律のリズムを示す
+@unnumberedsubsubsec 旋律のリズムを示す
+@translationof Showing melody rhythms
+
+@cindex melody rhythms, showing (旋律のリズムを示す)
+@cindex rhythms, showing melody (旋律のリズムを示す)
+
+しばしば旋律のリズムだけを示したいことがあります。@c
+これはリズム譜を使うことで達成できます。@c
+そのような譜上にある音符のピッチはすべて破棄され、その譜自体は 1 本の@c
+線を持ちます:
+
+@lilypond[quote,relative=1,verbatim]
+<<
+  \new RhythmicStaff {
+    \new Voice = "myRhythm" {
+      \time 4/4
+      c4 e8 f g2
+      r4 g g f
+      g1
+    }
+  }
+  \new Lyrics {
+    \lyricsto "myRhythm" {
+      This is my song
+      I like to sing
+    }
+  }
+>>
+@end lilypond
+
+@cindex guitar chord charts (ギター コード表)
+@cindex strumming rhythms, showing (つま弾き (ストラム) のリズムを示す)
+@cindex guitar strumming rhythms, showing (ギターのつま弾き (ストラム) のリズムを示す)
+
+@funindex Pitch_squash_engraver
+@funindex \improvisationOn
+@funindex improvisationOn
+@funindex \improvisationOff
+@funindex improvisationOff
+
+ギター コード表はしばしばつま弾き (ストラム) のリズムを示します。@c
+これは @code{Pitch_squash_engraver} と @code{\improvisationOn} を@c
+使うことで達成できます。
+
+
+@lilypond[quote,verbatim]
+<<
+  \new ChordNames {
+    \chordmode {
+      c1 f g c
+    }
+  }
+  \new Voice \with {
+    \consists Pitch_squash_engraver
+  } \relative c'' {
+    \improvisationOn
+    c4 c8 c c4 c8 c
+    f4 f8 f f4 f8 f
+    g4 g8 g g4 g8 g
+    c4 c8 c c4 c8 c
+  }
+>>
+@end lilypond
+
+
+@predefined
+@code{\improvisationOn},
+@code{\improvisationOff}
+@endpredefined
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{guitar-strum-rhythms.ly}
+
+
+@seealso
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{RhythmicStaff},
+@rinternals{Pitch_squash_engraver}
+
+
+@node 連桁
+@subsection 連桁
+@translationof Beams
+
+@menu
+* 自動連桁::
+* 自動連桁の振る舞いを設定する::
+* 手動連桁::
+* 羽状の連桁::
+@end menu
+
+
+@node 自動連桁
+@unnumberedsubsubsec 自動連桁
+@translationof Automatic beams
+
+デフォルトでは、連桁は自動的に挿入されます:
+
+@cindex beams, manual (手動連桁)
+@cindex manual beams (手動連桁)
+@cindex beams, setting rules for (連桁の規則を設定する)
+@cindex beams, custom rules for (連桁のためのカスタム規則)
+
+@funindex \autoBeamOn
+@funindex autoBeamOn
+@funindex \autoBeamOff
+@funindex autoBeamOff
+
+@lilypond[quote,verbatim,relative=2]
+\time 2/4 c8 c c c
+\time 6/8 c8 c c c8. c16 c8
+@end lilypond
+
+自動的に決定される連桁が満足いかないものである場合、@c
+明示的に連桁を挿入することが可能です
+-- @ref{手動連桁} を参照してください。@c
+連桁を休符の上まで伸ばそうと意図しているのなら、@c
+連桁を手動で挿入する @emph{必要があります}。
+
+自動連桁を必要としない場合、@c
+@code{\autoBeamOff} で off にすることができ、@c
+@code{\autoBeamOn} で on にすることができます:
+
+@lilypond[quote,relative=1,verbatim]
+c4 c8 c8. c16 c8. c16 c8
+\autoBeamOff
+c4 c8 c8. c16 c8.
+\autoBeamOn
+c16 c8
+@end lilypond
+
+@cindex melismata, beams (メリスマと連桁)
+@cindex beams and melismata (連桁とメリスマ)
+
+@warning{歌曲の中でメリスマを表すために連桁を使用する場合、
+@code{\autoBeamOff} で自動連桁を off にして、手動で連桁を示すべきです。}
+
+@warning{@code{@bs{}partcombine} を @code{@bs{}autoBeamOff} と一緒に@c
+用いると予期しない結果になる可能性があります。@c
+詳細は以下のコード断片を参照してください。}
+
+自動的に挿入されるデフォルトの連桁とは異なるパターンの連桁を@c
+作成することができます
+-- @ref{自動連桁の振る舞いを設定する} を参照してください。
+
+
+@predefined
+@code{\autoBeamOff},
+@code{\autoBeamOn}
+@endpredefined
+
+
+@snippets
+
+@cindex line breaks and beams (改行と連桁)
+@cindex beams and line breaks (連桁と改行)
+
+@funindex breakable
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{beams-across-line-breaks.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{changing-beam-knee-gap.ly}
+
+@cindex \partcombine and \autoBeamOff (\partcombine と \autoBeamOff)
+@cindex \autoBeamOff and \partcombine (\autoBeamOff と \partcombine)
+
+
+@lilypondfile [verbatim, lilyquote, ragged-right, texidoc, doctitle]
+{partcombine-and-autobeamoff.ly}
+
+
+@seealso
+記譜法リファレンス:
+@ref{手動連桁},
+@ref{自動連桁の振る舞いを設定する}
+
+インストールされているファイル:
+@file{scm/auto-beam.scm}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{Auto_beam_engraver},
+@rinternals{Beam_engraver},
+@rinternals{Beam},
+@rinternals{BeamEvent},
+@rinternals{BeamForbidEvent},
+@rinternals{beam-interface},
+@rinternals{unbreakable-spanner-interface}
+
+
+@knownissues
+
+連桁は他のボイスの中にある符頭や臨時記号と衝突する可能性があります。
+
+
+@node 自動連桁の振る舞いを設定する
+@unnumberedsubsubsec 自動連桁の振る舞いを設定する
+@translationof Setting automatic beam behavior
+
+
+@cindex automatic beams, tuning (自動連桁を調整する)
+@cindex tuning automatic beaming (自動連桁を調整する)
+@cindex automatic beam generation (自動連桁生成)
+@cindex autobeam (自動連桁)
+@cindex lyrics and beaming (歌詞と連桁)
+
+@funindex autoBeaming
+@funindex baseMoment
+@funindex beamExceptions
+@funindex beatStructure
+@funindex measureLength
+@funindex \time
+@funindex time
+@funindex \set
+@funindex set
+
+たいていの場合、自動連桁は拍の終わりで終了します。@c
+拍の終了点はコンテキスト プロパティ @code{baseMoment} と @code{beatStructure}
+によって決定されます。@c
+@code{beatStructure} は @code{baseMoment} を単位とする小節の各拍の長さを@c
+定義する Scheme リストです。@c
+デフォルトでは、@code{baseMoment} は「1/拍子の分母」です。@c
+デフォルトでは、各拍の長さは @code{baseMoment} です。
+
+@lilypond[quote,relative=2,verbatim]
+\time 5/16
+c16^"default" c c c c |
+\set Timing.beatStructure = #'(2 3)
+c16^"(2+3)" c c c c |
+\set Timing.beatStructure = #'(3 2)
+c16^"(3+2)" c c c c |
+@end lilypond
+
+連桁の設定変更をある特定のテキストに限定することができます。@c
+下位コンテキストに連桁の設定が含まれない場合、@c
+そのコンテキストを囲んでいる上位コンテキストの設定が適用されます。
+
+@lilypond[quote, verbatim,relative=1]
+\new Staff {
+  \time 7/8
+  \set Staff.beatStructure = #'(2 3 2)
+  <<
+    \new Voice = one {
+      \relative c'' {
+        a8 a a a a a a
+      }
+    }
+    \new Voice = two {
+      \relative c' {
+        \voiceTwo
+        \set Voice.beatStructure = #'(1 3 3)
+        f8 f f f f f f
+      }
+    }
+  >>
+}
+@end lilypond
+
+譜で複数のボイスが使用されている場合に@c
+連桁設定を譜のすべてのボイスに適用するには、@c
+@code{Staff} コンテキストで設定を行う必要があります:
+
+@c KEEP LY
+@lilypond[quote,verbatim,relative=2]
+\time 7/8
+% リズム 3-1-1-2
+% デフォルトで連桁設定の変更は Voice に適用され、うまくいきません
+% なぜなら、自動生成されるボイスで、すべての拍は baseMoment (1 . 8) だからです
+\set beatStructure = #'(3 1 1 2)
+<< {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
+
+% コンテキスト Staff を指定するとうまくいきます
+\set Staff.beatStructure = #'(3 1 1 2)
+<< {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
+@end lilypond
+
+@code{baseMoment} の値を調整することで、@c
+連桁の振る舞いを変更することができます。@c
+@code{baseMoment} の値を変更した場合、@c
+@code{beatStructure} に新しい @code{baseMoment} と矛盾しない値を@c
+設定する必要があります。
+
+@lilypond[quote,verbatim,relative=2]
+\time 5/8
+\set Timing.baseMoment = #(ly:make-moment 1 16)
+\set Timing.beatStructure = #'(7 3)
+\repeat unfold 10 { a16 }
+@end lilypond
+
+@code{beatLength} は @i{moment} -- 演奏時間の単位 -- です。@c
+タイプ @i{momento} の量は
+Scheme 関数 @code{ly:make-moment} によって作り出されます。@c
+この関数についての更なる情報は @ref{時間管理} を参照してください。
+
+デフォルトでは、@code{baseMoment} には「1/拍子の分母」がセットされています。@c
+このデフォルトの例外は @file{scm/time-signature-settings.scm} で見つかります。
+
+特殊な自動連桁規則 (連桁の終わりが拍に従わないもの) はプロパティ
+@code{beamExceptions} に定義します。
+
+@c 未訳
+@lilypond[quote,relative=2,verbatim]
+\time 3/16
+\set Timing.beatStructure = #'(2 1)
+\set Timing.beamExceptions =
+  #'(                         ;start of alist
+     (end .                   ;entry for end of beams
+      (                       ;start of alist of end points
+       ((1 . 32) . (2 2 2))   ;rule for 1/32 beams -- end each 1/16
+      )))                     %close all entries
+c16 c c |
+\repeat unfold 6 { c32 } |
+@end lilypond
+
+@code{beamExceptions} は規則タイプのキーと連桁規則の値を持つ配列リストです。
+
+現時点で、利用可能な唯一の規則タイプの値は、@c
+連桁の終わりのための @code{#'end} です。
+
+連桁規則は、連桁タイプとその連桁タイプの最短演奏時間の音符を保持する連桁に@c
+適用されるグループ化の仕方を示す Scheme 配列リスト (あるいはペアのリスト) です。
+
+@example
+#'((beam-type1 . grouping-1)
+   (beam-type2 . grouping-2)
+   (beam-type3 . grouping-3))
+@end example
+
+連桁タイプは、その連桁の演奏時間を示す Scheme ペアであり、@c
+例えば @code{(1 . 16)} です。
+
+@warning{@code{beamExceptions} の値は @emph{完全な} 例外リストである@c
+必要があります。@c
+つまり、その設定には適用されるべき例外がすべて含まれている必要があります。@c
+例外の 1 つだけを追加、削除、変更することはできません。@c
+このことは扱い難いように思えるかもしれませんが、@c
+新しい連桁パターンを指定する際に現在の連桁設定を知る必要がないということを@c
+意味します。}
+
+拍子が変更されると、@code{Timing.baseMoment}, @code{Timing.beatStructure},
+それに @code{Timing.beamExceptions} のデフォルト値が設定されます。@c
+拍子を設定すると、その @code{Timing} コンテキストの自動連桁設定は@c
+デフォルトの振る舞いにリセットされます。
+
+@c KEEP LY
+@lilypond[quote,verbatim,relative=2]
+\time 6/8
+\repeat unfold 6 { a8 }
+% (4 + 2) にグループ化します
+\set Timing.beatStructure = #'(4 2)
+\repeat unfold 6 { a8 }
+% デフォルトの振る舞いに戻ります
+\time 6/8
+\repeat unfold 6 { a8 }
+@end lilypond
+
+ある拍子のデフォルトの自動連桁設定は @file{scm/beam-settings.scm}
+の中で決定されます。@c
+ある拍子に対する自動連桁のデフォルト設定を変更する方法は
+@ref{拍子} で説明しています。
+
+ある拍子に対する自動連桁設定の多くには
+@code{beamExceptions} が登録されています。@c
+例えば、4/4 拍子は 16 分音符しかない小節を 2 つの連桁で囲もうとします。@c
+@code{beamExceptions} がリセットされていなければ、@c
+@code{beamExceptions} 規則は @code{beatStructure} 設定を@c
+オーバライドすることができます。
+
+@c KEEP LY
+@lilypond[quote,verbatim,relative=2]
+\time 4/4
+\set Timing.baseMoment = #(ly:make-moment 1 8)
+\set Timing.beatStructure = #'(3 3 2)
+% 以下は beamExceptions のため、(3 3 2) の連桁にはなりません
+\repeat unfold 8 {c8} |
+% 以下は beamExceptions をクリアするため、(3 3 2) の連桁になります
+\set Timing.beamExceptions = #'()
+\repeat unfold 8 {c8}
+@end lilypond
+
+同様に、デフォルトで 8 分音符のみの 3/4 拍子の小節は 1 つの連桁で囲まれます。@c
+3/4 拍子での 8分音符を拍毎に連桁で囲むには、@c
+@code{beamExceptions} をリセットします。
+
+@c KEEP LY
+@lilypond[quote,verbatim,relative=2]
+\time 3/4
+% デフォルトでは beamExceptions のため、(3) の連桁になります
+\repeat unfold 6 {a8} |
+% 以下は beatLength のため、(1 1 1) の連桁になります
+\set Timing.beamExceptions = #'()
+\repeat unfold 6 {a8}
+@end lilypond
+
+@i{@strong{自動連桁はどのように機能するのか}}
+
+自動連桁が有効である場合、自動連桁の配置はコンテキスト プロパティ
+@code{baseMoment}, @code{beatStructure}, それに @code{beamExceptions}
+によって決定されます。
+
+連桁の配置を決定する際、以下の規則が並び順の優先度で適用されます:
+
+@itemize
+
+@item @code{[..]} で手動連桁が指定されている場合、@c
+連桁は指定どおりに設定されます。@c
+手動連桁が指定されていない場合、
+
+@item
+その連桁タイプに対する @code{beamExceptions} に連桁終了規則が@c
+定義されている場合、@c
+その規則を用いて連桁を終了させる位置を決定します。@c
+連桁終了規則が定義されていない場合、
+
+@item
+もっと長い連桁タイプに対する @code{beamExceptions} に連桁終了規則が@c
+定義されている場合、@c
+その規則を用いて連桁を終了させる位置を決定します。@c
+連桁終了規則が定義されていない場合、
+
+@item
+@code{baseMoment} と @code{beatStructure} の値を用いて@c
+その小節での拍の終わりを決定し、@c
+拍の終わりで連桁を終了させます。
+
+@end itemize
+
+上記の規則で、連桁タイプは連桁でグループ化された音符の最短演奏時間です。
+
+参考として、@c
+デフォルトの連桁規則は @file{scm/time-signature-settings.scm} の中にあります。
+
+@snippets
+
+@cindex beams, subdividing (連桁をサブ グループ化する)
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{subdividing-beams.ly}
+
+@cindex measure groupings (小節をグループ化する)
+@cindex beats, grouping (拍をグループ化する)
+@cindex grouping beats (拍をグループ化する)
+@cindex measure sub-grouping (小節をサブ グループ化する)
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{conducting-signs,-measure-grouping-signs.ly}
+
+@cindex beam, last in score (楽譜の最後の連桁)
+@cindex beam, last in polyphonic voice (多声ボイスの最後の連桁)
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{beam-endings-in-score-context.ly}
+
+
+@seealso
+インストールされているファイル:
+@file{scm/beam-settings.scm}
+
+コード断片集:
+@rlsr{Rhythms}
+
+内部リファレンス:
+@rinternals{Auto_beam_engraver},
+@rinternals{Beam},
+@rinternals{BeamForbidEvent},
+@rinternals{beam-interface}
+
+
+@knownissues
+自動連桁が終了しておらず、まだ音符を受け付けている最中に楽譜が終了する場合、@c
+その最後の連桁はまったく譜刻されません。@c
+@code{<< @dots{} \\ @dots{} >>} で入力される多声ボイスでも同様です。@c
+自動連桁がまだ音符を受け付けている最中に多声ボイスが終了する場合、@c
+その最後の連桁はまったく譜刻されません。@c
+ボイスや楽譜の最後の連桁には手動で連桁を付けることにより、@c
+これらの問題を回避できます。
+
+
+@node 手動連桁
+@unnumberedsubsubsec 手動連桁
+@translationof Manual beams
+
+@cindex beams, manual (手動連桁)
+@cindex manual beams (手動連桁)
+
+@funindex ]
+@funindex [
+
+自動連桁アルゴリズムをオーバライドする必要がある場合もあります。@c
+例えば、自動連桁は休符や小節線を越えて連桁を配置することはなく、@c
+合唱譜では連桁はしばしば音符ではなく歌詞の韻律に従って配置されます。@c
+そのような連桁は  @code{[} と @code{]} で開始点と終了点を記すことによって@c
+手動で指定することができます:
+
+@lilypond[quote,relative=1,verbatim]
+r4 r8[ g' a r] r g[ | a] r
+@end lilypond
+
+@cindex manual beams, direction shorthand for (手動連桁の向きを指定する短縮記譜法)
+@cindex manual beams, grace notes (装飾小音符の手動連桁)
+
+方向指示子を用いることで、連桁の向きを手動で設定することができます:
+
+@lilypond[quote,relative=2,verbatim]
+c8^[ d e] c,_[ d e f g]
+@end lilypond
+
+@funindex \noBeam
+@funindex noBeam
+
+連桁でつながれないようにするために、個々の音符には
+@code{\noBeam} が記されるかもしれません:
+
+@lilypond[quote,verbatim,relative=2]
+\time 2/4
+c8 c\noBeam c c
+@end lilypond
+
+装飾小音符の連桁と通常の音符の連桁は同時進行で発生します。@c
+通常の音符の連桁の途中に、連桁でつながれない装飾小音符は配置されません。
+
+@lilypond[quote,verbatim,relative=2]
+c4 d8[
+\grace { e32[ d c d] }
+e8] e[ e
+\grace { f16 }
+e8 e]
+@end lilypond
+
+@funindex stemLeftBeamCount
+@funindex stemRightBeamCount
+
+プロパティ @code{stemLeftBeamCount} と @code{stemRightBeamCount} を@c
+セットすることによって連桁をさらに厳密に手動制御することが可能です。@c
+これらの値はそれぞれ、次の音符の左側と右側に描く連桁の本数を指定します。@c
+どちらかのプロパティがセットされている場合、その値は 1 度だけ使用され、@c
+それから消去されます。@c
+以下の例では、最後の @code{f} は左側に連桁を 1 本だけ持って
+-- すなわち、グループ全体をつなげている 8 分音符の連桁を持って --
+譜刻されています。
+
+@lilypond[quote,relative=2,verbatim]
+a8[ r16 f g a]
+a8[ r16
+\set stemLeftBeamCount = #2
+\set stemRightBeamCount = #1
+f16
+\set stemLeftBeamCount = #1
+g16 a]
+@end lilypond
+
+
+@predefined
+@code{\noBeam}
+@endpredefined
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{flat-flags-and-beam-nibs.ly}
+
+
+@seealso
+記譜法リファレンス:
+@ref{Direction and placement},
+@ref{Grace notes}
+
+コード断片集:
+@rlsr{Rhythms}
+
+内部リファレンス:
+@rinternals{Beam},
+@rinternals{BeamEvent},
+@rinternals{Beam_engraver},
+@rinternals{beam-interface},
+@rinternals{Stem_engraver}
+
+
+@node 羽状の連桁
+@unnumberedsubsubsec 羽状の連桁
+@translationof Feathered beams
+
+@cindex beams, feathered (羽状の連桁)
+@cindex feathered beams (羽状の連桁)
+
+@funindex \featherDurations
+@funindex featherDurations
+@funindex grow-direction
+
+羽状の連桁は、楽曲全体のテンポを変えることなく、音符の小さなグループを@c
+テンポを上げながら (あるいは下げながら) 演奏すべきであることを示すために@c
+使用されます。@c
+羽状連桁の範囲は @code{[} と @code{]} を使って手動で指定する必要があり、@c
+連桁の羽は @code{Beam} のプロパティ @code{grow-direction} に向きを@c
+指定することによって調整することができます。
+
+音符の配置と MIDI 出力での音が羽状連桁によって指示された
+ritardando (徐々に緩やかに) や accelerando (次第に速く) を@c
+反映すべきであるのなら、@c
+音符は波括弧で区切られた音楽表記としてグループ化される必要があり、@c
+さらに、そのグループの最初の音符と最後の音符の演奏時間の比率を指定する
+@code{featheredDurations} コマンドを前に置く必要があります。
+
+角括弧は連桁の範囲を示し、@c
+波括弧は演奏時間を変更される音符はどれなのかを示します。@c
+通常これら 2 つは同じ音符のグループを囲みますが、@c
+同じであることは必須ではありません:
+2 つのコマンドは独立しています。
+
+以下の例では、8 つの 16 分音符は 2 分音符とまったく同じ時間を占めますが、@c
+最初の音符の長さは最後の音符の長さの半分であり、@c
+中間の音符は徐々に長くなります。@c
+最初の 4 つの 32 分音符は徐々にスピード アップしますが、@c
+最後の 4 つの 32 分音符は一定のテンポです。
+
+@lilypond[relative=1,verbatim,quote]
+\override Beam #'grow-direction = #LEFT
+\featherDurations #(ly:make-moment 2 1)
+{ c16[ c c c c c c c] }
+\override Beam #'grow-direction = #RIGHT
+\featherDurations #(ly:make-moment 2 3)
+{ c32[ d e f] }
+% revert to non-feathered beams
+\override Beam #'grow-direction = #'()
+{ g32[ a b c] }
+@end lilypond
+
+@noindent
+譜刻される音符の間隔は音符の演奏時間を近似的に表しているだけですが、@c
+MIDI 出力での演奏時間は正確です。
+
+
+@predefined
+@code{\featherDurations}
+@endpredefined
+
+@seealso
+コード断片集:
+@rlsr{Rhythms}
+
+
+@knownissues
+
+@code{\featherDurations} は非常に短い音楽コード断片に対してだけ、@c
+そして分数の数が小さいときにだけ機能します。
+
+
+@seealso
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+
+@node 小節
+@subsection 小節
+@translationof Bars
+
+@menu
+* 小節線::
+* 小節番号::
+* 小節と小節番号のチェック::
+* リハーサル記号::
+@end menu
+
+
+@node 小節線
+@unnumberedsubsubsec 小節線
+@translationof Bar lines
+
+@cindex bar lines (小節線)
+@cindex measure lines (小節線)
+@cindex closing bar lines (閉じの小節線)
+@cindex bar lines, closing (閉じの小節線)
+@cindex double bar lines (2 重小節線)
+@cindex bar lines, double (2 重小節線)
+@cindex repeat bars (繰り返しの小節線)
+
+@funindex \bar
+@funindex bar
+
+小節線は小節を区切り、繰り返しを示すためにも使用されます。@c
+通常、単線の小節線が拍子に基づいて出力に自動的に挿入されます。
+
+自動的に挿入される単線の小節線は
+@code{\bar} コマンドで他のタイプに変更することができます。@c
+例えば、通常、2 重線の閉じの小節線が楽曲の最後に配置されます:
+
+@lilypond[quote,relative=1,verbatim]
+e4 d c2 \bar "|."
+@end lilypond
+
+ある小節の最後の音符が、自動的に挿入される小節線の所で終わっていなくても@c
+無効ではありません:
+その音符は次の小節に持ち越されるものと見なされます。@c
+しかしながら、そのような持ち越しのある小節がいくつも続く場合、@c
+その音楽は圧縮されて表示される可能性があり、@c
+ページからはみ出す可能性さえあります。@c
+これは、自動改行は完全な小節
+-- つまり、小節の終端ですべての音符が終わっている小節 --
+の終わりでのみ発生するからです。
+
+@warning{誤った演奏時間の指定は改行を抑制し、結果として@c
+非常に圧縮された楽譜やページからはみ出す楽譜の原因となります。}
+
+@cindex line breaks (改行)
+@cindex bar lines, invisible (不可視の小節線)
+@cindex measure lines, invisible (不可視の小節線)
+
+手動で挿入された小節線のところでも
+-- たとえ、その小節が不完全であっても --
+改行することができます。@c
+小節線を譜刻せずに改行を可能にするには、以下を使用します:
+
+@example
+\bar ""
+@end example
+
+@noindent
+これは不可視の小節線を挿入し、@c
+そこで改行が発生することを可能にします (強制はしません)。@c
+小節番号カウンタは増加しません。@c
+強制的に改行を行うには、@ref{Line breaking} を参照してください。
+
+@cindex manual bar lines (手動の小節線)
+@cindex manual measure lines (手動の小節線)
+@cindex bar lines, manual (手動の小節線)
+@cindex measure lines, manual (手動の小節線)
+
+不可視の小節線と他の特殊な小節線は任意の位置に手動で挿入することができます。@c
+それらの小節線の位置がある小節の終わりと一致する場合、@c
+それらの小節線はそこに自動で挿入されるはずだった単線の小節線に@c
+取って代わります。@c
+小節の終わりと一致しない場合、指定された小節線がその位置に挿入されます。@c
+
+手動の小節線は純粋に視覚的なものです。@c
+それらは通常の小節線が影響を与えるプロパティ
+-- 小節番号、臨時記号、改行など --
+には何の影響も与えません。@c
+手動の小節線はその後に続く自動小節線の算出や配置に影響を与えません。@c
+自動小節線がすでに存在する場所に手動小節線が配置されても、@c
+自動小節線の効果は変更されません。
+
+手動で挿入できる小節線として、単線の小節線は 2 種類あり、@c
+2 重線の小節線は 5 種類あります:
+
+@lilypond[quote,relative=1,verbatim]
+f1 \bar "|"
+f1 \bar "."
+g1 \bar "||"
+a1 \bar ".|"
+b1 \bar ".|."
+c1 \bar "|.|"
+d1 \bar "|."
+e1
+@end lilypond
+
+@noindent
+さらに、点線と破線の小節線があります:
+
+@lilypond[quote,relative=1,verbatim]
+f1 \bar ":"
+g1 \bar "dashed"
+a1
+@end lilypond
+
+@noindent
+さらに、繰り返しの小節線が 5 種類あります:
+
+@lilypond[quote,relative=1,verbatim]
+f1 \bar "|:"
+g1 \bar ":|:"
+a1 \bar ":|.|:"
+b1 \bar ":|.:"
+c1 \bar ":|"
+e1
+@end lilypond
+
+@c 未訳
+Additionally, a bar line can be printed as a simple tick:
+@lilypond[quote,relative=1,verbatim]
+f1 \bar "'"
+@end lilypond
+However, as such ticks are typically used in Gregorian chant, it is preferable
+to use @code{\divisioMinima} there instead, described in the section
+@ref{Divisiones} in Gregorian chant.
+
+@cindex segno (セーニョ)
+
+行内のセーニョ記号として、3 タイプの小節線があり、@c
+改行での振る舞いがそれぞれ異なります:
+
+@lilypond[quote,relative=2,verbatim]
+c4 c c c
+\bar "S"
+c4 c c c \break
+\bar "S"
+c4 c c c
+\bar "|S"
+c4 c c c \break
+\bar "|S"
+c4 c c c
+\bar "S|"
+c4 c c c \break
+\bar "S|"
+c1
+@end lilypond
+
+@cindex repeats (繰り返し)
+
+繰り返しを表す小節線は手動で挿入される場合がありますが、@c
+それらの小節線自体は LilyPond に繰り返されるセクションを@c
+認識させることはしません。@c
+そのような繰り返されるセクションは@c
+さまざまな繰り返しのコマンドを使って入力した方が良いです
+(@ref{Repeats} を参照してください)。@c
+繰り返しのコマンドは自動的に適切な小節線を譜刻します。
+
+さらに、@code{"||:"} を使用することができます。@c
+これは @code{"|:"} と等価ですが、例外として改行位置では、@c
+この小節線は行の終わりに 2 重線の小節線を置き、@c
+次の行の始めに繰り返し開始の小節線を置きます。
+
+@lilypond[quote,relative=2,verbatim]
+c4 c c c
+\bar "||:"
+c4 c c c \break
+\bar "||:"
+c4 c c c
+@end lilypond
+
+繰り返しとセーニョ記号の組み合わせは 6 種類あります:
+
+@lilypond[quote,relative=2,verbatim]
+c4 c c c
+\bar ":|S"
+c4 c c c \break
+\bar ":|S"
+c4 c c c
+\bar ":|S."
+c4 c c c \break
+\bar ":|S."
+c4 c c c
+\bar "S|:"
+c4 c c c \break
+\bar "S|:"
+c4 c c c
+\bar ".S|:"
+c4 c c c \break
+\bar ".S|:"
+c4 c c c
+\bar ":|S|:"
+c4 c c c \break
+\bar ":|S|:"
+c4 c c c
+\bar ":|S.|:"
+c4 c c c \break
+\bar ":|S.|:"
+c1
+@end lilypond
+
+
+多くの譜を持つ楽譜では、ある譜の @code{\bar} コマンドは@c
+自動的にすべての譜に適用されます。@c
+結果として、@code{StaffGroup}, @code{PianoStaff}, あるいは
+@code{GrandStaff} では、小節線は譜をまたがって 1 本に接続されます。
+
+@lilypond[quote,relative=1,verbatim]
+<<
+  \new StaffGroup <<
+    \new Staff {
+      e4 d
+      \bar "||"
+      f4 e
+    }
+    \new Staff { \clef bass c4 g e g }
+  >>
+  \new Staff { \clef bass c2 c2 }
+>>
+@end lilypond
+
+
+@cindex default bar lines, changing (デフォルトの小節線を変更する)
+@cindex bar lines, default, changing (デフォルトの小節線を変更する)
+
+@snippets
+
+@funindex whichBar
+@funindex defaultBarType
+@funindex \bar
+@funindex bar
+@funindex bartype
+
+コマンド @code{\bar }@var{bartype} は
+@samp{\set Timing.whichBar = @var{bartype}} の短縮記法です。@c
+@code{whichBar} プロパティがセットされるといつでも小節線が作成されます。
+
+自動的に挿入される小節線に使用されるデフォルトの@c
+小節線タイプは @code{"|"} です。@c
+これは @samp{\set Timing.defaultBarType = @var{bartype}} でいつでも@c
+変更することができます。
+
+
+@seealso
+記譜法リファレンス:
+@ref{Line breaking},
+@ref{Repeats},
+@ref{Grouping staves}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{BarLine} (@rinternals{Staff} の階層で作成されます),
+@rinternals{SpanBar} (譜をまたぎます),
+@rinternals{Timing_translator} (@code{Timing} プロパティ用です)
+
+
+@node 小節番号
+@unnumberedsubsubsec 小節番号
+@translationof Bar numbers
+
+@cindex bar numbers (小節番号)
+@cindex measure numbers (小節番号)
+@cindex numbers, bar (小節番号)
+@cindex numbers, measure (小節番号)
+
+@funindex currentBarNumber
+
+小節番号は、デフォルトでは、最初の行を除く各行の開始点で譜刻されます。@c
+番号自体は @code{currentBarNumber} プロパティに保存されていて、@c
+通常は各小節で自動的に更新されます。@c
+小節番号を手動で設定することも可能です:
+
+@lilypond[verbatim,quote,fragment,relative=1]
+c1 c c c
+\break
+\set Score.currentBarNumber = #50
+c1 c c c
+@end lilypond
+
+@cindex bar numbers, regular spacing  規則的な間隔で小節番号を譜刻する
+
+@funindex barNumberVisibility
+@funindex BarNumber
+
+小節番号は、各行の開始点に配置する代わりに、規則的な間隔で@c
+譜刻することができます。@c
+このようにするには、小節番号を行の開始点以外の位置に譜刻できるよう、@c
+デフォルトの振る舞いをオーバライドする必要があります。@c
+これは @code{BarNumber} の @code{break-visibility} プロパティによって@c
+制御されます。@c
+これは 3 つの値をとります
+-- 3 つの値は、対応する小節番号を可視にするかしないかを指定するために、@c
+@code{#t} または @code{#f} にセットされます。@c
+3 つの値の順番は、@code{end of line visible},
+@code{middle of line visible}, @code{beginning of line visible}
+(行の終了点での可視性、行の途中での可視性、行の開始点での可視性) です。@c
+以下の例では、譜刻可能な場所すべてに小節番号を譜刻しています:
+
+@lilypond[verbatim,quote,relative=1]
+\override Score.BarNumber #'break-visibility = #'#(#t #t #t)
+\set Score.currentBarNumber = #11
+% Permit first bar number to be printed
+\bar ""
+c1 | c | c | c
+\break
+c1 | c | c | c
+@end lilypond
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{printing-the-bar-number-for-the-first-measure.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{printing-bar-numbers-at-regular-intervals.ly}
+
+@cindex measure number, format
+@cindex bar number, format
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{printing-bar-numbers-inside-boxes-or-circles.ly}
+
+@cindex bar number alignment
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{aligning-bar-numbers.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{removing-bar-numbers-from-a-score.ly}
+
+
+@seealso
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{BarNumber},
+@rinternals{Bar_number_engraver}
+
+
+@cindex bar number collision (小節番号の衝突)
+@cindex collision, bar number (小節番号の衝突)
+
+@knownissues
+小節番号は @code{StaffGroup} の左括弧の上端と衝突する可能性があります。@c
+これを解決するには、@code{BarNumber} の @code{padding} プロパティを@c
+使って小節番号を適切な位置に配置します。@c
+詳細は @rinternals{StaffGroup} と @rinternals{BarNumber} を参照してください。
+
+
+@node 小節と小節番号のチェック
+@unnumberedsubsubsec 小節と小節番号のチェック
+@translationof Bar and bar number checks
+
+@cindex bar check (小節チェック)
+@cindex bar number check (小節番号チェック)
+@cindex measure check (小節チェック)
+@cindex measure number check (小節番号チェック)
+
+@funindex barCheckSynchronize
+@funindex |
+
+小節チェックは入力された演奏時間の誤りを検出する手助けをします。@c
+小節チェックは、小節線が書き込まれると予想される場所ならどこにでも、@c
+小節記号 @code{|} を使うことで挿入できます。@c
+他の場所で小節チェックの線に遭遇した場合、警告のリストがログ ファイルに@c
+書き込まれ、小節チェックに失敗した行番号と行を示します。@c
+次の例では、2 番目の小節チェックがエラーを発します。
+
+@example
+\time 3/4 c2 e4 | g2 |
+@end example
+
+歌詞でも小節チェックを使用することができます。@c
+以下に例を挙げます:
+
+@example
+\lyricmode @{
+  \time 2/4
+  Twin -- kle | Twin -- kle |
+@}
+@end example
+
+正しくない演奏時間は滅茶苦茶な楽譜を生成する可能性があります
+-- 特にその楽譜が多声である場合はそうなる可能性があります。@c
+入力を修正するには、@c
+まずざっと見て失敗した小節チェックと演奏時間の誤りを探すと良いでしょう。
+
+連続する小節チェックは同じ音楽的間隔で off になり、@c
+最初の警告メッセージだけが表示されます。@c
+これにより、警告の焦点がタイミング エラーの発生源に絞られます。
+
+
+@funindex |
+@funindex pipeSymbol
+
+入力の中で小節チェックあるいはパイプ記号 @code{|} に遭遇した場合にとられる@c
+アクションを再定義することも可能です。@c
+これにより、小節チェック以外のことを行うことができます。@c
+再定義は音楽表記を @code{pipeSymbol} に代入することによって行います。@c
+以下の例では、@code{|} は小節の終わりをチェックするのではなく、@c
+それが現れた場所に 2 重線の小節線を挿入するようセットされています。
+
+@lilypond[quote,verbatim]
+pipeSymbol = \bar "||"
+{
+  c'2 c' |
+  c'2 c'
+  c'2 | c'
+  c'2 c'
+}
+@end lilypond
+
+@funindex \barNumberCheck
+@funindex barNumberCheck
+
+大きな楽曲をコピーしている場合、LilyPond の小節番号と@c
+コピー元のオリジナルの小節番号の対応をチェックすると役に立ちます。@c
+この対応は @code{\barNumberCheck} によってチェックすることができます。@c
+例えば、
+
+@verbatim
+\barNumberCheck #123
+@end verbatim
+
+@noindent
+を使用すると、@code{currentBarNumber} が処理された時に 123 でなければ、@c
+警告が表示されます。
+
+
+@seealso
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+
+@node リハーサル記号
+@unnumberedsubsubsec リハーサル記号
+@translationof Rehearsal marks
+
+@cindex rehearsal marks (リハーサル記号)
+@cindex mark, rehearsal (リハーサル記号)
+
+@funindex \mark
+@funindex mark
+
+リハーサル記号を譜刻するには、@code{\mark} コマンドを使用します:
+
+@lilypond[quote,verbatim,relative=2]
+c1 \mark \default
+c1 \mark \default
+c1 \mark \default
+c1 \mark \default
+@end lilypond
+
+@noindent
+@code{\mark \default} を使用するとリハーサル記号は自動的に +1 されますが、@c
+手動で整数をリハーサル記号にセットすることもできます。@c
+セットした値は @code{rehearsalMark} に保存されます。
+
+@lilypond[quote,verbatim,relative=2]
+c1 \mark \default
+c1 \mark \default
+c1 \mark #8
+c1 \mark \default
+c1 \mark \default
+@end lilypond
+
+@noindent
+文字@tie{}@q{I} は、譜刻の慣習に従って、スキップされます。@c
+文字@tie{}@q{I} を含めたければ、@c
+リハーサル記号のスタイル (文字のみ、四角で囲まれた文字、丸で囲まれた文字)
+に合わせて以下のコマンドの 1 つを使用します:
+
+@example
+\set Score.markFormatter = #format-mark-alphabet
+\set Score.markFormatter = #format-mark-box-alphabet
+\set Score.markFormatter = #format-mark-circle-alphabet
+@end example
+
+@lilypond[quote,verbatim,relative=2]
+\set Score.markFormatter = #format-mark-box-alphabet
+c1 \mark \default
+c1 \mark \default
+c1 \mark #8
+c1 \mark \default
+c1 \mark \default
+@end lilypond
+
+@cindex rehearsal mark format (リハーサル記号のフォーマット)
+@cindex rehearsal mark style (リハーサル記号のスタイル)
+@cindex style, rehearsal mark (リハーサル記号のスタイル)
+@cindex format, rehearsal mark (リハーサル記号のフォーマット)
+@cindex mark, rehearsal, style (リハーサル記号のスタイル)
+@cindex mark, rehearsal, format (リハーサル記号のフォーマット)
+@cindex rehearsal mark, manual (手動でリハーサル記号をセットする)
+@cindex mark, rehearsal, manual (手動でリハーサル記号をセットする)
+@cindex custom rehearsal mark (リハーサル記号のカスタム)
+@cindex manual rehearsal mark (手動のリハーサル記号)
+
+スタイルはプロパティ @code{markFormatter} によって定義されます。@c
+これは引数としてカレントの記号 (整数) とカレントのコンテキストをとる関数です。@c
+この関数はマークアップ オブジェクトを返します。@c
+以下の例では、@code{markFormatter} には定義済みの手続きがセットされています。@c
+数小節後では、四角で囲まれた番号を作り出す手続きがセットされています。
+
+@lilypond[quote,verbatim,relative=2]
+\set Score.markFormatter = #format-mark-numbers
+c1 \mark \default
+c1 \mark \default
+\set Score.markFormatter = #format-mark-box-numbers
+c1 \mark \default
+\set Score.markFormatter = #format-mark-circle-numbers
+c1 \mark \default
+\set Score.markFormatter = #format-mark-circle-letters
+c1
+@end lilypond
+
+ファイル @file{scm/translation-functions.scm} は
+@code{format-mark-numbers} (デフォルトのフォーマット),
+@code{format-mark-box-numbers}, @code{format-mark-letters} それに
+@code{format-mark-box-letters} の定義を保持しています。@c
+これらを参考にして他のフォーマット関数を作り出すこともできます。
+
+加算された数字や文字の代わりに小節番号を取得するために
+@code{format-mark-barnumbers}, @code{format-mark-box-barnumbers}, それに
+@code{format-mark-circle-barnumbers} を使うことがあります。
+
+リハーサル記号の他のスタイルを手動で指定することができます:
+
+@example
+\mark "A1"
+@end example
+
+@noindent
+@code{Score.markFormatter} はこの方法で指定された記号に影響を与えません。@c
+しかしながら、文字列として @code{\markup} 使用することができます。
+
+@example
+\mark \markup@{ \box A1 @}
+@end example
+
+@cindex segno (セーニョ)
+@cindex coda (コーダ)
+@cindex D.S al Fine (ここで曲の先頭に戻り、Fine で終わる)
+@cindex fermata (フェルマータ)
+@cindex music glyphs (音楽的図柄)
+@cindex glyphs, music (音楽的図柄)
+
+@funindex \musicglyph
+@funindex musicglyph
+
+音楽的図柄 (セーニョ記号など) を @code{\mark} の中に譜刻することができます:
+
+@lilypond[quote,verbatim,relative=1]
+c1 \mark \markup { \musicglyph #"scripts.segno" }
+c1 \mark \markup { \musicglyph #"scripts.coda" }
+c1 \mark \markup { \musicglyph #"scripts.ufermata" }
+c1
+@end lilypond
+
+@noindent
+@code{\musicglyph} を使用して譜刻できる記号のリストは、@c
+@ref{The Feta font} を参照してください。
+
+リハーサル記号の配置の一般的な調整については、@c
+@ref{Formatting text} を参照してください。@c
+更に細かな制御を行う場合は、@c
+@ref{Aligning objects} の @code{break-alignable-interface} を参照してください。
+
+
+@seealso
+記譜法リファレンス:
+@ref{The Feta font},
+@ref{Formatting text},
+@ref{Aligning objects}
+
+インストールされているファイル:
+@file{scm/translation-functions.scm} は @code{format-mark-numbers} と
+@code{format-mark-letters} の定義を保持しています。@c
+ここにある定義を参考にして他のフォーマット関数を作り出すことができます。
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{MarkEvent},
+@rinternals{Mark_engraver},
+@rinternals{RehearsalMark}
+
+
+@node 特殊なリズム関連事項
+@subsection 特殊なリズム関連事項
+@translationof Special rhythmic concerns
+
+
+@menu
+* 装飾小音符::
+* カデンツァに揃える::
+* 時間管理::
+@end menu
+
+@node 装飾小音符
+@unnumberedsubsubsec 装飾小音符
+@translationof Grace notes
+
+@cindex ornaments (装飾音)
+@cindex grace notes (装飾小音符)
+@cindex appoggiatura (アッポジャトゥーラ)
+@cindex acciaccatura (アッチャカトゥーラ)
+
+@funindex \grace
+@funindex grace
+
+装飾小音符は楽譜に書き出される装飾音です。@c
+装飾小音符は小さなフォントで譜刻され、@c
+小節の中では論理的な時間を持ちません。
+
+@lilypond[quote,relative=2,verbatim]
+c4 \grace c16 c4
+\grace { c16[ d16] } c2
+@end lilypond
+
+Lilypond はさらに 2 つ特殊なタイプの装飾小音符をサポートします:
+@emph{acciaccatura} (長さを持たない装飾小音符で、@c
+スラッシュ付きの符幹を持つスラーでつなげられる小さな音符) と
+@emph{appoggiatura} (一定の比率で主音符から演奏時間をとり、@c
+スラッシュを持たない小さな音符で譜刻されます) です。
+
+@lilypond[quote,relative=2,verbatim]
+\grace c8 b4
+\acciaccatura d8 c4
+\appoggiatura e8 d4
+\acciaccatura { g16[ f] } e4
+@end lilypond
+
+装飾小音符の配置は他の譜と同期されます。@c
+以下の例では、8 分の装飾小音符 1 つに対して 2 つの 16 分装飾小音符が@c
+割り当てられています:
+
+@lilypond[quote,relative=2,verbatim]
+<<
+  \new Staff { e2 \grace { c16[ d e f] } e2 }
+  \new Staff { c2 \grace { g8[ b] } c2 }
+>>
+@end lilypond
+
+@cindex grace notes, following (装飾小音符を後ろに配置する)
+
+@funindex \afterGrace
+@funindex afterGrace
+
+装飾小音符で記譜を終えたいのならば、@c
+@code{\afterGrace} コマンドを使用します。@c
+このコマンドは 2 つの引数をとります:
+主音符と主音符の後に続く装飾小音符です。
+
+@lilypond[quote,verbatim,relative=2]
+c1 \afterGrace d1 { c16[ d] } c1
+@end lilypond
+
+これは主音符の長さの 3/4 のスペースをとった後に@c
+装飾小音符を配置しています。@c
+デフォルトの分数 3/4 は @code{afterGraceFraction} を設定することにより@c
+変更することができます。@c
+以下の例では、スペースをデフォルト、主音符の 15/16、最後は 1/2 に@c
+設定した結果を示しています。
+
+@lilypond[quote,verbatim,relative=2]
+<<
+  \new Staff {
+    c1 \afterGrace d1 { c16[ d] } c1
+  }
+  \new Staff {
+    #(define afterGraceFraction (cons 15 16))
+    c1 \afterGrace d1 { c16[ d] } c1
+  }
+  \new Staff {
+    #(define afterGraceFraction (cons 1 2))
+    c1 \afterGrace d1 { c16[ d] } c1
+  }
+>>
+@end lilypond
+
+主音符と装飾小音符の間のスペースは空白音符を使って@c
+指定することもできます。@c
+以下の例では、主音符の長さの 7/8 のスペースをとった後に装飾小音符を@c
+配置しています。
+
+@lilypond[quote,verbatim,relative=2]
+\new Voice {
+  <<
+    { d1^\trill_( }
+    { s2 s4. \grace { c16[ d] } }
+  >>
+  c1)
+}
+@end lilypond
+
+@cindex tweaking grace notes (装飾小音符を調整する)
+@cindex grace notes, tweaking (装飾小音符を調整する)
+@cindex grace notes, changing layout settings (装飾小音符のレイアウト設定を変更する)
+
+@code{\grace} 音楽表記は特殊な譜刻設定を導入します
+-- 例えば、小さなフォントを作り出し、向きを設定するためです。@c
+それゆえ、装飾小音符の特殊な設定をオーバライドするために@c
+レイアウトの調整を行う場合、@c
+調整は装飾小音符の表記の中に置くべきです。@c
+さらに、そのオーバライドは装飾小音符の表記の中で元に戻しておくべきです。@c
+以下の例では、装飾小音符の符幹のデフォルトの向きがオーバライドされ、@c
+それから元に戻されています。
+
+@lilypond[quote,verbatim,relative=2]
+\new Voice {
+  \acciaccatura {
+    \stemDown
+    f16->
+    \stemNeutral
+  }
+  g4 e c2
+}
+@end lilypond
+
+
+@cindex stem, with slash (スラッシュ付きの符幹)
+
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{using-grace-note-slashes-with-normal-heads.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{tweaking-grace-layout-within-music.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{redefining-grace-note-global-defaults.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{positioning-grace-notes-with-floating-space.ly}
+
+
+@seealso
+音楽用語集:
+@rglos{grace notes},
+@rglos{acciaccatura},
+@rglos{appoggiatura}
+
+記譜法リファレンス:
+@ref{手動連桁}
+
+インストールされているファイル:
+@file{ly/grace-init@/.ly}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{GraceMusic},
+@rinternals{Grace_beam_engraver},
+@rinternals{Grace_engraver},
+@rinternals{Grace_spacing_engraver}
+
+
+@knownissues
+
+@cindex acciaccatura, multi-note (複数音符のアッチャカトゥーラ)
+@cindex multi-note acciaccatura (複数音符のアッチャカトゥーラ)
+@cindex grace-note synchronization (装飾小音符の同期)
+
+複数の音符を連桁でつないだ @i{アッチャカトゥーラ} には@c
+スラッシュは付けられず、@c
+複数の音符を連桁でつないだ @i{アッポジャトゥーラ} と@c
+まったく同じに見えます。
+
+@c TODO Add link to LSR snippet to add slash when available
+
+装飾小音符の同期は予期しない結果を引き起こす可能性があります。@c
+譜の記譜要素 -- 拍子、小節線など -- も同期をとられます。@c
+装飾小音符を持つ譜と持たない譜を混在させる場合は気をつけて下さい。@c
+例えば:
+
+@lilypond[quote,relative=2,verbatim]
+<<
+  \new Staff { e4 \bar "|:" \grace c16 d2. }
+  \new Staff { c4 \bar "|:" d2. }
+>>
+@end lilypond
+
+@noindent
+これは、他の譜にある装飾小音符の演奏時間に対応した空白の@c
+装飾小音符を挿入することによって修正することができます。@c
+上の例を以下のように修正します:
+
+@lilypond[quote,relative=2,verbatim]
+<<
+  \new Staff { e4 \bar "|:" \grace c16 d2. }
+  \new Staff { c4 \bar "|:" \grace s16 d2. }
+>>
+@end lilypond
+
+装飾小音符セクションはシーケンシャルな音楽表記の中でのみ使用すべきです。@c
+装飾小音符セクションのネスト、並置はサポートされておらず、@c
+クラッシュや他のエラーを引き起こすかもしれません。
+
+
+@node カデンツァに揃える
+@unnumberedsubsubsec カデンツァに揃える
+@translationof Aligning to cadenzas
+
+@cindex cadenza (カデンツァ)
+@cindex cadenza, aligning to (カデンツァに揃える)
+@cindex aligning to cadenza (カデンツァに揃える)
+
+オーケストラのコンテキストにおいて、カデンツァは特殊な問題を提起します:
+楽譜の構成に演奏時間を持つカデンツァや他のソロ パッセージが含まれる場合、@c
+他のすべての楽器は、そのカデンツァの演奏時間の分だけ@c
+スキップする必要があります。@c
+さもなければ、他の楽器はカデンツァの終わりよりも早すぎる
+(あるいは遅すぎる) タイミングで始まってしまいます。
+
+この問題の解決方法の一つは、関数 @code{mmrest-of-length} と
+@code{skip-of-length} を使用することです。@c
+これらの Scheme 関数は、引数として定義済みの音楽表記をとり、@c
+その音楽表記と同じ長さの複数小節休符または @code{\skip} を生成します。
+
+@lilypond[verbatim,quote]
+MyCadenza = \relative c' {
+  c4 d8 e f g g4
+  f2 g4 g
+}
+
+\new GrandStaff <<
+  \new Staff {
+    \MyCadenza c'1
+    \MyCadenza c'1
+  }
+  \new Staff {
+    #(ly:export (mmrest-of-length MyCadenza))
+    c'1
+    #(ly:export (skip-of-length MyCadenza))
+    c'1
+  }
+>>
+@end lilypond
+
+
+@seealso
+音楽用語集:
+@rglos{cadenza}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+
+@c ここから L3219
+@node 時間管理
+@unnumberedsubsubsec 時間管理
+@translationof Time administration
+
+@cindex time administration (時間管理)
+@cindex timing (within the score) ((楽譜内での) タイミング)
+@cindex music, unmetered (無韻律の音楽)
+@cindex unmetered music (無韻律の音楽)
+
+@funindex currentBarNumber
+@funindex measurePosition
+@funindex measureLength
+
+時間は @code{Timing_translator}
+-- これは、デフォルトでは、@code{Socre} コンテキストの中にあります --
+によって管理されます。@c
+エイリアス @code{Timing} は @code{Timing_translator} が配置されている@c
+コンテキストに付け加えられます。
+エイリアス @code{Timing} が利用可能であることを保証するため、@c
+コンテキスト (@code{Voice} や @code{Staff} など) を明示的にインスタンス化@c
+する必要があるかもしれません。
+
+以下の @code{Timing} のプロパティは、@c
+楽譜内でのタイミングの経過を追うために使用されます。
+
+@cindex bar number (小節番号)
+@cindex measure number (小節番号)
+
+@table @code
+@item currentBarNumber
+カレントの小節番号。@c
+このプロパティの使用例は、@ref{小節番号} を参照してください。
+
+@item measureLength
+カレントの拍子での小節の長さ。@c
+4/4 拍子では 1 であり、6/8 拍子では 3/4 です。@c
+この値は小節線を挿入するタイミングと自動連桁の生成の仕方を決定します。
+
+@item measurePosition
+カレントで処理している小節内での位置。@c
+この値は、@code{measureLength} に到達するか超過したときに、@c
+この値から @code{measureLength} を減算されることによって、リセットされます。@c
+リセットが起こるときに、@code{currentBarNumber} が +1 されます。
+
+@item timing
+真にセットされている場合、各タイム ステップごとに上記の変数は更新されます。@c
+偽にセットされている場合、エングラーバはカレントの小節に永久に留まります。
+
+@end table
+
+タイミングは、上記の値のいずれかを明示的に設定することによって、@c
+変更することができます。@c
+次の例では、デフォルトの 4/4 拍子が譜刻されていますが、@c
+@code{measureLength} は 5/4 にセットされています。@c
+第 3 小節の 4/8 の位置で、@code{measurePositoin} は 1/8 進められて
+5/8 になり、それによりその小節は 1/8 短くされます。@c
+次の小節線は 5/4 ではなく 9/8 の位置で引かれます。
+
+@lilypond[quote,verbatim]
+\new Voice \relative c' {
+  \set Timing.measureLength = #(ly:make-moment 5 4)
+  c1 c4 |
+  c1 c4 |
+  c4 c
+  \set Timing.measurePosition = #(ly:make-moment 5 8)
+  b4 b b8 |
+  c4 c1 |
+}
+@end lilypond
+
+@noindent
+この例が示すように、@code{ly:make-moment n m} は全音符の n/m の長さの@c
+演奏時間を構成します。@c
+例えば、@code{ly:make-moment 1 8} は 1 個の 8 分音符の演奏時間であり、@c
+@code{ly:make-moment 7 16} は 7 個の 16 分音符の演奏時間です。
+
+
+@seealso
+記譜法リファレンス:
+@ref{小節番号},
+@ref{無韻律の音楽}
+
+コード断片集:
+@rlsrnamed{Rhythms,リズム}
+
+内部リファレンス:
+@rinternals{Timing_translator},
+@rinternals{Score}
index 46846cda10b6ea96cec03289a13d42763685892b..5f928113bd4aee12a3cd4d2a1a7e2f944ee0a212 100644 (file)
@@ -32,7 +32,7 @@
 @translationof Normal usage
 
 たいていのユーザは GUI から LilyPond を実行します。@c
-まだ実行したことがないのであれば @rlearning{Tutorial} を読んでください。
+まだ実行したことがないのであれば @rlearning{チュートリアル} を読んでください。
 lilypond ファイルを書くのに代替のエディタを使用するのであれば、@c
 そのエディタのドキュメントを読んでください。
 
@@ -458,10 +458,123 @@ GNU LilyPond の保証責任を表示します。@c
 
 @end table
 
+@c 未訳
 @node LilyPond in chroot jail
 @unnumberedsubsec LilyPond in chroot jail
 
-@untranslated
+Setting up the server to run LilyPond in a chroot jail is a complicated
+task.  The steps are listed below.  Examples in the steps are from
+Ubuntu Linux, and may require the use of @code{sudo} as appropriate.
+
+@itemize
+
+@item Install the necessary packages: LilyPond, GhostScript, and ImageMagick.
+
+@item Create a new user by the name of @code{lily}:
+
+@example
+adduser lily
+@end example
+
+@noindent
+This will create a new group for the @code{lily} user as well, and a home folder,
+@code{/home/lily}
+
+@item In the home folder of the @code{lily} user create a file to use as a
+separate filesystem:
+
+@example
+dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
+@end example
+
+@noindent
+This example creates a 200MB file for use as the jail filesystem.
+
+@item Create a loop device, make a file system and mount it, then create
+a folder that can be written by the @code{lily} user:
+
+@example
+mkdir /mnt/lilyloop
+losetup /dev/loop0 /home/lily/loopfile
+mkfs -t ext3 /dev/loop0 200000
+mount -t ext3 /dev/loop0 /mnt/lilyloop
+mkdir /mnt/lilyloop/lilyhome
+chown lily /mnt/lilyloop/lilyhome
+@end example
+
+@item In the configuration of the servers, the JAIL will be @code{/mnt/lilyloop}
+and the DIR will be @code{/lilyhome}.
+
+@item Create a big directory tree in the jail by copying the necessary files, as
+shown in the sample script below.
+
+You can use @code{sed} to create the necessary copy commands for a given
+executable:
+
+@example
+for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/;  \
+  do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\&  \
+    cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p  \
+      \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
+@end example
+
+@end itemize
+
+@subheading Example script for 32-bit Ubuntu 8.04
+
+@example
+#!/bin/sh
+## defaults set here
+
+username=lily
+home=/home
+loopdevice=/dev/loop0
+jaildir=/mnt/lilyloop
+# the prefix (without the leading slash!)
+lilyprefix=usr/local
+# the directory where lilypond is installed on the system
+lilydir=/$lilyprefix/lilypond/
+
+userhome=$home/$username
+loopfile=$userhome/loopfile
+adduser $username
+dd if=/dev/zero of=$loopfile bs=1k count=200000
+mkdir $jaildir
+losetup $loopdevice $loopfile
+mkfs -t ext3 $loopdevice 200000
+mount -t ext3 $loopdevice $jaildir
+mkdir $jaildir/lilyhome
+chown $username $jaildir/lilyhome
+cd $jaildir
+
+mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
+chmod a+w tmp
+
+cp -r -L $lilydir $lilyprefix
+cp -L /bin/sh /bin/rm bin
+cp -L /usr/bin/convert /usr/bin/gs usr/bin
+cp -L /usr/share/fonts/truetype usr/share/fonts
+
+# Now the library copying magic
+for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh"  \
+  "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=>  \
+    \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed  \
+      's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/'  \
+        | sed '/.*=>.*/d'; done | sh -s
+
+# The shared files for ghostscript...
+      cp -L -r /usr/share/ghostscript usr/share
+# The shared files for ImageMagick
+      cp -L -r /usr/lib/ImageMagick* usr/lib
+
+### Now, assuming that you have test.ly in /mnt/lilyloop/lilyhome,
+### you should be able to run:
+### Note that /$lilyprefix/bin/lilypond is a script, which sets the
+### LD_LIBRARY_PATH - this is crucial
+      /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
+@end example
+
+@c " keep quote signs balanced for context-sensitive editors
 
 
 @node エラー メッセージ
index c83383359c698b30c5fdbc64a49967a88208340e..9c3f70386f01a4519aba37ae677651cd9fe0f430 100644 (file)
@@ -166,7 +166,7 @@ c4-1 d-2 f-4 c^\markup { \finger "2 - 3" }
 @funindex \thumb
 @funindex thumb
 
-A thumb-script can be added (e.g., in cello music) to indicate
+A thumb-script can be added (e.g. cello music) to indicate
 that a note should be played with the thumb.
 
 @lilypond[verbatim,quote,relative=2]
@@ -177,8 +177,8 @@ that a note should be played with the thumb.
 @cindex fingering instructions for chords
 @cindex chords, fingering
 
-Fingerings for chords can also be added to individual notes of the
-chord by adding them after the pitches.
+Fingerings for chords can also be added to individual notes by
+adding them after the pitches.
 
 @lilypond[verbatim,quote,relative=2]
 <c-1 e-2 g-3 b-5>2 <d-1 f-2 a-3 c-5>
@@ -201,7 +201,7 @@ staff, see @ref{Direction and placement}.
 
 @seealso
 Notation Reference:
-@ref{Direction and placement}
+@ref{Direction and placement}.
 
 Snippets:
 @rlsr{Editorial annotations}.
@@ -213,6 +213,10 @@ Internals Reference:
 @rinternals{New_fingering_engraver},
 @rinternals{Fingering}.
 
+@knownissues
+By default, numbers greater than 9 are not supported using
+@samp{@var{note}-@var{digit}}.
+
 
 @node Hidden notes
 @unnumberedsubsubsec Hidden notes
index ededc3fc377b06e3a6bce7cb11590c0567feca51..5c5244f2db83960de52e544e6cfbb48b3848f845 100644 (file)
@@ -816,8 +816,8 @@ automatically, depending whether there is a solo or unison.  When
 needed in polyphony situations, the first part (with context called
 @code{one}) always gets up stems, while the second (called @code{two})
 always gets down stems.  In solo situations, the first and second
-parts get marked with @q{Solo} and @q{Solo II}, respectively.  The
-unisono (@notation{a due}) parts are marked by default with the text
+parts get marked with @qq{Solo} and @qq{Solo II}, respectively.  The
+unison (@notation{a due}) parts are marked by default with the text
 @qq{a2}.
 
 Both arguments to @code{\partcombine} will be interpreted as
@@ -836,6 +836,70 @@ A @code{\relative} section that is outside of @code{\partcombine}
 has no effect on the pitches of @code{@var{musicexpr1}} and
 @code{@var{musicexpr2}}.
 
+In professional scores, voices are often kept apart for long periods,
+even if one or two notes actually coincide and could easily be printed
+as unison. Combining notes into a chord, or showing one voice as solo
+is therefore not ideal as the @code{\partcombine} function considers
+each note separately. For this reason, the @code{\partcombine} function
+can be overriden with the following commands:
+
+@itemize
+@item
+@code{\partcombineApart}, @code{\partcombineApartOnce}:
+Keep the notes as two separate voices, even if they can be combined to a
+chord or unison.
+
+@item
+@code{\partcombineChords}, @code{\partcombineChordsOnce}:
+Combine the notes to a chord.
+
+@item
+@code{\partcombineUnisono}, @code{\partcombineUnisonoOnce}:
+The two voices are unison.
+
+@item
+@code{\partcombineSoloI}, @code{\partcombineSoloIOnce}:
+Show only voice one and mark it as solo.
+
+@item
+@code{\partcombineSoloII}, @code{\partcombineSoloIIOnce}:
+Show only voice two and mark it as solo.
+
+@item
+@code{\partcombineAutomatic}, @code{\partcombineAutomaticOnce}:
+Ends the effect of the special commands above, and returns to the default
+part combining mechanism.
+
+@end itemize
+
+All commands ending in @code{...Once} apply only to the following note.
+
+@lilypond[quote,verbatim]
+instrumentOne = \relative c' {
+  \partcombineApart c2^"apart" e |
+  \partcombineAutomatic e^"auto" e |
+  \partcombineChords e'^"chord" e |
+  \partcombineAutomatic c^"auto" c |
+  \partcombineApart c^"apart" \partcombineChordsOnce e^"chord once" |
+  c c |
+}
+instrumentTwo = \relative c' {
+  c2 c |
+  e2 e |
+  a,2 c |
+  c2 c' |
+  c2 c |
+  c2 c |
+}
+
+<<
+  \new Staff { \instrumentOne }
+  \new Staff { \instrumentTwo }
+  \new Staff { \partcombine \instrumentOne \instrumentTwo }
+>>
+@end lilypond
+
+
 @snippets
 
 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
index 93f1087278ed5b4aece3b2bc63d5dbe9fc3a7d24..8c2edce2d5c0b507271dc2223b69496978eb04ae 100644 (file)
@@ -895,6 +895,7 @@ Default values not listed here are defined in
 
 @table @code
 
+@cindex page numbers, auto-numbering
 @item auto-first-page-number
 @funindex auto-first-page-number
 
@@ -904,6 +905,7 @@ will decide whether to start with an odd or even number.  This
 will result in the first page number remaining as is or being
 increased by one.  Default: @code{#f}.
 
+@cindex page numbers, specify the first
 @item first-page-number
 @funindex first-page-number
 
@@ -914,6 +916,7 @@ The value of the page number on the first page.
 
 If set to true, a page number is printed on the first page.
 
+@cindex page numbers, suppress
 @item print-page-number
 @funindex print-page-number
 
@@ -1746,6 +1749,19 @@ systems, scores, markups, and margins is controlled by
 @node Within-system spacing properties
 @unnumberedsubsubsec Within-system spacing properties
 
+@funindex staff-affinity
+@funindex staffgroup-staff-spacing
+@funindex staff-staff-spacing
+@funindex nonstaff-unrelatedstaff-spacing
+@funindex nonstaff-relatedstaff-spacing
+@funindex nonstaff-nonstaff-spacing
+@funindex default-staff-staff-spacing
+@funindex minimum-Y-extent
+@funindex extra-offset
+@funindex self-alignment-X
+@funindex X-offset
+@funindex VerticalAxisGroup
+
 The within-system vertical spacing mechanisms are controlled by
 two sets of grob properties.  The first set is associated with the
 @code{VerticalAxisGroup} grob, which is created by all staves and
@@ -1864,8 +1880,8 @@ labelContext =
 @end lilypond
 
 Each of the vertical spacing grob properties (except
-@code{staff-affinity}) uses the same alist structure
-as the @code{\paper} spacing variables discussed in
+@code{staff-affinity}) uses the same alist structure as the
+@code{\paper} spacing variables discussed in
 @ref{Flexible vertical spacing \paper variables}.  Specific methods
 for modifying alists are discussed in @ref{Modifying alists}.
 Grob properties should be adjusted with an @code{\override} inside
@@ -2004,15 +2020,19 @@ spacing settings for that staff.
 @end table
 
 @seealso
-Installed Files:
-@file{ly/engraver-init.ly},
-@file{scm/define-grobs.scm}.
+Notation Reference:
+@ref{Flexible vertical spacing \paper variables},
+@ref{Modifying alists}.
 
 Internals Reference:
 @rinternals{Contexts},
 @rinternals{VerticalAxisGroup},
 @rinternals{StaffGrouper}.
 
+Installed Files:
+@file{ly/engraver-init.ly},
+@file{scm/define-grobs.scm}.
+
 
 @node Spacing of ungrouped staves
 @unnumberedsubsubsec Spacing of ungrouped staves
index 6bd5505fd0018853d7df7efabe5899360e789581..89faf42eae73422838f0363f2871382273dffaca 100644 (file)
@@ -8,6 +8,18 @@
 \version "2.13.53"
 
 \header {
+%% Translation of GIT committish: 69d7781c6ab26df02bc81ff1eb294d47fa673491
+
+  texidoces = "
+Los deslizamientos para acordes se pueden indicar tanto en el contexto
+Staff como en TabStaff.  Los números de cuerda son necesarios para
+TabStaff porque los cálculos de cuerda automáticos son diferentes para
+los acordes y para notas sueltas, y @code{\\chordGlissando} traza
+líneas entre las notas individuales.
+
+"
+
+  doctitlees = "Glissando de acordes en tablatura"
   lsrtags = "fretted-strings"
   texidoc = "
 Slides for chords can be indicated in both Staff and TabStaff.
index fde41e9f299f5af75c5abc2bad052608ae0715ba..95a8240546ff6f343be84455b6ff90b653f66e40 100644 (file)
@@ -8,6 +8,14 @@
 \version "2.13.49"
 
 \header {
+%% Translation of GIT committish: 69d7781c6ab26df02bc81ff1eb294d47fa673491
+  texidoces = "
+Armónicos sobre cuerdas pisadas (armónicos artificiales):
+"
+  doctitlees = "Armónicos sobre cuerdas pisadas en tablatura"
+
+
+
   lsrtags = "fretted-strings"
   texidoc = "
 Fretted-string harmonics:
index 9dae041eeb29057a9ed9155db92d7e29b3998703..4112120a1058f576bdab50b658ed8c7b0f2343ef 100644 (file)
@@ -8,6 +8,13 @@
 \version "2.13.49"
 
 \header {
+%% Translation of GIT committish: 69d7781c6ab26df02bc81ff1eb294d47fa673491
+  texidoces = "
+Referencia para armónicos sobre cuerdas al aire (armónicos naturales):
+
+"
+  doctitlees = "Referencia para armónicos sobre cuerdas al aire"
+
   lsrtags = "fretted-strings"
   texidoc = "
 Reference for open-string harmonics:
index 39d1b98d3cb1aa2d3bd0786a368d15a18a925996..f8ed58d73d55ac7c18ab8b9ca8ca3afc558cb96e 100644 (file)
@@ -8,6 +8,16 @@
 \version "2.13.49"
 
 \header {
+%% Translation of GIT committish: 69d7781c6ab26df02bc81ff1eb294d47fa673491
+  texidoces = "
+
+Los deslizamientos se pueden componer tipográficamente tanto en los
+contextos de @code{Staff} como en los de @code{TabStaff}:
+
+"
+
+  doctitlees = "Deslizamientos en tablatura"
+
   lsrtags = "fretted-strings"
   texidoc = "
 Slides can be typeset in both @code{Staff} and @code{TabStaff} contexts:
index cf2836c42b24b21157de2a5b9c4cf869ae8d763c..38e922270c99c32ac0d2829c88a80de55c68ae06 100644 (file)
@@ -4,8 +4,8 @@
 % and then run scripts/auxiliar/makelsr.py
 %
 % This file is in the public domain.
-%% Note: this file works from version 2.13.36
-\version "2.13.36"
+%% Note: this file works from version 2.13.51
+\version "2.13.51"
 
 \header {
 %%%    Translation of GIT committish: 91eeed36c877fe625d957437d22081721c8c6345
index fda88fcbb9ce9c7fc46ffcd7ce11a920e1772d11..ca2a2808737b0f70f2f3477a5f56e632b350d282 100644 (file)
@@ -9,60 +9,31 @@
 @c used for news about the upcoming release; see CG 10.2
 
 @newsItem
-@subsubheading LilyPond 2.13.53 released!  @emph{Mar 6, 2011}
+@subsubheading Release candidate 3 withdrawn  @emph{Mar 15, 2011}
 
-We are happy to announce the release of LilyPond 2.13.53.  This
-release contains the usual number of bugfixes.
-
-Please note that this is @strong{not} the third release candidate,
-due to a few remaining Critical bugs.
-
-@newsEnd
-
-@newsItem
-@subsubheading LilyPond 2.13.52 released!  @emph{Mar 1, 2011}
-
-We are happy to announce the release of LilyPond 2.13.52.  This
-release contains the usual number of bugfixes.
-
-Please note that this is @strong{not} the third release candidate,
-due to a few remaining Critical bugs.
-
-@newsEnd
-
-@newsItem
-@subsubheading LilyPond 2.13.51 released!  @emph{Feb 22, 2011}
-
-We are happy to announce the release of LilyPond 2.13.51.  This
-release contains the usual number of bugfixes.
-
-Please note that this is @strong{not} the third release candidate,
-due to a few remaining Critical bugs.
+We have discovered a regression since 2.12.3, so lilypond 2.13.54
+is no longer a candidate for the 2.14.0 release.  However, please
+continue testing it -- we would like to discover (and fix!) any
+more regressions as soon as possible.  If you discover any
+problems, please send us @ref{Bug reports}.
 
 @newsEnd
 
 
 @newsItem
-@subsubheading LilyPond 2.13.50 released!  @emph{Feb 13, 2011}
-
-We are happy to announce the release of LilyPond 2.13.50.  This
-release contains the usual number of bugfixes.
-
-Please note that this is @strong{not} the third release candidate.
-Due to a number of untested changes to our build process, we
-cannot be at all confident about the quality of this release.
-
-@newsEnd
+@subsubheading Release candidate 3 of 2.14 - LilyPond 2.13.54 released!  @emph{Mar 13, 2011}
 
+LilyPond 2.13.54 is out; this is the third release candidate of
+the upcoming 2.14 stable release.  All users are invited to
+experiment with this version.  New features since 2.12.3 are
+listed in the @qq{Changes} manual on the website section about
+@ref{Development}.
 
-@newsItem
-@subsubheading New Chinese and Czech translations of the web page! @emph{Feb 11,2011}
-
-Two new languages are added to our web page: Chinese by Ben Luo, and
-Czech by Pavel Fric.  It is a work in progress but they are fully
-functional.  That makes ten languages to choose from!
+There are no known Critical issues with this release.  If no
+Critical bugs are found, then the official 2.14.0 release will be
+on March 27, 2011.  If you discover any problems, please send us
+@ref{Bug reports}.
 
 @newsEnd
 
 
-
index d86116057df813ce1f73292cb6bce870ccce0cbc..5b484a9345ae5e09674ce6d2a58cd5e26f67db70 100644 (file)
@@ -27,6 +27,64 @@ NOTE:
 @end ignore
 
 
+@newsItem
+@subsubheading LilyPond 2.13.53 released!  @emph{Mar 6, 2011}
+
+We are happy to announce the release of LilyPond 2.13.53.  This
+release contains the usual number of bugfixes.
+
+Please note that this is @strong{not} the third release candidate,
+due to a few remaining Critical bugs.
+
+@newsEnd
+
+@newsItem
+@subsubheading LilyPond 2.13.52 released!  @emph{Mar 1, 2011}
+
+We are happy to announce the release of LilyPond 2.13.52.  This
+release contains the usual number of bugfixes.
+
+Please note that this is @strong{not} the third release candidate,
+due to a few remaining Critical bugs.
+
+@newsEnd
+
+@newsItem
+@subsubheading LilyPond 2.13.51 released!  @emph{Feb 22, 2011}
+
+We are happy to announce the release of LilyPond 2.13.51.  This
+release contains the usual number of bugfixes.
+
+Please note that this is @strong{not} the third release candidate,
+due to a few remaining Critical bugs.
+
+@newsEnd
+
+
+@newsItem
+@subsubheading LilyPond 2.13.50 released!  @emph{Feb 13, 2011}
+
+We are happy to announce the release of LilyPond 2.13.50.  This
+release contains the usual number of bugfixes.
+
+Please note that this is @strong{not} the third release candidate.
+Due to a number of untested changes to our build process, we
+cannot be at all confident about the quality of this release.
+
+@newsEnd
+
+
+@newsItem
+@subsubheading New Chinese and Czech translations of the web page! @emph{Feb 11,2011}
+
+Two new languages are added to our web page: Chinese by Ben Luo, and
+Czech by Pavel Fric.  It is a work in progress but they are fully
+functional.  That makes ten languages to choose from!
+
+@newsEnd
+
+
+
 @newsItem
 @subsubheading Release candidate 2 of 2.14 - LilyPond 2.13.49 released!  @emph{Feb 9, 2011}
 
index f8e1d15e7ca6a81516b41bbf3f0e5653c98fa3cd..3809d03ad3c861022dfa8fc1ec490147c380ca2d 100644 (file)
@@ -254,6 +254,7 @@ test:
        @echo '        grep sourcefilename `grep -L systems.texi out/lybook-testdb/*/*log|sed s/log/ly/g`'
        @echo
        $(MAKE) -C input/regression out=test local-test
+       $(MAKE) -C input/regression/midi out=test local-test
        $(MAKE) -C input/regression/musicxml out=test local-test
        $(MAKE) -C input/regression/abc2ly out=test local-test
        $(MAKE) -C input/regression/lilypond-book out=test local-test
@@ -265,6 +266,7 @@ test-baseline:
        $(MAKE)
        $(MAKE) test
        $(MAKE) out=test -C input/regression local-test-baseline
+       $(MAKE) out=test -C input/regression/midi local-test-baseline
        $(MAKE) out=test -C input/regression/musicxml local-test-baseline
        $(MAKE) out=test -C input/regression/abc2ly local-test-baseline
        $(MAKE) out=test -C input/regression/lilypond-book local-test-baseline
diff --git a/VERSION b/VERSION
index 2fcf7b2fa7d866f01b124cacb9120c73afddc074..9ffddbf81ff97ab01722e99659a1803923644071 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,7 +1,7 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=2
 MINOR_VERSION=13
-PATCH_LEVEL=54
+PATCH_LEVEL=55
 MY_PATCH_LEVEL=
 VERSION_STABLE=2.12.3
-VERSION_DEVEL=2.13.53
+VERSION_DEVEL=2.13.54
index e0c023d667ed73a504f3a2421b092862c205f6c6..cc769e7c2f5843c060c7ce3aef80e7a5f23a70d4 100644 (file)
@@ -6,4 +6,4 @@ LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc
 include $(depth)/make/stepmake.make
 TITLE=LilyPond Regression Tests
 
-SUBDIRS=musicxml abc2ly lilypond-book
+SUBDIRS=midi musicxml abc2ly lilypond-book
diff --git a/input/regression/beam-feather-breaking.ly b/input/regression/beam-feather-breaking.ly
new file mode 100644 (file)
index 0000000..1b3aae0
--- /dev/null
@@ -0,0 +1,137 @@
+\version "2.13.55"
+\header  {
+  texidoc = "Feathered beams should have the same progress of their feathering
+at the end of a line break as they do at the beginning of the next line."
+}
+
+\paper {
+  left-margin = 2\cm
+  line-width = 10\cm
+  ragged-right = ##t
+  indent = 0\cm
+}
+
+\new Staff <<
+  \relative c' {
+    \cadenzaOn
+    \override Staff . TimeSignature #'stencil = ##f
+    \override Voice . Beam #'breakable = ##t
+    \once \override Voice . Beam #'grow-direction = #RIGHT
+    a32[ b c d e f g a ]
+    \once \override Voice . Beam #'grow-direction = #LEFT
+    a[ g f e d c b a]  \bar "|"
+} >>
+
+\new Staff <<
+  \relative c' {
+    \cadenzaOn
+    \override Staff . TimeSignature #'stencil = ##f
+    \override Voice . Beam #'breakable = ##t
+    \once \override Voice . Beam #'grow-direction = #RIGHT
+    a32[ b c d \bar "" \break e f g a b c d e f g a ] \bar "|"
+} >>
+
+\new Staff <<
+  \relative c' {
+    \cadenzaOn
+    \override Staff . TimeSignature #'stencil = ##f
+    \override Voice . Beam #'breakable = ##t
+    \once \override Voice . Beam #'grow-direction = #RIGHT
+    a32[ b c d e f g a \bar "" \break b c d e f g a ] \bar "|"
+} >>
+
+\new Staff <<
+  \relative c' {
+    \cadenzaOn
+    \override Staff . TimeSignature #'stencil = ##f
+    \override Voice . Beam #'breakable = ##t
+    \once \override Voice . Beam #'grow-direction = #RIGHT
+    a32[ b c d e f g a b c d \bar "" \break e f g a ] \bar "|"
+} >>
+
+\new Staff <<
+  \relative c' {
+    \cadenzaOn
+    \override Staff . TimeSignature #'stencil = ##f
+    \override Voice . Beam #'breakable = ##t
+    \once \override Voice . Beam #'grow-direction = #LEFT
+    a32[ b c d \bar "" \break e f g a b c d e f g a ] \bar "|"
+} >>
+
+\new Staff <<
+  \relative c' {
+    \cadenzaOn
+    \override Staff . TimeSignature #'stencil = ##f
+    \override Voice . Beam #'breakable = ##t
+    \once \override Voice . Beam #'grow-direction = #LEFT
+    a32[ b c d e f g a \bar "" \break b c d e f g a ] \bar "|"
+} >>
+
+\new Staff <<
+  \relative c' {
+    \cadenzaOn
+    \override Staff . TimeSignature #'stencil = ##f
+    \override Voice . Beam #'breakable = ##t
+    \once \override Voice . Beam #'grow-direction = #LEFT
+    a32[ b c d e f g a b c d \bar "" \break e f g a ] \bar "|"
+} >>
+
+\new Staff <<
+  \relative c' {
+    \cadenzaOn
+    \override Staff . TimeSignature #'stencil = ##f
+    \override Voice . Stem #'direction = #DOWN
+    \override Voice . Beam #'breakable = ##t
+    \once \override Voice . Beam #'grow-direction = #RIGHT
+    a32[ b c d \bar "" \break e f g a b c d e f g a ] \bar "|"
+} >>
+
+\new Staff <<
+  \relative c' {
+    \cadenzaOn
+    \override Staff . TimeSignature #'stencil = ##f
+    \override Voice . Stem #'direction = #DOWN
+    \override Voice . Beam #'breakable = ##t
+    \once \override Voice . Beam #'grow-direction = #RIGHT
+    a32[ b c d e f g a \bar "" \break b c d e f g a ] \bar "|"
+} >>
+
+\new Staff <<
+  \relative c' {
+    \cadenzaOn
+    \override Staff . TimeSignature #'stencil = ##f
+    \override Voice . Stem #'direction = #DOWN
+    \override Voice . Beam #'breakable = ##t
+    \once \override Voice . Beam #'grow-direction = #RIGHT
+    a32[ b c d e f g a b c d \bar "" \break e f g a ] \bar "|"
+} >>
+
+\new Staff <<
+  \relative c' {
+    \cadenzaOn
+    \override Staff . TimeSignature #'stencil = ##f
+    \override Voice . Stem #'direction = #DOWN
+    \override Voice . Beam #'breakable = ##t
+    \once \override Voice . Beam #'grow-direction = #LEFT
+    a32[ b c d \bar "" \break e f g a b c d e f g a ] \bar "|"
+} >>
+
+\new Staff <<
+  \relative c' {
+    \cadenzaOn
+    \override Staff . TimeSignature #'stencil = ##f
+    \override Voice . Stem #'direction = #DOWN
+    \override Voice . Beam #'breakable = ##t
+    \once \override Voice . Beam #'grow-direction = #LEFT
+    a32[ b c d e f g a \bar "" \break b c d e f g a ] \bar "|"
+} >>
+
+\new Staff <<
+  \relative c' {
+    \cadenzaOn
+    \override Staff . TimeSignature #'stencil = ##f
+    \override Voice . Stem #'direction = #DOWN
+    \override Voice . Beam #'breakable = ##t
+    \once \override Voice . Beam #'grow-direction = #LEFT
+    a32[ b c d e f g a b c d \bar "" \break e f g a ] \bar "|"
+} >>
index eecbd97ca2ffebf391c23a696250c977a1093fdd..3a0f3ef7cc9693a6c82a80a303821f4d39efb78c 100644 (file)
@@ -11,11 +11,10 @@ annotation goes to the correct page."
 \book {
 
 \relative c'' {
-\once \override FootnoteSpanner #'spanner-placement = #-0.7
 \footnoteGrob #'Hairpin
               #'(0.5 . 0.5)
               \markup { \tiny "1." }
-              \markup { 1. \justify { Goes to the second broken spanner. } }
+              \markup { 1. \justify { Goes to the first broken spanner. } }
 b4\< c d a
 b c d a
 b c d a
@@ -35,7 +34,7 @@ b c d a
 b c d a
 b c d a\!
 
-\once \override FootnoteSpanner #'spanner-placement = #1.0
+\once \override FootnoteSpanner #'spanner-placement = #RIGHT
 \footnoteGrob #'Hairpin
               #'(0.5 . 0.5)
               \markup { \tiny "2." }
index 5833e0b9983e84753d1c5fb96ebf88585973d551..f2da8d4562cf3cdde447aca1f0bceaec5784b592 100644 (file)
@@ -3,8 +3,8 @@
 \header {
   texidoc="
 Finger labels can be added, either in dots or below strings.
-Dot color can be changed, and fingering label font size
-can be adjusted.
+Dot color can be changed globally or on a per-dot basis,
+and fingering label font size can be adjusted.
 
 "
 }
@@ -17,6 +17,8 @@ can be adjusted.
     c1 |
     c1 |
     c1 |
+    c1 |
+    c1 |
     c1
   }
 
@@ -81,7 +83,28 @@ can be adjusted.
                                      (place-fret 2 5 4)
                                      (place-fret 1 3 1)
                                      (barre 5 1 3))}
-
+    %% dot color inversion, white on black
+    \once \override TextScript #'fret-diagram-details 
+        #'dot-color = #'black
+    c' ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1 inverted)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3 inverted)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (barre 5 1 3))}
+    %% dot color inversion, black on white
+    \once \override TextScript #'fret-diagram-details 
+        #'dot-color = #'white
+    c' ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1 inverted)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3 inverted)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (barre 5 1 3))}
  }
 >>
 
index e45755c8f24dd31a32caa6025b9ff1f0e0660b9f..390b01c737cdaa655d929ff9b4ee7cedb45d0c27 100644 (file)
@@ -12,6 +12,7 @@ size, and number type.
 
 <<
   \chords {
+    c1 |
     c1 |
     c1 |
     c1
@@ -61,6 +62,21 @@ size, and number type.
                                      (place-fret 1 3 1)
                                      (barre 5 1 3))}
 
+     %% C major for guitar, verbose style
+    \revert TextScript #'fret-diagram-details #'label-dir
+    \once \override TextScript #'fret-diagram-details 
+        #'number-type = #'custom
+    \once \override TextScript #'fret-diagram-details 
+        #'fret-label-custom-format = #"~d°"
+    c' ^\markup {
+            \fret-diagram-verbose #'((mute 6)
+                                     (place-fret 5 3 1)
+                                     (place-fret 4 5 2)
+                                     (place-fret 3 5 3)
+                                     (place-fret 2 5 4)
+                                     (place-fret 1 3 1)
+                                     (barre 5 1 3))}
+
  }
 >>
 
diff --git a/input/regression/fret-diagrams-size.ly b/input/regression/fret-diagrams-size.ly
new file mode 100644 (file)
index 0000000..5a52612
--- /dev/null
@@ -0,0 +1,26 @@
+\version "2.13.51"
+
+\header {
+  texidoc="
+Fret diagrams can be scaled using the @code{size} property.
+The position and size of first fret label, mute/open signs, fingers,
+relative to the diagram grid, shall be the same in all cases.
+
+"
+}
+
+myFretDiagram =
+\markup \fret-diagram-verbose #'((place-fret 6 6 "P")
+                                 (place-fret 5 8 2)
+                                 (place-fret 4 8 2)
+                                 (place-fret 3 7 1)
+                                 (place-fret 2 8 3)
+                                 (mute 1))
+
+\markup \override #'(fret-diagram-details . ((finger-code . below-string))) {
+  \myFretDiagram
+  \hspace #4
+  \override #'(size . 1.5) \myFretDiagram
+  \hspace #8
+  \override #'(size . 3) \myFretDiagram
+}
index 03500ebfd1f96727c5b63f5487cc0456829e4f72..82606f037fa5bd032220adf50295d27cbcde1826 100644 (file)
@@ -1,38 +1,50 @@
-\version "2.12.0"
+\version "2.13.54"
 
 \header {
+  tagline = ##f
   texidoc = "Text that can spread over pages is entered with the
-@code{\\markuplines} command."
+@code{\\markuplines} command.  Widowed and orphaned lines are avoided
+at the begininng and end of a @code{\\markuplines} containing more
+than one line."
 }
 
-#(set-default-paper-size "a6")
+#(set-default-paper-size "a7")
 
 #(define-markup-list-command (paragraph layout props args) (markup-list?)
   (interpret-markup-list layout props 
    (make-justified-lines-markup-list (cons (make-hspace-markup 2) args))))
-
-%% Candide, Voltaire
-\markuplines \override-lines #'(baseline-skip . 2.5) {
-  \paragraph {
-    Il y avait en Westphalie, dans le château de M. le baron de
-    Thunder-ten-tronckh, un jeune garçon à qui la nature avait donné
-    les mœurs les plus douces.  Sa physionomie annonçait son âme.
-    Il avait le jugement assez droit, avec l'esprit le plus simple ;
-    c'est, je crois, pour cette raison qu'on le nommait Candide.  Les
-    anciens domestiques de la maison soupçonnaient qu'il était fils
-    de la sœur de monsieur le baron et d'un bon et honnête
-    gentilhomme du voisinage, que cette demoiselle ne voulut jamais
-    épouser parce qu'il n'avait pu prouver que soixante et onze
-    quartiers, et que le reste de son arbre généalogique avait été
-    perdu par l'injure du temps.
+\book {
+  \markuplines {} % Empty list is handled gracefully
+  %% Candide, Voltaire
+  \markuplines \override-lines #'(baseline-skip . 3.0) {
+    \paragraph { % The final two lines are placed on page 2.
+      Il y avait en Westphalie, dans le château de M. le baron de
+      Thunder-ten-tronckh, un jeune garçon à qui la nature avait donné
+      les mœurs les plus douces.  Sa physionomie annonçait son âme.
+      Il avait le jugement assez droit, avec l'esprit le plus simple ;
+      c'est, je crois, pour cette raison qu'on le nommait Candide.  Les
+      anciens domestiques de la maison soupçonnaient qu'il était fils
+      de la sœur de monsieur le baron et d'un bon et honnête
+      gentilhomme du voisinage, que cette demoiselle ne voulut jamais
+      épouser parce qu'il n'avait pu prouver que soixante et onze
+      quartiers, et que le reste de son arbre généalogique avait été
+      perdu par l'injure du temps. (not orphaned)
+    }
+  }
+  \markuplines \override-lines #'(baseline-skip . 3.9) {
+    \paragraph {
+      Monsieur le baron était un des plus puissants seigneurs de la
+      Westphalie, car son château avait une porte et des fenêtres.  Sa
+      grande salle même était ornée d'une tapisserie.  Tous les chiens
+      de ses basses-cours composaient une meute dans le besoin ; ses
+      palefreniers étaient ses piqueurs; le vicaire du village était
+      son grand-aumônier.  Ils l'appelaient tous monseigneur, et ils
+      riaient quand il faisait des contes.
+    }
   }
-  \paragraph {
-    Monsieur le baron était un des plus puissants seigneurs de la
-    Westphalie, car son château avait une porte et des fenêtres.  Sa
-    grande salle même était ornée d'une tapisserie.  Tous les chiens
-    de ses basses-cours composaient une meute dans le besoin ; ses
-    palefreniers étaient ses piqueurs; le vicaire du village était
-    son grand-aumônier.  Ils l'appelaient tous monseigneur, et ils
-    riaient quand il faisait des contes.
+  \markuplines {
+    \paragraph { % A single-line paragraph may be orphaned
+      Madame la ... (may be orphaned)
+    }
   }
 }
diff --git a/input/regression/midi/GNUmakefile b/input/regression/midi/GNUmakefile
new file mode 100644 (file)
index 0000000..682bf82
--- /dev/null
@@ -0,0 +1,13 @@
+depth = ../../..
+
+STEPMAKE_TEMPLATES=documentation texinfo tex
+LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc midi
+
+TEXI2HTML_FLAGS += --nomenu
+
+TMP = $(sort $(LY_FILES) $(TEXINFO_SOURCES) )
+COLLATED_FILES = ${TMP:%.ly=$(outdir)/%-midi.ly}
+
+include $(depth)/make/stepmake.make
+
+TITLE=MIDI test suite
diff --git a/input/regression/midi/key-initial.ly b/input/regression/midi/key-initial.ly
new file mode 100644 (file)
index 0000000..c663dec
--- /dev/null
@@ -0,0 +1,79 @@
+% Lily was here -- automatically converted by ../../../scripts/midi2ly.py from out/initial-key.midi
+\version "2.13.53"
+
+\layout {
+  \context {
+    \Voice
+    \remove "Note_heads_engraver"
+    \consists "Completion_heads_engraver"
+    \remove "Rest_engraver"
+    \consists "Completion_rest_engraver"
+  }
+}
+
+% included from ./out/initial-key.header
+\header {
+texidoc="keys work in MIDI, this is a-minor"
+options=""
+}
+% end
+
+trackAchannelA = {
+
+
+  \key a \minor
+    
+  % [SEQUENCE_TRACK_NAME] control track
+  
+  % [TEXT_EVENT] creator: 
+  
+  % [TEXT_EVENT] GNU LilyPond 2.13.54          
+  
+  \time 4/4 
+  
+  \tempo 4 = 60 
+  
+}
+
+trackA = <<
+  \context Voice = voiceA \trackAchannelA
+>>
+
+
+trackBchannelA = \relative c {
+  
+  \set Staff.instrumentName = "trackB:voiceA"
+  a'4 b c d 
+  | % 2
+  e f gis a 
+  | % 3
+  
+}
+
+trackB = <<
+  \context Voice = voiceA \trackBchannelA
+>>
+
+
+trackCchannelA = {
+  
+  \set Staff.instrumentName = "trackB:"
+  
+
+  \key a \minor
+  
+}
+
+trackC = <<
+  \context Voice = voiceA \trackCchannelA
+>>
+
+
+\score {
+  <<
+    \context Staff=trackB \trackA
+    \context Staff=trackB \trackB
+  >>
+  \layout {}
+  \midi {}
+}
diff --git a/input/regression/midi/key-option.ly b/input/regression/midi/key-option.ly
new file mode 100644 (file)
index 0000000..044251b
--- /dev/null
@@ -0,0 +1,75 @@
+% Lily was here -- automatically converted by ../../../scripts/midi2ly.py from out-www/option-key.midi
+\version "2.13.53"
+
+\layout {
+  \context {
+    \Voice
+    \remove "Note_heads_engraver"
+    \consists "Completion_heads_engraver"
+    \remove "Rest_engraver"
+    \consists "Completion_rest_engraver"
+  }
+}
+
+% included from ./out-www/option-key.header
+\header {
+texidoc="midi2ly @code{--key} works, this is F major"
+options="--key=-1"
+}
+% end
+
+trackAchannelA = {
+
+
+  % [SEQUENCE_TRACK_NAME] control track
+  
+  % [TEXT_EVENT] creator: 
+  
+  % [TEXT_EVENT] GNU LilyPond 2.13.54          
+  
+  \time 4/4 
+  
+  \tempo 4 = 60 
+  
+}
+
+trackA = <<
+  \context Voice = voiceA \trackAchannelA
+>>
+
+
+trackBchannelA = \relative c {
+  
+  \set Staff.instrumentName = "trackB:voiceA"
+  f'4 g a bes 
+  | % 2
+  c d e f 
+  | % 3
+  
+}
+
+trackB = <<
+  \context Voice = voiceA \trackBchannelA
+>>
+
+
+trackCchannelA = {
+  
+  \set Staff.instrumentName = "trackB:"
+  
+
+}
+
+trackC = <<
+  \context Voice = voiceA \trackCchannelA
+>>
+
+
+\score {
+  <<
+    \context Staff=trackB \trackA
+    \context Staff=trackB \trackB
+  >>
+  \layout {}
+  \midi {}
+}
diff --git a/input/regression/midi/lyrics-addlyrics.ly b/input/regression/midi/lyrics-addlyrics.ly
new file mode 100644 (file)
index 0000000..c8a08e4
--- /dev/null
@@ -0,0 +1,34 @@
+% Lily was here -- automatically converted by ../../../scripts/midi2ly.py from out/initial-key.midi
+\version "2.13.53"
+
+\layout {
+  \context {
+    \Voice
+    \remove "Note_heads_engraver"
+    \consists "Completion_heads_engraver"
+    \remove "Rest_engraver"
+    \consists "Completion_rest_engraver"
+  }
+}
+
+% included from ./out/initial-key.header
+\header {
+texidoc="Lyrics are preserved"
+options=""
+}
+% end
+
+\score {
+  <<
+    \relative c'' {
+      \key g \major
+      \time 6/8
+      d4 b8 c4 a8 | d4 b8 g4
+    }
+    \addlyrics {
+      Girls and boys come | out to play,
+    }
+  >>
+  \layout {}
+  \midi {}
+}
diff --git a/input/regression/midi/quantize-duration.ly b/input/regression/midi/quantize-duration.ly
new file mode 100644 (file)
index 0000000..051f7c9
--- /dev/null
@@ -0,0 +1,56 @@
+% Lily was here -- automatically converted by ../../../scripts/midi2ly.py from out-www/voice-2.midi
+\version "2.13.53"
+
+\layout {
+  \context {
+    \Voice
+    \remove "Note_heads_engraver"
+    \consists "Completion_heads_engraver"
+    \remove "Rest_engraver"
+    \consists "Completion_rest_engraver"
+  }
+}
+
+% included from ./out-www/voice-2.header
+\header {
+texidoc="midi2ly @code{--duration-quant} quantizes durations of notes"
+options="--duration-quant=4"
+}
+% end
+
+trackAchannelA = {
+  
+  % [SEQUENCE_TRACK_NAME] control track
+  
+  % [TEXT_EVENT] creator: 
+  
+  % [TEXT_EVENT] GNU LilyPond 2.13.54          
+  
+  \time 4/4 
+  
+  \tempo 4 = 60 
+  
+}
+
+trackA = <<
+  \context Voice = voiceA \trackAchannelA
+>>
+
+
+trackBchannelA = \relative c {
+  r4*1/8 c4*7/8 
+  c4*7/8 r4*1/8
+}
+
+trackB = <<
+  \context Voice = voiceA \trackBchannelA
+>>
+
+
+\score {
+  <<
+    \context Staff=trackB \trackB
+  >>
+  \layout {}
+  \midi {}
+}
diff --git a/input/regression/midi/quantize-start.ly b/input/regression/midi/quantize-start.ly
new file mode 100644 (file)
index 0000000..708d579
--- /dev/null
@@ -0,0 +1,56 @@
+% Lily was here -- automatically converted by ../../../scripts/midi2ly.py from out-www/voice-2.midi
+\version "2.13.53"
+
+\layout {
+  \context {
+    \Voice
+    \remove "Note_heads_engraver"
+    \consists "Completion_heads_engraver"
+    \remove "Rest_engraver"
+    \consists "Completion_rest_engraver"
+  }
+}
+
+% included from ./out-www/voice-2.header
+\header {
+texidoc="midi2ly @code{--start-quant} quantizes start of notes"
+options="--start-quant=4"
+}
+% end
+
+trackAchannelA = {
+  
+  % [SEQUENCE_TRACK_NAME] control track
+  
+  % [TEXT_EVENT] creator: 
+  
+  % [TEXT_EVENT] GNU LilyPond 2.13.54          
+  
+  \time 4/4 
+  
+  \tempo 4 = 60 
+  
+}
+
+trackA = <<
+  \context Voice = voiceA \trackAchannelA
+>>
+
+
+trackBchannelA = \relative c {
+  r4*1/8 c4*7/8 
+  c4*7/8 r4*1/8
+}
+
+trackB = <<
+  \context Voice = voiceA \trackBchannelA
+>>
+
+
+\score {
+  <<
+    \context Staff=trackB \trackB
+  >>
+  \layout {}
+  \midi {}
+}
diff --git a/input/regression/midi/rest.ly b/input/regression/midi/rest.ly
new file mode 100644 (file)
index 0000000..4013296
--- /dev/null
@@ -0,0 +1,63 @@
+% Lily was here -- automatically converted by ../../../scripts/midi2ly.py from out-www/rest.midi
+\version "2.13.53"
+
+\layout {
+  \context {
+    \Voice
+    \remove "Note_heads_engraver"
+    \consists "Completion_heads_engraver"
+    \remove "Rest_engraver"
+    \consists "Completion_rest_engraver"
+  }
+}
+
+% included from ./out-www/rest.header
+\header {
+texidoc="midi2ly identifies rests"
+options=""
+}
+% end
+
+trackAchannelA = {
+  
+  % [SEQUENCE_TRACK_NAME] control track
+  
+  % [TEXT_EVENT] creator: 
+  
+  % [TEXT_EVENT] GNU LilyPond 2.13.54          
+  
+  \time 4/4 
+  
+  \tempo 4 = 60 
+  
+}
+
+trackA = <<
+  \context Voice = voiceA \trackAchannelA
+>>
+
+
+trackBchannelA = \relative c {
+  r4 
+  \set Staff.instrumentName = "trackB:voiceA"
+  a r4 a 
+  | % 2
+  
+}
+
+trackB = <<
+
+  \clef bass
+  
+  \context Voice = voiceA \trackBchannelA
+>>
+
+
+\score {
+  <<
+    \context Staff=trackB \trackA
+    \context Staff=trackB \trackB
+  >>
+  \layout {}
+  \midi {}
+}
diff --git a/input/regression/midi/staff-map-instrument.ly b/input/regression/midi/staff-map-instrument.ly
new file mode 100644 (file)
index 0000000..8d90c9d
--- /dev/null
@@ -0,0 +1,46 @@
+\version "2.13.53"
+
+\header {
+texidoc="Midi2ly remaps voices correctly to staves in MIDI-files that use instrument<->channel mapping when combined with voice<->track mapping.  TODO: pianostaff"
+options=""
+}
+
+\score {
+%% TODO:PIANOSTAFF  \context PianoStaff <<
+  <<
+    \context Staff = "treble" <<
+      %% the default
+      %% \set Score.midiChannelMapping = #'instrument
+      \context Voice="one" \relative c'' {
+       \time 4/4
+       \key c \minor
+       \voiceOne
+%comes
+%7
+       f8 es16 d c16 bes ! as g f8 as' g f 
+%8     es8 d es f b, c d b |
+       f,16 g as4 g16 f e2 |
+      }
+      \context Voice="two" \relative c'' {
+       \voiceTwo
+%dux
+%7
+       c4 r4 r8 f es d |
+%8     r8 as g f g f16 es f8 d | 
+       <b, d>8 r <b d> r <g c>2 |
+      }
+    >>
+    \context Staff = "bass" <<
+      \context Voice="three" \relative c' {
+       \key c \minor
+       \clef bass
+%7
+       r8 c16 b c8 g as c16 b c8 d |
+%8     g8 c16 b c8 d f,16 g as4 g16 f | 
+       <c,, c'>1
+      }
+    >>
+  >>
+  \layout {}
+  \midi {}
+}
diff --git a/input/regression/midi/staff-map-voice.ly b/input/regression/midi/staff-map-voice.ly
new file mode 100644 (file)
index 0000000..ea45836
--- /dev/null
@@ -0,0 +1,45 @@
+\version "2.13.53"
+
+\header {
+texidoc="Midi2ly remaps voices correctly to staves in MIDI-files that use voice<->channel mapping when combined with staff<->track mapping.  TODO: pianostaff"
+options=""
+}
+
+\score {
+%% TODO:PIANOSTAFF  \context PianoStaff <<
+  <<
+    \context Staff = "treble" <<
+      \set Score.midiChannelMapping = #'voice
+      \context Voice="one" \relative c'' {
+       \time 4/4
+       \key c \minor
+       \voiceOne
+%comes
+%7
+       f8 es16 d c16 bes ! as g f8 as' g f 
+%8     es8 d es f b, c d b |
+       f,16 g as4 g16 f e2 |
+      }
+      \context Voice="two" \relative c'' {
+       \voiceTwo
+%dux
+%7
+       c4 r4 r8 f es d |
+%8     r8 as g f g f16 es f8 d | 
+       <b, d>8 r <b d> r <g c>2 |
+      }
+    >>
+    \context Staff = "bass" <<
+      \context Voice="three" \relative c' {
+       \key c \minor
+       \clef bass
+%7
+       r8 c16 b c8 g as c16 b c8 d |
+%8     g8 c16 b c8 d f,16 g as4 g16 f | 
+       <c,, c'>1
+      }
+    >>
+  >>
+  \layout {}
+  \midi {}
+}
diff --git a/input/regression/midi/voice-2.ly b/input/regression/midi/voice-2.ly
new file mode 100644 (file)
index 0000000..63d6c05
--- /dev/null
@@ -0,0 +1,69 @@
+% Lily was here -- automatically converted by ../../../scripts/midi2ly.py from out-www/voice-2.midi
+\version "2.13.53"
+
+\layout {
+  \context {
+    \Voice
+    \remove "Note_heads_engraver"
+    \consists "Completion_heads_engraver"
+    \remove "Rest_engraver"
+    \consists "Completion_rest_engraver"
+  }
+}
+
+% included from ./out-www/voice-2.header
+\header {
+texidoc="midi2ly maps two voices nicely on one staff as \voiceOne, \voiceTwo"
+options=""
+}
+% end
+
+trackAchannelA = {
+  
+  % [SEQUENCE_TRACK_NAME] control track
+  
+  % [TEXT_EVENT] creator: 
+  
+  % [TEXT_EVENT] GNU LilyPond 2.13.54          
+  
+  \time 4/4 
+  
+  \tempo 4 = 60 
+  
+}
+
+trackA = <<
+  \context Voice = voiceA \trackAchannelA
+>>
+
+
+trackBchannelA = \relative c {
+  \voiceOne
+  
+  \set Staff.instrumentName = ":1"
+  e''4 e e e 
+  | % 2
+  
+}
+
+trackBchannelB = \relative c {
+  \voiceTwo
+  f' f f f 
+  | % 2
+  
+}
+
+trackB = <<
+  \context Voice = voiceA \trackBchannelA
+  \context Voice = voiceB \trackBchannelB
+>>
+
+
+\score {
+  <<
+    \context Staff=trackB \trackA
+    \context Staff=trackB \trackB
+  >>
+  \layout {}
+  \midi {}
+}
diff --git a/input/regression/midi/voice-4.ly b/input/regression/midi/voice-4.ly
new file mode 100644 (file)
index 0000000..a615933
--- /dev/null
@@ -0,0 +1,85 @@
+% Lily was here -- automatically converted by ../../../scripts/midi2ly.py from out-www/voice-4.midi
+\version "2.13.53"
+
+\layout {
+  \context {
+    \Voice
+    \remove "Note_heads_engraver"
+    \consists "Completion_heads_engraver"
+    \remove "Rest_engraver"
+    \consists "Completion_rest_engraver"
+  }
+}
+
+% included from ./out-www/voice-4.header
+\header {
+texidoc="midi2ly maps four voices nicely on one staff as \voiceOne, \voiceTwo, \voiceThree, \voiceFour"
+options=""
+}
+% end
+
+trackAchannelA = {
+  
+  % [SEQUENCE_TRACK_NAME] control track
+  
+  % [TEXT_EVENT] creator: 
+  
+  % [TEXT_EVENT] GNU LilyPond 2.13.54          
+  
+  \time 4/4 
+  
+  \tempo 4 = 60 
+  
+}
+
+trackA = <<
+  \context Voice = voiceA \trackAchannelA
+>>
+
+
+trackBchannelA = \relative c {
+  \voiceOne
+  
+  \set Staff.instrumentName = ":1"
+  <c''' a >2 b 
+  | % 2
+  
+}
+
+trackBchannelB = \relative c {
+  \voiceThree
+  c''4. d8 e4 f 
+  | % 2
+  
+}
+
+trackBchannelC = \relative c {
+  \voiceFour
+  d'1 
+  | % 2
+  
+}
+
+trackBchannelD = \relative c {
+  \voiceTwo
+  c'4 c2 c4 
+  | % 2
+  
+}
+
+trackB = <<
+  \context Voice = voiceA \trackBchannelA
+  \context Voice = voiceB \trackBchannelB
+  \context Voice = voiceC \trackBchannelC
+  \context Voice = voiceD \trackBchannelD
+>>
+
+
+\score {
+  <<
+    \context Staff=trackB \trackA
+    \context Staff=trackB \trackB
+  >>
+  \layout {}
+  \midi {}
+}
index 3b4fa4819038efef401ea2ef835c28d468caf357..105eb1dda858035047d4f09960295dd997aa73b0 100644 (file)
@@ -20,7 +20,6 @@
 #include "audio-column.hh"
 
 #include "audio-item.hh"
-#include "performance.hh"
 
 Audio_column::Audio_column (Moment when)
 {
index 8459aa8c54547dd9e54d7497f744121156f9acaa..e33437f631fdcc0ce6bd695a177e530d66018766 100644 (file)
@@ -51,6 +51,7 @@ Audio_note::Audio_note (Pitch p, Moment m, bool tie_event, Pitch transposing)
   tied_ = 0;
   transposing_ = transposing;
   tie_event_ = tie_event;
+  volume_ = 0;
 }
 
 void
index b827b8b377be9130134cba00a59ad4026a169c10..d40220ca1c13a2e5237e7d65195295a0362dce63 100644 (file)
@@ -35,10 +35,9 @@ Audio_staff::Audio_staff ()
 }
 
 void
-Audio_staff::output (Midi_stream &midi_stream, int track)
+Audio_staff::output (Midi_stream &midi_stream, int track, bool port)
 {
-  Midi_track midi_track;
-  midi_track.number_ = track;
+  Midi_track midi_track (track, port);
 
   Midi_walker i (this, &midi_track);
   for (; i.ok (); i++)
index 1dfab523a8bc54cc77dfe60a69b049344e6627cb..c4efb46b687c17ac4cafb93cabef601915f9584a 100644 (file)
@@ -56,29 +56,22 @@ Balloon_interface::print (SCM smob)
   return internal_balloon_print (me, p, off);
 }
 
-// ugh...code dup...hopefully can be consolidated w/ above one day
 MAKE_SCHEME_CALLBACK (Balloon_interface, print_spanner, 1);
 SCM
 Balloon_interface::print_spanner (SCM smob)
 {
   Spanner *me = unsmob_spanner (smob);
-  Grob *orig = me->original ();
+  Spanner *orig = dynamic_cast<Spanner *> (me->original ());
 
   if (orig)
     {
-      // TODO : consolidate code dup from System::get_footnote_grobs_in_range
-      int pos = orig->spanned_rank_interval ()[LEFT];
-      Real spanner_placement = min (1.0,
-                                    max (robust_scm2double (me->get_property ("spanner-placement"), -1.0),
-                                         -1.0));
+      Direction spanner_placement =  robust_scm2dir (me->get_property ("spanner-placement"), LEFT);
 
-      spanner_placement = (spanner_placement + 1.0) / 2.0;
-      int rpos = orig->spanned_rank_interval ()[RIGHT];
-      pos = (int)((rpos - pos) * spanner_placement + pos + 0.5);
+      Spanner *wanted = (spanner_placement != RIGHT)
+                         ? orig->broken_intos_[0]
+                         : orig->broken_intos_.back ();
 
-      if (pos < me->spanned_rank_interval () [LEFT])
-        return SCM_EOL;
-      if (pos >= me->spanned_rank_interval () [RIGHT] && (me->spanned_rank_interval () [RIGHT] != orig->spanned_rank_interval () [RIGHT]))
+      if (me != wanted)
         return SCM_EOL;
     }
 
index 53fda8174319205db9cf61ebf5151765ea674577..e3135dadfa92609362dccfd467e5f164dde1bde7 100644 (file)
@@ -590,24 +590,72 @@ Beam::print (SCM grob)
 
   Direction feather_dir = to_dir (me->get_property ("grow-direction"));
 
+  Interval placements = robust_scm2interval (me->get_property ("normalized-endpoints"), Interval (0.0, 0.0));
+
   Stencil the_beam;
+
+  int extreme = (segments[0].vertical_count_ == 0
+                 ? segments[0].vertical_count_
+                 : segments.back ().vertical_count_);
+
   for (vsize i = 0; i < segments.size (); i ++)
     {
       Real local_slope = slope;
+      /*
+        Makes local slope proportional to the ratio of the length of this beam
+        to the total length.
+      */
       if (feather_dir)
-       {
-         local_slope += feather_dir * segments[i].vertical_count_ * beam_dy / span.length ();
-       }
+        local_slope += (feather_dir * segments[i].vertical_count_
+                                    * beam_dy
+                                    * placements.length ()
+                        / span.length ());
 
       Stencil b = Lookup::beam (local_slope, segments[i].horizontal_.length (), beam_thickness, blot);
 
       b.translate_axis (segments[i].horizontal_[LEFT], X_AXIS);
+      Real multiplier = feather_dir ? placements[LEFT] : 1.0;
+
+      Interval weights (1 - multiplier, multiplier);
+
+      if (feather_dir != LEFT)
+        weights.swap ();
+
+      // we need two translations: the normal one and
+      // the one of the lowest segment
+      int idx[] = {i, extreme};
+      Real translations[2];
+
+      for (int j = 0; j < 2; j++)
+        translations[j] = slope
+                          * (segments[idx[j]].horizontal_[LEFT] - span.linear_combination (CENTER))
+                          + pos.linear_combination (CENTER)
+                          + beam_dy * segments[idx[j]].vertical_count_;
+
+      Real weighted_average = translations[0] * weights[LEFT] + translations[1] * weights[RIGHT];
+
+      /*
+        Tricky.  The manipulation of the variable `weighted_average' below ensures
+        that beams with a RIGHT grow direction will start from the position of the
+        lowest segment at 0, and this error will decrease and decrease over the
+        course of the beam.  Something with a LEFT grow direction, on the other
+        hand, will always start in the correct place but progressively accrue
+        error at broken places.  This code shifts beams up given where they are
+        in the total span length (controlled by the variable `multiplier').  To
+        better understand what it does, try commenting it out: you'll see that
+        all of the RIGHT growing beams immediately start too low and get better
+        over line breaks, whereas all of the LEFT growing beams start just right
+        and get worse over line breaks.
+      */
+      Real factor = Interval (multiplier, 1 - multiplier).linear_combination (feather_dir);
+
+      if (segments[0].vertical_count_ < 0 && feather_dir)
+        weighted_average += beam_dy * (segments.size () - 1) * factor;
+
+      b.translate_axis (weighted_average, Y_AXIS);
 
-      b.translate_axis (local_slope
-                       * (segments[i].horizontal_[LEFT] - span.linear_combination (feather_dir))
-                       + pos.linear_combination (feather_dir)
-                       + beam_dy * segments[i].vertical_count_, Y_AXIS);
       the_beam.add_stencil (b);
+
     }
 
 #if (DEBUG_BEAM_SCORING)
@@ -626,7 +674,7 @@ Beam::print (SCM grob)
 
       properties = scm_cons(scm_acons (ly_symbol2scm ("font-size"), scm_from_int (-5), SCM_EOL),
                             properties);
-      
+
       Direction stem_dir = stems.size () ? to_dir (stems[0]->get_property ("direction")) : UP;
 
       Stencil score = *unsmob_stencil (Text_interface::interpret_markup
@@ -1088,7 +1136,7 @@ Beam::shift_region_to_valid (SCM grob, SCM posns)
       Real x = s->relative_coordinate (common[X_AXIS], X_AXIS) - x_span[LEFT];
       x_posns.push_back (x);
     }
-  
+
   Grob *lvs = last_normal_stem (me);
   x_span[RIGHT] = lvs->relative_coordinate (common[X_AXIS], X_AXIS);
 
index 525544dc1df0f86db111081a24cfc465a99358c0..7ddd664aaf183bd89f810ea4085e0b523a666886 100644 (file)
@@ -89,6 +89,7 @@ public:
   Pitch pitch_;
   Moment length_mom_;
   Pitch transposing_;
+  Real volume_;
   
   Audio_note *tied_;
   bool tie_event_;
index a76854ddb1c28e3822a4bc51db89090974ad6379..acf31b17a4808d0dbfa5ae921e12508ea0353ddb 100644 (file)
@@ -27,7 +27,7 @@
 struct Audio_staff : public Audio_element
 {
   void add_audio_item (Audio_item *ai);
-  void output (Midi_stream &midi_stream_r, int track);
+  void output (Midi_stream &midi_stream_r, int track, bool port);
 
   Audio_staff ();
   
index abf409ef2d62cfc11a970e6283c712b020de819e..c567e904f1797a814b4699b8f7a06d5247070c75 100644 (file)
@@ -50,7 +50,7 @@ public:
   void set (string header_string, string data_string, string footer_string);
   virtual string to_string () const;
   virtual string data_string () const;
-  DECLARE_CLASSNAME(Midi_chunk);
+  DECLARE_CLASSNAME (Midi_chunk);
   virtual ~Midi_chunk ();
 private:
   string data_string_;
@@ -61,7 +61,7 @@ private:
 class Midi_header : public Midi_chunk
 {
 public:
-  DECLARE_CLASSNAME(Midi_header);
+  DECLARE_CLASSNAME (Midi_header);
 
   Midi_header (int format, int tracks, int clocks_per_4);
 };
@@ -70,11 +70,12 @@ class Midi_track : public Midi_chunk
 {
 public:
   int number_;
-  DECLARE_CLASSNAME(Midi_track);
+  int port_;
+  DECLARE_CLASSNAME (Midi_track);
 
   vector<Midi_event*> events_;
 
-  Midi_track ();
+  Midi_track (int number, bool port);
   ~Midi_track ();
 
   void add (int, Midi_item *midi);
index e69aa8712a04b5c0e63b97aee5ae43fec38633ed..9612fb8aedd6c301639b6e12c21a15533352790d 100644 (file)
@@ -27,7 +27,7 @@
 class Performance : public Music_output
 {
 public:
-  Performance ();
+  Performance (bool ports=false);
   ~Performance ();
   DECLARE_CLASSNAME(Performance);
 
@@ -43,6 +43,7 @@ public:
   vector<Audio_staff*> audio_staffs_;
   vector<Audio_element*> audio_elements_;
   Output_def *midi_;
+  bool ports_;
 };
 
 #endif /* PERFORMANCE_HH */
index 43468754edb5077d7e4973021a50f3b6fb5fe2b2..7bda060c864d20d3920837b0ce861fac92d2ee25 100644 (file)
@@ -48,6 +48,7 @@ class Spanner : public Grob
 
 public:
   DECLARE_SCHEME_CALLBACK (set_spacing_rods, (SCM));
+  DECLARE_SCHEME_CALLBACK (calc_normalized_endpoints, (SCM));
   DECLARE_SCHEME_CALLBACK (bounds_width, (SCM));
   DECLARE_SCHEME_CALLBACK (kill_zero_spanned_time, (SCM));
 
@@ -93,5 +94,4 @@ protected:
 void add_bound_item (Spanner *, Grob *);
 
 bool spanner_less (Spanner *s1, Spanner *s2);
-int broken_spanner_index (Spanner const *sp);
 #endif
index 01a4b9c5a4897e998ed89be040b1f38804f49138..9c2a4bdf100caa46ed90e19b5a4f8dc8b007131a 100644 (file)
@@ -24,7 +24,8 @@
 #include "std-string.hh"
 #include "string-convert.hh"
 
-Midi_track::Midi_track ()
+Midi_track::Midi_track (int number, bool port)
+ : number_ (number)
 {
   //                4D 54 72 6B     MTrk
   //                00 00 00 3B     chunk length (59)
@@ -40,8 +41,6 @@ Midi_track::Midi_track ()
   //         mi = 0:  major key
   //         mi = 1:  minor key
 
-  number_ = 0;
-
   char const *data_str0 = ""
     //        "00" "ff58" "0404" "0218" "08"
     // "00" "ff51" "0307" "a120"
@@ -56,6 +55,13 @@ Midi_track::Midi_track ()
   // only for format 0 (currently using format 1)?
   data_string += String_convert::hex2bin (data_str0);
 
+  if (port)
+    {
+      string port = "00" "ff" "21" "01"
+       + String_convert::int2hex (number_, 2, '0');
+      data_string += String_convert::hex2bin (port);
+    }
+
   char const *footer_str0 = "00" "ff2f" "00";
   string footer_string = String_convert::hex2bin (footer_str0);
 
index ab67947d553e67e99c80acfe2d474ef0b4e5890e..9168f1148079c874a307f6365cf868e813c33920 100644 (file)
@@ -181,7 +181,7 @@ Midi_time_signature::to_string () const
 Midi_note::Midi_note (Audio_note *a)
   : Midi_channel_item (a)
   , audio_ (a)
-  , dynamic_byte_ (0x5a)
+  , dynamic_byte_ (a->volume_ > 0 ? Byte (a->volume_ * 0x7f) : Byte (0x5a))
 {
 }
 
@@ -271,6 +271,9 @@ Midi_dynamic::Midi_dynamic (Audio_dynamic *a)
 string
 Midi_dynamic::to_string () const
 {
+  if (audio_->volume_ < 0)
+    return "";
+
   Byte status_byte = (char) (0xB0 + channel_);
   string str = ::to_string ((char)status_byte);
 
index 7a13120c6464d0f426e8d63fad05cf1d8ef56d1a..9907e56d95a16b94d1f90d0e4c040c96e9c86d2a 100644 (file)
@@ -516,31 +516,34 @@ Paper_book::get_system_specs ()
                                  paper_->self_scm (),
                                  page_properties,
                                  scm_car (s));
-         Prob *ps;
-         SCM list;
-         for (list = texts ; scm_is_pair (list) ; list = scm_cdr (list))
+         Prob *first = 0;
+         Prob *last = 0;
+         for (SCM list = texts; scm_is_pair (list); list = scm_cdr (list))
            {
              SCM t = scm_car (list);
              // TODO: init props
-             ps = make_paper_system (SCM_EOL);
+             Prob *ps = make_paper_system (SCM_EOL);
              ps->set_property ("page-break-permission",
                                ly_symbol2scm ("allow"));
              ps->set_property ("page-turn-permission",
                                ly_symbol2scm ("allow"));
              ps->set_property ("last-markup-line",  SCM_BOOL_F);
-             ps->set_property ("first-markup-line",
-                         list == texts? SCM_BOOL_T : SCM_BOOL_F);
+             ps->set_property ("first-markup-line", SCM_BOOL_F);
 
              paper_system_set_stencil (ps, *unsmob_stencil (t));
              
              SCM footnotes = get_footnotes (unsmob_stencil (t)->expr ());
              ps->set_property ("footnotes", footnotes);
              ps->set_property ("is-title", SCM_BOOL_T);
-             if (list != texts)
-               /* For each markup other than the first, place it as closely as
-                  possible to the previous markup and don't allow stretching. */
-               ps->set_property ("tight-spacing", SCM_BOOL_T);
-
+             if (list == texts)
+               first = ps;
+             else
+               {
+                 // last line so far, in a multi-line paragraph
+                 last = ps;
+                 //Place closely to previous line, no stretching.
+                 ps->set_property ("tight-spacing", SCM_BOOL_T);
+               }
              system_specs = scm_cons (ps->self_scm (), system_specs);
              ps->unprotect ();
 
@@ -552,17 +555,13 @@ Paper_book::get_system_specs ()
              // FIXME: figure out penalty.
              //set_system_penalty (ps, scores_[i].header_);
            }
-         // We may want to place a check here, for whether the line is too short
-         if (list == texts)
-           {
-             // if there is only one line in the paragraph,
-             // do not try to avoid orphans
-             ps->set_property ("last-markup-line", SCM_BOOL_F);
-             ps->set_property ("first-markup-line", SCM_BOOL_F);
-           }
-         else
-           {
-             ps->set_property ("last-markup-line", SCM_BOOL_T);
+         /* Set properties to avoid widowed/orphaned lines.
+            Single-line markup_lists are excluded, but in future
+            we may want to add the case of a very short, single line. */
+         if (first && last)
+           {
+             last->set_property ("last-markup-line", SCM_BOOL_T);
+             first->set_property ("first-markup-line", SCM_BOOL_T);
            }
        }
       else
index b07c8604cfde4c445f1fc1259d64e3c181cab29f..bcd8b42c50f12eb54574fa5443829f9a33b98e6f 100644 (file)
@@ -34,9 +34,10 @@ using namespace std;
 #include "string-convert.hh"
 #include "warn.hh"
 
-Performance::Performance ()
+Performance::Performance (bool ports)
+  : midi_ (0)
+  , ports_ (ports)
 {
-  midi_ = 0;
 }
 
 Performance::~Performance ()
@@ -58,7 +59,7 @@ Performance::output (Midi_stream &midi_stream) const
       Audio_staff *s = audio_staffs_[i];
       if (be_verbose_global)
        progress_indication ("[" + to_string (i));
-      s->output (midi_stream, i);
+      s->output (midi_stream, i, ports_);
       if (be_verbose_global)
        progress_indication ("]");
     }
index 99e41290c324dcf1d446d50d0f30de379533861c..5257788df6b7969ad07ec12925bf5ea0beab0695 100644 (file)
@@ -119,6 +119,9 @@ IMPLEMENT_LISTENER (Score_performer, finish);
 void
 Score_performer::finish (SCM)
 {
+  SCM channel_mapping = context ()->get_property ("midiChannelMapping");
+  bool use_ports = channel_mapping == ly_symbol2scm ("voice");
+  performance_->ports_ = use_ports;
   recurse_over_translators (context (),
                            &Translator::finalize,
                            &Translator_group::finalize,
index f3d13c84f9879a5878a6dc9739528842b94e8205..d3fd5a0955dd00df7cf78215f0452623748447c8 100644 (file)
@@ -273,7 +273,7 @@ Spanner::broken_neighbor (Direction d) const
   if (!original_)
     return 0;
 
-  vsize k = broken_spanner_index (this);
+  vsize k = get_break_index ();
   Spanner *orig = dynamic_cast<Spanner*> (original_);
   int j = int (k) + d;
   if (j < 0 || vsize (j) >= orig->broken_intos_.size ())
@@ -398,15 +398,51 @@ Spanner::set_spacing_rods (SCM smob)
   return SCM_UNSPECIFIED;
 }
 
-/*
-  Return I such that SP == SP->ORIGINAL ()->BROKEN_INTOS_[I].
-*/
-int
-broken_spanner_index (Spanner const *sp)
+MAKE_SCHEME_CALLBACK (Spanner, calc_normalized_endpoints, 1);
+SCM
+Spanner::calc_normalized_endpoints (SCM smob)
 {
-  Spanner *parent = dynamic_cast<Spanner *> (sp->original ());
-  /* ugh: casting */
-  return find (parent->broken_intos_, (Spanner*) sp) - parent->broken_intos_.begin ();
+  Spanner *me = unsmob_spanner (smob);
+  SCM result = SCM_EOL;
+
+  Spanner *orig = dynamic_cast<Spanner *> (me->original ());
+
+  orig = orig ? orig : me;
+
+  if (orig->is_broken ())
+    {
+      Real total_width = 0.0;
+      vector<Real> span_data;
+
+      if (!orig->is_broken ())
+        span_data.push_back (orig->spanner_length ());
+      else
+        for (vsize i = 0; i < orig->broken_intos_.size (); i++)
+          span_data.push_back (orig->broken_intos_[i]->spanner_length ());
+
+      vector<Interval> unnormalized_endpoints;
+
+      for (vsize i = 0; i < span_data.size (); i++)
+        {
+          unnormalized_endpoints.push_back (Interval (total_width, total_width + span_data[i]));
+          total_width += span_data[i];
+        }
+
+      for (vsize i = 0; i < unnormalized_endpoints.size (); i++)
+        {
+          SCM t = ly_interval2scm (1 / total_width * unnormalized_endpoints[i]);
+          orig->broken_intos_[i]->set_property ("normalized-endpoints", t);
+          if (me->get_break_index () == i)
+            result = t;
+        }
+    }
+  else
+    {
+      result = scm_cons (scm_from_double (0.0), scm_from_double (1.0));
+      orig->set_property ("normalized-endpoints", result);
+    }
+
+  return result;
 }
 
 Spanner *
@@ -490,6 +526,7 @@ ADD_INTERFACE (Spanner,
               " point of the spanner.",
 
               /* properties */
+              "normalized-endpoints "
               "minimum-length "
               "to-barline "
               );
index 17de3172df61c837dcdfe41805615523d42f8cca..1f34290aac4451d185499cb8c01678daff86534f 100644 (file)
 
 #include <map>
 
-#include "warn.hh"
 #include "audio-column.hh"
 #include "audio-item.hh"
 #include "audio-staff.hh"
-#include "performer-group.hh"
 #include "context.hh"
+#include "international.hh"
+#include "performer-group.hh"
+#include "warn.hh"
 
 /* Perform a staff. Individual notes should have their instrument
   (staff-wide) set, so we override play_element ()
@@ -35,9 +36,6 @@ public:
   TRANSLATOR_DECLARATIONS (Staff_performer);
   ~Staff_performer ();
 
-  string new_instrument_string ();
-  string instrument_string_;
-
 protected:
   virtual void acknowledge_audio_element (Audio_element_info info);
   virtual void finalize ();
@@ -46,14 +44,30 @@ protected:
   void stop_translation_timestep ();
 
 private:
-  Audio_staff *audio_staff_;
+  string new_instrument_string ();
+  void set_instrument_name (string voice);
+  void set_instrument (int channel, string voice);
+  int get_channel (string instrument);
+  Audio_staff* get_audio_staff (string voice);
+  Audio_staff* new_audio_staff (string voice);
+  Real get_dynamic (string voice);
+
+  string instrument_string_;
+  int channel_;
   Audio_instrument *instrument_;
   Audio_text *instrument_name_;
   Audio_text *name_;
   Audio_tempo *tempo_;
+  map<string, Audio_staff*> staff_map_;
   map<string, int> channel_map_;
+  map<string, Real> dynamic_map_;
+  static map<string, int> static_channel_map_;
+  static int channel_count_;
 };
 
+map<string, int> Staff_performer::static_channel_map_;
+int Staff_performer::channel_count_ = 0;
+
 #include "translator.icc"
 
 ADD_TRANSLATOR (Staff_performer,
@@ -70,12 +84,12 @@ ADD_TRANSLATOR (Staff_performer,
                "");
 
 Staff_performer::Staff_performer ()
+  : channel_ (0)
+  , instrument_ (0)
+  , instrument_name_ (0)
+  , name_ (0)
+  , tempo_ (0)
 {
-  audio_staff_ = 0;
-  instrument_ = 0;
-  instrument_name_ = 0;
-  name_ = 0;
-  tempo_ = 0;
 }
 
 Staff_performer::~Staff_performer ()
@@ -85,46 +99,88 @@ Staff_performer::~Staff_performer ()
 void
 Staff_performer::initialize ()
 {
-  audio_staff_ = new Audio_staff;
-  name_ = new Audio_text (Audio_text::TRACK_NAME, context ()->id_string ());
+}
 
-  audio_staff_->add_audio_item (name_);
-  
-  announce_element (Audio_element_info (audio_staff_, 0));
-  announce_element (Audio_element_info (name_, 0));
+Audio_staff*
+Staff_performer::new_audio_staff (string voice)
+{
+  Audio_staff* audio_staff = new Audio_staff;
+  string track_name = context ()->id_string () + ":" + voice;
+  if (track_name != ":")
+    {
+      name_ = new Audio_text (Audio_text::TRACK_NAME, context ()->id_string ()
+                             + ":" + voice);
+      audio_staff->add_audio_item (name_);
+      announce_element (Audio_element_info (name_, 0));
+    }
+  announce_element (Audio_element_info (audio_staff, 0));
+  staff_map_[voice] = audio_staff;
+  if (!instrument_string_.empty ())
+    set_instrument (channel_, voice);
+  return audio_staff;
 }
 
-void
-Staff_performer::process_music ()
+Audio_staff*
+Staff_performer::get_audio_staff (string voice)
 {
-  string str = new_instrument_string ();
-  if (str.length ())
+  SCM channel_mapping = get_property ("midiChannelMapping");
+  if (channel_mapping != ly_symbol2scm ("instrument")
+      && staff_map_.size ())
+    return staff_map_.begin ()->second;
+
+  map<string, Audio_staff*>::const_iterator i = staff_map_.find (voice);
+  if (i != staff_map_.end ())
+    return i->second;
+  map<string, Audio_staff*>::const_iterator e = staff_map_.find ("");
+  if (staff_map_.size () == 1 && e != staff_map_.end ())
     {
-      instrument_name_ = new Audio_text (Audio_text::INSTRUMENT_NAME, str);
-      announce_element (Audio_element_info (instrument_name_, 0));
-      instrument_ = new Audio_instrument (str);
-      announce_element (Audio_element_info (instrument_, 0));
-
-      audio_staff_->add_audio_item (instrument_);
-      audio_staff_->add_audio_item (instrument_name_);
-     
-      /*
-       Have to be here before notes arrive into the staff.
-      */
+      staff_map_[voice] = e->second;
+      return e->second;
     }
+  return new_audio_staff (voice);
+}
+
+Real
+Staff_performer::get_dynamic (string voice)
+{
+  map<string, Real>::const_iterator i = dynamic_map_.find (voice);
+  if (i != dynamic_map_.end ())
+    return i->second;
+  return 0;
 }
 
 void
-Staff_performer::stop_translation_timestep ()
+Staff_performer::process_music ()
+{
+}
+
+void
+Staff_performer::set_instrument (int channel, string voice)
 {
+  instrument_ = new Audio_instrument (instrument_string_);
+  instrument_->channel_ = channel;
+  announce_element (Audio_element_info (instrument_, 0));
+  Audio_staff* audio_staff = get_audio_staff (voice);
+  audio_staff->add_audio_item (instrument_);
   SCM proc = ly_lily_module_constant ("percussion?");
   SCM drums = scm_call_1 (proc, ly_symbol2scm (instrument_string_.c_str ()));
-  audio_staff_->percussion_ = (drums == SCM_BOOL_T);
+  audio_staff->percussion_ = (drums == SCM_BOOL_T);
+}
 
-  if (name_)
-      name_ = 0;
-  if (tempo_)
-      tempo_ = 0;
+void
+Staff_performer::set_instrument_name (string voice)
+{
+  instrument_name_ = new Audio_text (Audio_text::INSTRUMENT_NAME,
+                                    instrument_string_);
+  announce_element (Audio_element_info (instrument_name_, 0));
+  get_audio_staff (voice)->add_audio_item (instrument_name_);
+}
+
+void
+Staff_performer::stop_translation_timestep ()
+{
+  name_ = 0;
+  tempo_ = 0;
   instrument_name_ = 0;
   instrument_ = 0;
 }
@@ -132,7 +188,8 @@ Staff_performer::stop_translation_timestep ()
 void
 Staff_performer::finalize ()
 {
-  audio_staff_ = 0;
+  staff_map_.clear ();
+  channel_map_.clear ();
 }
 
 string
@@ -150,28 +207,75 @@ Staff_performer::new_instrument_string ()
   return instrument_string_;
 }
 
+int
+Staff_performer::get_channel (string instrument)
+{
+  SCM channel_mapping = get_property ("midiChannelMapping");
+  map<string, int>& channel_map
+    = (channel_mapping != ly_symbol2scm ("instrument"))
+    ? channel_map_
+    : static_channel_map_;
+
+  map<string, int>::const_iterator i = channel_map.find (instrument);
+  if (i != channel_map.end ())
+    return i->second;
+  int channel = (channel_mapping == ly_symbol2scm ("staff"))
+    ? channel_count_++
+    : channel_map.size ();
+
+  /* MIDI players tend to ignore instrument settings on channel
+     10, the percussion channel.  */
+  if (channel % 16 == 9)
+    {
+      channel_map["percussion"] = channel++;
+      channel_count_++;
+    }
+
+  if (channel > 15)
+    {
+      warning (_ ("MIDI channel wrapped around"));
+      warning (_ ("remapping modulo 16"));
+      channel = channel % 16; 
+    }
+
+  channel_map[instrument] = channel;
+  return channel;
+}
+
 void
 Staff_performer::acknowledge_audio_element (Audio_element_info inf)
 {
   if (Audio_item *ai = dynamic_cast<Audio_item *> (inf.elem_))
     {
-      /* map each context (voice) to its own channel */
-      Context *c = inf.origin_contexts (this)[0];
-      string id = c->id_string ();
-      int channel = channel_map_.size ();
-      /* MIDI players tend to ignore instrument settings on channel
-        10, the percussion channel.  */
-      if (channel % 16 == 9)
-       channel_map_[""] = channel++;
-
-      map<string, int>::const_iterator i = channel_map_.find (id);
-      if (i != channel_map_.end ())
-       channel = i->second;
-      else
-       channel_map_[id] = channel;
-
-      ai->channel_ = channel;
-      audio_staff_->add_audio_item (ai);
+      /* map each context (voice) to its own track */
+      Context* c = inf.origin_contexts (this)[0];
+      string voice;
+      if (c->is_alias (ly_symbol2scm ("Voice")))
+       voice = c->id_string ();
+      SCM channel_mapping = get_property ("midiChannelMapping");
+      if (channel_mapping == ly_symbol2scm ("voice"))
+       channel_ = get_channel (voice);
+      string str = new_instrument_string ();
+      if (str.length ())
+       {
+         if (channel_mapping != ly_symbol2scm ("voice"))
+           channel_ = get_channel (str);
+         set_instrument (channel_, voice);
+         set_instrument_name (voice);
+       }
+      Audio_staff* audio_staff = get_audio_staff (voice);
+      ai->channel_ = channel_;
+      // Output volume as velocity and disable Midi_dynamic output
+      if (Audio_dynamic *d = dynamic_cast<Audio_dynamic *> (inf.elem_))
+       {
+         dynamic_map_[voice] = d->volume_;
+         d->volume_ = -1;
+       }
+      if (Real d = get_dynamic (voice))
+       if (Audio_note *n = dynamic_cast<Audio_note *> (inf.elem_))
+         n->volume_ = d;
+      audio_staff->add_audio_item (ai);
     }
 }
 
index 574dce56c9de8e54869b164e772dc702707663d0..1cd582de7525bc2d628b24cb062ddfc188ac7904 100644 (file)
@@ -254,13 +254,11 @@ System::get_footnote_grobs_in_range (vector<Grob *> &out, vsize start, vsize end
       bool end_of_line_visible = true;
       if (Spanner *s = dynamic_cast<Spanner *>(footnote_grobs_[i]))
         {
-          Real spanner_placement = min (1.0,
-                                        max (robust_scm2double (s->get_property ("spanner-placement"), -1.0),
-                                             -1.0));
+          Direction spanner_placement =  robust_scm2dir (s->get_property ("spanner-placement"), LEFT);
+          if (spanner_placement == CENTER)
+            spanner_placement = LEFT;
 
-          spanner_placement = (spanner_placement + 1.0) / 2.0;
-          int rpos = s->spanned_rank_interval ()[RIGHT];
-          pos = (int)((rpos - pos) * spanner_placement + pos + 0.5);
+          pos = s->spanned_rank_interval ()[spanner_placement];
         }
       
       if (Item *item = dynamic_cast<Item *>(footnote_grobs_[i]))
@@ -271,13 +269,13 @@ System::get_footnote_grobs_in_range (vector<Grob *> &out, vsize start, vsize end
           end_of_line_visible = (LEFT == item->break_status_dir ());
         }
 
-      if (pos < (int)start)
+      if (pos < int (start))
         continue;
-      if (pos > (int)end)
+      if (pos > int (end))
         break;
-      if (pos == (int)start && end_of_line_visible)
+      if (pos == int (start) && end_of_line_visible)
         continue;
-      if (pos == (int)end && !end_of_line_visible)
+      if (pos == int (end) && !end_of_line_visible)
         continue;
       if (!footnote_grobs_[i]->is_live ())
         continue;
index 9f88def048a7cee394aa93cb396d00fe12b2ee37..61750d2159db7a001024b406ea67db996ebb12c1 100644 (file)
   %%
   %% Footnotes
   %%
-  footnote-separator-markup = \markup { \draw-hline }
+  footnote-separator-markup = \markup { \fill-line \override #`(span-factor . 1/2) { \draw-hline } }
   footnote-padding = 0.5\mm
 
 
index 0b9a18f34bbee3f46f113e8a5c723f45a67a7032..1b9e18665a541c8bd7f37e094a9658d3bc7834e8 100644 (file)
 
   melismaBusyProperties = #default-melisma-properties
   instrumentName = #"bright acoustic"
+  midiChannelMapping = #'instrument
 
   %% quarter = 60
   tempoWholesPerMinute = #(ly:make-moment 15 1)
index 3bed8193a37f6d968010c49637deb6aa62775bbf..2e293352db97fa919700a03805a25d576b6fd440 100644 (file)
@@ -252,11 +252,13 @@ improvisationOn = {
   \set squashedPosition = #0
   \override NoteHead #'style = #'slash
   \override Accidental #'stencil = ##f
+  \override AccidentalCautionary #'stencil = ##f
 }
 improvisationOff = {
   \unset squashedPosition
   \revert NoteHead #'style
   \revert Accidental #'stencil
+  \revert AccidentalCautionary #'stencil
 }
 
 
index d1c7cd2fea46e8c9d86945286e91d339a645f0c1..cf1bc11203487102b4c3bb39d569aae1445a81fc 100644 (file)
@@ -22,6 +22,7 @@ export PYTHONPATH:=$(top-build-dir)/python/$(outconfbase):$(PYTHONPATH)
 the-script-dir=$(wildcard $(script-dir))
 
 ABC2LY = $(script-dir)/abc2ly.py
+MIDI2LY = $(script-dir)/midi2ly.py
 MUSICXML2LY = $(script-dir)/musicxml2ly.py
 CONVERT_LY = $(script-dir)/convert-ly.py
 LILYPOND_BOOK = $(script-dir)/lilypond-book.py
diff --git a/make/midi-rules.make b/make/midi-rules.make
new file mode 100644 (file)
index 0000000..219eb26
--- /dev/null
@@ -0,0 +1,18 @@
+.SUFFIXES: .midi
+
+$(outdir)/%.ly:  %.midi
+       $(PYTHON) $(MIDI2LY) -o $(outdir) $<
+
+$(outdir)/%.midi: %.ly $(LILYPOND_BINARY)
+       touch $(foreach f, $(HEADER_FIELDS), $(outdir)/$*.$f)
+       $(LILYPOND_BINARY) $(HEADER_FIELDS:%=-H %) -o $(outdir) $<
+
+$(outdir)/%-midi.ly: $(outdir)/%.midi $(MIDI2LY)
+       (echo '\header {'; for f in $(HEADER_FIELDS); do echo -n $$f'="'; cat $(outdir)/$*.$$f; echo '"'; done; echo '}') > $(outdir)/$*.header
+       $(PYTHON) $(MIDI2LY) $(shell cat $(outdir)/$*.options) --include-header=$(outdir)/$*.header -o $(outdir) $<
+
+$(outdir)/%.diff: %.ly $(outdir)/%-midi.ly
+       $(DIFF) -puN $(MIDI2LY_IGNORE_RES) $^ > $@ || cat $@
+
+$(outdir)/midi.diff: $(OUT_DIFF_FILES)
+       cat $(OUT_DIFF_FILES) > $@
diff --git a/make/midi-targets.make b/make/midi-targets.make
new file mode 100644 (file)
index 0000000..e462465
--- /dev/null
@@ -0,0 +1,7 @@
+default:
+
+##local-test: $(outdir)/midi.diff
+
+check: $(outdir)/midi.diff local-WWW-1 local-WWW-2
+
+test: check
diff --git a/make/midi-vars.make b/make/midi-vars.make
new file mode 100644 (file)
index 0000000..7b3a276
--- /dev/null
@@ -0,0 +1,10 @@
+MIDI_FILES = $(call src-wildcard,*.midi)
+HEADER_FILES = $(call src-wildcard,*.header)
+OUT_LY_FILES = $(sort ${MIDI_FILES:%.midi=$(outdir)/%.ly} ${LY_FILES:%.ly=$(outdir)/%-midi.ly} )
+OUT_FILES = $(OUT_LY_FILES)
+HEADER_FIELDS = texidoc options
+OUT_DIFF_FILES = ${LY_FILES:%.ly=$(outdir)/%.diff}
+MIDI2LY_IGNORE_RES = -I 'Lily was here' -I '^\\version ' -I 'TEXT_EVENT.*GNU LilyPond' -I '^% included from'
+DIFF = diff
+
+EXTRA_DIST_FILES += $(MIDI_FILES) $(HEADER_FILES)
index 9cf49030679c5f16b98a4227a1fcb0948205e297..104bab3ae8d060bf58a0db5e39e83e94f14c0183 100644 (file)
@@ -135,24 +135,31 @@ enddef;
 
 fet_beginchar ("8th Flag (up)", "u3");
        save flare, hip_depth_ratio, hip_width, foot_depth, foot_width_ratio;
+       save flagspace, total_depth, flag_count;
 
+       flag_count = 1;
+       total_depth# = 3 staff_space# - blot_diameter# / 2;
        flare = staff_space;
+       flagspace# = staff_space#;
        hip_depth_ratio = .72;
-       foot_width_ratio = .8;
        hip_width# = upflag_width# - hip_thickness# / 2;
-       foot_depth# = 3 staff_space# - blot_diameter# / 2;
+       foot_width_ratio = .8;
+
+       (flag_count - 1) * flagspace# + foot_depth# = total_depth#;
+
        define_pixels (hip_width, foot_depth);
+       define_whole_vertical_pixels (flagspace);
 
-       set_char_box (0,
-                     hip_width# + stemthickness# / 2 + right_upflag_space#,
+       set_char_box (0, hip_width# + stemthickness# / 2 + right_upflag_space#,
                      foot_depth# + foot_thickness# / 2, stemthickness# / 2);
 
-       draw_flag ((0,0), flare, (hip_width, foot_depth),
+       draw_flag ((0, -(flag_count - 1) * flagspace),
+                  flare, (hip_width, foot_depth),
                   hip_depth_ratio, foot_width_ratio,
                   hip_thickness, foot_thickness, 1);
 
-       draw_square_block ((-0.5 stemthickness_rounded, -staff_space_rounded),
-                          (0, 0));
+       draw_square_block ((-0.5 stemthickness_rounded, 0),
+                          (0, (-flag_count * staff_space_rounded)));
 fet_endchar;
 
 
@@ -160,22 +167,24 @@ fet_beginchar ("16th Flag (up)", "u4");
        save flare, hip_depth_ratio, hip_width, foot_depth, foot_width_ratio;
        save flagspace, total_depth, flag_count;
 
-       total_depth# = 3.5 staff_space# - blot_diameter# / 2;
        flag_count = 2;
+       total_depth# = 3.5 staff_space# - blot_diameter# / 2;
        flare = .85 staff_space;
        flagspace# = .85 staff_space#;
        hip_depth_ratio = .72;
        hip_width# = upflag_width# - hip_thickness# / 2;
-       flagspace# + foot_depth# = total_depth#;
        foot_width_ratio = .8;
+
+       (flag_count - 1) * flagspace# + foot_depth# = total_depth#;
+
        define_pixels (hip_width, foot_depth);
        define_whole_vertical_pixels (flagspace);
 
-       set_char_box (0,
-                     hip_width# + stemthickness# / 2 + right_upflag_space#,
+       set_char_box (0, hip_width# + stemthickness# / 2 + right_upflag_space#,
                      total_depth# + foot_thickness# / 2, stemthickness# / 2);
 
-       draw_flag ((0, -flagspace), flare, (hip_width, foot_depth),
+       draw_flag ((0, -(flag_count - 1) * flagspace),
+                  flare, (hip_width, foot_depth),
                   hip_depth_ratio, foot_width_ratio,
                   hip_thickness, foot_thickness, 1);
 
@@ -183,7 +192,7 @@ fet_beginchar ("16th Flag (up)", "u4");
                  hip_thickness, foot_thickness);
 
        draw_square_block ((-0.5 stemthickness_rounded, 0),
-                          (0, -2 staff_space_rounded));
+                          (0, (-flag_count * staff_space_rounded)));
 fet_endchar;
 
 
@@ -207,7 +216,8 @@ fet_beginchar ("32nd Flag (up)", "u5");
        set_char_box (0, hip_width# + right_upflag_space#,
                      total_depth# + foot_thickness# / 2, stemthickness# / 2);
 
-       draw_flag ((0, -2 flagspace), flare, (hip_width, foot_depth),
+       draw_flag ((0, -(flag_count - 1) * flagspace),
+                  flare, (hip_width, foot_depth),
                   hip_depth_ratio, foot_width_ratio,
                   hip_thickness, foot_thickness, 1);
 
@@ -217,7 +227,7 @@ fet_beginchar ("32nd Flag (up)", "u5");
                  hip_thickness, foot_thickness);
 
        draw_square_block ((-0.5 stemthickness_rounded, 0),
-                          (0, -3 staff_space_rounded));
+                          (0, (-flag_count * staff_space_rounded)));
 fet_endchar;
 
 
@@ -226,11 +236,11 @@ fet_beginchar ("64th Flag (up)", "u6");
        save flagspace, total_depth, flag_count;
 
        flag_count = 4;
+       total_depth# = 5.25 staff_space#;
        flare = .85 staff_space;
        flagspace# = .9 staff_space#;
        hip_depth_ratio = .72;
        hip_width# = upflag_width# - hip_thickness# / 2;
-       total_depth# = 5.25 staff_space#;
        foot_width_ratio = .8;
 
        (flag_count - 1) * flagspace# + foot_depth# = total_depth#;
@@ -241,8 +251,8 @@ fet_beginchar ("64th Flag (up)", "u6");
        set_char_box (0, hip_width# + right_upflag_space#,
                      total_depth# + foot_thickness# / 2, stemthickness# / 2);
 
-       draw_flag ((0, -(flag_count - 1) * flagspace), flare,
-                  (hip_width, foot_depth),
+       draw_flag ((0, -(flag_count - 1) * flagspace),
+                  flare, (hip_width, foot_depth),
                   hip_depth_ratio, foot_width_ratio,
                   hip_thickness, foot_thickness, 1);
 
@@ -254,7 +264,7 @@ fet_beginchar ("64th Flag (up)", "u6");
                  hip_thickness, foot_thickness);
 
        draw_square_block ((-0.5 stemthickness_rounded, 0),
-                          (0, -4 staff_space_rounded));
+                          (0, (-flag_count * staff_space_rounded)));
 fet_endchar;
 
 
@@ -263,11 +273,11 @@ fet_beginchar ("128th Flag (up)", "u7");
        save flagspace, total_depth, flag_count;
 
        flag_count = 5;
+       total_depth# = 6.25 staff_space#;
        flare = .85 staff_space;
        flagspace# = .93 staff_space#;
        hip_depth_ratio = .72;
        hip_width# = upflag_width# - hip_thickness# / 2;
-       total_depth# = 6.25 staff_space#;
        foot_width_ratio = .8;
 
        (flag_count - 1) * flagspace# + foot_depth# = total_depth#;
@@ -278,8 +288,8 @@ fet_beginchar ("128th Flag (up)", "u7");
        set_char_box (0, hip_width# + right_upflag_space#,
                      total_depth# + foot_thickness# / 2, stemthickness# / 2);
 
-       draw_flag ((0, -(flag_count - 1) * flagspace), flare,
-                  (hip_width, foot_depth),
+       draw_flag ((0, -(flag_count - 1) * flagspace),
+                  flare, (hip_width, foot_depth),
                   hip_depth_ratio, foot_width_ratio,
                   hip_thickness, foot_thickness, 1);
 
@@ -293,7 +303,7 @@ fet_beginchar ("128th Flag (up)", "u7");
                  hip_thickness, foot_thickness);
 
        draw_square_block ((-0.5 stemthickness_rounded, 0),
-                          (0, -5 staff_space_rounded));
+                          (0, (-flag_count * staff_space_rounded)));
 fet_endchar;
 
 
@@ -302,107 +312,28 @@ fet_beginchar ("8th (down)", "d3");
        save flagspace, total_depth, flag_count;
 
        flag_count = 1;
+       total_depth# = 2.85 staff_space#;
        flare = staff_space;
        flagspace# = .9 staff_space#;
        hip_depth_ratio = .72;
        hip_width# = downflag_width# - hip_thickness# / 2;
-       total_depth# = 2.85 staff_space#;
        foot_width_ratio = .8;
 
        (flag_count - 1) * flagspace# + foot_depth# = total_depth#;
 
-       define_pixels (hip_width, flagspace, foot_depth);
+       define_pixels (hip_width, foot_depth);
+       define_whole_vertical_pixels (flagspace);
 
        set_char_box (0, hip_width# + right_downflag_space#,
                      total_depth# + foot_thickness# / 2, stemthickness# / 2)
 
-       draw_flag ((0, -(flag_count - 1) * flagspace), flare,
-                  (hip_width, foot_depth),
+       draw_flag ((0, -(flag_count - 1) * flagspace),
+                  flare, (hip_width, foot_depth),
                   hip_depth_ratio, foot_width_ratio,
                   hip_thickness, foot_thickness, 0);
 
        draw_square_block ((-0.5 stemthickness_rounded, 0),
-                          (0, -staff_space_rounded));
-
-       y_mirror_char;
-fet_endchar;
-
-
-%%%%%%%%
-%
-% Single Stroke for Short Appogiatura
-%
-
-fet_beginchar ("grace dash (up)", "ugrace");
-       save flare, hip_depth_ratio, hip_width, foot_depth;
-
-       hip_depth_ratio = .72;
-       flare# = staff_space#;
-       hip_width# = upflag_width# - hip_thickness# / 2;
-       foot_depth# = 3 staff_space#;
-
-       define_pixels (hip_width, foot_depth);
-
-       set_char_box (hip_width# * hip_depth_ratio,
-                     hip_width# + right_upflag_space#,
-                     foot_depth# * hip_depth_ratio, -flare#)
-
-       pickup pencircle scaled 1.5 stemthickness;
-
-       z1 = (-b, -d);
-       z2 = (w, h);
-
-       penpos1 (1.5 stemthickness, angle (z2 - z1) - 90);
-       penpos2 (1.5 stemthickness, angle (z2 - z1) - 90);
-
-       fill z1l
-            -- z2l
-            .. top z2
-            .. rt z2
-            .. z2r
-            -- z1r
-            .. bot z1
-            .. lft z1
-            .. cycle;
-
-       penlabels (1, 2);
-fet_endchar;
-
-
-fet_beginchar ("grace dash (down)", "dgrace");
-       save flare, hip_depth_ratio, hip_width, foot_depth;
-       save total_depth;
-
-       hip_depth_ratio = .72 ;
-       flare# = .99 staff_space#;
-       hip_width# = downflag_width# - hip_thickness# / 2;
-       total_depth# = 2.85 staff_space#;
-       foot_depth# = total_depth#;
-       foot_width_ratio = .8;
-
-       define_pixels (hip_width, foot_depth);
-
-       set_char_box (hip_width# * hip_depth_ratio,
-                     hip_width# + right_downflag_space#,
-                     foot_depth# * hip_depth_ratio, -flare#)
-
-       pickup pencircle scaled 1.5 stemthickness;
-
-       z1 = (-b, -d);
-       z2 = (w, h);
-
-       penpos1 (1.5 stemthickness, angle (z2 - z1) - 90);
-       penpos2 (1.5 stemthickness, angle (z2 - z1) - 90);
-
-       fill z1l
-            -- z2l
-            .. top z2
-            .. rt z2
-            .. z2r
-            -- z1r
-            .. bot z1
-            .. lft z1
-            .. cycle;
+                          (0, (-flag_count * staff_space_rounded)));
 
        y_mirror_char;
 fet_endchar;
@@ -413,23 +344,23 @@ fet_beginchar ("16th (down)", "d4");
        save flagspace, total_depth, flag_count;
 
        flag_count = 2;
+       total_depth# = 3.0 staff_space# - blot_diameter# / 2;
        flare = .8 staff_space;
        flagspace# = .9 staff_space#;
        hip_depth_ratio = .85;
        hip_width# = downflag_width# - hip_thickness# / 2;
-       total_depth# = 3.0 staff_space# - blot_diameter# / 2;
        foot_width_ratio = .95;
 
        (flag_count - 1) * flagspace# + foot_depth# = total_depth#;
 
-       set_char_box (0, hip_width# + right_downflag_space#,
-                     total_depth# + foot_thickness# / 2, stemthickness# / 2);
-
        define_pixels (hip_width, foot_depth);
        define_whole_vertical_pixels (flagspace);
 
-       draw_flag ((0, -(flag_count - 1) * flagspace), flare,
-                  (hip_width, foot_depth),
+       set_char_box (0, hip_width# + right_downflag_space#,
+                     total_depth# + foot_thickness# / 2, stemthickness# / 2);
+
+       draw_flag ((0, -(flag_count - 1) * flagspace),
+                  flare, (hip_width, foot_depth),
                   hip_depth_ratio, foot_width_ratio,
                   hip_thickness, foot_thickness, 0);
 
@@ -437,7 +368,7 @@ fet_beginchar ("16th (down)", "d4");
                  hip_thickness, foot_thickness);
 
        draw_square_block ((-0.5 stemthickness_rounded, 0),
-                          (0, -2 staff_space_rounded));
+                          (0, (-flag_count * staff_space_rounded)));
 
        y_mirror_char;
 fet_endchar;
@@ -448,11 +379,11 @@ fet_beginchar ("32nd (down)", "d5");
        save flagspace, total_depth, flag_count;
 
        flag_count = 3;
+       total_depth# = 3.75 * staff_space# - blot_diameter# / 2;
        flare = .84 staff_space;
        flagspace# = .9 staff_space#;
        hip_depth_ratio = .85;
        hip_width# = downflag_width# - hip_thickness# / 2;
-       total_depth# = 3.85 staff_space#;
        foot_width_ratio = .95;
 
        (flag_count - 1) * flagspace# + foot_depth# = total_depth#;
@@ -463,8 +394,8 @@ fet_beginchar ("32nd (down)", "d5");
        set_char_box (0, hip_width# + right_downflag_space#,
                      total_depth# + foot_thickness# / 2, stemthickness# / 2);
 
-       draw_flag ((0, -(flag_count - 1) * flagspace), flare,
-                  (hip_width, foot_depth),
+       draw_flag ((0, -(flag_count - 1) * flagspace),
+                  flare, (hip_width, foot_depth),
                   hip_depth_ratio, foot_width_ratio,
                   hip_thickness, foot_thickness, 0);
 
@@ -474,7 +405,7 @@ fet_beginchar ("32nd (down)", "d5");
                  hip_thickness, foot_thickness);
 
        draw_square_block ((-0.5 stemthickness_rounded, 0),
-                          (0, -3 staff_space_rounded));
+                          (0, (-flag_count * staff_space_rounded)));
 
        y_mirror_char;
 fet_endchar;
@@ -485,11 +416,11 @@ fet_beginchar ("64th (down)", "d6");
        save flagspace, total_depth, flag_count;
 
        flag_count = 4;
+       total_depth# = 4.35 staff_space#;
        flare = .8 staff_space;
        flagspace# = .9 staff_space#;
        hip_depth_ratio = .85;
        hip_width# = downflag_width# - hip_thickness# / 2;
-       total_depth# = 4.35 staff_space#;
        foot_width_ratio = .98;
 
        (flag_count - 1) * flagspace# + foot_depth# = total_depth#;
@@ -500,8 +431,8 @@ fet_beginchar ("64th (down)", "d6");
        set_char_box (0, hip_width# + right_downflag_space#,
                      total_depth# + foot_thickness# / 2, stemthickness# / 2);
 
-       draw_flag ((0, -(flag_count - 1) * flagspace), flare,
-                  (hip_width, foot_depth),
+       draw_flag ((0, -(flag_count - 1) * flagspace),
+                  flare, (hip_width, foot_depth),
                   hip_depth_ratio, foot_width_ratio,
                   hip_thickness, foot_thickness, 0);
 
@@ -513,7 +444,7 @@ fet_beginchar ("64th (down)", "d6");
                  hip_thickness, foot_thickness);
 
        draw_square_block ((-0.5 stemthickness_rounded, 0),
-                          (0, -4 staff_space_rounded));
+                          (0, (-flag_count * staff_space_rounded)));
 
        y_mirror_char;
 fet_endchar;
@@ -524,22 +455,23 @@ fet_beginchar ("128th (down)", "d7");
        save flagspace, total_depth, flag_count;
 
        flag_count = 5;
+       total_depth# = 5.25 staff_space#;
        flare = .8 staff_space;
        flagspace# = .9 staff_space#;
        hip_depth_ratio = .85;
        hip_width# = downflag_width# - hip_thickness# / 2;
-       total_depth# = 5.25 staff_space#;
        foot_width_ratio = .98;
 
        (flag_count - 1) * flagspace# + foot_depth# = total_depth#;
+
        define_pixels (hip_width, foot_depth);
        define_whole_vertical_pixels (flagspace);
 
        set_char_box (0, hip_width# + right_downflag_space#,
                      total_depth# + foot_thickness# / 2, stemthickness# / 2);
 
-       draw_flag ((0, -(flag_count - 1) * flagspace), flare,
-                  (hip_width, foot_depth),
+       draw_flag ((0, -(flag_count - 1) * flagspace),
+                  flare, (hip_width, foot_depth),
                   hip_depth_ratio, foot_width_ratio,
                   hip_thickness, foot_thickness, 0);
 
@@ -553,9 +485,90 @@ fet_beginchar ("128th (down)", "d7");
                  hip_thickness, foot_thickness);
 
        draw_square_block ((-0.5 stemthickness_rounded, 0),
-                          (0, -5 staff_space_rounded));
+                          (0, (-flag_count * staff_space_rounded)));
+
+       y_mirror_char;
+fet_endchar;
+
+
+%%%%%%%%
+%
+% Single Stroke for Short Appogiatura
+%
+
+fet_beginchar ("grace dash (up)", "ugrace");
+       save flare, hip_depth_ratio, hip_width, foot_depth;
+
+       hip_depth_ratio = .72;
+       flare# = staff_space#;
+       hip_width# = upflag_width# - hip_thickness# / 2;
+       foot_depth# = 3 staff_space#;
+
+       define_pixels (hip_width, foot_depth);
+
+       set_char_box (hip_width# * hip_depth_ratio,
+                     hip_width# + right_upflag_space#,
+                     foot_depth# * hip_depth_ratio, -flare#)
+
+       pickup pencircle scaled 1.5 stemthickness;
+
+       z1 = (-b, -d);
+       z2 = (w, h);
+
+       penpos1 (1.5 stemthickness, angle (z2 - z1) - 90);
+       penpos2 (1.5 stemthickness, angle (z2 - z1) - 90);
+
+       fill z1l
+            -- z2l
+            .. top z2
+            .. rt z2
+            .. z2r
+            -- z1r
+            .. bot z1
+            .. lft z1
+            .. cycle;
+
+       penlabels (1, 2);
+fet_endchar;
+
+
+fet_beginchar ("grace dash (down)", "dgrace");
+       save flare, hip_depth_ratio, hip_width, foot_depth;
+       save total_depth;
+
+       hip_depth_ratio = .72 ;
+       flare# = .99 staff_space#;
+       hip_width# = downflag_width# - hip_thickness# / 2;
+       total_depth# = 2.85 staff_space#;
+       foot_depth# = total_depth#;
+       foot_width_ratio = .8;
+
+       define_pixels (hip_width, foot_depth);
+
+       set_char_box (hip_width# * hip_depth_ratio,
+                     hip_width# + right_downflag_space#,
+                     foot_depth# * hip_depth_ratio, -flare#)
+
+       pickup pencircle scaled 1.5 stemthickness;
+
+       z1 = (-b, -d);
+       z2 = (w, h);
+
+       penpos1 (1.5 stemthickness, angle (z2 - z1) - 90);
+       penpos2 (1.5 stemthickness, angle (z2 - z1) - 90);
+
+       fill z1l
+            -- z2l
+            .. top z2
+            .. rt z2
+            .. z2r
+            -- z1r
+            .. bot z1
+            .. lft z1
+            .. cycle;
 
        y_mirror_char;
 fet_endchar;
 
+
 fet_endgroup ("flags");
index 3bf77f6f44c5a439cfaf799e24d76275d685390e..6fb96bbbf59959fccdc19a15cd846785a5befb0a 100644 (file)
@@ -47,13 +47,19 @@ underscore = _
 # Urg, Python 2.4 does not define stderr/stdout encoding
 # Maybe guess encoding from LANG/LC_ALL/LC_CTYPE?
 
+reload (sys)
+sys.setdefaultencoding ('utf-8')
+import codecs
+sys.stdout = codecs.getwriter ('utf8') (sys.stdout)
+sys.stderr = codecs.getwriter ('utf8') (sys.stderr)
+
 def encoded_write(f, s):
-    f.write (s.encode (f.encoding or 'utf_8'))
+    f.write (s.encode (f.encoding or 'utf-8', 'replace'))
 
 # ugh, Python 2.5 optparse requires Unicode strings in some argument
 # functions, and refuse them in some other places
 def display_encode (s):
-    return s.encode (sys.stderr.encoding or 'utf_8')
+    return s.encode (sys.stderr.encoding or 'utf-8', 'replace')
 
 # Lilylib globals.
 program_version = '@TOPLEVEL_VERSION@'
index 3b3f369c872228795e439f49217d8f1f957c5d7c..439f68a72e08885eaf71919dfad4cf1a311d6437 100644 (file)
@@ -357,6 +357,7 @@ half staff-spaces.  Usually determined by looking at
 @code{midiMinimumVolume}.")
      (midiMinimumVolume ,number? "Set the minimum loudness for MIDI.
 Ranges from 0 to@tie{}1.")
+     (midiChannelMapping ,symbol? "How to map MIDI channels: per @code{instrument} (default), @code{staff} or @code{voice}.")
      (minimumFret ,number? "The tablature auto string-selecting
 mechanism selects the highest string with a fret at least
 @code{minimumFret}.")
index aa6ce82cb7ff1c2bad24b65a9f06369ae50959a4..83b327413dc1cb2eca4b3ea79283b1a79e21ab31 100644 (file)
@@ -337,6 +337,10 @@ Default @code{none} for markup fret diagrams, @code{below-string} for
 @item
 @code{fret-count} -- The number of frets.  Default@tie{}4.
 @item
+@code{fret-label-custom-format} -- The format string to be used label
+the lowest fret number, when @code{number-type} equals to
+@code{custom}.  Default@tie{}\"~a\".
+@item
 @code{fret-label-font-mag} -- The magnification of the font used to
 label the lowest fret number.  Default@tie{}0.5.
 @item
@@ -352,7 +356,9 @@ Default@tie{}0.
 string.  Default @code{\"x\"}.
 @item
 @code{number-type} -- Type of numbers to use in fret label.  Choices
-include @code{roman-lower}, @code{roman-upper}, and @code{arabic}.
+include @code{roman-lower}, @code{roman-upper}, @code{arabic} and
+@code{custom}.  In the later case, the format string is supplied by
+the @code{fret-label-custom-format} property.
 Default @code{roman-lower}.
 @item
 @code{open-string} -- Character string to be used to indicate open
@@ -610,6 +616,9 @@ the nearest staff in the opposite direction from
 between the two, and @code{staff-affinity} is either @code{UP} or
 @code{DOWN}.  See @code{staff-staff-spacing} for a description of
 the alist structure.")
+     (normalized-endpoints ,pair? "Represents left and right placement
+over the total spanner, where the width of the spanner is normalized
+between 0 and 1.")
      (note-names ,vector? "Vector of strings containing names for
 easy-notation note heads.")
 
@@ -1033,16 +1042,11 @@ grobs.")
      (spacing-wishes ,ly:grob-array? "An array of note spacing or staff spacing
 objects.")
      (span-start ,boolean? "Is the note head at the start of a spanner?")
-     (spanner-placement ,number? "The place of an annotation on a spanner.
-Note that this number must be between -1 and 1, with -1 representing the
-beginning of the spanner and 1 representing the end.  The annotation will
-still be placed at the left or right extremity of the spanner, but this
-number ensures that when line breaking happens, the annotation is assigned
-to the correct broken piece and the footnote is put on the correct page.
-An important caveat is that this number applies to column ranks, not staff
-space.  For example, 0 will place the annotation at the middle column of
-its parent's span, which may be to the right or left of the physical middle
-of the spanner.")
+     (spanner-placement ,ly:dir? "The place of an annotation on a spanner.
+LEFT is for the first spanner, and RIGHT is for the last.  CENTER will
+place it on the broken spanner that falls closest to the center of the length
+of the entire spanner, although this behavior is unpredictable in situations
+with lots of rhythmic diversity.  For predictable results, use LEFT and RIGHT.")
      (staff-grouper ,ly:grob? "The staff grouper we belong to.")
      (staff-symbol ,ly:grob? "The staff symbol grob that we are in.")
      (stem ,ly:grob? "A pointer to a @code{Stem} object.")
index e5658a8384d4c2745f709ea49917d440196048c8..8b9564f41e1776e00814887a7d4516b95dba4465 100644 (file)
      . (
        ;; todo: clean this up a bit: the list is getting
        ;; rather long.
-
        (auto-knee-gap . 5.5)
        (beam-thickness . 0.48) ; in staff-space
 
            (round-to-zero-slope . 0.02)))
        (direction . ,ly:beam::calc-direction)
 
+       (normalized-endpoints . ,ly:spanner::calc-normalized-endpoints)
        ;; only for debugging.
        (font-family . roman)
 
        (annotation-balloon . #f)
        (annotation-line . #t)
        (footnote-text . ,(grob::calc-property-by-copy 'footnote-text))
-       (spanner-placement . -1.0)
+       (spanner-placement . LEFT)
        (stencil . ,ly:balloon-interface::print-spanner)
        (text . ,(grob::calc-property-by-copy 'text))
        (Y-extent . #f)
         . (
            ;; 3.5 (or 3 measured from note head) is standard length
            ;; 32nd, 64th, 128th flagged stems should be longer
-           (lengths . (3.5 3.5 3.5 4.5 5.0 6.0))
+           (lengths . (3.5 3.5 3.5 4.25 5.0 6.0))
 
            ;; FIXME.  3.5 yields too long beams (according to Ross and
            ;; looking at Baerenreiter examples) for a number of common
index 9a576439fbd1386b35cf71c7eb85de52cf659b01..5de7fdc6b5a28bfafd1a0885bdb2dea306ce2fc2 100644 (file)
@@ -143,17 +143,27 @@ A simple line.
   ()
   #:category graphic
   #:properties ((draw-line-markup)
-                (line-width))
+                (line-width)
+                (span-factor 1))
   "
 @cindex drawing a line across a page
 
-Draws a line across a page.
+Draws a line across a page, where the property @code{span-factor}
+controls what fraction of the page is taken up.
 @lilypond[verbatim,quote]
 \\markup {
-  \\draw-hline
+  \\column {
+    \\draw-hline
+    \\override #'(span-factor . 1/3)
+    \\draw-hline
+  }
 }
 @end lilypond"
-  (interpret-markup layout props (make-draw-line-markup (cons line-width 0))))
+  (interpret-markup layout
+                    props
+                    (markup #:draw-line (cons (* line-width
+                                                  span-factor)
+                                               0))))
 
 (define-markup-command (draw-circle layout props radius thickness filled)
   (number? number? boolean?)
index 558c11ebf679a8067617fcd90c93a0546ed2a7df..acc095a567ec8a602fd7d4cebf1f03e8274825bb 100644 (file)
@@ -72,10 +72,20 @@ to end-point."
   (if (null? dot-list)
       '()
       (let ((this-list (car dot-list)))
-        (cons* (list (car this-list) (- (second this-list) base-fret)
-                     (if (null? (cddr this-list))
-                         '()
-                         (third this-list)))
+        (cons* (list
+                ;; string
+                (car this-list)
+                ;; fret
+                (- (second this-list) base-fret)
+                ;; finger
+                (if (null? (cddr this-list))
+                    '()
+                    (third this-list))
+                ;; color modifier
+                (if (or (null? (cddr this-list))
+                        (null? (cdddr this-list)))
+                    '()
+                    (fourth this-list)))
                (subtract-base-fret base-fret (cdr dot-list))))))
 
 (define (drop-paren item-list)
@@ -275,8 +285,7 @@ with magnification @var{mag} of the string @var{text}."
          (thickness-factor (assoc-get 'string-thickness-factor details 0))
          (alignment
            (chain-assoc-get 'align-dir props -0.4)) ; needed only here
-         (xo-padding
-           (* size (assoc-get 'xo-padding details 0.2))) ; needed only here
+         (xo-padding (assoc-get 'xo-padding details 0.2)) ; needed only here
          (parameters (fret-parse-marking-list marking-list my-fret-count))
          (capo-fret (assoc-get 'capo-fret parameters 0))
          (dot-list (assoc-get 'dot-list parameters))
@@ -531,7 +540,7 @@ fret-diagram overall parameters."
 
        (let* ( (scale-dot-radius (* size dot-radius))
               (scale-dot-thick (* size th))
-              (dot-color (assoc-get 'dot-color details 'black))
+              (default-dot-color (assoc-get 'dot-color details 'black))
               (finger-label-padding 0.3)
               (dot-label-font-mag
                 (* scale-dot-radius
@@ -555,6 +564,11 @@ fret-diagram overall parameters."
               (extent (cons (- scale-dot-radius) scale-dot-radius))
               (finger (caddr mypair))
               (finger (if (number? finger) (number->string finger) finger))
+              (inverted-color (eq? 'inverted (cadddr mypair)))
+              (dot-color (if (or (and (eq? default-dot-color 'black) inverted-color)
+                                 (and (eq? default-dot-color 'white) (not inverted-color)))
+                             'white
+                             'black))
               (dot-stencil (if (eq? dot-color 'white)
                              (ly:stencil-add
                                (make-circle-stencil
@@ -641,12 +655,11 @@ fret-diagram overall parameters."
        "Put open and mute string indications on diagram, as contained in
 @var{xo-list}."
        (let* ((xo-font-mag
-                (* size (assoc-get
-                          'xo-font-magnification details
+               (assoc-get 'xo-font-magnification details
                           (cond ((or (eq? orientation 'landscape)
                                      (eq? orientation 'opposing-landscape))
                                  0.4)
-                                (else 0.4)))))
+                                (else 0.4))))
               (mypair (car xo-list))
               (restlist (cdr xo-list))
               (glyph-string (if (eq? (car mypair) 'mute)
@@ -709,6 +722,11 @@ at @var{fret}."
                       (fancy-format #f "~@r" base-fret))
                      ((equal? 'arabic number-type)
                       (fancy-format #f "~d" base-fret))
+                     ((equal? 'custom number-type)
+                      (fancy-format #f
+                                    (assoc-get 'fret-label-custom-format
+                                               details "~a")
+                                    base-fret))
                      (else (fancy-format #f "~(~@r~)" base-fret))))
                  (label-stencil
                    (centered-stencil
@@ -723,7 +741,7 @@ at @var{fret}."
             (ly:stencil-translate
               label-stencil
               (stencil-coordinates
-                (1+ (* size label-vertical-offset))
+                (* size (+ 1.0 label-vertical-offset))
                 (if (eq? label-dir LEFT)
                   (- label-outside-diagram)
                   (+ (* size (1- string-count)) label-outside-diagram))))))
@@ -966,12 +984,15 @@ Place a capo indicator (a large solid bar) across the entire fretboard
 at fret location @var{fret-number}.  Also, set fret @var{fret-number}
 to be the lowest fret on the fret diagram.
 
-@item (place-fret @var{string-number} @var{fret-number} @var{finger-value})
+@item (place-fret @var{string-number} @var{fret-number} [@var{finger-value} [@var{color-modifier}]])
 Place a fret playing indication on string @var{string-number} at fret
-@var{fret-number} with an optional fingering label @var{finger-value}.
+@var{fret-number} with an optional fingering label @var{finger-value},
+and an optional color modifier @var{color-modifier}.
 By default, the fret playing indicator is a solid dot.  This can be
-changed by setting the value of the variable @var{dot-color}.  If the
-@var{finger} part of the @code{place-fret} element is present,
+globally changed by setting the value of the variable @var{dot-color}.
+Setting @var{color-modifier} to @code{inverted} inverts the dot color
+for a specific fingering.
+If the @var{finger} part of the @code{place-fret} element is present,
 @var{finger-value} will be displayed according to the setting of the
 variable @var{finger-code}.  There is no limit to the number of fret
 indications per string.
index c1f3543b88f6429135e8f7eef0f5301a90259c6b..82cfa963de6ec40d7e4cff438e741cccd7b5b96b 100644 (file)
 
 '''
 TODO:
-    * test on weird and unquantised midi input (lily-devel)
-    * update doc and manpage
-
-    * simply insert clef changes whenever too many ledger lines
-        [to avoid tex capacity exceeded]
-    * do not ever quant skips
-    * better lyrics handling
-    * [see if it is feasible to] move ly-classes to library for use in
-        other converters, while leaving midi specific stuff here
 '''
 
 import os
@@ -149,7 +140,8 @@ class Duration:
             s = '%d*%d/%d' % (self.dur, self.num, self.den)
 
         global reference_note
-        reference_note.duration = self
+        if reference_note: # debugging
+            reference_note.duration = self
 
         return s
 
@@ -411,7 +403,8 @@ class Text:
             s = s + ' '
         elif (self.text.strip ()
               and self.type == midi.SEQUENCE_TRACK_NAME
-              and not self.text == 'control track'):
+              and not self.text == 'control track'
+              and not self.track.lyrics_p_):
             text = self.text.replace ('(MIDI)', '').strip ()
             if text:
                 s = '\n  \\set Staff.instrumentName = "%(text)s"\n  ' % locals ()
@@ -422,34 +415,158 @@ class Text:
     def __repr__ (self):
         return 'Text(%d=%s)' % (self.type, self.text)
 
+def get_voice (channel, music):
+    debug ('channel: ' + str (channel) + '\n')
+    return unthread_notes (music)
+
+class Channel:
+    def __init__ (self, number):
+        self.number = number
+        self.events = []
+        self.music = None
+    def add (self, event):
+        self.events.append (event)
+    def get_voice (self):
+        if not self.music:
+            self.music = self.parse ()
+        return get_voice (self.number, self.music)
+    def parse (self):
+        pitches = {}
+        notes = []
+        music = []
+        last_lyric = 0
+        last_time = 0
+        for e in self.events:
+            t = e[0]
 
+            if start_quant_clocks:
+                t = quantise_clocks (t, start_quant_clocks)
 
-def split_track (track):
-    chs = {}
-    for i in range (16):
-        chs[i] = []
+            if (e[1][0] == midi.NOTE_OFF
+                or (e[1][0] == midi.NOTE_ON and e[1][2] == 0)):
+                debug ('%d: NOTE OFF: %s' % (t, e[1][1]))
+                if not e[1][2]:
+                    debug ('   ...treated as OFF')
+                end_note (pitches, notes, t, e[1][1])
+
+            elif e[1][0] == midi.NOTE_ON:
+                if not pitches.has_key (e[1][1]):
+                    debug ('%d: NOTE ON: %s' % (t, e[1][1]))
+                    pitches[e[1][1]] = (t, e[1][2])
+                else:
+                    debug ('...ignored')
+
+            # all include ALL_NOTES_OFF
+            elif (e[1][0] >= midi.ALL_SOUND_OFF
+              and e[1][0] <= midi.POLY_MODE_ON):
+                for i in pitches:
+                    end_note (pitches, notes, t, i)
+
+            elif e[1][0] == midi.META_EVENT:
+                if e[1][1] == midi.END_OF_TRACK:
+                    for i in pitches:
+                        end_note (pitches, notes, t, i)
+                    break
+
+                elif e[1][1] == midi.SET_TEMPO:
+                    (u0, u1, u2) = map (ord, e[1][2])
+                    us_per_4 = u2 + 256 * (u1 + 256 * u0)
+                    seconds_per_1 = us_per_4 * 4 / 1e6
+                    music.append ((t, Tempo (seconds_per_1)))
+                elif e[1][1] == midi.TIME_SIGNATURE:
+                    (num, dur, clocks4, count32) = map (ord, e[1][2])
+                    den = 2 ** dur
+                    music.append ((t, Time (num, den)))
+                elif e[1][1] == midi.KEY_SIGNATURE:
+                    (alterations, minor) = map (ord, e[1][2])
+                    sharps = 0
+                    flats = 0
+                    if alterations < 127:
+                        sharps = alterations
+                    else:
+                        flats = 256 - alterations
+
+                    k = Key (sharps, flats, minor)
+                    if not t and global_options.key:
+                        # At t == 0, a set --key overrides us
+                        k = global_options.key
+                    music.append ((t, k))
+
+                    # ugh, must set key while parsing
+                    # because Note init uses key
+                    # Better do Note.calc () at dump time?
+                    global_options.key = k
+
+                elif (e[1][1] == midi.LYRIC
+                      or (global_options.text_lyrics
+                          and e[1][1] == midi.TEXT_EVENT)):
+                    self.lyrics_p_ = True
+                    if last_lyric:
+                        last_lyric.clocks = t - last_time
+                        music.append ((last_time, last_lyric))
+                    last_time = t
+                    last_lyric = Text (midi.LYRIC, e[1][2])
+
+                elif (e[1][1] >= midi.SEQUENCE_NUMBER
+                      and e[1][1] <= midi.CUE_POINT):
+                    text = Text (e[1][1], e[1][2])
+                    text.track = self
+                    music.append ((t, text))
+                    if (text.type == midi.SEQUENCE_TRACK_NAME):
+                        self.name = text.text
+                else:
+                    if global_options.verbose:
+                        sys.stderr.write ("SKIP: %s\n" % `e`)
+            else:
+                if global_options.verbose:
+                    sys.stderr.write ("SKIP: %s\n" % `e`)
 
-    for e in track:
+        if last_lyric:
+            # last_lyric.clocks = t - last_time
+            # hmm
+            last_lyric.clocks = clocks_per_4
+            music.append ((last_time, last_lyric))
+            last_lyric = 0
+
+        i = 0
+        while len (notes):
+            if i < len (music) and notes[0][0] >= music[i][0]:
+                i = i + 1
+            else:
+                music.insert (i, notes[0])
+                del notes[0]
+        return music
+    
+class Track (Channel):
+    def __init__ (self):
+        Channel.__init__ (self, None)
+        self.name = None
+        self.channels = {}
+        self.lyrics_p_ = False
+    def _add (self, event):
+        self.events.append (event)
+    def add (self, event, channel=None):
+        if channel == None:
+            self._add (event)
+        else:
+            self.channels[channel] = self.channels.get (channel, Channel (channel))
+            self.channels[channel].add (event)
+    def get_voices (self):
+        return ([self.get_voice ()]
+                + [self.channels[k].get_voice ()
+                   for k in sorted (self.channels.keys ())])
+
+def create_track (events):
+    track = Track ()
+    for e in events:
         data = list (e[1])
         if data[0] > 0x7f and data[0] < 0xf0:
-            c = data[0] & 0x0f
+            channel = data[0] & 0x0f
             e = (e[0], tuple ([data[0] & 0xf0] + data[1:]))
-            chs[c].append (e)
+            track.add (e, channel)
         else:
-            chs[0].append (e)
-
-    threads = []
-    i = 0
-    for v in chs.values ():
-        i += 1
-        if not v:
-            continue
-        debug ('channel: %d\n' % i)
-        events = events_on_channel (v)
-        t = unthread_notes (events)
-        if len (t):
-            threads.append (t)
-    return threads
+            track.add (e)
+    return track
 
 def quantise_clocks (clocks, quant):
     q = int (clocks / quant) * quant
@@ -484,111 +601,6 @@ def end_note (pitches, notes, t, e):
     except KeyError:
         pass
 
-def events_on_channel (channel):
-    pitches = {}
-
-    notes = []
-    events = []
-    last_lyric = 0
-    last_time = 0
-    for e in channel:
-        t = e[0]
-
-        if start_quant_clocks:
-            t = quantise_clocks (t, start_quant_clocks)
-
-
-        if (e[1][0] == midi.NOTE_OFF
-            or (e[1][0] == midi.NOTE_ON and e[1][2] == 0)):
-            debug ('%d: NOTE OFF: %s' % (t, e[1][1]))
-            if not e[1][2]:
-                debug ('   ...treated as OFF')
-            end_note (pitches, notes, t, e[1][1])
-
-        elif e[1][0] == midi.NOTE_ON:
-            if not pitches.has_key (e[1][1]):
-                debug ('%d: NOTE ON: %s' % (t, e[1][1]))
-                pitches[e[1][1]] = (t, e[1][2])
-            else:
-                debug ('...ignored')
-
-        # all include ALL_NOTES_OFF
-        elif (e[1][0] >= midi.ALL_SOUND_OFF
-          and e[1][0] <= midi.POLY_MODE_ON):
-            for i in pitches:
-                end_note (pitches, notes, t, i)
-
-        elif e[1][0] == midi.META_EVENT:
-            if e[1][1] == midi.END_OF_TRACK:
-                for i in pitches:
-                    end_note (pitches, notes, t, i)
-                break
-
-            elif e[1][1] == midi.SET_TEMPO:
-                (u0, u1, u2) = map (ord, e[1][2])
-                us_per_4 = u2 + 256 * (u1 + 256 * u0)
-                seconds_per_1 = us_per_4 * 4 / 1e6
-                events.append ((t, Tempo (seconds_per_1)))
-            elif e[1][1] == midi.TIME_SIGNATURE:
-                (num, dur, clocks4, count32) = map (ord, e[1][2])
-                den = 2 ** dur
-                events.append ((t, Time (num, den)))
-            elif e[1][1] == midi.KEY_SIGNATURE:
-                (alterations, minor) = map (ord, e[1][2])
-                sharps = 0
-                flats = 0
-                if alterations < 127:
-                    sharps = alterations
-                else:
-                    flats = 256 - alterations
-
-                k = Key (sharps, flats, minor)
-                if not t and global_options.key:
-                    # At t == 0, a set --key overrides us
-                    k = global_options.key
-                events.append ((t, k))
-
-                # ugh, must set key while parsing
-                # because Note init uses key
-                # Better do Note.calc () at dump time?
-                global_options.key = k
-
-            elif (e[1][1] == midi.LYRIC
-                  or (global_options.text_lyrics and e[1][1] == midi.TEXT_EVENT)):
-                if last_lyric:
-                    last_lyric.clocks = t - last_time
-                    events.append ((last_time, last_lyric))
-                last_time = t
-                last_lyric = Text (midi.LYRIC, e[1][2])
-
-            elif (e[1][1] >= midi.SEQUENCE_NUMBER
-                  and e[1][1] <= midi.CUE_POINT):
-                events.append ((t, Text (e[1][1], e[1][2])))
-            else:
-                if global_options.verbose:
-                    sys.stderr.write ("SKIP: %s\n" % `e`)
-                pass
-        else:
-            if global_options.verbose:
-                sys.stderr.write ("SKIP: %s\n" % `e`)
-            pass
-
-    if last_lyric:
-        # last_lyric.clocks = t - last_time
-        # hmm
-        last_lyric.clocks = clocks_per_4
-        events.append ((last_time, last_lyric))
-        last_lyric = 0
-
-    i = 0
-    while len (notes):
-        if i < len (events) and notes[0][0] >= events[i][0]:
-            i = i + 1
-        else:
-            events.insert (i, notes[0])
-            del notes[0]
-    return events
-
 def unthread_notes (channel):
     threads = []
     while channel:
@@ -674,10 +686,6 @@ def dump_bar_line (last_bar_t, t, bar_count):
 
 def dump_voice (thread, skip):
     global reference_note, time
-
-    # urg LilyPond doesn't start at c4, but
-    # remembers from previous tracks!
-    # reference_note = Note (clocks_per_4, 4*12, 0)
     ref = Note (0, 4*12, 0)
     if not reference_note:
         reference_note = ref
@@ -764,10 +772,14 @@ def get_voice_name (i, zero_too_p=False):
         return 'voice' + number2ascii (i)
     return ''
 
+def lst_append (lst, x):
+    lst.append (x)
+    return lst
+
 def get_voice_layout (average_pitch):
     d = {}
     for i in range (len (average_pitch)):
-        d[average_pitch[i]] = i
+        d[average_pitch[i]] = lst_append (d.get (average_pitch[i], []), i)
     s = list (reversed (sorted (average_pitch)))
     non_empty = len (filter (lambda x: x, s))
     names = ['One', 'Two']
@@ -777,6 +789,9 @@ def get_voice_layout (average_pitch):
     for i, n in zip (s, names):
         if i:
             v = d[i]
+            if type (v) == list:
+                d[i] = v[1:]
+                v = v[0]
             layout[v] = n
     return layout
 
@@ -900,6 +915,12 @@ def get_best_clef (average_pitch):
             return Clef (3)
     return Clef (2)
 
+class Staff:
+    def __init__ (self, track):
+        self.voices = track.get_voices ()
+    def dump (self, i):
+        return dump_track (self.voices, i)
+
 def convert_midi (in_file, out_file):
     global clocks_per_1, clocks_per_4, key
     global start_quant_clocks
@@ -928,16 +949,33 @@ def convert_midi (in_file, out_file):
     if global_options.verbose:
         print 'allowed tuplet clocks:', allowed_tuplet_clocks
 
-    tracks = []
-    for t in midi_dump[1]:
-        tracks.append (split_track (t))
+    tracks = [create_track (t) for t in midi_dump[1]]
+    # urg, parse all global track events, such as Key first
+    # this fixes key in different voice/staff problem
+    for t in tracks:
+        t.music = t.parse ()
+    prev = None
+    staves = []
+    for t in tracks:
+        voices = t.get_voices ()
+        if ((t.name and prev and prev.name)
+            and t.name.split (':')[0] == prev.name.split (':')[0]):
+            # staves[-1].voices += voices
+            # all global track events first
+            staves[-1].voices = ([staves[-1].voices[0]]
+                                 + [voices[0]]
+                                 + staves[-1].voices[1:]
+                                 + voices[1:])
+        else:
+            staves.append (Staff (t))
+        prev = t
 
     tag = '%% Lily was here -- automatically converted by %s from %s' % ( program_name, in_file)
 
 
     s = tag
     s += r'''
-\version "2.7.38"
+\version "2.13.53"
 '''
 
     s += r'''
@@ -959,18 +997,18 @@ def convert_midi (in_file, out_file):
             s += '\n'
         s += '% end\n'
 
-    for i in range (len (tracks)):
-        s = s + dump_track (tracks[i], i)
+    for i, t in enumerate (staves):
+        s += t.dump (i)
 
     s += '\n\\score {\n  <<\n'
 
     i = 0
-    for t in tracks:
+    for i, staff in enumerate (staves):
         track_name = get_track_name (i)
-        item = track_first_item (t)
+        item = track_first_item (staff.voices)
         staff_name = track_name
         context = None
-        if not i and not item and len (tracks) > 1:
+        if not i and not item and len (staves) > 1:
             # control track
             staff_name = get_track_name (1)
             context = 'Staff'
@@ -980,8 +1018,12 @@ def convert_midi (in_file, out_file):
             context = 'Lyrics'
         if context:
             s += '    \\context %(context)s=%(staff_name)s \\%(track_name)s\n' % locals ()
-        i += 1
-    s = s + '  >>\n}\n'
+
+    s = s + '''  >>
+  \layout {}
+  \midi {}
+}
+'''
 
     progress (_ ("%s output to `%s'...") % ('LY', out_file))