Pular para conteúdo

Acordes

acorde(cifra)

Gera as notas de um acorde partindo de uma cifra. Parameters: Cifra: Um acorde em forma de cifra

Returns:

Type Description
dict[str, list[str]]

Um dicionário com as notas e o graus correspondentes as escala maior

Examples:

>>> acorde('C')
{'notas': ['C', 'E', 'G'], 'graus': ['I', 'III', 'V']}
>>> acorde('Cm')
{'notas': ['C', 'D#', 'G'], 'graus': ['I', 'III-', 'V']}
>>> acorde('C°')
{'notas': ['C', 'D#', 'F#'], 'graus': ['I', 'III-', 'V-']}
>>> acorde('C+')
{'notas': ['C', 'E', 'G#'], 'graus': ['I', 'III', 'V+']}
Source code in notas_musicais/acordes.py
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
def acorde(cifra: str) -> dict[str, list[str]]:
    """
    Gera as notas de um acorde partindo de uma cifra.
    Parameters:
        Cifra: Um acorde em forma de cifra

    Returns:
        Um dicionário com as notas e o graus correspondentes as escala maior





    Examples:
       >>> acorde('C')
       {'notas': ['C', 'E', 'G'], 'graus': ['I', 'III', 'V']}

       >>> acorde('Cm')
       {'notas': ['C', 'D#', 'G'], 'graus': ['I', 'III-', 'V']}

       >>> acorde('C°')
       {'notas': ['C', 'D#', 'F#'], 'graus': ['I', 'III-', 'V-']}

       >>> acorde('C+')
       {'notas': ['C', 'E', 'G#'], 'graus': ['I', 'III', 'V+']}

    """

    if 'm' in cifra:
        notas, graus = _menor(cifra)
    elif '°' in cifra:
        nota, _ = cifra.split('°')
        tonica, terça, quinta = triade(nota, 'menor')
        notas = [tonica, terça, semitom(quinta, intervalo=-1)]
        graus = ['I', 'III-', 'V-']
    elif '+' in cifra:
        nota, _ = cifra.split('+')
        tonica, terça, quinta = triade(nota, 'maior')
        notas = [tonica, terça, semitom(quinta, intervalo=+1)]
        graus = ['I', 'III', 'V+']
    else:
        notas = triade(cifra, 'maior')
        graus = ['I', 'III', 'V']

    return {'notas': notas, 'graus': graus}