Example #1
0
def split_by_durations(durations):
    durations = [durationtools.Duration(_) for _ in durations]
    expression = sequence()
    expression = expression.flatten()
    expression = expression.sum()
    expression = expression.sequence()
    expression = expression.split(durations, cyclic=True, overhang=True)
    expression = expression.flatten()
    return expression
def make_viola_ob_rhythm_specifier(rotation=None):
    durations = [(1, 4), (1, 4), (3, 8), (1, 4), (3, 8)]
    durations = [durationtools.Duration(_) for _ in durations]
    durations = sequence(durations)
    durations = durations.rotate(n=rotation)
    division_expression = baca.rhythm.split_by_durations(durations)
    return baca.tools.RhythmSpecifier(
        division_expression=division_expression,
        rhythm_maker=rhythmmakertools.NoteRhythmMaker(
            division_masks=rhythmmakertools.silence([0, -1]),
            ),
        split_at_measure_boundaries=True,
        )
def make_harmonic_glissando_pitch_specifier(
    start_pitch, 
    direction=Up,
    rotation=None,
    ):
    start_pitch = pitchtools.NumberedPitch(start_pitch)
    start_pitch = start_pitch.pitch_number
    pitch_numbers = akasha.materials.getato_intervals
    pitch_numbers = [3 * _ for _ in pitch_numbers]
    if direction is Down:
        pitch_numbers = [-_ for _ in pitch_numbers]
    pitch_numbers = [_ + start_pitch for _ in pitch_numbers]
    pitch_numbers = sequence(pitch_numbers).rotate(n=rotation)
    return baca.tools.PitchSpecifier(source=pitch_numbers)
Example #4
0
def make_fused_tuplet_monad_rhythm_specifier(tuplet_ratio=None):
    if tuplet_ratio is None:
        tuplet_ratios = [(1,)]
    else:
        tuplet_ratios = [tuplet_ratio]
    return baca.tools.RhythmSpecifier(
        division_expression=sequence()
            .sum()
            .sequence()
            ,
        rhythm_maker=rhythmmakertools.TupletRhythmMaker(
            tie_specifier=rhythmmakertools.TieSpecifier(
                use_messiaen_style_ties=True,
                ),
            tuplet_ratios=tuplet_ratios,
            ),
        )
Example #5
0
def make_repeated_duration_rhythm_specifier(durations):
    if isinstance(durations, durationtools.Duration):
        durations = [durations]
    elif isinstance(durations, tuple):
        assert len(durations) == 2
        durations = [durationtools.Duration(durations)]
    return baca.tools.RhythmSpecifier(
        division_expression=sequence()
            .sum()
            .sequence()
            .split(durations, cyclic=True, overhang=True)
            .flatten()
            ,
        rewrite_meter=True,
        rhythm_maker=rhythmmakertools.NoteRhythmMaker(
            tie_specifier=rhythmmakertools.TieSpecifier(
                use_messiaen_style_ties=True,
                ),
            ),
        )