Pular para conteúdo

Campo harmonico

campo_harmonico(tonica, tonalidade)

Gera um campo harmônico com base em uma tônica e uma tonalidade

Parameters:

Name Type Description Default
tonica str

Primeiro grau do campo harmônico

required
tonalidade str

Tonalidade para o campo. Ex: maior, menor, etc

required

Returns:

Type Description
dict[str, list[str]]

Um campo harmonico

Examples:

>>> campo_harmonico('c', 'maior')
{'acordes': ['C', 'Dm', 'Em', 'F', 'G', 'Am', 'B°'], 'graus': ['I', 'ii', 'iii', 'IV', 'V', 'vi', 'vii°']}
>>> campo_harmonico('c', 'menor')
{'acordes': ['Cm', 'D°', 'D#', 'Fm', 'Gm', 'G#', 'A#'], 'graus': ['i', 'II°', 'III', 'iv', 'v', 'VI', 'VII']}
Source code in pacote_python_tb/campo_harmonico.py
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
def campo_harmonico(tonica: str, tonalidade: str) -> dict[str, list[str]]:
    """
    Gera um campo harmônico com base em uma tônica e uma tonalidade

    Parameters:
        tonica: Primeiro grau do campo harmônico
        tonalidade: Tonalidade para o campo. Ex: maior, menor, etc

    Returns:
        Um campo harmonico

    Examples:
        >>> campo_harmonico('c', 'maior')
        {'acordes': ['C', 'Dm', 'Em', 'F', 'G', 'Am', 'B°'], 'graus': ['I', 'ii', 'iii', 'IV', 'V', 'vi', 'vii°']}

        >>> campo_harmonico('c', 'menor')
        {'acordes': ['Cm', 'D°', 'D#', 'Fm', 'Gm', 'G#', 'A#'], 'graus': ['i', 'II°', 'III', 'iv', 'v', 'VI', 'VII']}
    """
    notas, _graus = escala(tonica, tonalidade).values()
    acordes_campo_harmonico = []

    for nota in notas:
        acordes_campo_harmonico.append(_validar_triade_na_escala(nota, notas))

    return {
        'acordes': acordes_campo_harmonico,
        'graus': _obter_graus_campo_harmonico(acordes_campo_harmonico, _graus),
    }