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