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