La synthèse sonore - TPE Synthèse sonore Comment synthétiser

Transcription

La synthèse sonore - TPE Synthèse sonore Comment synthétiser
La synthèse sonore
Comment synthétiser une note de musique ?
Modèles et Modélisations
Julie Schuhmacher
Thibaut Bardon
Cyrille Pauthenier
Thibault Péra
1
« Je rêve d'instruments obéissant à la pensée et qui, avec
l'apport d'une floraison de timbres insoupçonnés, se prêtent à toutes
les combinaisons qu'il me plaira de leur imposer et se plient aux
exigences de mon rythme intérieur. »
Edgar Varèse, 1917.
2
Sommaire:
Introduction................................................................................................... 3
I.Analyse d’un son......................................................................................... 5
a) Etude d’un instrument et d’une note de musique.............................................................. 5
i)Harmoniques................................................................................................................................................. 5
ii)Timbre.......................................................................................................................................................... 6
iii) Notes et fréquences.................................................................................................................................... 7
iv)Définitions................................................................................................................................................. 10
b) Méthode................................................................................................................................ 11
i) L’oscillogramme........................................................................................................................................ 11
ii)Transformée de Fourier.............................................................................................................................. 12
iii)Sonagramme..............................................................................................................................................14
II. Synthèse d’un son................................................................................... 16
a) Différentes méthodes........................................................................................................... 16
b) La synthèse additive............................................................................................................ 17
i)Principe........................................................................................................................................................17
ii)Notre logiciel.............................................................................................................................................. 19
iii)Nos résultats.............................................................................................................................................. 20
c) La synthèse numérique ...................................................................................................... 21
i)Principe........................................................................................................................................................21
ii)Notre logiciel.............................................................................................................................................. 24
iii)Nos résultats.............................................................................................................................................. 25
Conclusion................................................................................................... 26
Annexes:....................................................................................................... 27
Bibliographie................................................................................................41
Synthèses personnelles................................................................................ 42
3
.Introduction
Le son est une onde qui se propage dans l’air, l’eau ou les solides, d’autant plus vite
que le milieu est dense. Dans le vide il n’y a aucun son (ce n'est pas une onde
électromagnétique). La fréquence d’un son est son nombre d’oscillations par seconde. Plus ce
nombre est grand, plus ce son semble aigu. Pur ou complexe, harmonique ou non harmonique,
chaque son a son identité tonale. L’intensité se mesure sur une échelle avec nos sensations. De
plus l'oreille humaine ne perçoit le son qu’entre les fréquences 20 et 20 000 hertz, au-delà il
est impossible d’entendre quelque chose.
Le son est depuis toujours l'outil de communication privilégié des animaux et de
l'homme. Ce dernier a inventé des moyens nouveaux pour en créer, avec des instruments de
musique ou tout simplement en tapant sur des pierres ou des tronc d'arbres. Ainsi, l'homme
inventa une autre forme de langage qu'on appelle aujourd'hui musique.
La création de sons « artificiels » n'est apparue qu'au début du XXe siècle, avec
l'invention des méthodes d'enregistrements. Quant à la « synthèse », elle n'a pris son essor
qu'a la fin du XXe siècle, avec le développement des technologies électroniques. C'est devenu
aujourd'hui un formidable outil de création pour les musiciens et les compositeurs.
Comment synthétiser une note de musique ? Pour répondre à cette question nous
analyserons tout d'abord la composition et les propriétés d'un son d'instrument puis nous
étudierons comment exploiter ces propriétés, afin de synthétiser artificiellement cet
instrument.
4
I. Analyse d’un son
a) Etude d’un instrument et d’une note de musique
i) Harmoniques
Les harmoniques sont les composantes d’une note de musique. Sans aucun
harmonique on obtient un son sortant directement d’un générateur basse fréquence, un son
plat, non musical. L’intensité des harmoniques d’une note est ce qui différencie les
instruments. C’est pourquoi ils ne sont pas « répartis » de la même manières chez tous les
instruments de musique: pour une clarinette ce sont les harmoniques impairs qui sont les plus
présents tandis que pour d’autres instruments l’intensité des harmoniques diminue quand les
fréquences augmentent.
Pour savoir quel sont les harmoniques d’une note, la méthode est simple. Il suffit de
multiplier la fréquence de la fondamentale par deux puis trois puis quatre...
Harmonique n° :
Fréquence en Hertz :
Note correspondante :
1 : fondamentale
65,4
Do 1
2 : "octave"
2x65,4=131
Do 2
3 : "quinte"
3x65.4=196
Sol 2
4 : "quinzième"
4x65,4=262
Do 3
5 : "tierce"
5x65,4=327
Mi 3
6 : "larigot"
6x65,4=392
Sol 3
7 : "septième"
7x65,4=458
Si b 3
On obtient alors le nom des harmoniques qui composent la fondamentale et leur
hauteur. La fondamentale est la note jouée, son octave est le son deux fois plus aigu. La tierce
quant à elle est située à un ton et demi de la fondamentale et la quinte se trouve à trois tons et
demi de la fondamentale.
Les chiffres à coté des noms des notes (do1 ou do2) correspondent à la hauteur de la
note.
Les harmoniques tiennent un rôle essentiel dans le son. En quelques sorte c’est grâce à
eux qu’un son peut être agréable à écouter.
5
ii) Timbre
Chaque instrument possède son propre timbre. Il correspond à l’intensité de chacune
des harmoniques qui compose une note. Un son timbré est un son musical, ou du moins
agréable à entendre. Un son qui sort d’un générateur basse fréquence est dépourvu de
musicalité puisqu’il ne possède aucun harmonique, c’est un son plat.
Selon les instruments, l’importance des différents harmoniques n’est pas la
même. C’est pour cela que l’on perçoit différentes couleurs de son: il peut paraître perçant,
rond, velouté, ou encore nasillard. Le timbre d’un son est lié à sa composition fréquentielle et
à son évolution dans le temps. On peut donc reconnaître l’origine et l’appartenance d’un son.
De plus sur des sonagrammes photographiés on observe des « parasites ». Ils représentent le
niveau de bruit blanc de l’instrument ce qui change aussi selon les instruments. Par exemple
un son de flûte chinoise émettra plus de bruit (le souffle) qu’une flûte à bec (voir photos ci
dessous).
Sonagramme de flûte a bec (au dessus) et d’une flûte chinoise (en dessous) (photo 1)
Les bruits blancs font aussi partie des caractéristiques d’un son et donc de son timbre.
Hélas nous n’avons pas pu tenir compte de cette caractéristique pour reproduire un son
car nous ne possédons pas un matériel assez avancé.
6
iii) Notes et fréquences
Pour pouvoir déterminer quelles sont les harmoniques qui composent un son il nous a
fallu déterminer les fréquences de ces notes pour savoir s’il existe un lien entre elles.
Protocole expérimental :
Nous avons branché un générateur basse fréquence (GBF) sur un oscilloscope afin
d’observer l’allure générale d’un son pur (sans harmonique) par rapport à un son de flûte
traversière (que l’on a pu observer à l’aide d’un micro branché sur l’oscilloscope).
Observations et interprétations :
La courbe du son sorti du GBF est constituée d’un seul trait d’épaisseur constante qui
varie périodiquement au cours du temps. On peut comparer l’allure de la courbe à une
fonction sinus ou cosinus simple. En revanche la courbe du son de flûte n’est pas constituée
d’un trait d’épaisseur constante, l’épaisseur varie sans cesse. On a donc conclu que l’épaisseur
du trait correspondait aux différents harmoniques comme chaque trait correspondait à une
certaine fréquence.
On a ensuite utilisé un accordeur, qui est un instrument utilisé en musique pour
accorder les instruments comme les guitares, un accordeur permet la reconnaissance des
différentes notes. On a donc fait varier la fréquence du GBF en notant à quelle note
correspondait chaque fréquence.
On obtient le tableau suivant:
Notes
Do
Do#
Ré
Ré#
Mi
Fa
Fa#
Sol
Sol#
La
La#
Si
Fréquences en hertz
261
277
294
311
329
349
370
392
415
440
466
494
Fréquence une octave au
dessus (en hertz)
524
555
587
623
660
698
739
784
830
880
934
989
7
Analyse du tableau :
On constate que pour passer d’une octave à une autre, quelle que soit la note, il faut
multiplier par 2 la fréquence pour obtenir la même note à l’octave supérieure, ou bien diviser
par deux pour avoir la note à l’octave en dessous.
On a aussi constaté en traçant un graphique avec les fréquences que toutes les fréquences
étaient reliées par une fonction exponentielle.
Le fait qu’il y ai 12 demi-tons dans une octave permet de déterminer cette fonction :
Donc pour passer d’une octave à l’octave supérieure il faut soit ajouter 12 demi-tons
soit multiplier par 2, d’où l’équation suivante :
Quelle que soit t appartenant à R : f (t+12)= 2 f (t)
A l’instant origine où t=0, on note f (0)=A
f (0+12) = f (12) = 2A
f (12+12) = f (24) = 4A
f (24+12) = f (36) = 8A
f (36+12) = f (48) = 16A
…
Donc f (12n) = 2n x A
Si t est un multiple de 12, donc si t = 12n
Alors n = t/12
D’où f (t) = 2t/12 x A = (21/12)t x A
Donc si t est un multiple de 12,
f (t) = f (0) x (21/12)t
Fonction exponentielle de base 21/12
On peut aussi vérifier cette fonction en notant la valeur permettant de passer d’une
fréquence au demi-ton supérieur, pour cela on note la valeur du quotient d’une fréquence
trouvée expérimentalement par la fréquence précédente :
Fréquence en Hertz
Quotient de la fréquence sur la
fréquence précédente
Quotient à la puissance 12
277
1,06130268
2,04207242
294
1,06137184
2,04366984
311
1,05782313
1,96316455
329
1,05787781
1,96438273
349
1,06079027
2,03027257
370
1,06017192
2,01611623
392
1,05945946
1,99991766
415
1,05867347
1,98218578
440
1,06024096
2,0176924
466
1,05909091
1,99158516
494
1,06008584
2,01415267
524
1,06072874
2,02885989
261
8
555
1,05916031
1,9931517
587
1,05765766
1,95948263
623
1,06132879
2,04267534
660
1,05939005
1,99834591
698
1,05757576
1,9576626
739
1,05873926
1,98366435
784
1,0608931
2,03263543
830
1,05867347
1,98218578
880
1,06024096
2,0176924
934
1,06136364
2,04348027
989
1,05888651
1,98697766
Moyenne:
1,05963159
2,00400113
Donc pour passer d’une note au demi-ton supérieur il faut bien multiplier la fréquence
de la note par 21/12.
9
iv) Définitions
Il est important de définir pour la suite certains termes. Tout d'abord, il faut savoir que
l'évolution d'une note de musique peut se décomposer en trois temps principaux (on peut en
trouver beaucoup plus, mais simplifions)
Tout d'abord, l'attaque : C'est le moment ou le marteau frappe la corde , que l'archet
met les cordes en vibration ou que le souffle de l'instrumentiste met la flûte en vibration.
L'amplitude du son y est plus importante. L'attaque est suivie d'une légère chute.
Il y a ensuite le maintien : C'est le moment où la note est tenue (tant que la touche du
piano est enfoncée par exemple). La corde vibre seule ou sous l'impulsion de l'archet, la flûte
sonne. L'amplitude y est soit stable, soit décroissante.
Puis il y a l'extinction : C'est le moment où l'étouffoir étouffe la corde, l'archet arrête
de frotter la corde ou l'instrumentiste arrête de souffler. C'est la résonance de l'instrument.
Un phénomène acoustique qu'il est important de définir pour la suite est de phénomène
des battements. Il est difficile de se les représenter mentalement. Imaginons que vous ayez
un oscilloscope électronique et deux GBF. Vous réglez le premier GBF à une fréquence F et
vous le connectez à l'oscilloscope. Si votre oscilloscope est bien réglé, vous y verrez une
courbe sinusoïde fixe (elle ne se déplace pas latéralement). Maintenant, branchez le deuxième
GBF sur la même entrée, mais réglé sur une fréquence très légèrement différente de F. Si ces
deux fréquences étaient identiques, vous verriez le résultat stable de l'addition des deux
sinusoïdes. Mais les deux fréquences étant légèrement différentes, la seconde va “glisser” sur
la première.
Concrètement, l'amplitude de la somme varie au cours du temps. Tantôt elle est égale à
la somme des amplitudes, tantôt elle est égale uniquement à l'amplitude de la première. Il en
résulte un son irrégulier, comme si vous écoutiez de la musique en montant et abaissant le
volume plusieurs fois par seconde.
Ce phénomène est très important en musique, car au sein du son de certains
instruments (c'est parfaitement audible avec l'accordéon) certains harmoniques ne sont pas des
multiples de la fondamentale, et donc “frottent” avec d'autres harmoniques, il en résulte un
grincement. Ces battements font partie des éléments qui nous ont gênés par la suite, lorsque
nous avons essayé de synthétiser un son d'instrument comme l'accordéon, le piano ou le
violon...
10
b) Méthode
i)
L’oscillogramme
L’oscillogramme d’un son est la représentation graphique de l’onde sonore, que l'on
appelle en électronique oscillogramme. Cette représentation est en réalité un graphe
représentant l’évolution de l’énergie des molécules d'air en fonction du temps. En effet, le son
est une onde qui se propage par l’intermédiaire des molécules d’air. Celles-ci bougent avec le
déplacement de l’onde sonore.
La différence de timbre entre deux instruments (différence entre un piano et une
clarinette) est la conséquence d’une forme d’onde différente. L'oscillogramme de l’instrument
sera donc spécifique à chaque instrument.
Oscillogramme d'accordéon
Oscillogramme de Piano
Oscillogramme de Clarinette
Oscillogramme de Violon
Cette représentation du son est indispensable pour le musicien, comme pour
l’informaticien. Nous avons, lors de nos expériences, obtenu des graphes similaires avec un
oscilloscope et un microphone. Mais il s'est avéré bien plus pratique de les étudier avec le
logiciel de manipulation musicale Audacity (gratuit). Ce sont ces derniers que nous avons
exploités, et ce sont ceux-ci que vous pouvez voir ci-dessus.
On constate que le son est un phénomène périodique. Ce graphe n'est pas en soi très
compliqué: il doit donc exister une formule mathématique capable de le décrire.
11
ii) Transformée de Fourier
Le mathématicien français Joseph Fourier (1768 – 1830) (cf biographie en Annexes),
dans sa théorie analytique de la chaleur (publiée en 1808), énonce un théorème fort
intéressant: « Toute fonction périodique f (t) peut être décomposée en une somme de N
fonctions (sinus et cosinus) fondamentales ». Ceci ce traduit par la formule suivante:
Cette fonction, nommée Transformée de Fourier est trop compliquée pour notre étude.
Mais il est possible de la simplifier. En effet, le son est une onde périodique. On peut donc la
décomposer en une série de fonctions sinus et cosinus. Mais, en matière d’onde sonore, la
phase n’a (quasiment) aucune influence sur le son final. Il s'agira donc d'une somme de N
fonctions sinus (la fonction cosinus étant une fonction sinus avec une phase de π / 2)... On
peut donc écrire:
Que nous dit cette formule :
Une fonction périodique f(t) est égale à une somme (Σ) de N fonctions sinus de la forme:
g(x) = an sin ( nωt )
C'est à dire une fonction sinus tout a fait classique, où an est l'amplitude, nω/2π la fréquence
(avec numéro de la fonction sinus (1 ,2 ,3...), t, le temps, et ω/2π est la fréquence de départ, ou
fréquence fondamentale (440 Hz, par exemple)).
Joseph Fourier fournit aussi une formule pour calculer l'amplitude a n de la fonction
sinus. Mais elle est bien trop compliquée pour nous. (C’est en effet une intégrale). Nous nous
contenterons juste d'y remarquer que l'amplitude est liée à la fréquence.
Cette formule n'est pas directement exploitable pour les ondes (sonores, mais aussi
lumineuses (pour les photographes)). Un mathématicien dont l'Histoire n'a pas retenu le nom,
entreprit de modifier ces équations, afin de les adapter à un traitement informatique moderne:
la Transformée de Fourier rapide est née (en anglais, Fast Fourier Transformation, FFT). Ces
équations ont été transformées en un algorithme capable de décomposer une onde complexe
en une somme de fonctions sinus fondamentales, appelées partiels. Les résultats sont
généralement présentés sous forme d'un graphe comme celui-ci :
12
amplitude (unité arbitraire)
fréquence (Hertz)
Ce graphe est la Transformée de Fourier rapide d'une note de clarinette créée avec le
logiciel Synthèse (cf II, 2). Chaque « pic » est en réalité la représentation graphique d'une
sinusoïde. On observe en passant, qu'un son de clarinette est formé de plusieurs fonctions
sinus, mais cela sera détaillé au chapitre des Timbres. En abscisse de ce graphe, nous pouvons
lire la fréquence en Hertz, tandis qu'en ordonnée, nous avons l'amplitude. Chaque « sommet »
de ces « pics » indique la fréquence et l'ordonnée de la fonction sinus qu'il représente. Nous
pouvons les lire en cliquant dessus (dans le logiciel Synthèse).
La décomposition du son (Transformée de Fourier rapide, mais il y a aussi d'autres
méthodes, le plus souvent basées sur les équations de Joseph Fourier) est un outil
indispensable aux musiciens, ingénieurs du son, électroniciens et autres créateurs de musique
synthétique. Nous avons bien conscience que cet outil formidable n'est pas vraiment à notre
niveau, et ne correspond pas aux exigences d'un TPE, mais il est indispensable à notre étude,
car il permet de comprendre et d'expliquer l'ensemble des grands principes acoustiques
(harmonie musicale, intervalles, battements...) et permet de comprendre comment recréer
artificiellement un son.
13
iii) Sonagramme
Le sonagramme est fondé sur la transformée de Fourier rapide, et il permet d'observer
l’évolution des harmoniques en fonction du temps. Le temps est représenté en abscisse et la
fréquence de l’harmonique se trouve en ordonnée. Chaque instrument possède un graphique
différent (voir photo 4 ci dessous). En jouant un son de flûte on a observé différents traits
espacés de façon égale. De plus on observe que sur un sonagramme de clarinette les traits sont
épais pour les harmoniques impaires. L’épaisseur du trait correspond à l’importance de
l’harmonique dans ce son. Plus le trait est épais plus l’harmonique est important et donc
moins le trait est épais moins l’harmonique est présent.
Selon les instruments le sonagramme diffère. Pour un instrument à corde pincée
(comme par exemple la guitare ou le clavecin) on remarque que le sonagramme varie au cours
du temps. C’est à dire que les harmoniques vont « s’éteindre » au fur et à mesure pendant la
résonance de la note (chute). Les harmoniques les plus aiguës vont être les premiers à arrêter
de résonner.
Le graphique du piano est plus complexe, tout d’abord les traits ne sont pas espacés de
manière égale. Les harmoniques les plus aigus s’espacent de plus en plus. Et comme pour la
guitare ils varient différemment au cours du temps (voir photo 4). Mais ici les harmoniques
multiples de trois résonnent plus longtemps. Le dégradé fonctionne aussi selon les multiples
de trois. La troisième durera plus longtemps que les deux autres et ainsi de suite pour la
sixième, et la neuvième...
Pour les instruments à vent comme la flûte et la clarinette, l'amplitude des
harmoniques est constante pendant le maintien du son..
Un sonagramme permet donc de pouvoir connaître presque parfaitement la nature de
l’instrument et, pourquoi pas, le nom de cet instrument.
Par la suite ces sonagrammes vont nous permettre de régler l’importance de
l’harmonique dans le son que l’on voudra synthétiser.
Voici l’exemple d’un sonagramme. (Photo 1)
14
Représentation plus stylisée (photo 2 prise à la cité des sciences)
Sonagrammes caractéristiques (photos 3)
A chaque commencement de la note on observe les différentes manières d’attaquer la
note. Par exemple pour le violon avec un archet on dit que la corde est frottée. Le frottement
est représenté par tous les petits points. Mais pour la guitare qui est un instrument à corde
pincée, c’est représenté par des triangles non reliés entre eux. Le piano étant un instrument à
cordes frappées les « triangles d’attaque » sont réunis. Le marteau vient donc frapper la corde
qui entraînera la résonance des autres harmoniques.
15
II. Synthèse d’un son
Vers 1951, Eimert, Meyer-Eppler et Stockhausen deviennent à Cologne les pionniers de la
musique électronique, qui partait de vibrations sonores électriques : il s'agissait de produire
des sons aux paramètres biens contrôlés, suivant les prescriptions de partitions existantes à
priori, et construites suivant des règles formelles très précises. En 1957, Max Mathews réalise
aux USA le premier enregistrement numérique et la première synthèse de sons par ordinateur.
a) Différentes méthodes
Nous avons retenu 5 grandes familles que nous allons maintenant vous présenter.
Nous omettons volontairement les différentes formes de synthèse vocale (foomantique,...)
dont nous ne nous sommes pas occupées.
La synthèse additive : C'est une forme de synthèse très simple sur le principe et
extrêmement intéressante. C'est en quelque sorte une réciproque du théorème de Fourier.
Nous avons choisi de l'étudier. On en trouvera une définition complète dans la partie qui lui
est consacrée.
La synthèse soustractive : Ce n'est pas, comme on pourrait le supposer, le contraire
de la précédente. Elle est beaucoup plus compliquée à mettre en oeuvre, car elle consiste à
prendre une onde de départ très riche en harmoniques (une onde carrée dans l'idéal, car elle
est composée d'une infinité de fonctions sinus) et d'enlever les harmoniques inutiles à l'aide
d'une série de filtres dits “passe–bas”, c'est à dire capables d'isoler et de séparer certaines
plages de fréquences, donc certains harmoniques.
La synthèse granulaire : C'est l'une des formes les plus compliquées ! Elle est en fait
fondée sur les mêmes idées que celle de Fermat lorsqu'il a étudié la lumière et l'énergie
considérées comme des fluides continus : découper l'onde sonore en “grains” comme on
décompose l'énergie en quanta ou la lumière en photons ! Elle consiste à ajouter des “grains”
sonores afin de reconstituer l'instrument. Elle est donc très compliquée, très fastidieuse, mais
elle permet de synthétiser tous les sons sans distinction (voix humaines comprises) et donne
des résultats formidables ! (Voir CD: Synthèse d'une Chorale entière par synthèse granulaire,
fait par L’IRCAM)
La synthèse par table d'onde et modulation de fréquence : c'est un combiné des
deux méthodes qui permet une forme de synthèse numérique très simple, et très utilisée par
tous les spécialistes de l'informatique musicale, car fournissant de très bons résultats.
La synthèse par modèles physiques : C'est de loin la plus intéressante des formes
mais aussi l'une des plus compliquées, et donc peu utilisée. Elle consiste en fait à simuler
l'intégralité de l'instrument et étudier la façon dont il va résonner. On créé ainsi des violons
virtuels, des guitares virtuelles mais aussi des instruments qui n'existent pas. Elle est en fait
principalement utilisée pour améliorer les instruments existants, en simulant entièrement les
modifications qu'on pourrait y faire, pour améliorer sa qualité sonore, sans le construire !
C'est de la physique appliquée à la musique!
16
b) La synthèse additive
i) Principe
La synthèse additive repose sur le théorème de Fourrier ou plutôt sur sa réciproque.
Ainsi, on peut faire la somme de sinusoïdes simples pour reformer un son complexe. Un son
est composé d’une fondamentale et de ses harmoniques. Ainsi pour faire une synthèse
additive, il suffit d’ajouter à cette fondamentale les harmoniques voulus. Ceci peut être
résumé par le schéma ci-dessous:
17
Si on additionne des sinusoïdes sans tenir compte des règles précédemment établies,
on obtient un son désagréable donc non musical. Ce qui nous intéresse dans la synthèse, c'est
d'obtenir des sons aussi agréables que des sons d'instruments, voire si possible, exactement le
même son. L'idée serait donc de décomposer un son d'instrument avec une transformée de
Fourier rapide, de mesurer ses différents harmoniques, et de rentrer ces valeurs dans les
générateurs pour obtenir le même son au final.
C'est ce que nous avons essayé de faire. Pour cela, nous avons mis au point un petit
logiciel nommé Synthèse ( version 0.42 ). Vous trouverez ce logiciel sur le CD additionnel,
ainsi qu'une présentation détaillée du logiciel en annexe.
Voici comment nous avons procédé :
Protocole expérimental:
Le matériel:
•
•
•
•
Un ordinateur pour installer le logiciel et d’enregistrer des échantillons de sons,
Le logiciel de synthèse additive qui nous a permis de mettre en œuvre la synthèse des
sons,
Un micro afin d’enregistrer des sons de flûte traversière
Un casque, pour écouter le son produit
Expérimentation:
Etape 1: il faut enregistrer une note sur l’ordinateur via un micro.
Etape 2: on joue ce son sur l'ordinateur et on l'arrête à un instant T, son Fourier
apparaît à l’écran, puis on enregistre celui-ci.
Etape 3: chaque sinusoïde doit correspondre au son de base, (le logiciel est muni de 24
partiels (donc 24 sinusoïdes possibles).
Etape 4: on doit connaître la fréquence de chaque sinusoïde du son de base, on se sert
pour cela du Fourier géant qui nous donne avec précision les informations voulues.
Etape 5: on entre ensuite les données dans le partiel qui va reproduire sur le graphique
une courbe de même fréquence que celle de base.
Etape 6: on doit ensuite choisir l’amplitude, pour cela, on fait coïncider la sinusoïde de
départ avec celle synthétisée.
On répète l’opération pour chaque sinusoïde du son de départ.
Si le protocole est bien suivi, le son synthétisé qui sort du casque devrait ressembler
étroitement à celui de départ. Si vous souhaitez effectuer vous-même cette manipulation,
insérez le CD additionnel. Vous pourrez tester ce logiciel sans l'installer. Pour l'utilisation,
reportez-vous à la notice d'utilisation située en Annexe.
18
ii) Notre logiciel
Pourquoi avoir crée nous-même un logiciel ?
Tout simplement parce qu'il n'existe pas sur le marché de logiciel adapté pour la
synthèse additive. Il n'en existe qu'un qui puisse à peu près accomplir cette tâche, mais il a un
défaut : il coûte 200$ ! Les logiciels pour professionnels ont parfois des fonctions de synthèse
additive, mais celles-ci ne sont pas adaptées pour la synthèse de sons existants; cette fonction
est inutile aux professionnels, qui utilisent préférentiellement la synthèse par modulation, bien
plus pratique à utiliser, et qui donne de bien meilleurs résultats.
En matière de synthèse additive, il existe un super calculateur développé par l'IRCAM
(Institut de Recherche et de Coordination Acoustique/Musique) qui est capable
automatiquement de décomposer un son complexe d'instrument et de le recomposer par
synthèse additive. Mais ce n'est que de la recherche.
Comment créer un logiciel ?
Pour créer ce logiciel, nous avons utilisé un langage de programmation peu connu,
nommé Python. Ce langage a l'avantage d'être jusqu'à 10 fois plus concis qu'un langage
classique (C, C++, Fortran...), plus simple et plus accessible pour un débutant. Il permet, en
outre, de créer des interfaces graphiques complexes (Fenêtres), avec un minimum d'effort.
Nous utilisons aussi la bibliothèque (morceau de programme déjà écrit par quelqu'un
d’autre) Snack, développée par Kåre Sjölander, qui permet, entre autre, de générer les
sinusoïdes, créer les sonagrammes et les Transformées de Fourier rapides. Nous n'avions
« juste » qu'à coller les bouts.
Présentation du logiciel.
En voici deux captures d'écran. Pour des raisons de place, vous trouverez une
description détaillée en Annexe, ainsi qu'une notice d'utilisation.
19
iii) Nos résultats
Nous avons réussi à synthétiser certains sons d'instruments simples comme des flûtes,
par exemple. Par contre, les instruments complexes comme le piano ou le violon sont
particulièrement difficiles à reproduire, et nous n'avons pas obtenu de résultats satisfaisants.
Cela est dû à plusieurs facteurs:
Tout d'abord, il est difficile de reconnaître le son d'un instrument, s'il est dépourvu
d'attaque et d'extinction; ce que notre logiciel ne permet pas de simuler. Lors de l'attaque et de
l'extinction, les harmoniques sont souvent complètement différents de ceux de la zone de
maintien.
Puis le son d'un instrument évolue significativement au cours du temps. Si l'on réalise
la Transformée de Fourier rapide en temps réel, on constate que l'amplitude des harmoniques
est en constante variation. Cela est dû en partie aux parasites du microphone et de la carte son
de l'ordinateur, mais pas uniquement. Des phénomènes de battements entre les harmoniques
apparaissent, créant le timbre du son. De plus, certains parasites (souffle de l'instrumentiste,
frottement de l'archet sur les cordes...) font partie du son. Mais notre analyse les élimine.
En effet, en arrêtant l'enregistrement, nous n'avons qu'une image fixe et instantanée du
son. Mais le son, lui, varie. C'est comme si vous enregistriez la vitesse instantanée d'un
véhicule sur l'autoroute, sur un trajet Paris Marseille et que vous en extrapoliez à partir de la
distance, le temps qu'il a mis (En réalité, il a peut être fait 10 km sur l'autoroute, et fait le reste
du trajet sur une départementale, pour admirer la beauté du paysage). Ainsi, les sons simples,
dont la « vitesse » est régulière seront facilement synthétisables (flûtes..), mais ceux dont la
« vitesse » est très irrégulière (majorité des instruments), ne donneront pas de résultats
satisfaisants, car le logiciel ne tient pas compte de la variation de leur « vitesse » en fonction
du temps.
Mais, comme tout instrument de mesure et de génération de signaux, chaque
générateur de sinusoïde produit aussi du bruit. Ce bruit prend la forme d'harmoniques
supplémentaires, ou encore de bruit de fond très grave, invisible sur la Transformée de
Fourier rapide. Lorsque l'on ajoute deux sinusoïdes, le bruit de fond n'est quasiment pas
audible, il ne gène donc en rien la synthèse. En revanche, lorsque nous dépassons la dizaine
de sinusoïdes, le bruit devient supérieur au signal, et le son obtenu n'a rien de comparable
avec l'instrument d'origine.
Une autre limitation vient de la transformée de Fourier rapide. En effet, le module qui
la génère ne permet pas d'en modifier l'échelle. Ainsi, lorsque l'on décompose un son grave,
les « pics » correspondant aux différents harmoniques sont si proches, qu'ils sont difficilement
discernables. Ainsi, il est très difficile de synthétiser des sons graves...
C'est un ensemble de facteurs indépendants de notre volonté qui a fait que nos
expériences ont plus ou moins échoué. Nous avons appris par la suite, en continuant nos
recherches documentaires, que la synthèse additive est la forme de synthèse qui est de loin la
plus simple sur le principe, mais qu'elle est, en revanche, la plus compliquée à mettre en
pratique. Nous en avons en quelque sorte fait les frais. Mais il faut savoir qu'un son, si bien
recomposé soit-il, n'est jamais aussi beau que le son d'origine.
20
c) La synthèse numérique
i) Principe
La synthèse numérique appelée également « sampling » (échantillonnage) est de nos
jours la synthèse la plus utilisée.
Tout d’abord on numérise un son préalablement enregistré dans une banque de sons.
Un son est une onde périodique dont la valeur varie au cours du temps. Pour la numériser, il
suffit donc de noter les variations de l’onde au cours du temps. La qualité de la numérisation
dépend donc à la fois de la fréquence d’échantillonnage (le nombre de mesures par seconde)
et de la précision de ces mesures.
21
L’oreille humaine pouvant entendre jusqu’à 20 000 Hz, pour éviter l'« aliasing » (les
spectres sonores se recouvrent) il faut que la fréquence d’échantillonnage soit supérieure au
moins à deux fois la fréquence la plus élevée. Une fréquence de 40 000 Hz est donc une
fréquence d’échantillonnage suffisante en musique.
A ce stade on a donc un son numérique : une suite finie de valeurs. Pour écouter ce
son il suffit donc de jouer ces valeurs avec la même fréquence d’échantillonnage, mais le son
s’arrêtera à la fin des valeurs, pour le prolonger il faut le passer en boucle. Il faut donc que le
début et la fin de l’enregistrement puissent s’enchaîner. Il faut qu’il y ait exactement une ou
plusieurs périodes entre le début et la fin de l’enregistrement.
Période à mettre en boucle
Période mise en boucle
22
Si l'on joue ces valeurs avec une fréquence d’échantillonnage plus grande, alors on va
jouer plus de valeurs par seconde, donc le son sera plus aigu, et réciproquement plus grave
avec une fréquence plus petite. On observe que c’est bien ce qui se passe lorsqu’on fait
avance rapide sur un magnétophone, on entend un son plus aigu.
En multipliant la fréquence d’échantillonnage par deux on obtient donc le premièr
harmonique de la note pré enregistrée, c’est à dire la même note à l’octave au-dessus. On peut
donc à partir d’une seule note dans la banque de sons en jouer plusieurs.
L’avantage de cette synthèse est qu'elle conserve les caractères de l’instrument,
autrement dit le timbre. Le son ainsi synthétisé est donc très proche de la réalité.
Pour transposer les valeurs numériques en signal continu, il faut utiliser un CNA
(convertisseur numérique – analogique).
On a constaté précédemment que la puissance d’une note variait au cours du temps
(attaque _ chute _ maintien _ résonnance). Afin d’obtenir une note instrumentale il faut donc
tenir compte de ces variations.
On entre donc dans le convertisseur numérique-analogique (CNA) une fréquence
d’échantillonnage, des valeurs numériques qui permettent d’obtenir une courbe, ainsi que la
table d’amplitude, c’est à dire l’intensité au cours du temps que l’on veut donner au son.
Principe de la synthèse numérique.
23
ii) Notre logiciel
Présentation:
Ce logiciel a un seul but : valider la faisabilité de la synthèse par modulation de
fréquence. Ce logiciel lit en effet un son avec différentes fréquences d'échantillonnage, selon
une table de fréquences pré-calculées.
Au démarrage du logiciel, vous ouvrez un son (format wav (son non compressé))
(capture n°1). Vous avez ensuite accès à une interface (capture n°2) qui vous propose de
transformer votre note en une autre. Ainsi, si vous cliquez sur le bouton « + quinte », le son
monte d'une quinte, c'est à dire que, si vous aviez enregistré un Do, celui-ci sera transformé en
un Sol !
Ce logiciel est en réalité un logiciel de validation d'un projet plus gros,
malheureusement inachevé à cause d'un problème de temps, nommé AzertyPiano. Ce logiciel
visait à transformer un clavier Azerty en un clavier piano, en utilisant un seul échantillon
préalablement enregistré. Il appliquerait, à la différence de TransposeNote, toutes les
méthodes de la synthèse par table d'onde (attaque, bouclage de la zone de maintien,
extinction...). Malheureusement, il nous sera impossible de vous en présenter une version
utilisable.
24
iii) Nos résultats
Ils sont encourageants ! Le son modulé est parfaitement identique à l'original et le son
parfaitement conforme à ce que produit l'instrument ! ( Si l'on omet les parasites )
En revanche, Ce logiciel, contrairement au projet AzertyPiano, n'applique que le
principe de la modulation de fréquence. Le son qui est lu est donc d'autant plus court que la
vitesse de lecture (fréquence d’échantillonnage) est rapide. Il n'applique pas le principe du
bouclage de la zone de maintien, principe de base de la synthèse utilisé par tous les amateurs
et professionnels (système MIDI, entre autre...)
C'est donc une aventure à poursuivre... (Mais il faut bien avouer que nous sommes en
train de refaire ce que d'autre ont déjà fait, mais en bien mieux !)
25
Conclusion
Connaissant la composition d’une note de musique (timbre, harmoniques...), on peut
exploiter ces propriétés, afin de synthétiser des sons d’instruments. Il existe énormément de
formes de synthèse, nous nous sommes intéressés en théorie aux plus simples: la synthèse
additive et la synthèse numérique. C'est un sujet très riche et qui a motivé des équipes entières
de chercheurs pendant des dizaines d'années. Nos résultats ne sont pas à la hauteur d’un
résultat professionnel, mais ils sont néanmoins satisfaisants, comme vous pourrez le constater
en essayant le CD additionnel. Cette forme de musique s’est énormément développée depuis
une vingtaine d'années année avec l'essor des ordinateurs personnels. C'est l'outil de travail
des compositeurs de notre siècle, car elle permet d'avoir un orchestre chez soi, et leur permet
de réaliser très facilement des orchestrations. Des groupes de musique (surtout des musiciens
amateurs) utilisent aussi cette technique pour compenser les instruments qu'il n'ont pas. On
peut se demander si cette forme de musique n'est pas celle dont rêvait Edgar Varèse. (cf page
2) En tout cas, on s'en approche...
26
Annexes:
●
Présentation de Synthèse 0.42
●
Notice d'utilisation de Synthèse 0.42
●
Biographie de Joseph Fourier
●
Code source des programmes Synthèse et TransposeNote
27
28
29
30
31
Biographie de Joseph Fourier
Jean-Baptiste Fourier (qu'on connaît aussi sous le nom de Joseph Fourier) est né le 21
mars 1768 à Auxerre. Il est le douzième des quinze enfants de son père. Alors qu'il n'a que 10
ans, il perd ses parents et est placé à l'école militaire d'Auxerre. Il réalise des études
prometteuses en Français et en latin, mais son intérêt se porte sur les mathématiques. Il lit
notamment les 6 tomes du Cours de mathématiques de Bézout. Il rentre ensuite au séminaire,
mais n'a pas vraiment la vocation et il retourne en 1789 enseigner à son ancienne école à
Auxerre.
En 1794, il est de la première promotion de l'Ecole Normale Supérieure, où ses
professeurs ont pour nom Lagrange, Laplace et Monge. Elève le plus brillant, il profite de cet
excellent entourage pour s'investir beaucoup dans la recherche mathématique. En 1797, il
remplace Lagrange à la chaire d'analyse et de mécanique de l'Ecole Polytechnique, bien qu'il
n'ait pas encore à son actif de découverte majeure.
Napoléon le nomme préfet de l'Isère, en mémoire des services qu'il lui à rendu lors de
la période révolutionnaire, sans que l'on sache si Fourier lui-même désirait ce poste. C'est à
Grenoble que Fourier réalise l'essentiel de ces travaux les plus importants. Son obsession est
le problème de la chaleur, c'est-à-dire l'étude de l'évolution de la température d'un corps au
cours du temps. De 1802 à 1807, il trouve l'équation de la propagation de la chaleur dans les
corps solides, puis trouve une méthode pour la résoudre, ce qui est maintenant l'analyse de
Fourier. Fourier décompose une fonction mathématique unique, mais difficile à décrire
mathématiquement, en une somme infinie de fonctions en sinus et en cosinus. Il est alors plus
facile de décrire au cours du temps l'évolution de chacune de ces fonctions, et de retrouver la
température au temps t en refaisant la somme.
Cette hypothèse audacieuse est contestée par ses contemporains Laplace, Poisson et
Lagrange; ce dernier se lève même en pleine séance de l'Institut des sciences et déclare qu'il
tient pour fausse la théorie de Fourier. Il faut dire que, même pour les critères de rigueur de
l'époque, les conclusions de Fourier étaient hardies. Par exemple, dans un langage moderne,
32
Fourier ne s'intéresse jamais à la convergence de ses séries. Pour les anciens, ce qui les
tracassait était plutôt le phénomène inverse : il leur semblait impossible qu'une superposition,
même infinie, de fonctions continues, puisse donner une fonction discontinue. Malgré ces
réserves, Fourier est primé par l'Institut pour son mémoire en 1812.
En 1817, il est élu à l'Académie des sciences. En 1822, il devient secrétaire de la
section mathématique. A ce poste, il aidera beaucoup de jeunes mathématiciens prometteurs,
dont Dirichlet, Sturm ou Ostrogradsky. Pendant la fin de sa vie, il consacre beaucoup de
temps à préciser ses arguments, et à débattre avec ses contemporains, notamment Biot et
Poisson, qui lui contestent la priorité des découvertes!
D'après: http://www.bibmath.net/bios/index.php3?action=affiche&quoi=fourier
33
Codes sources
Si j'ai tenu à rajouter le code source de mon programme en annexe du dossier, c'est
pour prouver que c'est réellement moi qui ai écrit ce logiciel, en publiant ce code, que le
programmeur est le seul à posséder. C'est aussi pour que vous vous rendiez compte du travail
que cela représente, car il n'y a aucun copier/coller ! Les amateurs de programmation pourront
s'en donner à coeur joie !
Code source de synthèse
#! /usr/bin/env python
# -*- coding:Latin-1 -*#-------------------------------------------------------------------------------------------------#
Synthese v 0,42
#
#
Par Cyrille Pauthenier
#
#
Ce programme permet de reconstituer un son par synthese additive
#
#
Distribué sous la liscence GNU - GPL
#
#--------------------------------------------------------------------------------------------------#Importation des differents modules...
from Tkinter import *
from tkSnack import *
from Wsurf import *
#Classe principale
class main:
'''Classe principale du programme synthese. Elle initialise la fenêtre ainsi que les différents modules'''
def __init__(self):
#Initialisation des variables
global partiel
self.partiel = [ '''p1''', '''p2''', '''p3''', '''p4''', '''p5''', '''p6'''
'''p7''','''p8''','''p9''','''p10''','''p11''','''p12''','''p13''','''p14''','''p15''','''p16''', '''p17''','''p18''', '''p19''','''p20''','''p21''','''p22''','''p23''','''p24''', '''p25''',
'''noise''', '''master''' ]
global maxAmpl
ampl = 300
maxAmpl = 300
partiel = self.partiel
#Initialisation de la fenêtre Tk et de Snack
self.main = Tk()
initializeSnack(self.main)
self.main.title('''Synthese -- Addition de partiaux... ;-)''')
#Initialisation du son snd
self.snd0 = Sound()
self.snd1 = Sound()
#Création du player
main = self.main
self.player = initPlayer(main, self.snd0)
self.player.grid(row = 0, column = 0, columnspan = 3)
#Création du Sonongramme
self.Sonagramme = initSonagramme(self.snd0, self.snd1)
self.Sonagramme.grid(row = 1, column = 0, columnspan = 3)
#Création du contrôle des analyses
self.analyse = initButtonsAnalyse( main , self.snd0, self.snd1)
self.analyse.grid(row = 2, column = 0, columnspan = 3)
34
#Création du fourier
self.fourier = initFourier(self.snd0, main ,self.snd1)
self.fourier.grid( row = 0, column = 3, columnspan = 4, rowspan = 3)
#Création du widget Master
self.partiel[25] = initMaster(self.snd0)
self.partiel[25].grid(row = 3, column = 0, rowspan = 2)
#Création du widget Noise
self.partiel[24] = initNoise(self.snd0)
self.partiel[24].grid(row = 5, column = 0, rowspan = 2)
#Création des widget des partiaux
self.interval = [ 'Octave', 'Tierce', 'Quinte', 'Septieme' ]
for j in range( 4 ) :
for i in range( 6 ):
part = self.partiel[i + ( j * 6 )]
self.partiel[ i + ( j * 6 )] = initScaleBox ( partiel = part, nbPartiel = i + 1, interval =
self.interval[j] )
self.partiel[i + ( j * 6 )].grid( row= j + 3, column = i+1 )
#Création des bouttons qui jouent les differents partiaux
self.bouttons = initPlayPartiel(self.snd0)
self.bouttons.grid(row = 7, column = 0, columnspan = 7 )
#Fin de la fenêtre
self.main.mainloop()
class initPlayer(Frame):
'''Création du lecteur/enregistreur de l'interface'''
def __init__(self, main, snd, parent=None, sound=None, *args, **kw):
Frame.__init__(self)
#Déclaration des variables
self.main = main
self.sound = snd
self.main.tk.eval('package require -exact wsurf 1.8')
#appel du player Wsurf
global ws
ws = Wsurf(self.main,title='Player',configuration='')
ws.grid(row = 0, column = 0, columnspan = 3)
class initMaster(Frame):
'''Création du widget Master'''
def __init__(self, snd):
Frame.__init__(self)
#Création du scale Master
self.masterlb = Label(self, text = 'Master' )
self.masterlb.grid( row = 0 )
master = Scale(self, from_=1760, to=220,length=150, command= self.config)
master.grid( row = 1 )
master.set(440.0)
def config (self, masterFreq):
for i in range ( 4 ):
interval = [ 0, 5, 7, 10 ]
octaveFreq = int(masterFreq)*(1.059463094)**interval[i]
for j in range ( 6 ):
partiel[j + ( i * 6 )].s1.delete(0, END)
partiel[j + ( i * 6 )].s1.insert(0, int(octaveFreq * 2 ** j))
partiel[j + ( i * 6 )].config()
class initNoise(Frame):
'''Création du widget Noise'''
def __init__(self, snd):
Frame.__init__(self)
#Initialisation des variables
self.chk = IntVar()
35
#Initialisation du son
self.snd = Sound()
self.filt = Filter('generator', 440.0)
#Création du widget Noise
Checkbutton(self, text = '''Bruit Blanc''', variable = self.chk, command = self.config).grid(row = 2)
Scale(self, from_=32767, to=0, length=150, command= self.noise).grid( row = 3)
def noise(self, ampl):
type = "noise"
shape = 0.0
self.filt.configure(440, ampl, shape, type, -1)
class initPlayPartiel(Frame):
'''Création de la classe qui interroge les paramètres de chacun des curseurs, et joue les partiels adéquates'''
def __init__(self, _snd):
Frame.__init__(self)
#Création des bouttons du joueur de partiel
Button(self, bitmap='snackPlay', command=self.play).grid(row=0,column = 0, sticky= E)
Button(self, bitmap='snackStop', command=self.stop).grid(row=0,column = 1, sticky= W)
def play(self):
#Joue les differents partiaux
for i in range ( 25 ):
partiel[i].snd.stop()
if partiel[i].chk.get():
partiel[i].snd.play(filter=partiel[i].filt)
def stop(self):
#Arrête de jouer les differents partiaux
for i in range ( 25 ):
partiel[i].snd.stop()
class initSonagramme(Frame):
'''Création du Widget Sonagramme'''
def __init__(self, snd0, snd1):
Frame.__init__(self)
#Déclaration des variables
self.snd0 = snd0
#Création du Sonagramme
self.c = SnackCanvas(self, height=150, width=400, bg='black')
self.c.pack()
self.c.create_spectrogram(1,1,sound=self.snd0, width=400,height=150, pixelspersec=200)
class initButtonsAnalyse(Frame):
'''Création des bouttons qui jouent et enregistrent'''
def __init__(self, main, snd0, snd1):
Frame.__init__(self)
self.sndSwitch = 0
self.main = main
self.snd0 = snd0
self.snd1 = snd1
self.pack()
Tkinter.Button(self, image='snackOpen', command=self.load).pack(side='left')
Tkinter.Button(self, image='snackSave', command=self.save).pack(side='left')
Tkinter.Button(self, bitmap='snackPlay', command=self.play).pack(side='left')
Tkinter.Button(self, bitmap='snackRecord', fg='red',command=self.record).pack(side='left')
Tkinter.Button(self, bitmap='snackStop', command=self.stop).pack(side='left')
Tkinter.Button(self, text='''FFT''', command = self.gigantF).pack(side = 'left')
Tkinter.Button(self, text='''Set 100%''', command = self.percent).pack(side = 'left')
self.consReinit = Tkinter.Button(self, text='''Switcher -> Son2''', command = self.preserve)
self.consReinit.pack(side = 'left')
def preserve(self):
if self.sndSwitch == 0:
self.sndSwitch = 1
self.consReinit.configure( text = '''Switcher -> Son1''' )
else:
self.sndSwitch = 0
self.consReinit.configure( text = '''Switcher -> Son2''' )
36
def percent(self):
if self.test():
global maxAmpl
maxAmpl = pxy
print 'new maxAmpl', maxAmpl
def test(self):
try:
_pxy = pxy
return 1
except:
return 0
def gigantF(self):
#Lance le fourier geant
fourierGeant = gigantFourier(self.main, self.snd0, self.snd1)
def save(self):
#Enregistre le son dans un fichier wav
file = self.main.tk.call('eval', 'snack::getSaveFile')
if self.sndSwitch == 0:
self.snd0.write(file)
else:
self.snd1.write(file)
def load(self):
#Charge le fichier son
file = self.main.tk.call('eval', 'snack::getOpenFile')
self.snd0.read(file, progress='snack::progressCallback')
ws.openFile(file)
def play(self):
#Joue le son
if self.sndSwitch == 0:
self.snd0.play()
else:
self.snd1.play()
def stop(self):
#Stop l'enregistrement du son
ws.stop()
self.snd0.stop()
self.snd1.stop()
def record(self):
#Lance l'enregistrement du son
if self.sndSwitch == 0:
self.snd0.record()
else:
self.snd1.record()
class gigantFourier:
def __init__(self, main, snd0, snd1):
#Initialisation des variables
self.main = main
self.snd0 = snd0
self.snd1 = snd1
#Configuration de la fenêtre du fourier
self.fourier = Toplevel(self.main)
#quitter et set 100%
Button(self.fourier, text='Fermer', command=self.fourier.destroy).grid(row=0, columnspan = 2, column = 0, sticky=W)
Button(self.fourier, text='''Set 100%''', command = self.percent).grid(row=0, columnspan = 2, column = 1, sticky=E)
#Création du canvas snack et des transformées de fourier
self.fourierGeant = SnackCanvas(self.fourier, height=600, width=800)
self.fourierGeant.create_section(0, 0, sound=self.snd0, start=6000, end=6100, height=600, width=800)
self.fourierGeant.create_section(0, 0, sound=self.snd1, start=6000, end=6100, height=600, width=800)
#initialisation du scruteur d'évenement
self.fourierGeant.bind('<Button 1 >', self.pointeur )
37
#Initialisation des lignes et du texte
self.fourierGeant.line2 = self.fourierGeant.create_line(0,0,0,0,fill = 'green')
self.fourierGeant.line1 = self.fourierGeant.create_line(0,0,0,0, fill = 'blue')
self.fourierGeant.create_text(( 400 , 10 ), text = 'Cliquez sur le graphe')
self.fourierGeant.grid(row=1, columnspan = 2, column = 0)
def pointeur(self, event):
#Formules mathématiques qui font l'échelle des curseurs
global hz, pxy
hz = event.x * 10
pxy = 600 - event.y
ampl = (600-event.y)*100/ maxAmpl
#Affiche le message
self.message = '''Fréquence : ''' + str(hz) + ' Hz; Amplitude : ' + str(ampl) + ''' %'''
self.fourierGeant.coords(self.fourierGeant.line1, event.x,25, event.x, 600)
self.fourierGeant.coords(self.fourierGeant.line2, 0,event.y,800,event.y)
#Place le rectangle dans lequel est écrit le texte
self.fourierGeant.rect = self.fourierGeant.create_rectangle(200,1,600,20,fill='white')
self.fourierGeant.text = self.fourierGeant.create_text(
( 400 , 10 ), text = self.message)
def percent(self):
if self.test():
global maxAmpl
maxAmpl = pxy
print 'new maxAmpl', maxAmpl
class initFourier(Frame):
'''Création du petit graphe Fourier'''
def __init__(self, snd0, main, snd1):
#Configuration de l'héritage
Frame.__init__(self)
#Initialisation des variables
self.snd0 = snd0
self.snd1 = snd1
self.main = main
#Création du Canvas avec Fourier
self.canvas = SnackCanvas(self, height=300, width=500, bg = 'light grey')
self.canvas.create_section(0, 0, sound=self.snd0, start=6000, end=6100, height=300, width=500)
self.canvas.create_section(0, 0, sound=self.snd1, start=6000, end=6100, height=300, width=500)
#Texte par défault
self.message = 'Cliquez sur le graphe'
#initialisation du scruteur d'évenement
self.canvas.bind('<Button 1 >', self.pointeur )
#Initialisation des lignes et du texte
self.line2 = self.canvas.create_line(0,0,0,0,fill = 'green')
self.line1 = self.canvas.create_line(0,0,0,0, fill = 'blue')
self.text = self.canvas.create_text( ( 250 , 10 ), text = self.message)
#Pack
self.canvas.pack()
def pointeur(self, event):
#Formules mathématiques qui font l'échelle des curseurs
global hz, pxy
hz = event.x * 16
pxy = 300 - event.y
ampl = (300-event.y)*100/ maxAmpl
#Affiche le message
self.message = '''Fréquence : ''' + str(hz) + ' Hz; Amplitude : ' + str(ampl) + ''' %'''
self.canvas.coords(self.line1, event.x,25, event.x, 300)
self.canvas.coords(self.line2, 0,event.y,500,event.y)
#Place le rectangle dans lequel est écrit le texte
self.rect = self.canvas.create_rectangle(100,1,400,20,fill='white')
38
self.text = self.canvas.create_text( ( 250 , 10 ), text = self.message)
class initScaleBox(Frame):
'''Initialisation de la frame des deux curseurs'''
def __init__(self, partiel = 'p1', nbPartiel = 1, interval = 'Octave' ):
Frame.__init__(self)
#Initialisations des variables
self.chk = IntVar()
self.partiel = partiel
#Initialisation du son
self.snd = Sound()
self.filt = Filter('generator', 440.0)
#Initialisation de l'entête
Label(self, text = nbPartiel ).grid(row=0, column = 1)
Checkbutton(self, text = interval+''' n°''', variable = self.chk, command = self.config).grid(row = 0, column = 0)
#initialisation du champs d'entré n°1
self.s1 = Entry(self,width=14)
self.s1.bind('<Return>', self.validate)
self.s1.grid(row=2, column = 0, columnspan=2, padx = 15)
#initialisation du champs d'entré n°2
self.s2 = Entry(self,width=14)
self.s2.bind('<Return>', self.validate)
self.s2.grid(row=3, column = 0, columnspan=2, padx = 15)
#Création du boutton valider
self.boutton = Button(self, text='valider', command=self.validate)
self.boutton.grid(row=4, column=0, columnspan=2)
#Initialisation du volume de la sinusoïde par défault
self.s2.insert(0, 20000)
def config(self,a = -1):
#Configuration de la sinusoïde
type = "sine"
shape = 0.0
if a == -1:
self.play = 0
self.filt.configure(self.s1.get(), self.s2.get(), shape, type, -1)
def validate(self):
#valide les modification au widget s1 et s2
if self.s1.get() > 20000 and self.s2.get() > 30000:
self.config()
else:
self.s1.delete(0, END)
self.s2.delete(0, END)
self.s1.insert(0, 440.0)
self.s2.insert(0, 20000)
#--------------------------------------------------------------------------------------------------#
Si le programme est éxécuté seul...
#--------------------------------------------------------------------------------------------------if __name__ == '__main__':
a = main()
Code source de TranposeNote:
#! /usr/bin/env python
# -*- coding:Latin-1 -*import sys, os, time
from Tkinter import *
from tkSnack import *
def autrenom():
39
son.configure( frequency = bitrate[0] )
son.play(filter=map1)
def dt1():
son.configure( frequency = bitrate[1] )
son.play(filter=map1)
def dt2():
son.configure( frequency = bitrate[2] )
son.play(filter=map1)
def dt3():
son.configure( frequency = bitrate[3] )
son.play(filter=map1)
def dt4():
son.configure( frequency = bitrate[4] )
son.play(filter=map1)
def dt5():
son.configure( frequency = bitrate[5] )
son.play(filter=map1)
def dt6():
son.configure( frequency = bitrate[6] )
son.play(filter=map1)
def dt7():
son.configure( frequency = bitrate[7] )
son.play(filter=map1)
def dt8():
son.configure( frequency = bitrate[8] )
son.play(filter=map1)
def dt9():
son.configure( frequency = bitrate[9] )
son.play(filter=map1)
def dt10():
son.configure( frequency = bitrate[10] )
son.play(filter=map1)
def dt11():
son.configure( frequency = bitrate[11] )
son.play(filter=map1)
def dt12():
son.configure( frequency = bitrate[12] )
son.play(filter=map1)
root = Tk()
root.title('Transposition de son par modulation de fréquence')
initializeSnack(root)
filename = root.tk.call('eval', 'snack::getOpenFile')
son = Sound()
map1 = Filter('map', 1.0)
son.config(file=filename)
b1 = Button(root, text='''Hauteur normale''', command = autrenom)
b1.pack(side = 'bottom')
Button(root, text='+ Seconde mineure', command = dt1).pack(side = 'bottom')
Button(root, text='+ Seconde Majeure', command = dt2).pack(side = 'bottom')
Button(root, text='+ tierce mineure', command = dt3).pack(side = 'bottom')
Button(root, text='+ tierce Majeure', command = dt4).pack(side = 'bottom')
Button(root, text='+ quarte', command = dt5).pack(side = 'bottom')
Button(root, text='+ quarte augmentée', command = dt6).pack(side = 'bottom')
Button(root, text='+ quinte', command = dt7).pack(side = 'bottom')
Button(root, text='+ quinte augmentée', command = dt8).pack(side = 'bottom')
Button(root, text='+ sixte augmentée', command = dt9).pack(side = 'bottom')
Button(root, text='+ semptième mineure', command = dt10).pack(side = 'bottom')
Button(root, text='+ septième Majeure', command = dt11).pack(side = 'bottom')
Button(root, text='+ octave', command = dt12).pack(side = 'bottom')
bitrate = [ 44100, 46722, 49500, 52444, 55562, 58866, 62366, 66075, 70040, 74166, 78576, 83249, 88200 ]
root.mainloop()
40
Bibliographie
Pour la réalisation de ce TPE, nous avons utilisé de nombreux ouvrages et sites
internet. En voici les références:
●
L'audionumérique de Curtis Road édition Dunod
( une bible de 700 pages sur la synthèse sonore faite par un pionnier de la
Musique Assisté par Ordinateur, MAO )
●
Le son musical de John Piece édition Pour la science, Belin
AudioFanzine ( le site de référence pour les musicien qui font de la MAO )
Nous avons utilisé de nombreux dossiers référencés sur cette page:
http://fr.audiofanzine.com/apprendre/dossiers/
le site de l'INRP ( Institut National de Recherche Pédagogique )
http://www.inrp.fr/Acces/JIPSP/phymus/m_techni/synthfm/synthfm.htm
●
Un site sur la Transformée de Fourier
http://perso.wanadoo.fr/f6crp/elec/ca/fourier.htm
●
Des sites sur la synthèse musicale
http://perso.wanadoo.fr/b.leconte/sylvain/differenttype.htm
http://www.macmusic.org/articles/view.php/lang/FR/id/22/
?vRmtQjpAznOhMaS=1
41
Synthèses personnelles
●
Synthèse personnelle de Julie Schuhmacher
●
Synthèse personnelle de Thibaut Bardon
●
Synthèse personnelle de Cyrille Pauthenier
●
Synthèse personnelle de Thibault Péra
42
Synthèse personnelle de Julie Schuhmacher
Réussir à synthétiser un son implique de connaître sa composition. C’est pourquoi
nous avons jugé essentiel de commencer par cette partie. Le timbre, la répartition des
harmoniques ainsi que les caractères acoustiques du son sont les critères que nous devions
prendre en compte pour tenter de synthétiser un son. Et bien sûr en deuxième partie nous
avons abordé la synthèse en elle-même.
Pour nous aider, nous sommes allés à la cité des sciences.
Il y a différentes façons de synthétiser un son et nous avons choisi la synthèse additive
et la synthèse numérique qui nous paraissaient les plus abordables pour notre niveau. La
synthèse additive permet donc d’ajouter plusieurs harmoniques qui composent un son et nous
avons réussi à reproduire un son de flûte traversière grâce a quatre d’entre elles. L’ajout
d’autres harmoniques aurait peut être altéré ce son à cause des frottements.
La synthèse numérique quant à elle fonctionne grâce à un table d’amplitude (ce qui
représente l’intensité que l’on veut donner au son pendant la temps que durera la note) d’une
table d’onde et d’une fréquence d’échantillonnage.
Nous n’avons pas fait d’expérience de ce genre puisque nous n’avions pas le matériel
nécessaire, mais par contre nous avons testé cette synthèse grâce à un magnétophone qui, avec
le bouton marche rapide, reproduisait l’effet de changement de la fréquence
d’échantillonnage.
La synthèse d’un son n’est pas une chose facile. Aussi je trouve que nos résultats, bien
que moyens, sont plutôt satisfaisants.
Etant musicienne, j’avais déjà quelques connaissances sur ce sujet et c’est en partie
pour cela que ce thème me semblait intéressant à aborder .C’est aussi pourquoi j’avais
proposé comme thème assez large la musique. Ces connaissances nous ont permis d’éviter
quelques recherches qui auraient pu être longues, comme les différents types d’instruments (à
cordes frappées pincées…), mais nous avons quand même dû chercher des informations sur le
théorème de Fourier et sur les différentes synthèses. De plus pour les premières expériences
sur les sonagrammes nous avions à disposition ma flûte traversière permettant d’avoir des
échantillons de bonne qualité plutôt que d’avoir à utiliser des échantillons pris sur internet.
L’oreille musicale nous a aussi aidés lors de la recherche des fréquences et pour essayer de
vérifier si un des sons d’origine était le même que celui synthétisé. N’ayant pas de
connaissances suffisantes en programmation je n’ai pas pu aider à sa réalisation mais par
contre j’ai pu m'investir dans la synthèse elle-même.
43
Synthèse personnelle de Thibaut Bardon
Le groupe étant constitué de deux musiciens, ils ont tout naturellement voulu travailler
sur le son. Nous avons donc décidé de trouver comment synthétiser une note de musique.
Pour cela on a tout d’abord cherché à analyser une note de musique, à définir les variations
entre différents instruments, et enfin à synthétiser des notes de musique.
A l’aide d’un dispositif comprenant un GBF (générateur de basse fréquence), un
oscilloscope, une enceinte, un microphone, une flûte et un accordeur électronique, nous avons
déterminé la fréquence correspondant à chaque note. J’ai ensuite à l’aide d’un graphique des
valeurs,déterminé la loi mathématique reliant toutes ces fréquences : il faut multiplier une
fréquence par 21/12 pour obtenir la fréquence du demi-ton supérieur.
A l’aide d’un outil logiciel de transformée de Fourier rapide (FFT), nous avons obtenu
le spectre de quelques notes de flûte traversière, le spectre montre en abscisse les fréquences
et en ordonnée l’amplitude de ces fréquences. Nous avons observé plusieurs « pics »: le
« pic » le plus important qui correspond à la fréquence fondamentale de la note jouée et
d’autres « pics » qui sont des multiples entiers de la fréquence fondamentale appelés
harmoniques. Nous avons comparé les sonagrammes de différents instruments photographiés
à la cité des sciences de LaVillette : l’intensité des différents harmoniques et le moment où
ces harmoniques apparaissent ainsi que leur évolution au cours du temps, différents pour
chaque instrument. C’est cela qu’on appelle le timbre, chaque instrument a donc son propre
timbre qui le caractérise.
Nous avons ensuite synthétisé des sons par synthèse additive. Théoriquement il s’agit
de la forme de synthèse la plus simple. Elle se base sur la réciproque du théorème de Fourier
(« tout signal périodique complexe peut être décomposé en une somme de signaux
périodiques simples»). La synthèse additive est donc l’application de cette réciproque
puisqu’elle se propose d’additionner plusieurs sinusoïdes simples pour obtenir un son
complexe.
J’ai donc passé les 6 dernières séances à essayer de synthétiser des sons à l’aide de
notre logiciel Synthèse (Je n’ai pas participé directement à l’écriture du logiciel mais j'y ai
contribué en proposant des idées comme la possibilité de superposer 2 FFT ou bien les
champs d’entrées). Le logiciel joue le rôle de 24 GBF permettant ainsi de jouer ensemble
jusqu’à 24 sinusoïdes dont je peux choisir la fréquence et l’amplitude. Les formules
permettant de calculer les amplitudes de ces fréquences étant beaucoup trop compliquées pour
moi, j’ai essayé de « calquer » la FFT du son d’origine en y superposant la FFT du son que
j’essaye de synthétiser. Les pixels de l’écran limitant la précision des mesures de fréquences
et d’amplitudes, mes résultats sont plus ou moins proches du son de base mais jamais de très
bonne qualité.
Malgré notre déception, nous avons décidé de tenter de nouvelles expériences avec
une toute autre forme de synthèse sonore : la synthèse numérique. Celle-ci numérise d’abord
un son, c’est à dire qu’elle transforme l’onde périodique en une somme finie de valeurs. Pour
cela on note les valeurs que prend l’onde sonore durant une période : c’est l’échantillonnage.
Le nombre de mesures prises par seconde correspond à la fréquence d’échantillonnage et la
durée entre deux mesures la période d’échantillonnage. La fréquence d’échantillonnage doit
être au moins égale à deux fois la fréquence la plus grande. Si on fait varier cette fréquence
44
d’échantillonnage lors de la relecture des échantillons, on modifie la hauteur du son. Par
exemple en multipliant par deux la fréquence d’échantillonnage à la relecture d’un « la »,
j’obtiens ce même « la » à l’octave au dessus, donc plus aigu. C’est ce phénomène qu’on peut
observer lors d’une « avance rapide » sur un magnétophone, on joue la même bande qu’en
« lecture » mais le son est plus aigu et plus court. C’est l’inconvénient de cette synthèse, plus
on augmente la fréquence d’échantillonnage, plus le son est court. Mais on peut y remédier en
passant le son en boucle. L’avantage certain de cette synthèse est qu’elle conserve toutes les
caractéristiques de l’instrument (le timbre).
Nous avons expérimenté cette forme de synthèse à l’aide de notre logiciel
TransposeNote. Les résultats obtenus sont très encourageants et correspondent aux sons que
l’instrument aurait produit. Lors de mes recherches j’ai appris que cette forme de synthèse
était celle utilisée par les pianos électroniques (synthétiseurs).
Ainsi nous avons appris qu’un son dépendait de beaucoup de paramètres
(harmoniques, timbre de l’instrument…), dont nous avons tenu compte lors de nos synthèses.
Nous avons donc atteint l’objectif que nous nous étions fixé de synthétiser des notes de
musique.
La synthèse musicale s’est énormément développée à cause des nombreuses
possibilités qu’elle offre, comme la création d’orchestres ou l’expérimentation numérique de
nouveaux instruments avant de les réaliser. Notre prochain objectif sera donc de créer de
toutes pièces un synthétiseur.
45
Synthèse personnelle de Cyrille Pauthenier
La synthèse musicale est une discipline qui m'a toujours passionné. En effet, j'ai essayé, il y a deux ans,
de me mettre à la MAO, Musique Assisté par Ordinateur. En effet, je suis claveciniste et pianiste de jazz. Il est
difficile d'avoir tout les jours un accompagnement. J'ai donc exploré la voie de la musique numérique. C'est une
discipline passionnante. Comme, dans l'équipe, il y a des musiciens, j'ai proposé ce sujet. Comment synthétiser
un son ? Tout d'abord, nous étudierons comment est construite une note de musique, puis nous essayerons
d'exploiter ces propriétés afin de la synthétiser...
La répartition des notes et des fréquences ne se fait pas de manière linéaire comme on pourrait le croire.
Nous avons donc fait une expérience qui nous a fourni un graphe dont on a déduit, à l'aide d'une démonstration
mathématique, la formule qui décrit l'évolution de la la fréquence en fonction de la note:
f(x) = ω ( 21/12 ) n
ou ω est la fréquence de la note fondamentale ( en musique on se base sur le La 440 Hz ) et n le numéro
de la note en prenant pour zéro la note prise pour fondamentale ( Ainsi le n de Do = 4 si on prend pour référence
ω = 440 Hz de n de La = 0 )
Lorsqu'on décompose ( voir plus loin, la FFT ) un son, on observe qu'il est composé de nombreuses
sinusoïdes. En musique, on parle d'harmonique, en mathématiques de partiels. Chaque harmonique est multiple
de la fondamentale ( hauteur principale du son ). Ce qui donne ( si la fondamentale est un la 440 Hz ): La (440
Hz), La (une octave au dessus) ( 880 Hz ), Mi ( 1320 Hz ), La ( 1760 Hz ), Do ( 2200 Hz ), Mi ( 2640 Hz ), La
( 3520 Hz ).
Chaque instrument, pour une même note possède donc les harmoniques ( de manière théorique ). Qu'est
ce qui fait donc la différence entre le son d'une clarinette et celui d'un piano ? C'est, en réalité l'amplitude de
chacun de ces harmoniques qui fait cette différence de son, propre à chaque instrument. On appelle cette
caractéristique le timbre de l'instrument. Nous avons vérifié cela grâce à des expériences...
Avant de continuer notre exposé, il faut définir certains termes. L'attaque est le début de la note, lorsque
le marteau frappe la corde, l'instrumentiste souffle. Le maintient est le moment où l'instrument atteint sa « vitesse
de croisière ». L'extinction est le moment où le son de l'instrument disparaît, que l'étouffoir étouffe la corde ou
que l'instrumentiste arrête de souffler. Les battements sont un phénomène acoustique qui apparaît lorsque deux
fréquences très proche “frottent”, ce qui entraîne des discontinuités dans le son obtenu.
Afin de comprendre la constructions d'un son, nous utilisons trois types d'outils. Tout d'abord,
l'oscillogramme permet d'avoir une représentation graphique de l'onde sonore. On constate deux choses: en
premier lieu l'oscillogramme est différent d'un instrument à l'autre, et évolue au cour du temps. Deuxièmement,
c'est une onde périodique. Il existe donc peut être une fonction mathématique pour la la décrire.
Le deuxième outil est l'application de cette constatation. Il est l'oeuvre d'un mathématicien français
nommé Joseph Fourier qui énonça un théorème fort intéressant: “ toute onde périodique peut être décomposée
en une somme de sinusoïdes ”. Ses travaux ont été modifiés afin d'adapter ce théorème au son: C'est la
Transformée de Fourier rapide. ( FFT en anglais ). Elle nous fournit un graphe où chaque sommet de “pic”
représente une sinusoïde. On y lit en abscisse la fréquence ( en Hertz ) et en ordonné l'amplitude ( en unité
arbitraire ).
Le troisième outil découle du deuxième. Il se nomme Sonagramme ( ou spectrogramme ). L'amplitude
des harmoniques évoluent au cour du temps, ce que ne permet pas de rendre la transformée de Fourier rapide, qui
fixe une image du son à un instant T. A l'usage des musiciens à été créé le sonagramme. Dans ce graphe, le
temps est en abscisse et la fréquence en ordonnée. L'amplitude de l'harmonique est marquée par l'épaisseur et la
noirceur du trait qui la représente. Cet outil est plus pratique à utiliser, donne une bonne image de l'évolution du
son, mais il est beaucoup moins précis en terme de mesure.
Dans cette grande partie, ma contribution au TPE est essentiellement de la recherche documentaire,
ainsi que la proposition des deux expériences sur les notes et les fréquences, ainsi que sur les battements. Mais je
n'étais pas seul ! Cette recherche à fortement contribué à la réflexion de la deuxième partie, et m'a été
indispensable pour la réalisation des deux logiciels.
46
Il existe énormément de formes de synthèse sonores. nous en avons retenu 5 grandes familles:
La synthèse additive, que nous avons étudiée, et dont on aura la définition plus tard; la synthèse
soustractive, qui consiste à prendre un son très riche en harmonique et à enlever successivement les inutiles
grâce à une série de filtres “passe-bas”; la synthèse granulaire, qui consiste à ajouter des “grains sonores”, afin
de recomposer le son; la synthèse par modulation de fréquence d'échantillonnage et par table d'onde, dont on
aura une définition plus tard et la synthèse par modèles physiques, qui consiste à simuler l'ensemble de
l'instrument pour en déduire le son produit.
La synthèse additive est en quelque sorte la réciproque du théorème de Fourier. Si un son peut être
décomposé en une somme de sinusoïde, alors une somme de sinusoïde peut recomposer un son. C'est très simple
sur le principe mais en réalité, c'est l'une des formes le plus compliquées à mettre en oeuvre ! Pour tester cette
forme de Synthèse j'ai créé un logiciel capable de décomposer un son, munis de 24 oscillateur numériques
paramétrables, pour le recomposer.
Pourquoi avoir développé un logiciel ? Tout simplement parce qu'il n'en existe pas sur le “marché” qui
font de la “synthèse additive”. Si j'ai développé seul ce logiciel, les autres m'ont été d'une grande aide. En effet,
je n'ai pratiquement jamais manipulé ce logiciel, et ne faisais que les vérifications nécessaires au débugguage. Ce
sont mes coéquipiers qui m'ont fait part de leurs idées (superposition des graphes, champs d'entrée aux lieux de
curseurs). Le développement d'une telle application à été fait en Python, un langage que je maîtrise, et à pris
environ 100 heures (c'est une estimation raisonnable...).
Les résultats ne sont pas excellents: nous avons réussi à recomposer des sons simples comme des
flûtes, mais nous n'avons pas obtenu des résultats satisfaisants pour les instruments possédants de nombreux
harmoniques qui battent, et dont le son évolue de manière significative au cours du temps. Les raisons de ce
demi-échec sont principalement celles-ci : la FFT nous fournit une image fixe du son, notre logiciel n'en fixe pas
toutes les subtilités, et de nombreux fréquences parasites viennent gêner la synthèse...
La synthèse par modulation de la fréquence d'échantillonnage et par table d'onde est une forme de
synthèse qui exploite les fabuleuses propriétés de la musique numérique. L'ordinateur ne peut pas stocker une
onde sous sa forme brute. Il est obligé de recourir à un découpage du signal. Il enregistre à une fréquence
régulière appelée fréquence d'échantillonnage l'amplitude de l'onde sonore, et l'on stocke ces mesures dans une
mémoire. Cette opération est assurée par le CAN ( Convertisseur Analogique Numérique ). La transformation de
cette “onde numérique” en une onde sonore est assuré par le CNA ( Convertisseur Numérique Analogique ).
Celui ci lit les échantillons à la fréquence d'échantillonnage utilisée pour l'enregistrement et lisse le signal.
L'intérêt de cette forme de synthèse est qu'elle permet de synthétiser toutes les notes d'instrument à partir d'un
seul échantillon, en jouant sur sa relecture. Si on applique à la fréquence d'échantillonnage la formule démontrée
1/12 n
précédemment (f(x) = ω ( 2
) ), on peut obtenir n'importe quelle note à partir d'un seul enregistrement.
Mais modifier la hauteur ne suffit pas, il faut aussi modifier la longueur de la note. Pour cela, on
découpe l'échantillon en 3 parties, qu'on lit successivement: premièrement l'attaque, puis une petite portion de la
zone de maintien est lue en boucle puis, l'extinction. On applique aussi une enveloppe d'amplitude pour simuler
l'évolution de l'instrument qui décroît parfois au cour du temps... C'est ainsi que l'on procède pour 99% de la
musique synthétique !
Pour expérimenter cette forme de synthèse, j'ai rapidement mis au point un petit programme nommé
TransposeNote qui permet de lire un échantillon à des fréquences d'échantillonnages différentes selon des tables
pré-calculés. Pour ce logiciel, j'ai utilisé les mêmes méthodes de programmation et les mêmes modules que pour
le précédent: Synthèse. Ce logiciel est en fait une étape de test d'un programme plus important nommé
AzertyPiano, qui n'a pas vu le jour, faute de temps.
Les résultats obtenus sont encourageants ! En effet le son modulé et parfaitement conforme au son que
produirait l'instrument. Mais ce logiciel n'applique pas le principe de bouclage de la table d'onde ni de la
modulation d'amplitude comme aurait du le faire AzertyPiano.
Ainsi, nous avons pu voir qu'il existait de nombreuses façon de synthétiser un son, et combien
c'est une discipline compliquée. On comprend pourquoi l'essor de cette forme de musique n'a réellement
commencé qu'à partir des années 90, avec le développement des ordinateurs personnels. Mais la synthèse
numérique est devenue un outil indispensable au compositeur et au musicien moderne. Ce TPE m'a permis
d'approfondir mes connaissances en ce domaine, et je m'y suis profondément investi, par la programmation mais
aussi par la recherche documentaire. Mon ambition est de devenir chercheur en physique, et on peut dire que le
TPE m'a fournit un cadre pour mes premières expériences...
47
Synthèse personnelle de Thibault Péra
Ce n’est pas moi qui ai eu l’idée du sujet mais lorsque nous avons commencé à nous y
intéresser, j’ai tout de suite su qu’il allait me plaire. Avant le commencement de ce TPE, mes
compétences en musique étaient très réduites et je ne connaissais ni la signification d’une
octave ni d’un harmonique. Finalement après que les membres de mon groupe m’aient
expliqué les bases de la musique, j’ai pu pleinement comprendre ce que nous allions faire.
Notre problématique était de savoir comment synthétiser une note de musique.
Ainsi on va voir synthétiquement l’activité du groupe durant ces semaines de travail et tenter
de répondre dans la conclusion à la problématique posée.
On a commencé par analyser la fréquence de chaque note de la gamme pour
déterminer s’il y avait un lien entre elles. Les harmoniques font aussi partie d’un son. En effet
chaque note possède ses harmoniques. On a expliqué la notion de timbre puis observé des
sonagrammes.
A partir de cela, je peux maintenant comprendre comment marchent les pianos
électriques par exemple.
Nous avons étudié différentes méthodes de la synthèse sonore, la synthèse
soustractive, la synthèse granulaire, la synthèse par modulation et la synthèse par modèle
physique.
Nous arrivons ensuite à la partie du travail dont j'étais chargé. Lors des séances, ma
principale activité a été de synthétiser des sons préalablement enregistrés grâce à la méthode
de la synthèse additive et nous avons pu constater que ce n’était pas chose facile. C’est ainsi
que j’ai rédigé cette partie en m’aidant principalement du théorème de Fourier et de sa
réciproque. Pour moi, c’est un point important de ce TPE puisque de là on s’intéresse à la
synthèse d’un son. Cette fois-ci, j’ai pu m’appuyer sur les résultats de nos expériences pour
améliorer cette partie. En effet nos expériences m’ont permis de constater que l’on pouvait
reformer des sons uniquement en ajoutant des sinusoïdes simples.
Ensuite un des membres de l'équipe s’est chargé de la partie sur la synthèse
numérique.
En conclusion je peux dire que ce TPE m’a permis de voir différemment les sons que
j’entendais. Je connais maintenant plus en détails les bases de la musique numérique. Ainsi je
peux répondre à la problématique et dire qu’il y a beaucoup de formes de synthèse sonore,
dont celle que nous avons étudiée. Pour synthétiser une note de musique, il faut tout d’abord
connaître comment elle est construite et choisir la meilleure méthode de synthèse à utiliser
(additive, soustractive, granulaire, modèle physique, modulation…)
48