def test_simple_four_four_even(self): '''1|1 -> 8|8 -> 4|4 + 4|4 ''' duration = Duration(1, 1) new_durations = bifurcate_duration(duration, even='allowed') test = [Duration(2, 4), Duration(2, 4)] self.assertEqual(new_durations, test)
def test_simple_four_four_default(self): ''' 1|1 -> 8|8 -> 5|8 + 3|8 ''' duration = Duration(1, 1) new_durations = bifurcate_duration(duration) test = [Duration(5, 8), Duration(3, 8)] self.assertEqual(new_durations, test)
def get_music_array(notelist): music_play, music_sheet = [], [] for row in notelist: if row[1] > 1: if row[0] != 'r': tmp = row[0][0:2] if tmp[1] != '#' and tmp[1] != 'b': tmp = tmp[0] dur0 = row[1] if dur0 in [2, 3, 4]: dur = 5 #Demisemiquaver elif dur0 in [5, 6, 7]: dur = 4 #Semiquaver elif dur0 in [8, 9, 10]: dur = 3 #Quaver elif dur0 in [11, 12, 13]: dur = 2 #Crotchet elif dur0 in [14, 15, 16]: dur = 1 #Minim else: dur = 0 #Semibreve music_play.append( [notes_ann.index(tmp), int(row[0][-1]), dur]) music_sheet.append( [notes_ann.index(tmp), int(row[0][-1]), dur, 0]) else: dur0 = row[1] if dur0 < 20: dur = 6 - round(dur0 / 3) if dur < 3: music_sheet.append(['r', '', dur, 0]) else: dur = round(row[1] / 18) if dur > 4: dur = 4 dur = Duration(dur, 1) music_sheet.append(['r', '', dur, 1]) return music_play, music_sheet
# -*- coding: utf-8 -*- r''' Tempi for each stage in segment. ''' from abjad import Duration, MetronomeMark from .time_signatures import time_signatures tempi = ( (MetronomeMark(Duration(1, 8), 108), MetronomeMark(Duration(1, 8), 162)), ( MetronomeMark(Duration(1, 8), 136), MetronomeMark(Duration(1, 8), 108), MetronomeMark(Duration(1, 8), 162), ), ( MetronomeMark(Duration(1, 8), 136), MetronomeMark(Duration(1, 8), 94), MetronomeMark(Duration(1, 8), 162), MetronomeMark(Duration(1, 8), 144), ), ( MetronomeMark(Duration(1, 8), 108), MetronomeMark(Duration(1, 8), 136), MetronomeMark(Duration(1, 8), 162), ), ( MetronomeMark(Duration(1, 8), 136), MetronomeMark(Duration(1, 8), 108), ), ) assert (len(tempi) == len(time_signatures))
_note = note[0] _pitch = note.find("pitch") _duration = note.find("duration") _duration_type = note.find("type").text dots = note.findall("dot") _dot_count = len(dots) if dots is not None else 0 if _note.tag == "chord": _pitch = note.find("pitch") current = construct_pitch(_pitch, _duration_type, _dot_count) chord = [pre_note, current] _parsed_duration = parse_duration(_duration_type, _dot_count) if has_tuplet: tuplet_elements.pop() tuplet_elements.append(Chord(chord, Duration(_parsed_duration))) else: notes.pop() notes.append(Chord(chord, Duration(_parsed_duration))) elif _note.tag == "pitch": _modification = note.find("time-modification") if _modification is not None: if has_tuplet is False: has_tuplet = True actual_notes = int(_modification.find("actual-notes").text) normal_notes = int(_modification.find("normal-notes").text) else: if has_tuplet: notes.append( abjad.Tuplet((normal_notes, actual_notes),
def test_return_type(self): duration = Duration(1, 2) new_durations = bifurcate_duration(duration) self.assertIsInstance(new_durations, (list, Duration))
def test_seven_eight_default(self): duration = Duration(7, 8) new_durations = bifurcate_duration(duration) test = [Duration(2, 4), Duration(3, 8)] self.assertEqual(new_durations, test)
def test_five_four_default(self): duration = Duration(5, 4) new_durations = bifurcate_duration(duration) test = [Duration(3, 4), Duration(2, 4)] self.assertEqual(new_durations, test)
# -*- coding: utf-8 -*- #! /usr/bin/env python if __name__ == '__main__': import sys from abjad import Duration from abjad import show from abjad.demos.ferneyhough import make_lilypond_file args = sys.argv[1:] if len(args) != 3: print('USAGE: [tuplet_duration, row_count, column_count]:') print('\ti.e.: /main.py 1/4 11 6') sys.exit(0) tuplet_duration = Duration(args[0]) row_count = int(args[1]) column_count = int(args[2]) assert 0 < tuplet_duration assert 0 < row_count assert 0 < column_count lilypond_file = make_lilypond_file(tuplet_duration, row_count, column_count) show(lilypond_file)
# -*- encoding: utf-8 -*- from abjad import Duration from abjad import show from SegmentMaker import SegmentMaker durations = [Duration(4, 4)] * 4 segment_maker = SegmentMaker(durations) if __name__ == '__main__': show(segment_maker)