Rutas
/
Python
Python
/
Ejercicios
/
Generador de escalas
Generador de escalas

Generador de escalas

Media

Instrucciones

Escalas cromáticas

Las escalas de la música occidental se basan en la escala cromática (de 12 notas). Esta escala se puede expresar como el siguiente grupo de alturas:

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

Una nota sostenida (indicada por ♯) también se puede expresar como el bemol de la nota superior (indicado por ♭), así que la escala cromática también se puede escribir de esta forma:

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

La escala mayor, la escala menor y los modos son subconjuntos de esta colección de doce alturas. Tienen siete alturas y se denominan escalas diatónicas. El conjunto de notas de estas escalas se escribe con sostenidos o con bemoles, según la tónica (la nota inicial). Esta tabla indica si, para una tónica dada, se usa la expresión con bemoles o con sostenidos de la escala:

Armadura Mayor Menor
Natural C a
Sostenidos G, D, A, E, B, F♯ e, b, f♯, c♯, g♯, d♯
Bemoles F, B♭, E♭, A♭, D♭, G♭ d, g, c, f, b♭, e♭

Ten en cuenta que, según la convención habitual de la teoría musical, las notas naturales «C» y «a» siguen la escala de sostenidos cuando ascienden y la de bemoles cuando descienden. Para este ejercicio, la escala solo asciende.

Tarea

Dada una tónica, genera la escala cromática de 12 notas empezando por la tónica.

  • Desplaza la escala base lo necesario para que las 12 notas se devuelvan empezando por la tónica dada.
  • Para la tónica dada, determina si la escala se debe devolver con bemoles o con sostenidos.
  • Devuelve todas las notas en mayúsculas (excepto la b de los bemoles), sin importar si la tónica dada está en mayúsculas o minúsculas.

Escalas diatónicas

Las escalas diatónicas, y todas las demás escalas que derivan de la escala cromática, se construyen a partir de intervalos. Un intervalo es el espacio entre dos alturas.

El intervalo más simple es el que hay entre dos notas adyacentes, y se llama «semitono» o «segunda menor» (a veces se escribe con una «m» minúscula). El intervalo entre dos notas que tienen una nota intermedia se llama «tono» o «segunda mayor» (se escribe con una «M» mayúscula). Las escalas diatónicas se construyen usando solo estos dos intervalos entre notas adyacentes.

Las escalas no diatónicas pueden contener otros intervalos. Un intervalo de «segunda aumentada», escrito «A», tiene dos notas intermedias (por ejemplo, de A a C o de D♭ a E) o un «tono» más un «semitono». También hay intervalos más pequeños y más grandes, pero no intervienen en este ejercicio.

Tarea

Dada una tónica y un conjunto de intervalos, genera la escala musical empezando por la tónica y siguiendo el patrón de intervalos especificado.

Es similar a generar escalas cromáticas, salvo que, en lugar de devolver 12 notas, devolverás N+1 notas para N intervalos. La primera nota es siempre la tónica dada. Después, para cada intervalo del patrón, la siguiente nota se determina partiendo de la nota anterior y saltando el número de notas que indique el intervalo.

Por ejemplo, si empezamos por G y usamos los siete intervalos MMmMMMm, tendríamos las siguientes ocho notas:

Nota Razón
G Tónica
A M indica un tono desde G, saltando G♯
B M indica un tono desde A, saltando A♯
C m indica un semitono desde B, sin saltar nada
D M indica un tono desde C, saltando C♯
E M indica un tono desde D, saltando D♯
F♯ M indica un tono desde E, saltando F
G m indica un semitono desde F♯, sin saltar nada
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Python Exercism

¿Listo para empezar Generador de escalas?

Regístrate en Exercism para aprender y dominar Python con 17 conceptos146 ejercicios y mentoría humana real, todo gratis.