Pular para conteúdo

Campo harmonico

Módulo responsável pela criação de campos harmônicos.

campo_harmonico(tonica, tonalidade)

Gera um campo harmônico com base em um 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 harmônico.

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 notas_musicais/campo_harmonico.py
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
def campo_harmonico(tonica: str, tonalidade: str) -> dict[str, list[str]]:
    """
    Gera um campo harmônico com base em um 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 harmônico.

    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 = [_triade_na_escala(nota, notas) for nota in notas]
    graus = [
        _converte_graus(acorde, grau) for acorde, grau in zip(acordes, _graus)
    ]

    return {'acordes': acordes, 'graus': graus}