Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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()])))
score.quantize()
print('after quantize')
print([chord.quarter_duration for chord in get_chords()])
print(float(sum([chord.quarter_duration for chord in get_chords()])))

xml_path = path + '_1.xml'
score.write(xml_path)
Ejemplo n.º 5
0
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)