Escales i acords X38119


Statement
 

pdf   zip

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, \sharp (sostingut o semitò a dalt) i \flat (bemoll o semitò abaix). D’aquesta manera el Mi\sharp é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\sharp 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\sharp\sharp però no Mi\sharp\flat.

Escala cromàtica

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

Nota natural

É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.

Nombre d’una nota

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 entre notes

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

Enharmòniques

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.

Escales diatò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\sharp sinó Re\flat) 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@.

Acords tríada

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

Exemple de sessió

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
Catalan
Translator
Original language
Spanish
Other languages
English Spanish
Official solutions
Python
User solutions