コード例 #1
0
 def _make_music(self, divisions, seeds):
     from abjad.tools import rhythmmakertools
     selections = []
     duration_specifier = self.duration_spelling_specifier
     if duration_specifier is None:
         duration_specifier = rhythmmakertools.DurationSpellingSpecifier()
     tuplet_specifier = self.tuplet_spelling_specifier
     if tuplet_specifier is None:
         tuplet_specifier = rhythmmakertools.TupletSpellingSpecifier()
     for division in divisions:
         if (duration_specifier.spell_metrically == True or
             (duration_specifier.spell_metrically == 'unassignable' and
             not mathtools.is_assignable_integer(division.numerator))):
             meter = metertools.Meter(division)
             rhythm_tree_container = meter.root_node
             durations = [_.duration for _ in rhythm_tree_container]
         else:
             durations = [division]
         selection = scoretools.make_leaves(
             pitches=0,
             durations=durations,
             decrease_durations_monotonically=\
                 duration_specifier.decrease_durations_monotonically,
             forbidden_written_duration=\
                 duration_specifier.forbidden_written_duration,
             is_diminution=tuplet_specifier.is_diminution,
             )
         selections.append(selection)
     selections = self._apply_burnish_specifier(selections)
     self._apply_beam_specifier(selections)
     selections = self._apply_output_masks(selections)
     return selections
コード例 #2
0
def test_systemtools_StorageFormatAgent_get_import_statements_04():
    subject = rhythmmakertools.IncisedRhythmMaker(
        incise_specifier=rhythmmakertools.InciseSpecifier(
            prefix_talea=(1, ),
            prefix_counts=(0, ),
            suffix_talea=(1, ),
            suffix_counts=(1, ),
            talea_denominator=16,
            body_ratio=mathtools.Ratio((1, )),
            outer_divisions_only=True,
        ),
        beam_specifier=rhythmmakertools.BeamSpecifier(
            beam_each_division=False,
            beam_divisions_together=False,
        ),
        duration_spelling_specifier=rhythmmakertools.DurationSpellingSpecifier(
            decrease_durations_monotonically=True,
            forbidden_written_duration=durationtools.Duration(1, 2),
        ),
        tuplet_spelling_specifier=rhythmmakertools.TupletSpellingSpecifier(
            avoid_dots=True,
            is_diminution=True,
            simplify_redundant_tuplets=True,
        ),
    )
    agent = systemtools.StorageFormatAgent(subject)
    assert agent.get_import_statements() == (
        'from abjad.tools import durationtools',
        'from abjad.tools import mathtools',
        'from abjad.tools import rhythmmakertools',
    )
コード例 #3
0
 def _simplify_tuplets(self, selections):
     from abjad.tools import rhythmmakertools
     tuplet_spelling_specifier = self.tuplet_spelling_specifier
     if tuplet_spelling_specifier is None:
         tuplet_spelling_specifier = \
             rhythmmakertools.TupletSpellingSpecifier()
     if not tuplet_spelling_specifier.simplify_tuplets:
         return
     for tuplet in iterate(selections).by_class(scoretools.Tuplet):
         if tuplet.is_trivial:
             continue
         duration = tuplet._get_duration()
         if all(isinstance(x, scoretools.Rest) for x in tuplet):
             rests = scoretools.make_rests([duration])
             tuplet[:] = rests
         elif all(isinstance(x, scoretools.Note) for x in tuplet):
             logical_ties = set([x._get_logical_tie() for x in tuplet])
             if len(logical_ties) == 1:
                 notes = scoretools.make_notes([0], [duration])
                 tuplet[:] = notes
コード例 #4
0
ファイル: RhythmMaker.py プロジェクト: jdavancens/abjad
 def _get_tuplet_spelling_specifier(self):
     from abjad.tools import rhythmmakertools
     if self.tuplet_spelling_specifier is not None:
         return self.tuplet_spelling_specifier
     return rhythmmakertools.TupletSpellingSpecifier()
コード例 #5
0
         start_dynamic_tokens='f mf mp',
         stop_dynamic_tokens='p',
         ),
     percussion_staff=abbreviations.percussion_staff,
     text_spanner=consort.AttachmentExpression(
         attachments=abbreviations.make_text_spanner('shaker'),
         selector=selectortools.Selector().by_leaf(),
         ),
     ),
 color='blue',
 labels=['shakers'],
 pitch_handler=consort.AbsolutePitchHandler(
     pitches_are_nonsemantic=True,
     ),
 rhythm_maker=rhythmmakertools.AccelerandoRhythmMaker(
     beam_specifier=rhythmmakertools.BeamSpecifier(
         use_feather_beams=True,
         ),
     duration_spelling_specifier=rhythmmakertools.DurationSpellingSpecifier(
         forbid_meter_rewriting=True,
         ),
     interpolation_specifiers=rhythmmakertools.InterpolationSpecifier(
         start_duration=durationtools.Duration(1, 32),
         stop_duration=durationtools.Duration(1, 8),
         written_duration=durationtools.Duration(1, 32),
         ),
     tuplet_spelling_specifier=rhythmmakertools.TupletSpellingSpecifier(
         use_note_duration_bracket=True,
         ),
     ),
 )