Escalas y acordes X38119


Statement
 

pdf   zip

html

En música con afinación temperada, la octava se subdivide en 12 semitonos de igual intervalo. Por razones históricas, sólo 7 notas tienen nombre, Do Re Mi Fa Sol La Si (las notas naturales), así que para nombrar los 12 huecos se idearon las alteraciones, ♯ (sostenido o semitono arriba) y ♭ (bemol o semitono abajo). De esta manera Mi♯ es un sonido que suena un semitono por encima del Mi.

Hay tonos que, en afinación temperada, pueden recibir varios nombres. Así, por ejemplo, Mi♯ da nombre al mismo tono que Fa. A estos casos se les llama notas enarmónicas. En un enarmónico no se puede mezclar alteraciones distintas: es posible Mi♯♯ pero no Mi♯♭.

1  Escala cromática

La escala cromática es aquella que se genera dando nombre a los 12 semitonos a partir de las 7 notas naturales y hasta un máximo de 2 alteraciones para generar la máxima cantidad de enarmónicos. Las notas naturales, comenzando por el Do, se sitúan en los tonos 0, 2, 4, 5, 7, 9, 11. Desde ahí, y aplicando las dos alteraciones, se generan todos los enarmónicos posibles para los 12 tonos.

Diseña una función escala_cromatica(notas) que, dada una lista notas que contiene los nombres (str) de las notas naturales en sus posiciones respectivas, y el string vacío en el resto, devuelva la una lista de listas que contenga la escala cromática usando el nombre de las notas naturales definido en la lista notas.

2  Nota natural

Es frecuente necesitar conocer la nota natural asociada a un nombre de nota, o lo que es lo mismo, el nombre de la nota sin las alteraciones.

Diseña una función nota_natural(nota) que, dado un str nota, devuelva su nota natural.

3  Número de una nota

Dado el nombre de una nota, puede ser interesante conocer a cuál de de los 12 tonos de la escala cromática se refiere.

Diseña una función nota_a_numero(nota, escala) que, dado un str nota con el nombre de una nota, y una lista de listas escala que contiene una escala cromática en la que nota existe, devuelva el número del tono de la escala cromática al que nota hace referencia.

4  Intervalo entre notas

Intervalo es la distancia en relación a una escala entre dos notas musicales (incluyendo los extremos) medido en semitonos.

Diseña una función intervalo(nota1, nota2, escala) que, dados dos str nota1 y nota2 que representan el nombre de dos notas, y una lista de listas escala que contiene una escala cromática donde ambas notas nota1 y nota2 existen, devuelva un int con el intervalo en semitonos que hay desde nota1 hasta nota2.

5  Enarmónicas

Diseña una función enarmonicas(nota, cromatica) que, dado un str nota con el nombre de una nota, y una lista de listas cromatica que contiene una escala cromática en la que nota existe, devuelva una nueva lista con los nombres de todas sus notas enarmónicas.

6  Escalas diatónicas

Una escala diatónica es una serie de 7 notas tomadas ordenadamente del total de 12 de la escala cromática a partir de una tónica y siguiendo un patrón de saltos de semitonos diatónicos (después de un Do nunca habrá un Do♯ sino Re♭) de manera que siempre estén representadas en orden las 7 notas naturales una única vez cada una, ya sea en su estado natural o alteradas.

Diseña una función escala_diatonica(tonica, modo, cromatica) que, dado un str tonica con el nombre de una nota, una lista modo con un patrón de saltos de semitonos, y una lista de listas cromatica que contiene una escala cromática en la que tonica existe, devuelva una lista de 7 str que contenga la escala diatónica cuya tónica sea tonica siguiendo el patrón de saltos diatónicos indicado por modo.

7  Acordes de tríada

Un acorde tríada consiste en un conjunto de tres notas diferentes que constituyen una unidad armónica y reciben el nombre de tónica, tercera y quinta, porque el acorde lo forman las notas 0, 2 y 4 de la escala diatónica correspondiente.

Diseña una función acorde_triada(tonica, modo, cromatica) que, dado un str tonica con el nombre de una nota, una lista modo con un patrón de saltos de semitonos, y una lista de listas cromatica que contiene una escala cromática en la que tonica existe, devuelva una lista con las tres notas del acorde tríada extraidas de la escala diatónica para tonica y modo.

Sample session
ingles
>>> escala_cromatica(['C', '', 'D', '', 'E', 'F', '', 'G', '', 'A', '', 'B'])
[['C', 'B#', 'Dbb'], ['C#', 'B##', 'Db'], ['D', 'C##', 'Ebb'], ['D#', 'Eb', 'Fbb'], ['E', 'Fb', 'D##'], ['F', 'E#', 'Gbb'], ['F#', 'Gb', 'E##'], ['G', 'F##', 'Abb'], ['G#', 'Ab'], ['A', 'G##', 'Bbb'], ['A#', 'Bb', 'Cbb'], ['B', 'A##', 'Cb']]

>>> nota_natural('La##')
'La'
>>> crom = escala_cromatica(['Do', '', 'Re', '', 'Mi', 'Fa', '', 'Sol', '', 'La', '', 'Si'])
>>> nota_a_numero('La##', crom)
11
>>> intervalo('Lab', 'Si#', crom)
4
>>> enarmonicas('Do#', crom)
['Si##', 'Reb']
>>> nota_a_numero('Do#', crom)
1
>>> escala_diatonica("Re", [2, 1, 2, 2, 1, 2, 2], crom)
['Re', 'Mi', 'Fa', 'Sol', 'La', 'Sib', 'Do', 'Re']
>>> acorde_triada("Re", [2, 1, 2, 2, 1, 2, 2], crom)
['Re', 'Fa', 'La']
Information
Author
InfBesos
Language
Spanish
Other languages
Catalan English
Official solutions
Python
User solutions