LilyPond Internals Reference: 2.2.21 Completion_rest_engraver

### 2.2.21 Completion_rest_engraver

This engraver replaces `Rest_engraver`. It plays some trickery to break long rests into the next measure.

Music types accepted:

rest-event

Properties (read)

> `completionFactor` (an exact rational or procedure)

>   When `Completion_heads_engraver` and `Completion_rest_engraver` need to split a note or rest with a scaled duration, such as `c2*3`, this specifies the scale factor to use for the newly-split notes and rests created by the engraver.

>   If `#f`, the completion engraver uses the scale-factor of each duration being split.

>   If set to a callback procedure, that procedure is called with the context of the completion engraver, and the duration to be split.

> `completionUnit` (moment)

>   Sub-bar unit of completion.

> `measureLength` (moment)

>   Length of one measure in the current time signature.

> `measurePosition` (moment)

>   How much of the current measure have we had. This can be set manually to create incomplete measures.

> `middleCPosition` (number)

>   The place of the middle C, measured in half staff-spaces. Usually determined by looking at `middleCClefPosition` and `middleCOffset`.

Properties (write)

> `restCompletionBusy` (boolean)

>   Signal whether a completion-rest is active.

This engraver creates the following layout object(s):

Rest.

`Completion_rest_engraver` is not part of any context.

#### Internals Reference v2.22.2 (stable-branch).