]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/user/expressive.itely
More linewidth re-wrapping.
[lilypond.git] / Documentation / user / expressive.itely
1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @ignore
3     Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
4
5     When revising a translation, copy the HEAD committish of the
6     version that you are working on.  See TRANSLATION for details.
7 @end ignore
8
9 @node Expressive marks
10 @section Expressive marks
11
12 @menu
13 * Attached to notes::           
14 * Curves::                      
15 * Lines::                       
16 @end menu
17
18
19 @node Attached to notes
20 @subsection Attached to notes
21
22
23 @menu
24 * Articulations::               
25 * Dynamics::                    
26 @end menu
27
28 @node Articulations
29 @unnumberedsubsubsec Articulations
30
31 @cindex Articulations
32 @cindex scripts
33 @cindex ornaments
34
35 A variety of symbols can appear above and below notes to indicate
36 different characteristics of the performance.  They are added to a
37 note by adding a dash and the character signifying the
38 articulation.
39
40 See @ref{List of articulations}.
41
42 @lilypond[quote,ragged-right,verbatim,fragment]
43 \override TextScript  #'font-family = #'typewriter
44 \override TextScript  #'font-shape = #'upright
45 c''4-._"c-."      s4
46 c''4--_"c--"      s4
47 c''4-+_"c-+"      s4
48 c''4-|_"c-|"      s4
49 c''4->_"c->"      s4
50 c''4-^_"c-^"      s4
51 c''4-__"c-_"      s4      
52 @end lilypond
53
54 The meanings of these shorthands can be changed.  See
55 @file{ly/@/script@/-init@/.ly} for examples.
56
57 The script is automatically placed, but the direction can be
58 forced as well.  Like other pieces of LilyPond code, @code{_} will
59 place them below the staff, and @code{^} will place them above.
60
61 @lilypond[quote,ragged-right,fragment,verbatim]
62 c''4^^ c''4_^
63 @end lilypond
64
65 Other symbols can be added using the syntax
66 @var{note}@code{\}@var{name}.  Again, they
67 can be forced up or down using @code{^} and @code{_},
68 e.g.,
69
70 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
71 c\fermata c^\fermata c_\fermata
72 @end lilypond
73
74 @cindex accent
75 @cindex marcato
76 @cindex staccatissimo
77 @cindex espressivo
78 @cindex fermata
79 @cindex stopped
80 @cindex staccato
81 @cindex portato
82 @cindex tenuto
83 @cindex upbow
84 @cindex downbow
85 @cindex foot marks
86 @cindex organ pedal marks
87 @cindex turn
88 @cindex open
89 @cindex stopped
90 @cindex flageolet
91 @cindex reverseturn
92 @cindex trill
93 @cindex prall
94 @cindex mordent
95 @cindex prallprall
96 @cindex prallmordent
97 @cindex prall, up
98 @cindex prall, down
99 @cindex thumb marking
100 @cindex segno
101 @cindex coda
102 @cindex varcoda
103
104
105 @commonprop
106
107 The vertical ordering of scripts is controlled with the
108 @code{script-priority} property.  The lower this number, the
109 closer it will be put to the note.  In this example, the
110 @internalsref{TextScript} (the sharp symbol) first has the lowest
111 priority, so it is put lowest in the first example.  In the
112 second, the prall trill (the @internalsref{Script}) has the
113 lowest, so it is on the inside.  When two objects have the same
114 priority, the order in which they are entered decides which one
115 comes first.
116
117 @lilypond[verbatim,relative=3,ragged-right,fragment,quote]
118 \once \override TextScript #'script-priority = #-100
119 a4^\prall^\markup { \sharp }
120
121 \once \override Script #'script-priority = #-100
122 a4^\prall^\markup { \sharp }
123 @end lilypond
124
125
126 @seealso
127
128 Program reference: @internalsref{Script}.
129
130
131 @refbugs
132
133 These signs appear in the printed output but have no effect on the
134 MIDI rendering of the music.
135
136
137 @node Dynamics
138 @unnumberedsubsubsec Dynamics
139
140 @cindex Dynamics
141 @funindex \pppp
142 @funindex \ppp
143 @funindex \pp
144 @funindex \p
145 @funindex \mp
146 @funindex \mf
147 @funindex \f
148 @funindex \ff
149 @funindex \fff
150 @funindex \ffff
151 @funindex \fp
152 @funindex \sf
153 @funindex \sff
154 @funindex \sp
155 @funindex \spp
156 @funindex \sfz
157 @funindex \rfz
158
159 Absolute dynamic marks are specified using a command after a note
160 @code{c4\ff}.  The available dynamic marks are @code{\ppppp},
161 @code{\pppp}, @code{\ppp}, @code{\pp}, @code{\p}, @code{\mp},
162 @code{\mf}, @code{\f}, @code{\ff}, @code{\fff}, @code{\ffff},
163 @code{\fp}, @code{\sf}, @code{\sff}, @code{\sp}, @code{\spp},
164 @code{\sfz}, and @code{\rfz}.
165
166 @lilypond[quote,verbatim,ragged-right,fragment,relative=2]
167 c\ppp c\pp c \p c\mp c\mf c\f c\ff c\fff
168 c2\fp c\sf c\sff c\sp c\spp c\sfz c\rfz
169 @end lilypond
170
171 @funindex \<
172 @funindex \>
173 @funindex \!
174
175 A crescendo mark is started with @code{\<} and terminated with
176 @code{\!} or an absolute dynamic.  A decrescendo is started with
177 @code{\>} and is also terminated with @code{\!} or an absolute
178 dynamic.  @code{\cr} and @code{\decr} may be used instead of
179 @code{\<} and @code{\>}.  Because these marks are bound to notes,
180 you must use spacer notes if multiple marks are needed during one
181 note
182
183 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
184 c\< c\! d\> e\!
185 << f1 { s4 s4\< s4\! \> s4\! } >>
186 @end lilypond
187
188 @noindent
189 A hairpin normally starts at the left edge of the beginning note
190 and ends on the right edge of the ending note.  If the ending note
191 falls on the downbeat, the hairpin ends on the immediately
192 preceding barline.  This may be modified by setting the
193 @code{hairpinToBarline} property,
194
195 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
196 \set hairpinToBarline = ##f
197 c4\< c2. c4\!
198 @end lilypond
199
200 In some situations the @code{\espressivo} articulation mark may be
201 suitable to indicate a crescendo and decrescendo on the one note,
202
203 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
204 c2 b4 a g1\espressivo
205 @end lilypond
206
207 This may give rise to very short hairpins.  Use
208 @code{minimum-length} in
209 @internalsref{Voice}.@internalsref{Hairpin} to lengthen them, for
210 example
211
212 @example
213 \override Voice.Hairpin #'minimum-length = #5
214 @end example
215
216 @cindex al niente
217 @cindex niente, al
218
219 Hairpins may be printed with a circled tip (al niente notation) by
220 setting the @code{circled-tip} property,
221
222 @lilypond[quote,ragged-right,fragment,relative=2,verbatim]
223 \override Hairpin #'circled-tip = ##t
224 c2\< c\!
225 c4\> c\< c2\!
226 @end lilypond
227
228
229 @cindex crescendo
230 @cindex decrescendo
231 @cindex diminuendo
232
233 You can also use text saying @emph{cresc.} instead of hairpins
234
235 @lilypond[quote,ragged-right,fragment,relative=2,verbatim]
236 \setTextCresc
237 c\< d e f\!
238 \setHairpinCresc
239 e\> d c b\!
240 \setTextDecresc
241 c\> d e f\!
242 \setTextDim
243 e\> d c b\!
244 @end lilypond
245
246 You can also supply your own texts
247 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
248 \set crescendoText = \markup { \italic "cresc. poco" }
249 \set crescendoSpanner = #'dashed-line
250 a'2\< a a a\!\mf
251 @end lilypond
252
253 To create new dynamic marks or text that should be aligned with
254 dynamics, see @ref{New dynamic marks}.
255
256 Vertical positioning of dynamics is handled by
257 @internalsref{DynamicLineSpanner}.
258
259
260 @commonprop
261
262 Dynamics that occur at, begin on, or end on, the same note will be
263 vertically aligned.  If you want to ensure that dynamics are
264 aligned when they do not occur on the same note, you can increase
265 the @code{staff-padding} property.
266
267 @example
268 \override DynamicLineSpanner #'staff-padding = #4
269 @end example
270
271 You may also use this property if the dynamics are colliding with
272 other notation.
273
274 Crescendi and decrescendi that end on the first note of a new line
275 are not printed.  To change this behavior, use
276
277 @example
278 \override Score.Hairpin #'after-line-breaking = ##t
279 @end example
280
281 Text style dynamic changes (such as @emph{cresc.} and @emph{dim.})
282 are printed with a dashed line showing their extent.  To surpress
283 printing this line, use
284
285 @example
286 \override DynamicTextSpanner #'dash-period = #-1.0
287 @end example
288
289
290 @refcommands
291
292 @funindex \dynamicUp
293 @code{\dynamicUp},
294 @funindex \dynamicDown
295 @code{\dynamicDown},
296 @funindex \dynamicNeutral
297 @code{\dynamicNeutral}.
298
299
300 @seealso
301
302 Program reference: @internalsref{DynamicText},
303 @internalsref{Hairpin}.  Vertical positioning of these symbols is
304 handled by @internalsref{DynamicLineSpanner}.
305
306
307 @node Curves
308 @subsection Curves
309
310 @menu
311 * Ties::                        
312 * Slurs::                       
313 * Phrasing slurs::              
314 * Laissez vibrer ties::         
315 * Breath marks::                
316 * Falls and doits::             
317 @end menu
318
319 @node Ties
320 @unnumberedsubsubsec Ties
321
322 @cindex tie
323 @funindex ~
324
325 A tie connects two adjacent note heads of the same pitch.  The tie
326 in effect extends the length of a note.  Ties should not be
327 confused with slurs, which indicate articulation, or phrasing
328 slurs, which indicate musical phrasing.  A tie is entered using
329 the tilde symbol @samp{~}
330
331 @lilypond[quote,ragged-right,fragment,verbatim]
332 e' ~ e' <c' e' g'> ~ <c' e' g'>
333 @end lilypond
334
335 When a tie is applied to a chord, all note heads whose pitches
336 match are connected.  When no note heads match, no ties will be
337 created.  Chords may be partially tied by placing the tie inside
338 the chord,
339
340 @lilypond[quote,ragged-right,fragment,verbatim,relative=1]
341 <c~ e g~ b> <c e g b>
342 @end lilypond
343
344 A tie is just a way of extending a note duration, similar to the
345 augmentation dot.  The following example shows two ways of
346 notating exactly the same concept
347
348 @lilypond[quote,fragment,ragged-right]
349 \time 3/4 c'2. c'2 ~ c'4
350 @end lilypond
351
352 @noindent
353 Ties are used either when the note crosses a bar line, or when
354 dots cannot be used to denote the rhythm.  When using ties, larger
355 note values should be aligned to subdivisions of the measure, such
356 as
357
358 @lilypond[fragment,quote,ragged-right]
359 \relative {
360   r8 c8 ~ c2 r4 | r8^"not" c2 ~ c8 r4
361 }
362 @end lilypond
363
364 If you need to tie a lot of notes over bars, it may be easier to
365 use automatic note splitting (see @ref{Automatic note splitting}).
366 This mechanism automatically splits long notes, and ties them
367 across bar lines.
368
369 @funindex \repeatTie
370
371 When a second alternative of a repeat starts with a tied note, you
372 have to repeat the tie.  This can be achieved with
373 @code{\repeatTie},
374
375 @lilypond[fragment,quote,ragged-right,relative=2]
376 r <c e g>\repeatTie
377 @end lilypond
378
379 @cindex repeating ties
380 @cindex volta brackets and ties
381
382 @commonprop
383
384 Ties are sometimes used to write out arpeggios.  In this case, two
385 tied notes need not be consecutive.  This can be achieved by
386 setting the @code{tieWaitForNote} property to true.  The same
387 feature is also useful, for example, to tie a tremolo to a chord.
388 For example,
389
390 @lilypond[fragment,verbatim,relative=1,ragged-right,quote]
391 \set tieWaitForNote = ##t
392 \grace { c16[~ e~ g]~ } <c, e g>2
393 \repeat tremolo 8 { c32~ c'~ } <c c,>1
394 e8~ c~ a~ f~ <e' c a f>2
395 @end lilypond
396
397 Ties may be engraved manually by changing the
398 @code{tie-configuration} property.  The first number indicates the
399 distance from the center of the staff in staff-spaces, and the
400 second number indicates the direction (1=up, -1=down).
401
402 @lilypond[fragment,verbatim,relative=1,ragged-right,quote]
403 <c e g>2~ <c e g> |
404 \override TieColumn #'tie-configuration =
405   #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1))
406 <c e g>~ <c e g> |
407 @end lilypond
408
409
410 @refcommands
411
412
413 @funindex \tieUp
414 @code{\tieUp},
415 @funindex \tieDown
416 @code{\tieDown},
417 @funindex \tieNeutral
418 @code{\tieNeutral},
419 @funindex \tieDotted
420 @code{\tieDotted},
421 @funindex \tieDashed
422 @code{\tieDashed},
423 @funindex \tieSolid
424 @code{\tieSolid}.
425
426
427 @seealso
428
429 In this manual: @ref{Automatic note splitting}.
430
431 Program reference: @internalsref{Tie}.
432
433
434 @refbugs
435
436 Switching staves when a tie is active will not produce a slanted
437 tie.
438
439 Changing clefs or octavations during a tie is not really
440 well-defined.  In these cases, a slur may be preferable.
441
442
443 @node Slurs
444 @unnumberedsubsubsec Slurs
445
446 @cindex Slurs
447
448 A slur indicates that notes are to be played bound or
449 @emph{legato}.  They are entered using parentheses
450
451 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
452 f( g a) a8 b( a4 g2 f4)
453 <c e>2( <b d>2)
454 @end lilypond
455
456 The direction of a slur can be specified with
457 @code{\slur@emph{DIR}}, where @code{@emph{DIR}} is either
458 @code{Up}, @code{Down}, or @code{Neutral} (automatically
459 selected).
460
461 However, there is a convenient shorthand for forcing slur
462 directions.  By adding @code{_} or @code{^} before the opening
463 parentheses, the direction is also set.  For example,
464
465 @lilypond[relative=2,ragged-right,quote,verbatim,fragment]
466 c4_( c) c^( c)
467 @end lilypond
468
469 Only one slur can be printed at once.  If you need to print a long
470 slur over a few small slurs, please see @ref{Phrasing slurs}.
471
472
473 @commonprop
474
475 Some composers write two slurs when they want legato chords.  This
476 can be achieved in LilyPond by setting @code{doubleSlurs},
477
478 @lilypond[verbatim,ragged-right,relative,fragment,quote]
479 \set doubleSlurs = ##t
480 <c e>4 ( <d f> <c e> <d f> )
481 @end lilypond
482
483
484 @refcommands
485
486 @funindex \slurUp
487 @code{\slurUp},
488 @funindex \slurDown
489 @code{\slurDown},
490 @funindex \slurNeutral
491 @code{\slurNeutral},
492 @funindex \slurDashed
493 @code{\slurDashed},
494 @funindex \slurDotted
495 @code{\slurDotted},
496 @funindex \slurSolid
497 @code{\slurSolid}.
498
499 @seealso
500
501 Program reference: @internalsref{Slur}.
502
503
504 @node Phrasing slurs
505 @unnumberedsubsubsec Phrasing slurs
506
507 @cindex phrasing slurs
508 @cindex phrasing marks
509
510 A phrasing slur (or phrasing mark) connects notes and is used to
511 indicate a musical sentence.  It is written using @code{\(} and
512 @code{\)} respectively
513
514 @lilypond[quote,ragged-right,fragment,verbatim,relative=1]
515 \time 6/4 c'\( d( e) f( e) d\)
516 @end lilypond
517
518 Typographically, the phrasing slur behaves almost exactly like a
519 normal slur.  However, they are treated as different objects.  A
520 @code{\slurUp} will have no effect on a phrasing slur; instead,
521 use @code{\phrasingSlurUp}, @code{\phrasingSlurDown}, and
522 @code{\phrasingSlurNeutral}.
523
524 You cannot have simultaneous phrasing slurs.
525
526
527 @refcommands
528
529 @funindex \phrasingSlurUp
530 @code{\phrasingSlurUp},
531 @funindex \phrasingSlurDown
532 @code{\phrasingSlurDown},
533 @funindex \phrasingSlurNeutral
534 @code{\phrasingSlurNeutral}.
535
536
537 @seealso
538
539 Program reference: @internalsref{PhrasingSlur}.
540
541
542 @node Laissez vibrer ties
543 @unnumberedsubsubsec Laissez vibrer ties
544 @cindex Laissez vibrer
545 @cindex Ties, laissez vibrer
546
547 L.v. ties (laissez vibrer) indicate that notes must not be damped
548 at the end.  It is used in notation for piano, harp and other
549 string and percussion instruments.  They can be entered using
550 @code{\laissezVibrer},
551
552 @lilypond[fragment,ragged-right,verbatim,relative=1]
553 <c f g>\laissezVibrer
554 @end lilypond
555
556 @seealso
557
558 Program reference:
559 @internalsref{LaissezVibrerTie}
560 @internalsref{LaissezVibrerTieColumn}
561
562 Example files:
563 @lsr{connecting,laissez-vibrer-ties.ly}
564
565
566 @node Breath marks
567 @unnumberedsubsubsec Breath marks
568
569 Breath marks are entered using @code{\breathe}
570
571 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
572 c'4 \breathe d4
573 @end lilypond
574
575
576 @commonprop
577
578 The glyph of the breath mark can be tuned by overriding the
579 @code{text} property of the @code{BreathingSign} layout object
580 with any markup text.  For example,
581
582 @lilypond[quote,ragged-right,fragment,verbatim,relative=1]
583 c'4
584 \override BreathingSign #'text
585   = #(make-musicglyph-markup "scripts.rvarcomma")
586 \breathe
587 d4
588 @end lilypond
589
590 @seealso
591
592 Program reference: @internalsref{BreathingSign}.
593
594 Examples: @lsr{expressive,breathing-sign.ly}
595
596
597 @node Falls and doits
598 @unnumberedsubsubsec Falls and doits
599
600 Falls and doits can be added to notes using the @code{\bendAfter}
601 command,
602
603 @lilypond[fragment,ragged-right,relative=2]
604 \override Score.SpacingSpanner #'shortest-duration-space = #3.0
605 c4-\bendAfter #+5
606 c4-\bendAfter #-3
607 @end lilypond
608
609
610 @node Lines
611 @subsection Lines
612
613 @menu
614 * Glissando::                   
615 * Arpeggio::                    
616 * Trills::                      
617 * Analysis brackets::           
618 @end menu
619
620 @node Glissando
621 @unnumberedsubsubsec Glissando
622
623 @cindex Glissando
624 @funindex \glissando
625
626 A glissando is a smooth change in pitch.  It is denoted by a line
627 or a wavy line between two notes.  It is requested by attaching
628 @code{\glissando} to a note
629
630 @lilypond[quote,ragged-right,fragment,relative=2,verbatim]
631 c2\glissando c'
632 \override Glissando #'style = #'zigzag
633 c2\glissando c,
634 @end lilypond
635
636
637 @commonprop
638
639 @lilypond[quote,ragged-right,verbatim]
640 I = \once \override NoteColumn #'ignore-collision = ##t
641
642 \relative <<
643   { \oneVoice \stemDown f2 \glissando \stemNeutral a } \\
644   { \oneVoice \I c2 \glissando \I d, }
645 >>
646 @end lilypond
647
648
649
650 @seealso
651
652 Program reference: @internalsref{Glissando}.
653
654 Example files:
655 @lsr{expressive,glissando.ly}, @lsr{expressive,line-styles.ly}
656
657
658 @refbugs
659
660 Printing text over the line (such as @emph{gliss.}) is not
661 supported.
662
663
664 @node Arpeggio
665 @unnumberedsubsubsec Arpeggio
666
667 @cindex Arpeggio
668 @cindex broken chord
669 @funindex \arpeggio
670
671 You can specify an arpeggio sign (also known as broken chord) on a
672 chord by attaching an @code{\arpeggio} to a chord
673
674 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
675 <c e g c>\arpeggio
676 @end lilypond
677
678 A square bracket on the left indicates that the player should not
679 arpeggiate the chord
680
681 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
682 \arpeggioBracket
683 <c' e g c>\arpeggio
684 @end lilypond
685
686 The direction of the arpeggio is sometimes denoted by adding an
687 arrowhead to the wiggly line
688
689 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
690 \new Voice {
691   \arpeggioUp
692   <c e g c>\arpeggio
693   \arpeggioDown
694   <c e g c>\arpeggio
695 }
696 @end lilypond
697
698
699 @commonprop
700
701 When an arpeggio crosses staves, you may attach an arpeggio to the
702 chords in both staves and set
703 @internalsref{PianoStaff}.@code{connectArpeggios}
704
705 @lilypond[quote,ragged-right,fragment,relative=1,verbatim]
706 \new PianoStaff <<
707   \set PianoStaff.connectArpeggios = ##t
708   \new Staff { <c' e g c>\arpeggio }
709   \new Staff { \clef bass <c,, e g>\arpeggio }
710 >>
711 @end lilypond
712
713 @c TODO: cross-voice arpeggio example?
714 @c such an example is already in LSR -J.Mandereau
715
716 @refcommands
717
718 @code{\arpeggio},
719 @funindex \arpeggioUp
720 @code{\arpeggioUp},
721 @funindex \arpeggioDown
722 @code{\arpeggioDown},
723 @funindex \arpeggioNeutral
724 @code{\arpeggioNeutral},
725 @funindex \arpeggioBracket
726 @code{\arpeggioBracket}.
727
728
729 @seealso
730
731 Notation manual: @ref{Ties}, for writing out arpeggios.
732
733 Program reference: @internalsref{Arpeggio}.
734
735
736 @refbugs
737
738 It is not possible to mix connected arpeggios and unconnected
739 arpeggios in one @internalsref{PianoStaff} at the same point in
740 time.
741
742
743 @node Trills
744 @unnumberedsubsubsec Trills
745
746 Short trills are printed like normal articulation; see
747 @ref{Articulations}.
748
749 Long running trills are made with @code{\startTrillSpan} and
750 @code{\stopTrillSpan},
751
752 @lilypond[verbatim,ragged-right,relative=2,quote,fragment]
753 \new Voice {
754   << { c1 \startTrillSpan }
755      { s2. \grace { d16[\stopTrillSpan e] } } >>
756   c4 }
757 @end lilypond
758
759 @cindex Pitched trills
760
761 Trills that should be executed on an explicitly specified pitch
762 can be typeset with the command @code{pitchedTrill},
763
764 @lilypond[ragged-right,verbatim,fragment,relative=1,quote]
765 \pitchedTrill c4\startTrillSpan fis
766 f\stopTrillSpan
767 @end lilypond
768
769 @noindent
770 The first argument is the main note.  The pitch of the second is
771 printed as a stemless note head in parentheses.
772
773
774 @refcommands
775
776 @code{\startTrillSpan},
777 @funindex \startTrillSpan
778 @code{\stopTrillSpan}.
779 @funindex \stopTrillSpan
780
781
782 @seealso
783
784 Program reference: @internalsref{TrillSpanner}.
785
786
787 @node Analysis brackets
788 @unnumberedsubsubsec Analysis brackets
789
790 @cindex brackets
791 @cindex phrasing brackets
792 @cindex musicological analysis
793 @cindex note grouping bracket
794
795 Brackets are used in musical analysis to indicate structure in
796 musical pieces.  LilyPond supports a simple form of nested
797 horizontal brackets.  To use this, add the
798 @internalsref{Horizontal_bracket_engraver} to @internalsref{Staff}
799 context.  A bracket is started with @code{\startGroup} and closed
800 with @code{\stopGroup}
801
802 @lilypond[quote,ragged-right,verbatim]
803 \score {
804   \relative c'' {
805     c4\startGroup\startGroup
806     c4\stopGroup
807     c4\startGroup
808     c4\stopGroup\stopGroup
809   }
810   \layout {
811     \context {
812       \Staff \consists "Horizontal_bracket_engraver"
813 }}}
814 @end lilypond
815
816 @seealso
817
818 Program reference: @internalsref{HorizontalBracket}.
819
820
821