Fader¶
- class auxjad.Fader(contents: abjad.score.Container, *, mode: str = 'out', max_steps: int = 1, repetition_chance: float = 0.0, process_on_first_call: bool = False, disable_rewrite_meter: bool = False, omit_time_signatures: bool = False, use_multimeasure_rests: bool = True, mask: Optional[list] = None, boundary_depth: Optional[int] = None, maximum_dot_count: Optional[int] = None, rewrite_tuplets: bool = True, include_empty_measures: bool = True, prettify_rewrite_meter: bool = True, extract_trivial_tuplets: bool = True, fuse_across_groups_of_beats: bool = True, fuse_quadruple_meter: bool = True, fuse_triple_meter: bool = True)[source]¶
Takes an
abjad.Container
(or child class) as input and, using it as reference, gradually removes or adds notes one by one to an outputabjad.Selection
.- Basic usage:
Calling the object will return an
abjad.Selection
generated by the fading process. Each call of the object will apply the fading process to the previous result. By default, the container will be faded out (that is, its notes will be gradually removed one by one). Note that, by default, the first call in fade out mode outputs the initial container, with subsequent calls replacing leaves for rests.>>> container = abjad.Container(r"c'4 ~ c'16 d'8. e'8 f'4.") >>> abjad.show(container)
>>> fader = auxjad.Fader(container) >>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
>>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
>>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
The property
current_window
can be used to access the current window without processing it.>>> notes = fader.current_window() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
process_on_first_call
:The very first call will output the input container without processing it. To disable this behaviour and apply the fading process on the very first call, initialise the class with the keyword argument
process_on_first_call
set toTrue
.>>> container = abjad.Container(r"c'4 d'4 e'4 f'4") >>> fader = auxjad.Fader(container, ... process_on_first_call=True, ... ) >>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
mode
:This class has two modes, set by the keyword argument
mode
. The default mode is'out'
(i.e. ‘fade out mode’), in which the fader will gradually remove notes one by one (see examples above). When set to'in'
(i.e. ‘fade in mode’), the fader will start with an empty container with the same length and time signature structure as the input music and will gradually add the original notes one by one.>>> container = abjad.Container(r"c'4 ~ c'16 d'8. e'8 f'4.") >>> fader = auxjad.Fader(container, ... mode='in', ... ) >>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
>>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
>>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
- Changing
mode
after initialisation: The property
mode
can also be changed after initialisation, as shown below.>>> container = abjad.Container(r"c'4 d'4 e'4 f'4") >>> fader = auxjad.Fader(container) >>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
>>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
>>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
>>> fader.mode = 'in' >>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
>>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
include_empty_measures
:When
mode
is set to'out'
, the process will end on an empty measure and when it is set to'in'
, it will start on an empty measure. Setinclude_empty_measures
toFalse
to exclude the empty measures (default isTrue
). This can be used in conjunction withprocess_on_first_call
.>>> container = abjad.Container(r"c'4 d'4 e'2") >>> fader = auxjad.Fader(container, ... mode='in', ... include_empty_measures=False, ... ) >>> staff = abjad.Staff(fader.output_all()) >>> abjad.show(staff)
>>> container = abjad.Container(r"c'4 d'4 e'2") >>> fader = auxjad.Fader(container, ... mode='out', ... include_empty_measures=False, ... ) >>> staff = abjad.Staff(fader.output_all()) >>> abjad.show(staff)
- Using as iterator:
The instances of this class can also be used as an iterator, which can then be used in a for loop to run through the whole process. Note that unlike the methods
output_n()
andoutput_all()
, time signatures are added to each window returned by the fader. Use the functionauxjad.mutate.remove_repeated_time_signatures()
to clean the output when using this class in this way.>>> container = abjad.Container(r"c'4 d'4 e'4 f'4") >>> fader = auxjad.Fader(container) >>> staff = abjad.Staff() >>> for window in fader: ... staff.append(window) >>> auxjad.mutate.remove_repeated_time_signatures(staff) >>> abjad.show(staff)
- Arguments and properties:
This class can take many optional keyword arguments during its creation, besides
mode
. By default, calling the object in fade out mode will return the original container, and calling it in fade in mode will return a container filled with rests; setprocess_on_first_call
toTrue
and the fade process will be applied on the very first call.max_steps
sets the maximum number of note that can be faded in/out at each iteration, ranging between1
and the input value (default is also1
).repetition_chance
sets the chance of a window repeating itself, from0.0
to1.0
(default is0.0
, i.e. no repetitions).disable_rewrite_meter
disables theabjad.Meter.rewrite_meter()
mutation which is applied to the container after every call, andomit_time_signatures
will remove all time signatures from the output (both areFalse
by default). Any measure filled with rests will be rewritten using a multi-measure rest; set theuse_multimeasure_rests
toFalse
to disable this behaviour. It is possible to set an initial mask for the notes usingmask
, which should be alist
of the same length as the number of notes in the input container. Whenmode
is set to'out'
, the mask is initialised with1
’s, and when it is set to'in'
, it is initialised with0
’s. Change it to a mix of1
’s and0
’s to start the process with some specific notes already hidden or present. The propertiesboundary_depth
,maximum_dot_count
, andrewrite_tuplets
are passed as arguments toabjad.Meter.rewrite_meter()
, see its documentation for more information.>>> container = abjad.Container(r"c'4 d'2 e'4 f'2 ~ f'8 g'4.") >>> fader = auxjad.Fader(container, ... mode='in', ... max_steps=2, ... repetition_chance=0.7, ... disable_rewrite_meter=True, ... omit_time_signatures=True, ... use_multimeasure_rests=False, ... mask=[1, 0, 1, 1, 0], ... boundary_depth=0, ... maximum_dot_count=1, ... rewrite_tuplets=False, ... process_on_first_call=True, ... include_empty_measures=False, ... ) >>> fader.mode 'in' >>> fader.max_steps 2 >>> fader.repetition_chance 0.7 >>> fader.disable_rewrite_meter True >>> fader.omit_time_signatures True >>> fader.use_multimeasure_rests False >>> fader.mask [1, 0, 1, 1, 0] >>> fader.boundary_depth 0 >>> fader.maximum_dot_count 1 >>> fader.rewrite_tuplets False >>> fader.process_on_first_call True >>> fader.include_empty_measures False
Use the properties below to change these values after initialisation.
>>> fader.mode = 'out' >>> fader.max_steps = 1 >>> fader.repetition_chance = 0.23 >>> fader.disable_rewrite_meter = False >>> fader.omit_time_signatures = False >>> fader.use_multimeasure_rests = True >>> fader.mask = [0, 1, 1, 0, 1] >>> fader.boundary_depth = 1 >>> fader.maximum_dot_count = 2 >>> fader.rewrite_tuplets = True >>> fader.process_on_first_call = False >>> fader.include_empty_measures = True >>> fader.mode 'out' >>> fader.max_steps 1 >>> fader.repetition_chance 0.23 >>> fader.disable_rewrite_meter False >>> fader.omit_time_signatures False >>> fader.use_multimeasure_rests True >>> fader.mask [0, 1, 1, 0, 1] >>> fader.boundary_depth 1 >>> fader.maximum_dot_count 2 >>> fader.rewrite_tuplets True >>> fader.process_on_first_call False >>> fader.include_empty_measures True
contents
:Use the
contents
property to read as well as overwrite the contents of the fader. Notice thatmask
will also be reset at that point.>>> container = abjad.Container(r"c'4 d'4 e'4 f'4") >>> fader = auxjad.Fader(container) >>> notes = fader() >>> fader.mask [1, 1, 1, 1] >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
>>> notes = fader() >>> fader.mask [0, 1, 1, 1] >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
>>> fader.contents = abjad.Container(r"c'16 d'16 e'16 f'16 g'2.") >>> fader.mask [1, 1, 1, 1, 1] >>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
>>> notes = fader() >>> fader.mask [1, 1, 1, 1, 1] >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
output_all()
:To run through the whole process and output it as a single container, use the method
output_all()
.>>> container = abjad.Container(r"c'4. d'8 e'2") >>> fader = auxjad.Fader(container) >>> notes = fader.output_all() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
output_n()
:To run through just part of the process and output it as a single container, use the method
output_n()
and pass the number of iterations as argument.>>> container = abjad.Container(r"c'4. d'8 e'16 f'16 g'4.") >>> fader = auxjad.Fader(container) >>> notes = fader.output_n(3) >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
- Chords:
This class also support chords. Each of their individual notes are removed or added one by one.
>>> container = abjad.Container( ... r"<c' e'>4 ~ <c' e'>16 d'8. <gs e'>8 <bf f' a'>8 ~ <bf f' a'>4" ... ) >>> fader = auxjad.Fader(container) >>> staff = abjad.Staff(fader.output_all()) >>> abjad.show(staff)
len()
:The function
len()
returns the total number of notes incontents
.>>> container = abjad.Container(r"c'4 d'4 e'4 f'4") >>> fader = auxjad.Fader(container) >>> len(fader) 4 >>> container = abjad.Container(r"c'4 ~ c'8 d'8 e'4 ~ e'8 f'8") >>> fader = auxjad.Fader(container) >>> len(fader) 4 >>> container = abjad.Container( ... r"c'4 ~ c'16 r16 d'8 e'4 ~ e'8 f'16 r16" ... ) >>> fader = auxjad.Fader(container) >>> len(fader) 4
Note that each individual note in a chord will count as one note.
>>> container = abjad.Container(r"<c' e' g'>2 <d' f'>2") >>> fader = auxjad.Fader(container) >>> len(fader) 5 >>> container = abjad.Container( ... r"<c' e' g'>4 ~ <c' e' g'>16 r8. <d' f'>2" ... ) >>> fader = auxjad.Fader(container) >>> len(fader) 5 >>> container = abjad.Container(r"<c' e' g'>4 d'4 <e' g' b'>4 r4") >>> fader = auxjad.Fader(container) >>> len(fader) 7
max_steps
:Setting the keyword argument
max_steps
to a value larger than1
will result in a random number of steps (between1
andmax_steps
) being applied at each call.>>> container = abjad.Container(r"c'8 d'8 e'8 f'8 g'8 a'8 b'8 c''8") >>> fader = auxjad.Fader(container, ... max_steps=3, ... process_on_first_call=True, ... ) >>> notes = fader.output_n(3) >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
repetition_chance
:Use
repetition_chance
to set the chance of a measure repeating itself, ranging from0.0
to1.0
(default is0.0
, i.e. no repetitions).>>> container = abjad.Container(r"c'4. d'8 e'4.. f'16") >>> fader = auxjad.Fader(container, ... repetition_chance=0.5, ... ) >>> notes = fader.output_n(5) >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
mask
andreset_mask()
:The property
mask
is used to represent whether each note is hidden or present. It is alist
of the same length as the number of notes in the input container (use thelen()
function to read that value). Whenmode
is set to'out'
, the mask is initialised with1
’s, and when it is set to'in'
, it is initialised with0
’s. Change it to a mix of1
’s and0
’s to start the process with some notes already hidden or present. Use the methodreset_mask()
to reset it back to its default value (depending onmode
).>>> container = abjad.Container(r"c'4 d'8 e'8 f'4 ~ f'8. g'16") >>> fader = auxjad.Fader(container) >>> fader.mask [1, 1, 1, 1, 1] >>> fader = auxjad.Fader(container, ... mode='in', ... ) >>> fader.mask [0, 0, 0, 0, 0] >>> for _ in range(3): ... fader() ... fader.mask [0, 0, 0, 0, 0] [0, 1, 0, 0, 0] [0, 1, 1, 0, 0] >>> staff = abjad.Staff(fader.current_window) >>> abjad.show(staff)
>>> fader.mask = [1, 0, 1, 1, 0] >>> fader.mask [1, 0, 1, 1, 0] >>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
>>> fader.reset_mask() >>> fader.mask [0, 0, 0, 0, 0] >>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
When a container has chords, each of their notes will be represented by an index in the mask, from the lowest pitched one to the highest pitched one. For instance, the container
c'2 <d' e' f' g'>2
has five notes in total (a single note plus a 4-note chord), and applying the mask[1, 0, 1, 1, 0]
to it will result in the first, third, and fourth notes to be shown, in this casec'2 <e' f'>2
.>>> container = abjad.Container(r"c'2 <d' e' f' g'>2") >>> fader = auxjad.Fader(container, mask=[1, 0, 1, 1, 0]) >>> staff = abjad.Staff(fader()) >>> abjad.show(staff)
random_mask()
:The mask can also be randomised at any point using the method
random_mask()
.>>> container = abjad.Container(r"c'8 d'8 e'8 f'8 g'8 a'8 b'8 c''8") >>> fader = auxjad.Fader(container) >>> fader.random_mask() >>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
>>> fader.random_mask() >>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
shuffle_mask()
:Use
shuffle_mask()
to shuffle the current mask. This method will shuffle the mask while keeping the total number of shown notes constant (that is, it will shuffle the contents of the mask while keeping the total number of1
’s and0
’s).>>> container = abjad.Container(r"c'8 d'8 e'8 f'8 g'8 a'8 b'8 c''8") >>> fader = auxjad.Fader(container, ... mask=[0, 0, 1, 1, 1, 1, 1, 1], ... ) >>> fader.shuffle_mask() >>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
>>> fader.shuffle_mask() >>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
use_multimeasure_rests
anddisable_rewrite_meter
:By default, all rests in a measure filled only with rests will be converted into a multi-measure rest. Set
use_multimeasure_rests
toFalse
to disable this. Also, by default, all output is mutated throughabjad.Meter.rewrite_meter()
. To disable it, setdisable_rewrite_meter
toTrue
.>>> container = abjad.Container(r"c'8 d'8 e'2.") >>> fader = auxjad.Fader(container, ... disable_rewrite_meter=True, ... use_multimeasure_rests=False, ... ) >>> notes = fader.output_all() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
omit_time_signatures
:To disable time signatures altogether, initialise this class with the keyword argument
omit_time_signatures
set toTrue
(default isFalse
), or use theomit_time_signatures
property after initialisation.>>> container = abjad.Container(r"c'4 d'2 e'4 f'2 ~ f'8 g'4.") >>> fader = auxjad.Fader(container, ... omit_time_signatures=True, ... ) >>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
Tip
All methods that return an
abjad.Selection
will add an initial time signature to it. Theoutput_n()
andoutput_all()
methods automatically remove repeated time signatures. When joining selections output by multiple method calls, useauxjad.mutate.remove_repeated_time_signatures()
on the whole container after fusing the selections to remove any unecessary time signature changes.- Tweaking
abjad.Meter.rewrite_meter()
: This function uses the default logical tie splitting algorithm from
abjad.Meter.rewrite_meter()
.>>> container = abjad.Container(r"c'4. d'8 e'2") >>> fader = auxjad.Fader(container) >>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
Set
boundary_depth
to a different number to change its behaviour.>>> fader = auxjad.Fader(container, ... boundary_depth=1, ... ) >>> notes = fader() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
Other arguments available for tweaking the output of
abjad.Meter.rewrite_meter()
aremaximum_dot_count
andrewrite_tuplets
, which work exactly as the identically named arguments ofabjad.Meter.rewrite_meter()
.This class also accepts the arguments
fuse_across_groups_of_beats
,fuse_quadruple_meter
,fuse_triple_meter
, andextract_trivial_tuplets
, which are passed on toauxjad.mutate.prettify_rewrite_meter()
(the latter can be disabled by settingprettify_rewrite_meter
toFalse
). See the documentation of this function for more details on these arguments.- Indicators:
This class can handle dynamics and articulations.
>>> container = abjad.Container( ... r"\time 3/4 c'8->\f d'8\p ~ d'4 e'8..-- f'32-." ... ) >>> fader = auxjad.Fader(container) >>> notes = fader.output_all() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
- Slurs and hairpins:
Slurs and hairpins are also supported. Slurs are split when rests appear in the middle of a slurred phrase, while hairpins are shortened and adjusted as required.
>>> container = abjad.Container( ... r"\times 2/3 {c'2(\p\< d'2 e'2\f} f'4\p\> g'2 a'4\pp)" ... ) >>> fader = auxjad.Fader(container) >>> notes = fader.output_n(5) >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
Tip
The functions
auxjad.mutate.remove_repeated_dynamics()
andauxjad.mutate.reposition_clefs()
can be used to clean the output and remove repeated dynamics and unnecessary clef changes.Warning
Do note that some elements that span multiple notes (such as ottava indicators, manual beams, etc.) can become problematic when notes containing them are split into two. As a rule of thumb, it is always better to attach those to the music after the fading process has ended.
- Tuplets:
This class can handle tuplets.
>>> container = abjad.Container(r"\times 2/3 {c'8 d'8 e'8} d'2.") >>> fader = auxjad.Fader(container) >>> notes = fader.output_all() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
- Time signature changes:
This class can handle time signature changes.
>>> container = abjad.Container(r"\time 4/4 c'2( d'2 \time 3/4 e'2.)") >>> fader = auxjad.Fader(container, mode='in') >>> notes = fader.output_all() >>> staff = abjad.Staff(notes) >>> abjad.show(staff)
Methods
__call__
()Calls the fading process for one iteration, returning an
abjad.Selection
.__init__
(contents, *[, mode, max_steps, …])Initialises self.
__iter__
()Returns an iterator, allowing instances to be used as iterators.
__len__
()Returns the number of notes of
contents
.__next__
()Calls the fading process for one iteration, returning an
abjad.Selection
.__repr__
()Returns interpreter representation of
contents
.Goes through the whole fading process and outputs a single
abjad.Selection
.output_n
(n)Goes through
n
iterations of the fading process and outputs a singleabjad.Selection
.Creates a mask randomly filled with
1
’s and0
’s.Creates a mask filled with a default value for the notes.
Shuffles the current mask.
Attributes
Sets the argument
boundary_depth
ofabjad.Meter.rewrite_meter()
.The
abjad.Container
to be faded.Read-only property, returns the previously output selection.
When
True
, the durations of the notes in the output will not be rewritten by theabjad.Meter.rewrite_meter()
mutation.Sets the argument
extract_trivial_tuplets
ofauxjad.mutate.prettify_rewrite_meter()
.Sets the argument
fuse_across_groups_of_beats
ofauxjad.mutate.prettify_rewrite_meter()
.Sets the argument
fuse_quadruple_meter
ofauxjad.mutate.prettify_rewrite_meter()
.Sets the argument
fuse_triple_meter
ofauxjad.mutate.prettify_rewrite_meter()
.If
True
then an initial or final empty measures will be used, otherwise the process starts/ends with a single logical tie.Mask with
1
’s and0
’s representing the notes ofcontents
.The maximum number of steps per operation.
Sets the argument
maximum_dot_count
ofabjad.Meter.rewrite_meter()
.Mode of fading, must be either
'in'
or'out'
.When
True
, all time signatures will be omitted from the output.Used to enable or disable the mutation
auxjad.mutate.prettify_rewrite_meter()
(defaultTrue
).If
True
thencontents
will be processed in the very first call.The chance of not processing
contents
on a call, thus repeating the previous output.Sets the argument
rewrite_tuplets
ofabjad.Meter.rewrite_meter()
.When
True
, multi-measure rests will be used for silent measures.- __call__() → abjad.select.Selection[source]¶
Calls the fading process for one iteration, returning an
abjad.Selection
.
- __init__(contents: abjad.score.Container, *, mode: str = 'out', max_steps: int = 1, repetition_chance: float = 0.0, process_on_first_call: bool = False, disable_rewrite_meter: bool = False, omit_time_signatures: bool = False, use_multimeasure_rests: bool = True, mask: Optional[list] = None, boundary_depth: Optional[int] = None, maximum_dot_count: Optional[int] = None, rewrite_tuplets: bool = True, include_empty_measures: bool = True, prettify_rewrite_meter: bool = True, extract_trivial_tuplets: bool = True, fuse_across_groups_of_beats: bool = True, fuse_quadruple_meter: bool = True, fuse_triple_meter: bool = True) → None[source]¶
Initialises self.
- __next__() → abjad.select.Selection[source]¶
Calls the fading process for one iteration, returning an
abjad.Selection
.
- property boundary_depth: Optional[int]¶
Sets the argument
boundary_depth
ofabjad.Meter.rewrite_meter()
.
- property contents: abjad.score.Container¶
The
abjad.Container
to be faded.
- property current_window: abjad.select.Selection¶
Read-only property, returns the previously output selection.
- property disable_rewrite_meter: bool¶
When
True
, the durations of the notes in the output will not be rewritten by theabjad.Meter.rewrite_meter()
mutation.
- property extract_trivial_tuplets: bool¶
Sets the argument
extract_trivial_tuplets
ofauxjad.mutate.prettify_rewrite_meter()
.
- property fuse_across_groups_of_beats: bool¶
Sets the argument
fuse_across_groups_of_beats
ofauxjad.mutate.prettify_rewrite_meter()
.
- property fuse_quadruple_meter: bool¶
Sets the argument
fuse_quadruple_meter
ofauxjad.mutate.prettify_rewrite_meter()
.
- property fuse_triple_meter: bool¶
Sets the argument
fuse_triple_meter
ofauxjad.mutate.prettify_rewrite_meter()
.
- property include_empty_measures: bool¶
If
True
then an initial or final empty measures will be used, otherwise the process starts/ends with a single logical tie.
- property max_steps: int¶
The maximum number of steps per operation.
- property maximum_dot_count: Optional[int]¶
Sets the argument
maximum_dot_count
ofabjad.Meter.rewrite_meter()
.
- property mode: str¶
Mode of fading, must be either
'in'
or'out'
.
- property omit_time_signatures: bool¶
When
True
, all time signatures will be omitted from the output.
- output_all() → abjad.select.Selection[source]¶
Goes through the whole fading process and outputs a single
abjad.Selection
.
- output_n(n: int) → abjad.select.Selection[source]¶
Goes through
n
iterations of the fading process and outputs a singleabjad.Selection
.
- property prettify_rewrite_meter: bool¶
Used to enable or disable the mutation
auxjad.mutate.prettify_rewrite_meter()
(defaultTrue
).
- property process_on_first_call: bool¶
If
True
thencontents
will be processed in the very first call.
- property repetition_chance: float¶
The chance of not processing
contents
on a call, thus repeating the previous output.
- property rewrite_tuplets: bool¶
Sets the argument
rewrite_tuplets
ofabjad.Meter.rewrite_meter()
.
- property use_multimeasure_rests: bool¶
When
True
, multi-measure rests will be used for silent measures.