L'intelligeance artificielle et l'apprentissage du piano

Les logiciels d'intelligeance artificielle utilisent de grandes sources de données pour répondre à des questions qui leur sont posées, en améliorant leur réponses en utilisant des allers et retours ou systèmes de neurones.

On peut demander à un logiciel d'IA musical, de composer une chanson à la mani-re d'un interprète, avec des paroles sur un sujet choisi...

Cela permet de composer de la musique sans la connaître, à partir de morceaux de musique stoqués, qui sont modifiés par le logiciel.

On peut aussi utiliser l'IA pour l'apprentissage de la musique et pour le travail d'un instrument comme le piano par exemple.

Pour cela il faut développer la reconnaissance et la synthèse musicale, comme on le fait pour la parole.

On peut alors utiliser un langage informatique comme le langage python, pour analyser des morceaux et construire des exercices d'harmonie, des partitionsqui aident pour le travail d'un instrument.., construire des mélodies, des accords...

L'IA et la reconnaissance musicale

On peut demander à l'IA musicale, de trouver la tonalité d'un morceau, de donner le nom d'un accord, de trouver les changements de ton...

Pour cela, il faut reconnaître les intervalles entre les notes pour les analyser par rapport aux intervalles qui caractérisent les gammes, les modes, les accords complets et incomplets ainsi que leurs renversements, les mouvements obligés, les notes de passage, les changements de tonalité...

Un morceau de musique commence et finit, en général par la tonique de sa tonalité.

La structure de certains intervalles renseignera sur le ton courant et sur la nature des accords.

On commencera en classant les notes d'un morceau par ordre croissant, que l'on comparera à l'ordre des gammes majeures, mineures harmonique et mineures mélodiques.

Ainsi,si l'ordre peut s'identifier à une partie de la suite SSsSSSs le ton sera peut être un ton majeur.

Plus précisément, on peut rechercher la présence de certains intervalles qui caractérisent la tonalité d'un morceau.

Ainsi, l'intervalle SSS du triton, est l'unique intervalle de ce type dans une gamme majeure, situé sur le degré IV de la gamme.

La tonique sera alors la note située une quarte au-dessous du triton SSS ou situé un demi-ton au-dessus de celui-ci.

De même l'intervalle de quinte diminuée sSSs est l'unique intervalle de ce type, dans une gamme majeure.

Il est situé sur le degré VII de la gamme majeure, dont le ton est un demi-ton au-dessus de la note du début de la quinte diminuée, ou dont la tierce est située un demi-ton au-dessous de sa dernière note.

On peut aussi rechercher la présence d'un tétracorde de la forme SSs, que l'on trouve sur le degré I et sur le degré V d'une gamme majeure.

Le ton sera alors le ton majeur dont la tonique est la note du début du tétracorde, ou la note située une quinte au-dessous de celui-ci.

Pour la reconnaissance des accords, on les comparera à des suites d'intervalles répertoriés.

Par exemple, STtt sera le troisième renversement d'un accord de septième.

Ici, la basse est la septième, de l'accord de septième de dominante, donc la quarte de la tonalité majeure. La tonique de la gamme majeure associée sera donc la note située quatre demi-tons au-dessous de cette basse.

On pourra aussi essayer de trouver la nature d'intervalles incomplets.

Ainsi, tt est un accord diminué, qui peut être considéré comme un accord de septième Ttt sans sa tonique, ou comme le premier renversement tts d'un accord de septième sans son octave.

Les analyses décrites ci-dessus, peuvent se faire en langage python, à partir de la tablature d'un morceau de musique.

Les fichiers .mid et le langage abc

On peut transformer les fichiers sonores .mid en fichiers texte abc et réciproquement, en utilisant les applications midi2abc.exe et abc2midi.exe

Le langage abc décrit les partitions, avec des caractères pour les notes, les durées, les nuances...

On peut alors traiter les fichiers textes .abc en langage python, pourreconnaître la tonalité,les changements de tons, les rythmes, les nuances...

On peut proposer de travailler les morceaux de musique mesures par mesures, en choisissant un tempo, un rythme et des nuances personnelles...

Exemples de logiciels musicaux en langage python

Vous installerez une version de python, comme python3.9 par exemple.

Ensuite, vous créerez un répertoire de nom pythonabcmidi par exemple, dans lequel vous téléchargerez les fichiers indiqués.

Commencez en téléchargeant les applications midi2abc.exe et abc2midi.exe.

fichier midi2abc.exe

abc2midi.exe

Téléchargez un fichier .mid comme czerny_20.txt par exemple et lancez la commande midi2abc czerny_20.mid >test.abc

fichier czerny_20.mid

Vous trouverez le fichier test.abc dans votre répertoire pythonabcmidi, que vous pouvez retransformer en test1.mid par la commande abc2midi test.abc

Les petits logiciels python paravoix.txt morceau.txt et motifvoix.txt ci-dessous, vous permettent de travailler, par exemple, l'étude pour piano de czerny mesures par mesures en choisissant des paramètres comme le tempo, le rythme et les nuances, l'instrument midi...

code du logiciel paravoix.txt

code du logiciel morceau.txt

Code du logiciel motifvoix.txt

Ces logiciels utilisent la bibliothèque moduleabcmidi.py, que vous téléchargerez ainsi que les 3 fichiers paravoix, morceau.txt et motifvoix.txt dans votre répertoire pythonabcmidi.

Fichier moduleabcmidi.py

Si vous n'arrivez pas à télécharger le fichier pythonabcmidi.py, copiez le fichier pythonabcmidi.txt et collez le dans un fichier de nom pythonabcmidi.py

Fichier moduleabcmidi.txt code des fonctions de la bibliothèque moduleabcmidi.py

Ces logitiels peuvent traiter n'importe quel fichier .abc que vous pouvez construire par vous même ou à partir de n'importe quel fichier .abc obtenu par midi2abc.exe

Lancez la commande python morceau.txt

Choisissez un fichier .abc, puis la mesure début et la mesure fin.

Vous trouverez dans votre répertoire pythonabcmidi, un fichier test1.abc qui contient les mesures choisies, que vous pouvez écouter en transformant test1.abc en test11.mid par la commande abc2midi test1.abc

Vous trouverez aussi un fichier tradtest.abc qui contient une traduction du fichier test.abc dans un langage plus accessible aux lecteurs d'écran comme nvda, par exemple

Exemple de fichier tradtest.abc

On peut, par exemple, créer des exercices pour le travail du piano, à partir d'un fichier abc de 2 voix, comme gammechr.abc par exemple.

On pourra choisir des mesures pour chaque voix.

Le résulta se trouvera dans un fichier test12.abc que vous transformerez en test121.mid par la commande abc2midi test1.abc

Fichier gammechr.abc

Vous pouvez lancer la commande python motifvoix.txt qui vous permet de choisir un motif de notes, un motif de rythme, un motif de nuances, pour chaque voix.

On peut traiter des fichiers d'une, deux, trois ou quatre voix et les écouter voix séparées ou voix ensemble.

Exemple test141.mid

Le choix d'un motif de voix se fait en entrant, par exemple :

5 .6 [2 4 6] 1 0 3 7= 4 6 4:1

Les nombres désignent la position des notes de la voix courante, qui peuvent être suivis d'une altération comme + - ou = ou précédés d'un point pour les notes piquées.

Le chiffre 0 correspond à un silence z

On peut écrire des notes simultanées en les plaçant entre crochets, comme [1 3 5] par exemple.

Si la voix correspond à une gamme d'une tonalité, cela permet de construire une mélodie dans le ton courant.

l'écriture 4:1 permet de choisir un nombre de répétition du motif de notes, ici 4 répétitions, et le nombre qui suit le signe : permet de choisir une translation du motif, ici 1

On peut choisir un motif de rythme pour la voix courante en entrant, par exemple :

3/4 1/4|

Ici 3/4 et 1/4 sont les proportions de l'unité de mesure et le signe | désigne la fin d'une mesure, ici 4/4

Enfin, on peut indiquer des nuances comme, par exemple :

!ff! * * !p!

Si un nombre de répétition est indiqué dans le motif de voix, le motif de rythme et le motif de nuances sont répétés de la même manière.

La commande motifvoix.txt peut traiter des fichiers .abc de une, deux,trois ou quatre voix.

On peut l'utiliser pour des exercices d'harmonie, pour créer des accords constitutifs d'une tonalité, construire des arpèges,des modulations...

Exemples de notions d'harmonie avec le logiciel motifvoix.txt

Prenons comme fichier abc, un fichier d'une seule voix, qui contient la gamme de Do majeur sur 2 octaves.

Le motif 1 2 3 4 5 6 7 donne les notes des degrés de la gamme.

Le motif 6 7 8 9 10 11 12 correspond au mode de La mineur naturel

1 2 3- 4 5 6 7+ est le mode de Do mineur harmonique.

1 2 3- 4 5 6 7 est le mode mineur mélodique de Do.

Pour chaque ton et chaque mode, on peut construire facilement les accords constitutifs d'une tonalité, en choisissant un motif de tierces successives ou simultanées, avec une translation d'un ton et 7 répétitions, comme :

[1 3 5 7] 7:1

Il est immédiat d'obtenir les 3 renversements d'un accord de septième.

On ajoute la tonique à l'octave et on fait une permutation circulaire des notes de l'accord.

Par exemple, pour Sol7, on écrit 7 9 11 13 14, ce qui donne 9 11 13 14 premier renversement, 11 13 14 16 deuxième renversement et 13 14 16 18 troisième renversement.

La construction d'une suite d'accords avec déplacement minimum s'obtient en laissant fixe les notes communes à 2 accords consécutifs

Cela introduit des renversements des accords.

Par exemple, pour l'accord de Ré mineur du degré II suivi de l'accord de solseptième du degré V, on écrira le motif :

[2 4 6] [2 4 5 7]

Enfin, on peut utiliser les motifs de notes pour réaliser des mouvements, comme les mouvements obligés dans les cadences.

Par exemple 7 9 11 12 7+ 11- 12

La quinte diminuée 7 11 donne la tierce majeure 8 10 par mouvements contraires 7+ 11-

La tierce de l'accord de septième de dominante 7 monte d'un demi-ton vers la tonique 8 tandis que sa septième 11 descend vers la tierce 11-

On peut remarquer que l'intervalle de quarte augmenté d'une tonalité peut être l'intervalle de quinte diminuée du ton situé 6 demi-tons au-dessus ou au dessous du ton courant.

Ainsi, si on remplace la tonique d'un accord de septième sans sa quinte par la note située 6 demi-tons au-dessous de celle-ci, on obtient aussi un accord de septième sans sa quinte.

On appelle cela, la substitution triton.

Exemple de substitution triton c f#

On peut aussi faire apparaître des intervalles de 6 demi-tons, par des mouvements d'un demi-ton de certaines notes d'une gamme majeure.

Par exemple, l'augmentation d'un demi-ton de sa tonique introduit une note étrangère à la tonalité, qui forme une quinte diminuée avec sa quinte.

On peut considérer cette note étrangère comme une note de passage vers l'accord mineur du degré II de la tonalité courante.

Exemple ceg c# e g d f a

On peut aussi introduire des notes étrangères au ton courant, pour moduler vers un ton voisin.

Ainsi, si on descend la tonique d'un ton, on peut moduler vers la tonalité majeure ou mineure du ton situé une quarte au-dessus du ton courant.

Exemple c e g b- c f a

Travail d'un instrument

Pour travailler la technique d'un instrument comme le piano, par exemple, on choisira un motif de notes avec translation pour chaque main, dans une tonalité de son choix.

Le motif 1 3 4 5 6 5 4 3 8:1 est souvent rencontré pour la main droite.

On construira son fichier test1.abc avec l'application python motifvoix.txt et l'on construira son fichier test11.mid par la commande abc2midi test1.abc

Tablature de l'exercice

Fichier exercice11.mid dans le ton de Do majeur avec un tempo 60

L'application python paravoix.txt vous permettra de choisir des paramètres, comme augmenter le tempo, par exemple.

Fichier exercice21.mid dans le ton de Do majeur avec un tempo 120

Le paramètre K: permet de choisir une tonalité

Par exemple K:A pour La majeur, K:Db pour Ré bémol majeur

La tablature est écrite en notation harmonique.

Pour une gamme majeure, on remarque qu'elle est constituée de 2 tétracordes S S s séparés par un ton S

On peut considérer que le second tétracorde est le premier tétracorde du ton situé une quinte au-dessus du ton courant.

De même, on peut considérer que le premier tétracorde du ton courant est le second tétracorde du ton situé une quinte au-dessous du ton courant.

Ainsi, d e f# g est le second tétracorde du ton G majeur et f g a b- est le premier tétracorde du ton de F majeur.

On voit qu'il s'introduit une note altérée dans ces 2 tonalités voisines de C majeur.

Si on continue ces constructions de gammes de proche en proche, il apparaît à chaque fois une nouvelle note altérée, qui constitue l'ordre f# c# g# d# a# e# b# et l'ordre des bémols b- e- a- d- g- c- f-

En notation harmonique, on convient de placer les notes altérées dans une armure et on allége la notation des notes en supprimant les signes dièses ou bémols des notes altérées.

Par exemple,pour la tonalité D majeure, l'armature est f# c#

On remarque que le dernier dièse est la sensible du ton, ici c#

L'armure du ton de B- majeure est b- e-

On remarque que le ton d'une gamme avec des bémols est donné par l'avant dernière note de l'armure, ici b-.

La notation anharmonique

Construisons les notes d'une tonalité à partir d'une gamme chromatique écrite avec des notes diézées ou bémolées.

Prenons l'exemple de lagamme de C# majeure.

A partir de la note C#, nous construisons la suite des intervalles d'une gamme majeure, soit S S s S S S s

Comme la gamme chromatique de C# s'écrit :

c# d d# e f# g g# a a# b

On obtient :

c# d# e# f# g# a#b#

On remarque que toutes les notes sont diézées.

Elles correspondent à l'armure f# c# g# d# a# e# b# de la notation harmonique c d e f g a b de la gamme de C# majeure.

On a vu que la notation harmonique est intéressante pour travailler la modulation dans des tons différents.

La modulation entre 2 tons voisins, correspond à une modulation entre 2 tons dont les armures ne diffèrent que d'une ou deux notes.

La notation anharmonique est intéressante pour travailler des exercices de technique instrumentale, dans toutes les tonalités.

Par exemple, pour le piano, les notes altérées, saus e# et b#, sont jouées sur des touches noires, ce qui permet de mieux se souvenir du doigté des gammes, de leurs modes et de leurs accords constitutifs.

On travaillera un même motif de notes dans des tonalités différentes, en se souvenant des notes altérées de chaque tonalité, ce qui sera très utile pour transposer un morceau de musique.

En langage python, on créera une chaîne qui contiendra les notes de la gamme chromatique du ton choisi.

A partir de cette chaîne, on construira une fonction qui retournera la tablature anharmonique c'une tonalité choisie par son ton et son mode.

Pour cela, on choisira le motif de la gamme chromatique du ton choisi, qui correspond au mode choisi.

La transposition dans un autre ton et le changement de mode seront immédiats, puisqu'il suffira de choisir d'autres valeurs pour les variables ton et mode.

On peut aussi transposer une tonalité d'un nombre de demi-tons, en translatant son motif.

La fonction gammetranspo(ton, mode, demi-tons) fera toutes ces actions.

La gamme chromatique correspond à la suite d'intervalles s s s s s s s s s s s s... et son motif est 1 2 3 4 5 6 7 8 9 10 11 12 13...

La différence entre 2 chiffres donne le nombre de demi-tons qui caractirise l'intervalle entre ces 2 notes.

On dénombre les intervalles s d'un demi-ton appelé seconde diminuée, S de 2 de-mi-tons appelés ton, t de 3 demi-tons ou tierce mineure, T de 4 demi-tons ou tierce majeure, Q de 5 demi-tons ou quarte, Q+ de 6 demi-tons ou quarte augmentée.

Les intervalles de 11, 10, 9, 8, 7 et 6 demi-tons sont les renversements des intervalles de 1 2 3 4 5 6 , appelés 7M ou septième majeure, 7 ou septième, X ou sixte majeure, x ou sixte mineure, V+ ou quinte augmentée, V ou quinte et v- ou quinte diminuée.

L'intervalle de 12 demi-tons est l'octave O dont le renversement de 0 demi-ton est appelé l'unisson.

Au delà de l'octave, on trouvera les intervalles de neuvième, de dixième...

Une gamme chromatique n'a qu'un seul mode.

De même, une gamme par tons S S S S S S S S S... n'a qu'un seul mode de motif 1 3 5 7 9 11 13...

Une gamme semi-diminuée S s S s S s S s... de motif 1 3 4 6 7 9 10 12 13...possède uniquement un second mode s S s S s S s S... de motif 1 2 4 5 7 8 10 11 13...

Pour le mode majeur de la gamme pentatonique, le motif de sa suite d'intervalles S S t S S t est 1 3 5 8 10 13

Pour le mode majeur ou mode de Do, le motif qui correspond à sa suite d'intervalles S S s S S S s... est 1 3 5 6 8 10 12 13...

On remarque que c'est le mode majeur d'une gamme pentatonique, dans lequel on à ajouté une quarte 6 et une septième 12

On peut construire 7 modes à partir d'une gamme majeure, appelés modes des grecs ou plus simplement, mode de Do, mode de Ré, mode de Mi...

Dans la musique moderne, seuls le mode majeur de Do et le mode mineur naturel de La sont utilisés

On pourra facilement construire des tonalités mineures naturelles, mineures harmoniques, mineures mélodique...

On pourra même créer des modes de tonalités personnels comme l'a fait Véla Vartoc.

On pourra aussi facilement comparer un mode avec le mode majeur, pour analiser sa couleur, caractérisée par certains intervalles.

Ainsi, le mode de La ou mode mineur naturel S S S S s S S qui correspond au motif 1 3 5- 6 8 10 12 13 fait apparaître la tierce mineure 1 5- qui donne la couleur des tonalités mineures.

Pour le mode mineur harmonique S s S S s t s qui correspond au mode mineur naturel dans lequel on a augmenté la septième d'un demi-ton pour qu'elle devienne une note sensible, son motif fait apparaitre le tétracorde 1s t s que l'on trouve dans la musique arabe.

Ce tétracorde est remplacé par le tétracorde S S s d'une gamme majeure, dans la musique classique.

On appelle cette gamme une gamme mineure mélodique.

Le changement de tonalité dans un morceau donne des effets de surprise.

Par exemple, la tierce picarde consiste à terminer un morceau en mode mineur par la tierce de son mode homonyme majeur

La cadence évitée consiste à faire entendre l'accord mineur du degré I après l'accord de septième d'un mode majeur.

Dans la musique irlandaise, on entend parfois l'accord majeur situé un ton au-dessous de l'accord majeur du degré I d'un mode majeur, qui peut être considéré comme étant l'accord du degré VII du ton mineur de la gamme homonime mineure.

Dans le jazz et dans les négro spirituals, on entend la blue note de la gamme blues.

Retour dans la page index du site studyvoxmusi