IncisedRhythmMaker¶
-
class
abjadext.rmakers.IncisedRhythmMaker.
IncisedRhythmMaker
(*, beam_specifier=None, duration_specifier=None, division_masks=None, extra_counts_per_division=None, incise_specifier=None, logical_tie_masks=None, replace_rests_with_skips=None, split_divisions_by_counts=None, tie_specifier=None, tuplet_specifier=None)¶ Incised rhythm-maker.
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... prefix_talea=[-1], ... prefix_counts=[0, 1], ... suffix_talea=[-1], ... suffix_counts=[1], ... talea_denominator=16, ... ), ... )
>>> divisions = 4 * [(5, 16)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Attributes Summary
__call__
Calls incised rhythm-maker on divisions
.division_masks
Gets division masks. duration_specifier
Gets duration specifier. extra_counts_per_division
Gets extra counts per division. incise_specifier
Gets incise specifier. logical_tie_masks
Gets logical tie masks. replace_rests_with_skips
Is true when rhythm-maker should replace rests with skips. split_divisions_by_counts
Gets secondary divisions. tie_specifier
Gets tie specifier. tuplet_specifier
Gets tuplet specifier. Special methods
-
__call__
(divisions, previous_state=None)¶ Calls incised rhythm-maker on
divisions
.Return type: List
[Selection
]
-
(
AbjadValueObject
).__copy__
(*arguments)¶ Copies Abjad value object.
Returns new Abjad value object.
-
(
AbjadValueObject
).__eq__
(argument)¶ Is true when all initialization values of Abjad value object equal the initialization values of
argument
.Returns true or false.
-
(
AbjadObject
).__format__
(format_specification='')¶ Formats Abjad object.
Set
format_specification
to''
or'storage'
. Interprets''
equal to'storage'
.Returns string.
-
(
AbjadValueObject
).__hash__
()¶ Hashes Abjad value object.
Returns integer.
-
(
RhythmMaker
).__illustrate__
(divisions=((3, 8), (4, 8), (3, 16), (4, 16)))¶ Illustrates rhythm-maker.
Returns LilyPond file.
-
(
AbjadObject
).__repr__
()¶ Gets interpreter representation of Abjad object.
Returns string.
Read-only properties
-
(
RhythmMaker
).beam_specifier
¶ Gets beam specifier.
Return type: Optional
[BeamSpecifier
]
-
division_masks
¶ Gets division masks.
No division masks:
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... prefix_talea=[-1], ... prefix_counts=[1], ... talea_denominator=16, ... ), ... )
>>> divisions = [(4, 8), (3, 8), (4, 8), (3, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Masks every other output division:
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... prefix_talea=[-1], ... prefix_counts=[1], ... talea_denominator=16, ... ), ... division_masks=[ ... abjad.Pattern( ... indices=[0], ... period=2, ... ), ... ], ... )
>>> divisions = [(4, 8), (3, 8), (4, 8), (3, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Return type: Optional
[PatternTuple
]
-
duration_specifier
¶ Gets duration specifier.
Spells durations with the fewest number of glyphs:
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... prefix_talea=[-1], ... prefix_counts=[1], ... outer_divisions_only=True, ... suffix_talea=[-1], ... suffix_counts=[1], ... talea_denominator=8, ... ), ... )
>>> divisions = [(8, 8), (4, 8), (6, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Forbids notes with written duration greater than or equal to
1/2
:>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... prefix_talea=[-1], ... prefix_counts=[1], ... outer_divisions_only=True, ... suffix_talea=[-1], ... suffix_counts=[1], ... talea_denominator=8, ... ), ... duration_specifier=abjadext.rmakers.DurationSpecifier( ... forbidden_duration=(1, 2), ... ), ... )
>>> divisions = [(8, 8), (4, 8), (6, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Spells all divisions metrically when
spell_metrically
is true:>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... prefix_talea=[-1], ... prefix_counts=[1], ... outer_divisions_only=True, ... suffix_talea=[-1], ... suffix_counts=[1], ... talea_denominator=8, ... ), ... duration_specifier=abjadext.rmakers.DurationSpecifier( ... spell_metrically=True, ... ), ... )
>>> divisions = [(8, 8), (4, 8), (6, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Spells only unassignable durations metrically when
spell_metrically
is'unassignable'
:>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... prefix_talea=[-1], ... prefix_counts=[1], ... outer_divisions_only=True, ... suffix_talea=[-1], ... suffix_counts=[1], ... talea_denominator=8, ... ), ... duration_specifier=abjadext.rmakers.DurationSpecifier( ... spell_metrically='unassignable', ... ), ... )
>>> divisions = [(8, 8), (4, 8), (6, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Rewrites meter:
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... prefix_talea=[-1], ... prefix_counts=[1], ... outer_divisions_only=True, ... suffix_talea=[-1], ... suffix_counts=[1], ... talea_denominator=8, ... ), ... duration_specifier=abjadext.rmakers.DurationSpecifier( ... rewrite_meter=True, ... ), ... )
>>> divisions = [(8, 8), (4, 8), (6, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Returns duration specifier or none.
Return type: Optional
[DurationSpecifier
]
-
incise_specifier
¶ Gets incise specifier.
Doesn’t incise:
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker()
>>> divisions = [(5, 8), (5, 8), (5, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Fills divisions with notes. Incises outer divisions only:
>>> incise_specifier = abjadext.rmakers.InciseSpecifier( ... prefix_talea=[-8, -7], ... prefix_counts=[2], ... suffix_talea=[-3], ... suffix_counts=[4], ... talea_denominator=32, ... outer_divisions_only=True, ... ) >>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=incise_specifier, ... )
>>> divisions = [(5, 8), (5, 8), (5, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Fills divisions with rests. Incises outer divisions only:
>>> incise_specifier = abjadext.rmakers.InciseSpecifier( ... prefix_talea=[7, 8], ... prefix_counts=[2], ... suffix_talea=[3], ... suffix_counts=[4], ... talea_denominator=32, ... fill_with_notes=False, ... outer_divisions_only=True, ... ) >>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=incise_specifier, ... )
>>> divisions = [(5, 8), (5, 8), (5, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Return type: Optional
[InciseSpecifier
]
-
logical_tie_masks
¶ Gets logical tie masks.
No logical tie masks:
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... outer_divisions_only=True, ... prefix_talea=[-1], ... prefix_counts=[1], ... suffix_talea=[-1], ... suffix_counts=[1], ... talea_denominator=16, ... ), ... )
>>> divisions = [(4, 8), (3, 8), (4, 8), (3, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Silences every other logical tie:
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... outer_divisions_only=True, ... prefix_talea=[-1], ... prefix_counts=[1], ... suffix_talea=[-1], ... suffix_counts=[1], ... talea_denominator=16, ... ), ... logical_tie_masks=[ ... abjadext.rmakers.silence([1], 2), ... ], ... )
>>> divisions = [(4, 8), (3, 8), (4, 8), (3, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Return type: Optional
[PatternTuple
]
-
(
RhythmMaker
).previous_state
¶ Gets previous state dictionary.
Return type: OrderedDict
-
replace_rests_with_skips
¶ Is true when rhythm-maker should replace rests with skips.
Does not replace rests with skips:
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... fill_with_notes=False, ... prefix_talea=[1], ... prefix_counts=[1], ... talea_denominator=16, ... ), ... replace_rests_with_skips=False, ... )
>>> divisions = [(4, 8), (3, 8), (4, 8), (3, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Does replace rests with skips:
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... fill_with_notes=False, ... prefix_talea=[1], ... prefix_counts=[1], ... talea_denominator=16, ... ), ... replace_rests_with_skips=True, ... )
>>> divisions = [(4, 8), (3, 8), (4, 8), (3, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Use in keyboard and other polyphonic selections where other voices provide rhythmic alignment.
Return type: Optional
[bool
]
-
(
RhythmMaker
).state
¶ Gets state dictionary.
Return type: OrderedDict
-
tie_specifier
¶ Gets tie specifier.
Does not tie across divisions:
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... prefix_talea=[-1], ... prefix_counts=[1], ... outer_divisions_only=True, ... suffix_talea=[-1], ... suffix_counts=[1], ... talea_denominator=8, ... ), ... )
>>> divisions = [(8, 8), (4, 8), (6, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Ties across divisions:
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... prefix_talea=[-1], ... prefix_counts=[1], ... outer_divisions_only=True, ... suffix_talea=[-1], ... suffix_counts=[1], ... talea_denominator=8, ... ), ... tie_specifier=abjadext.rmakers.TieSpecifier( ... tie_across_divisions=True, ... ), ... )
>>> divisions = [(8, 8), (4, 8), (6, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Patterns ties across divisions:
>>> pattern = abjad.Pattern( ... indices=[0], ... period=2, ... ) >>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... prefix_talea=[-1], ... prefix_counts=[1], ... outer_divisions_only=True, ... suffix_talea=[-1], ... suffix_counts=[1], ... talea_denominator=8, ... ), ... tie_specifier=abjadext.rmakers.TieSpecifier( ... tie_across_divisions=pattern, ... ), ... )
>>> divisions = [(8, 8), (4, 8), (6, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Uses repeat ties:
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... prefix_talea=[-1], ... prefix_counts=[1], ... outer_divisions_only=True, ... suffix_talea=[-1], ... suffix_counts=[1], ... talea_denominator=8, ... ), ... tie_specifier=abjadext.rmakers.TieSpecifier( ... tie_across_divisions=True, ... repeat_ties=True, ... ), ... )
>>> divisions = [(8, 8), (4, 8), (6, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Strips all ties:
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... prefix_talea=[-1], ... prefix_counts=[1], ... outer_divisions_only=True, ... suffix_talea=[-1], ... suffix_counts=[1], ... talea_denominator=8, ... ), ... tie_specifier=abjadext.rmakers.TieSpecifier( ... strip_ties=True, ... ), ... )
>>> divisions = [(8, 8), (4, 8), (6, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Spells durations metrically and then strips all ties:
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... duration_specifier=abjadext.rmakers.DurationSpecifier( ... spell_metrically=True, ... ), ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... prefix_talea=[-1], ... prefix_counts=[1], ... outer_divisions_only=True, ... suffix_talea=[-1], ... suffix_counts=[1], ... talea_denominator=8, ... ), ... tie_specifier=abjadext.rmakers.TieSpecifier( ... strip_ties=True, ... ), ... )
>>> divisions = [(8, 8), (4, 8), (6, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Return type: Optional
[TieSpecifier
]
-
tuplet_specifier
¶ Gets tuplet specifier.
Makes augmentations:
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker( ... extra_counts_per_division=[1], ... incise_specifier=abjadext.rmakers.InciseSpecifier( ... prefix_talea=[-1], ... prefix_counts=[1], ... outer_divisions_only=True, ... suffix_talea=[-1], ... suffix_counts=[1], ... talea_denominator=8, ... ), ... tuplet_specifier=abjadext.rmakers.TupletSpecifier( ... diminution=False, ... ), ... )
>>> divisions = [(8, 8), (4, 8), (6, 8)] >>> selections = rhythm_maker(divisions) >>> lilypond_file = abjad.LilyPondFile.rhythm( ... selections, ... divisions, ... ) >>> abjad.show(lilypond_file)
Return type: Optional
[TupletSpecifier
]
-