Beispiel #1
0
def test_tonalanalysistools_RomanNumeral__initialize_by_symbolic_string_03():

    tonal_function = tonalanalysistools.RomanNumeral('V7/4-3')
    correct = tonalanalysistools.RomanNumeral(5, 'dominant', 7, 0, (4, 3))
    assert tonal_function == correct

    tonal_function = tonalanalysistools.RomanNumeral('V6/5/4-3')
    correct = tonalanalysistools.RomanNumeral(5, 'dominant', 7, 1, (4, 3))
    assert tonal_function == correct
Beispiel #2
0
def test_tonalanalysistools_RomanNumeral_bass_scale_degree_01():

    roman_numeral = tonalanalysistools.RomanNumeral(5, 'major', 5, 0)
    assert roman_numeral.bass_scale_degree == tonalanalysistools.ScaleDegree(5)

    roman_numeral = tonalanalysistools.RomanNumeral(5, 'major', 5, 1)
    assert roman_numeral.bass_scale_degree == tonalanalysistools.ScaleDegree(7)

    roman_numeral = tonalanalysistools.RomanNumeral(5, 'major', 5, 2)
    assert roman_numeral.bass_scale_degree == tonalanalysistools.ScaleDegree(2)
Beispiel #3
0
def test_tonalanalysistools_RomanNumeral_symbolic_string_01():

    roman_numeral = tonalanalysistools.RomanNumeral(5, 'dominant', 7, 0, (4, 3))
    assert roman_numeral.symbolic_string == 'V7/4-3'

    roman_numeral = tonalanalysistools.RomanNumeral(2, 'minor', 7, 1)
    assert roman_numeral.symbolic_string == 'ii6/5'

    roman_numeral = tonalanalysistools.RomanNumeral(1, 'major', 5, 1)
    assert roman_numeral.symbolic_string == 'I6'
Beispiel #4
0
def test_tonalanalysistools_RomanNumeral___repr___01():

    harmony = tonalanalysistools.RomanNumeral(1, 'major', 5, 0)
    assert repr(harmony) == 'IMajorTriadInRootPosition'

    harmony = tonalanalysistools.RomanNumeral(5, 'dominant', 7, 2)
    assert repr(harmony) == 'VDominantSeventhInSecondInversion'

    harmony = tonalanalysistools.RomanNumeral(('flat', 2), 'major', 5, 1)
    assert repr(harmony) == 'FlatIIMajorTriadInFirstInversion'

    harmony = tonalanalysistools.RomanNumeral(1, 'minor', 5, 0)
    assert repr(harmony) == 'iMinorTriadInRootPosition'
Beispiel #5
0
def test_tonalanalysistools_RomanNumeral_suspension_01():

    roman_numeral = tonalanalysistools.RomanNumeral(5, 'major', 5, 0, (4, 3))

    assert roman_numeral.suspension == tonalanalysistools.ChordSuspension(4, 3)
    assert roman_numeral.suspension.start == tonalanalysistools.ScaleDegree(4)
    assert roman_numeral.suspension.stop == tonalanalysistools.ScaleDegree(3)
Beispiel #6
0
def test_tonalanalysistools_RomanNumeral__initialize_by_symbolic_string_02():

    tonal_function = tonalanalysistools.RomanNumeral('V7')
    correct = tonalanalysistools.RomanNumeral(5, 'dominant', 7, 0)
    assert tonal_function == correct

    tonal_function = tonalanalysistools.RomanNumeral('V6/5')
    correct = tonalanalysistools.RomanNumeral(5, 'dominant', 7, 1)
    assert tonal_function == correct

    tonal_function = tonalanalysistools.RomanNumeral('V4/3')
    correct = tonalanalysistools.RomanNumeral(5, 'dominant', 7, 2)
    assert tonal_function == correct

    tonal_function = tonalanalysistools.RomanNumeral('V4/2')
    correct = tonalanalysistools.RomanNumeral(5, 'dominant', 7, 3)
    assert tonal_function == correct
Beispiel #7
0
def test_tonalanalysistools_RomanNumeral__initialize_by_symbolic_string_01():

    tonal_function = tonalanalysistools.RomanNumeral('bII')
    correct = tonalanalysistools.RomanNumeral(('flat', 2), 'major', 5, 0)
    assert tonal_function == correct

    tonal_function = tonalanalysistools.RomanNumeral('bII6')
    correct = tonalanalysistools.RomanNumeral(('flat', 2), 'major', 5, 1)
    assert tonal_function == correct

    tonal_function = tonalanalysistools.RomanNumeral('bII6/4')
    correct = tonalanalysistools.RomanNumeral(('flat', 2), 'major', 5, 2)
    assert tonal_function == correct
Beispiel #8
0
 def _analyze_incomplete_tonal_function(expr, key_signature):
     from abjad.tools import tonalanalysistools
     if isinstance(expr, tonalanalysistools.RootedChordClass):
         chord_class = expr
     else:
         selection = tonalanalysistools.select(expr)
         chord_classes = selection.analyze_incomplete_chords()
         assert len(chord_classes) == 1
         chord_class = chord_classes[0]
     root = chord_class.root
     scale = tonalanalysistools.Scale(key_signature)
     scale_degree = scale.named_pitch_class_to_scale_degree(root)
     quality = chord_class.chord_quality.quality_string
     extent = chord_class.extent
     inversion = chord_class.inversion
     return tonalanalysistools.RomanNumeral(
         scale_degree,
         quality,
         extent,
         inversion,
     )
Beispiel #9
0
def test_tonalanalysistools_RomanNumeral__initialize_by_symbolic_string_04():

    tonal_function = tonalanalysistools.RomanNumeral('vi6/5')
    correct = tonalanalysistools.RomanNumeral(6, 'minor', 7, 1)
    assert tonal_function == correct