Пример #1
0
    def test_build_on_basis(self):
        tonality = Tonality.create_on_basis_tone('E', ModalityType.Major, 1)

        assert 'E' == tonality.basis_tone.diatonic_symbol
        assert 'F#' == tonality.root_tone.diatonic_symbol

        tonality = Tonality.create_on_basis_tone('G',
                                                 ModalityType.MelodicMinor, 2)

        assert 'G' == tonality.basis_tone.diatonic_symbol
        assert 'Bb' == tonality.root_tone.diatonic_symbol
Пример #2
0
    def construct_tonality(self, tone, modality_str, modal_index=0):
        if modality_str[0] == '!':
            modality_type = ModalityType(modality_str[1:])
        elif modality_str in LineConstructor.MODALITY_SHORT_NAME_MAP:
            modality_type = LineConstructor.MODALITY_SHORT_NAME_MAP[modality_str]
        else:
            modality_type = ModalityType(modality_str)

        if ModalityFactory.is_registered(modality_type):
            return Tonality.create_on_basis_tone(tone, modality_type, modal_index)
        else:
            raise Exception('Modality \'{0}\' is not registered in ModalityFactory.'.format(modality_str))
Пример #3
0
    def test_for_book(self):
        tonality_a = Tonality(
            ModalityFactory.create_modality(ModalityType.Major, 1), 'E')
        tonality_b = Tonality.create(ModalityType.Major, 'E', 1)
        tonality_c = Tonality.create_on_basis_tone('D', ModalityType.Major, 1)

        print('{0}:  [{1}]'.format(
            tonality_a,
            ','.join(tone.diatonic_symbol for tone in tonality_a.annotation)))
        print('{0}:  [{1}]'.format(
            tonality_b,
            ','.join(tone.diatonic_symbol for tone in tonality_b.annotation)))
        print('{0}:  [{1}]'.format(
            tonality_c,
            ','.join(tone.diatonic_symbol for tone in tonality_c.annotation)))