Trilhas
/
Python
Python
/
Exercícios
/
Gerador de escalas
Gerador de escalas

Gerador de escalas

Médio

Instruções

Escalas cromáticas

As escalas da música ocidental são baseadas na escala cromática (de 12 notas). Essa escala pode ser expressa como o seguinte conjunto de alturas:

A, A♯, B, C, C♯, D, D♯, E, F, F♯, G, G♯

Uma determinada nota sustenida (indicada por um ♯) também pode ser expressa como o bemol da nota acima dela (indicada por um ♭), então a escala cromática também pode ser escrita assim:

A, B♭, B, C, D♭, D, E♭, E, F, G♭, G, A♭

As escalas maior e menor e os modos são subconjuntos desse conjunto de doze alturas. Elas têm sete alturas e são chamadas de escalas diatônicas. O conjunto de notas dessas escalas é escrito com sustenidos ou bemóis, dependendo da tônica (a nota inicial). Aqui está uma tabela que indica se a expressão com bemóis ou a expressão com sustenidos da escala seria usada para uma determinada tônica:

Armadura de clave Maior Menor
Natural C a
Sustenido G, D, A, E, B, F♯ e, b, f♯, c♯, g♯, d♯
Bemol F, B♭, E♭, A♭, D♭, G♭ d, g, c, f, b♭, e♭

Observe que, pela convenção comum da teoria musical, as notas naturais "C" e "a" seguem a escala com sustenidos quando ascendente e a escala com bemóis quando descendente. No escopo deste exercício, a escala é apenas ascendente.

Tarefa

Dada uma tônica, gere a escala cromática de 12 notas começando pela tônica.

  • Desloque a escala base de forma adequada para que todas as 12 notas sejam retornadas começando pela tônica dada.
  • Para a tônica dada, determine se a escala deve ser retornada com bemóis ou sustenidos.
  • Retorne todas as notas em letras maiúsculas (exceto o b dos bemóis), independentemente da caixa da tônica dada.

Escalas diatônicas

As escalas diatônicas, e todas as outras escalas que derivam da escala cromática, são construídas sobre intervalos. Um intervalo é o espaço entre duas alturas.

O intervalo mais simples é entre duas notas adjacentes e é chamado de "semitom", ou "segunda menor" (às vezes escrito como um "m" minúsculo). O intervalo entre duas notas que têm uma nota intermediária é chamado de "tom" ou "segunda maior" (escrito como um "M" maiúsculo). As escalas diatônicas são construídas usando apenas esses dois intervalos entre notas adjacentes.

Escalas não diatônicas podem conter outros intervalos. Um intervalo de "segunda aumentada", escrito "A", tem duas notas intermediárias (por exemplo, de A a C ou de D♭ a E) ou um "tom" mais um "semitom". Existem também intervalos menores e maiores, mas eles não entram neste exercício.

Tarefa

Dada uma tônica e um conjunto de intervalos, gere a escala musical começando pela tônica e seguindo o padrão de intervalos especificado.

Isso é parecido com gerar escalas cromáticas, exceto que, em vez de retornar 12 notas, você retorna N+1 notas para N intervalos. A primeira nota é sempre a tônica dada. Em seguida, para cada intervalo do padrão, a próxima nota é determinada partindo da nota anterior e pulando o número de notas indicado pelo intervalo.

Por exemplo, começando com G e usando os sete intervalos MMmMMMm, teríamos as seguintes oito notas:

Nota Motivo
G Tônica
A M indica um tom a partir de G, pulando G♯
B M indica um tom a partir de A, pulando A♯
C m indica um semitom a partir de B, sem pular nada
D M indica um tom a partir de C, pulando C♯
E M indica um tom a partir de D, pulando D♯
F♯ M indica um tom a partir de E, pulando F
G m indica um semitom a partir de F♯, sem pular nada
Editar via GitHub O link abre em uma nova janela ou aba
Python Exercism

Tudo pronto para começar Gerador de escalas?

Crie sua conta no Exercism para aprender e dominar Python com 17 conceitos146 exercícios e mentoria humana de verdade, tudo de graça.