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.
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@.
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.
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.
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@.
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.
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@.
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@.
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']