class Test(TestCase): def setUp(self) -> None: self.score = TreeScoreTimewise() self.score.add_measure(TreeMeasure(time=(1, 4))) def test_1(self): sf = SimpleFormat(quarter_durations=[1, 0, 1]) sf.chords[0].add_tie('start') sf.chords[1].add_tie('stop') v = sf.to_stream_voice(1) v.add_to_score(self.score) self.score.fill_with_rest() self.score.preliminary_adjoin_rests() self.score.add_beats() self.score.quantize() chord = self.score.get_measure(2).get_part(1).get_staff(1).get_voice( 1).chords[0] chord.remove_from_score() result_path = path + '_test_1' # with self.assertWarns(UserWarning): # self.score.write(path=result_path) self.score.write(path=result_path) TestScore().assert_template(result_path=result_path)
class Test(TestCase): def setUp(self) -> None: self.score = TreeScoreTimewise() def test_1(self): sf = SimpleFormat(quarter_durations=[0.5, 1.5, 0.3, 1.7]) v = sf.to_stream_voice(1) v.add_to_score(self.score) result_path = path + '_test_1' self.score.fill_with_rest() self.score.preliminary_adjoin_rests() self.score.add_beats() self.score.quantize() self.score.split_not_notatable() for chord in self.score.get_measure(1).get_part(1).get_staff( 1).get_voice(1).chords: chord.add_lyric(round(float(chord.offset), 2)) # with self.assertWarns(UserWarning): # self.score.write(path=result_path) self.score.write(path=result_path) TestScore().assert_template(result_path=result_path)
class Test(XMLTestCase): def setUp(self) -> None: self.score = TreeScoreTimewise() def test_1(self): sf = SimpleFormat() sf.add_chord(TreeChord()) sf.add_chord(TreeChord(quarter_duration=0)) v = sf.to_stream_voice(1) v.add_to_score(self.score) chord = self.score.get_measure(1).get_part(1).get_staff(1).get_voice(1).chords[1] self.score.fill_with_rest() self.score.preliminary_adjoin_rests() self.score.add_beats() chord.remove_from_score() xml_path = path + '_test_1.xml' self.score.write(path=xml_path) self.assertCompareFiles(xml_path) def test_2(self): sf = SimpleFormat() chord_1 = sf.add_chord(TreeChord()) chord_2 = sf.add_chord(TreeChord(quarter_duration=0)) chord_1.add_tie('start') chord_2.add_tie('stop') v = sf.to_stream_voice(1) v.add_to_score(self.score) chord = self.score.get_measure(1).get_part(1).get_staff(1).get_voice(1).chords[1] self.score.fill_with_rest() self.score.preliminary_adjoin_rests() self.score.add_beats() chord.remove_from_score() xml_path = path + '_test_2.xml' self.score.write(path=xml_path) self.assertCompareFiles(xml_path)
def get_chords(): return score.get_measure(1).get_part(1).voices[1].chords sf = SimpleFormat(quarter_durations=durations) score = TreeScoreTimewise() sf.to_stream_voice().add_to_score(score) print('after add_to_score') print([chord.quarter_duration for chord in get_chords()]) print(float(sum([chord.quarter_duration for chord in get_chords()]))) score.update_measures() print('after update_measures') print([chord.quarter_duration for chord in get_chords()]) print(float(sum([chord.quarter_duration for chord in get_chords()]))) score.fill_with_rest() print('after fill_with_rest') print([chord.quarter_duration for chord in get_chords()]) print(float(sum([chord.quarter_duration for chord in get_chords()]))) score.preliminary_adjoin_rests() print('after preliminary_adjoin_rests') print([chord.quarter_duration for chord in get_chords()]) print(float(sum([chord.quarter_duration for chord in get_chords()]))) score.add_beats() print('after add_beats') print([ sum([chord.quarter_duration for chord in beat.chords]) for beat in score.get_beats() ]) print([chord.quarter_duration for chord in get_chords()]) print(float(sum([chord.quarter_duration for chord in get_chords()])))
class Test(TestCase): def setUp(self) -> None: self.score = TreeScoreTimewise() def test_1(self): sf = SimpleFormat(quarter_durations=[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]) for index, chord in enumerate(sf.chords): chord.add_lyric(index + 1) v = sf.to_stream_voice(1) v.add_to_score(self.score, part_number=2) sf = SimpleFormat(quarter_durations=[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]) v = sf.to_stream_voice(1) v.add_to_score(self.score) self.score.fill_with_rest() self.score.preliminary_adjoin_rests() self.score.add_beats() for measure in self.score.get_children_by_type(TreeMeasure): part = measure.get_part(2) for beat in part.get_beats(): beat.max_division = 7 result_path = path + '_test_1' # with self.assertWarns(UserWarning): # self.score.write(path=result_path) self.score.write(path=result_path) TestScore().assert_template(result_path=result_path) def test_2(self): self.score.add_measure(TreeMeasure(time=(3, 4))) sf = SimpleFormat(quarter_durations=[0.5, 0.6, 0.7, 0.8]) for index, chord in enumerate(sf.chords): chord.add_lyric(index + 1) v = sf.to_stream_voice(1) v.add_to_score(self.score) sf = SimpleFormat(quarter_durations=[0.5, 0.6, 0.7, 0.8]) for index, chord in enumerate(sf.chords): chord.add_lyric(index + 1) v = sf.to_stream_voice(1) v.add_to_score(self.score, part_number=2) self.score.fill_with_rest() self.score.preliminary_adjoin_rests() self.score.add_beats() for measure in self.score.get_children_by_type(TreeMeasure): part = measure.get_part(2) for beat in part.get_beats(): beat.max_division = 7 self.score.quantize() result_path = path + '_test_2' # with self.assertWarns(UserWarning): # self.score.write(path=result_path) self.score.write(path=result_path) TestScore().assert_template(result_path=result_path) def test_3(self): random.seed(3) durations = [] while sum(durations) <= 16: duration = random.randrange(0, 2) + (random.random() / 2.) durations.append(Fraction(duration).limit_denominator(100)) def add_to_score(part=1): sf = SimpleFormat(quarter_durations=durations) dynamics = itertools.cycle(['pppp', 'ppp', 'pp', 'p', 'mp', 'mf', 'f', 'ff', 'fff']) for index, chord in enumerate(sf.chords): chord.add_lyric(index + 1) d = chord.add_dynamics(dynamics.__next__())[0] d.relative_y = -20 d.halign = 'center' v = sf.to_stream_voice(1) v.add_to_score(self.score, part) add_to_score(1) add_to_score(2) add_to_score(3) add_to_score(4) add_to_score(5) add_to_score(6) add_to_score(7) add_to_score(8) self.score.get_score_parts()[0].max_division = 8 self.score.get_score_parts()[1].max_division = 7 self.score.get_score_parts()[2].max_division = 6 self.score.get_score_parts()[3].max_division = 5 self.score.get_score_parts()[4].max_division = 4 self.score.get_score_parts()[5].max_division = 3 self.score.get_score_parts()[6].max_division = 2 self.score.get_score_parts()[7].max_division = 1 result_path = path + '_test_3' self.score.write(path=result_path) TestScore().assert_template(result_path=result_path) def test_4(self): sf = SimpleFormat( quarter_durations=[Fraction(3, 10), Fraction(3, 10), Fraction(3, 10), Fraction(3, 10), Fraction(3, 10), Fraction(3, 2), Fraction(1, 2), Fraction(1, 3)]) xml_path = path + '_test_4.xml' sf.to_stream_voice().add_to_score(self.score) self.score.write(xml_path) TestScore().assert_template(result_path=xml_path) def test_5(self): self.score.set_time_signatures( [Fraction(3, 2)]) sf = SimpleFormat(quarter_durations=[0.666, 0.333, 0.5]) xml_path = path + '_test_5.xml' sf.to_stream_voice().add_to_score(self.score) self.score.get_score_parts()[0].max_division = 1 self.score.write(xml_path)