En música amb afinació temperada, la octava es subdivideix en 12 semitons d’igual interval. Per raons històriques, només 7 notes tenen nom, Do Re Mi Fa Sol La Si (les notes naturals), així que per nomenar els 12 forats es van idear les alteracions, ♯ (sostingut o semitò a dalt) i ♭ (bemoll o semitò abaix). D’aquesta manera el Mi♯ és un so que sona una semitò per sobre del Mi.
Hi ha tons que, en afinació temperada, poden rebre diversos noms. Així, per exemple, Mi♯ dóna nom al mateix to que Fa. A aquests casos se’ls anomena notes enharmòniques. En un enharmònic no es pot barrejar alteracions diferents: és possible el Mi♯♯ però no Mi♯♭.
L’escala cromàtica és aquella que es genera donant nom als 12 semitons a partir de les 7 notes naturals i fins a un màxim de 2 alteracions per generar la màxima quantitat de enharmònics. Les notes naturals, començant pel Do, se situen en els tons 0, 2, 4, 5, 7, 9, 11. Des d’aquí, i aplicant les dues alteracions, es generen tots els enharmònics possibles per als 12 tons.
Dissenya una funció escala_cromatica(notas) que, donada una llista notas que conté els noms (str) de les notes naturals en les seves posicions respectives, i el string buit en la resta, retorni la una llista de llistes que contingui l’escala cromàtica usant el nom de les notes naturals definit en la llista notas.
És freqüent necessitar conèixer la nota natural associada a un nom de nota, o el que és el mateix, el nom de la nota sense les alteracions.
Dissenya una funció Diseña una función nota_natural(nota) que, donat un str nota, retorni la seva nota natural.
Donat el nom d’una nota, pot ser interessant conèixer quin dels 12 tons de l’escala cromàtica anomena.
Dissenya una funció nota_a_numero(nota, escala) que, donat un str nota amb el nom d’una nota, i una llista de llistes escala que conté una escala cromàtica en què nota existeix, retorni el nombre del to de l’escala cromàtica a què nota fa referència.
Interval és la distància en relació a una escala entre dues notes musicals (incloent els extrems) mesurat en semitons.
Dissenya una funció intervalo(nota1, nota2, escala) que, donats dos str nota1 i nota2 que representen el nom de dues notes, i una llista de llistes escala que conté una escala cromàtica on ambdues notes nota1 i nota2 existeixen, retorni un int amb l’interval en semitons que hi ha des nota1 fins nota2.
Dissenya una funció enarmonicas(nota, cromatica) que, donat un str nota amb el nom d’una nota, i una llista de llistes cromatica que conté una escala cromàtica en què nota existeix, retorni una nova llista amb els noms de totes les seves notes enharmòniques.
Una escala diatònica és una sèrie de 7 notes preses ordenadament del total de 12 de l’escala cromàtica a partir d’una tònica i seguint un patró de salts de semitons diatònics (després d’un Do mai hi haurà un Do♯ sinó Re♭) de manera que sempre estiguin representades en ordre les 7 notes naturals una única vegada cadascuna, ja sigui en el seu estat natural o alterades.
Dissenya una funció escala_diatonica(tonica, modo, cromatica) que, donat un str tonica amb el nom d’una nota, una llista de int modo, i una llista de llistes cromatica que conté una escala cromàtica en què tonica existeix, retorni una llista de 7 str que contingui l’escala diatònica que comenci per tonica seguint el patró de salts diatònics indicat per modo.
Un acord tríada consisteix en un conjunt de tres notes diferents que constitueixen una unitat harmònica i reben el nom de tònica, tercera i cinquena, perquè l’acord el formen les notes 0, 2 i 4 de l’escala diatònica corresponent.
Dissenya una funció acorde_triada(tonica, modo, cromatica) que, donat un str tonica amb el nom d’una nota, una llista modo amb un patró de salts de semitons, i una llista de llistes cromatica que conté una escala cromàtica en què tonica existeix, retorni una llista amb les tres notes de l’acord tríada extretes de la escala diatònica per tonica i 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']