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

Gerador de escalas

Médio

Instruções

Escalas cromáticas

As escalas na música ocidental baseiam-se na escala cromática (de 12 notas). Esta escala pode ser expressa como o seguinte conjunto de notas:

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

Uma determinada nota sustenida (indicada por um ♯) pode também ser expressa como o bemol da nota acima (indicado por um ♭), pelo que 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 desta coleção de doze notas. Têm sete notas e são chamadas escalas diatónicas. O conjunto de notas destas escalas escreve-se com sustenidos ou com bemóis, consoante a tónica (a nota inicial). Aqui está uma tabela que indica se, para uma dada tónica, se usa a expressão com bemóis ou a expressão com sustenidos da escala:

Armadura de clave Maior Menor
Natural C a
Sustenidos G, D, A, E, B, F♯ e, b, f♯, c♯, g♯, d♯
Bemóis F, B♭, E♭, A♭, D♭, G♭ d, g, c, f, b♭, e♭

Repara que, pela convenção habitual 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 âmbito deste exercício, a escala é apenas ascendente.

Tarefa

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

  • Desloca a escala de base de forma adequada para que as 12 notas sejam devolvidas começando pela tónica indicada.
  • Para a tónica indicada, determina se a escala deve ser devolvida com bemóis ou com sustenidos.
  • Devolve todas as notas em maiúsculas (exceto o b dos bemóis), independentemente de a tónica indicada estar em maiúsculas ou minúsculas.

Escalas diatónicas

As escalas diatónicas, e todas as outras escalas que derivam da escala cromática, são construídas com base em intervalos. Um intervalo é o espaço entre duas notas.

O intervalo mais simples é o que existe entre duas notas adjacentes e chama-se "semitom", ou "segunda menor" (por vezes escrito com um "m" minúsculo). O intervalo entre duas notas que têm uma nota intercalada chama-se "tom" ou "segunda maior" (escrito com um "M" maiúsculo). As escalas diatónicas são construídas usando apenas estes dois intervalos entre notas adjacentes.

As escalas não diatónicas podem conter outros intervalos. Um intervalo de "segunda aumentada", escrito "A", tem duas notas intercaladas (por exemplo, de A a C ou de D♭ a E) ou um "tom" mais um "semitom". Existem também intervalos mais pequenos e mais grandes, mas não fazem parte deste exercício.

Tarefa

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

Isto é semelhante a gerar escalas cromáticas, com a diferença de que, em vez de devolver 12 notas, devolves N+1 notas para N intervalos. A primeira nota é sempre a tónica indicada. Depois, para cada intervalo do padrão, a nota seguinte determina-se partindo da nota anterior e saltando o número de notas indicado pelo intervalo.

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

Nota Motivo
G Tónica
A M indica um tom a partir de G, saltando G♯
B M indica um tom a partir de A, saltando A♯
C m indica um semitom a partir de B, sem saltar nada
D M indica um tom a partir de C, saltando C♯
E M indica um tom a partir de D, saltando D♯
F♯ M indica um tom a partir de E, saltando F
G m indica um semitom a partir de F♯, sem saltar nada
Editar via GitHub A ligação abre numa nova janela ou separador
Python Exercism

Estás pronto para começar Gerador de escalas?

Inscreve-te no Exercism para aprenderes e dominares Python com 17 conceitos146 exercícios, e mentoria humana real, tudo grátis.