analyse et synthèse numérique d une note de...

24
ANALYSE ET SYNTHÈSE NUMÉRIQUE DES HARMONIQUES D’UNE NOTE DE MUSIQUE par Nicolas Bajeux, Jaona Ramahaleo & Maxime Rihouey À l’attention de MM. Joël Le Roux et Jean-Paul Stromboni.

Upload: vuongdiep

Post on 27-Aug-2018

257 views

Category:

Documents


13 download

TRANSCRIPT

Page 1: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

ANALYSE ET SYNTHÈSE NUMÉRIQUE DESHARMONIQUES D’UNE NOTE DE MUSIQUE

par

Nicolas Bajeux, Jaona Ramahaleo & Maxime Rihouey

À l’attention de MM. Joël Le Roux et Jean-Paul Stromboni.

Page 2: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

2 NICOLAS BAJEUX, JAONA RAMAHALEO & MAXIME RIHOUEY

Table des matières

Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Partie I. Entre musique et mathématiques . . . . . . . . . . . . . . . . . . . 41. Il était une fois Fourier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42. Analyse harmonique d’un signal sonore. . . . . . . . . . . . . . . . . . . . . . . . . . 5

Partie II. De l’acquisition à la synthétisation . . . . . . . . . . . . . . . . 83. La note du guitare, un premier exemple universel . . . . . . . . . . . . . . . 84. Un problème plus complexe : la note de piano. . . . . . . . . . . . . . . . . . . 18

Partie III. Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215. Variations sur la gamme : discussions théoriques. . . . . . . . . . . . . . . . 216. Variations sur la gamme : résultats expérimentaux. . . . . . . . . . . . . . 22

Conclusion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Carnet de bord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Page 3: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3

INTRODUCTION

Au XIXe siècle, lorsque Joseph Fourier se penchait sur le problème de propagationde la chaleur, il était loin d’imaginer que la généralisation de ses études sur sériestrigonométriques convergentes, et principalement ce que l’on appelle aujourd’hui latransformée de Fourier et la théorie qui la contient, deviendrait la base du traitementdu signal.

La finesse des outils mathématiques et la puissance de l’informatique nous per-mettent aujourd’hui de modéliser, étudier, et reproduire des phénomènes physiques.Par exemple, il est possible d’imiter des sons existants en analysant leur timbre et enles resynthétisant.

Comment recréer une note de musique ?

Dans un premier temps, nous exposerons brièvement les principaux outils de l’ana-lyse de Fourier et son utilisation théorique dans le domaine des ondes sonores, puisnous exposerons les méthodes mathématiques qui nous serviront à analyser un son età le reconstituer.

Nous décrirons ensuite les différentes étapes pour reproduire un signal sonore,de l’analyse de son spectre à sa resynthétisation, en passant par sa décompositionharmonique.

Nous terminerons par la reconstitution de la gamme tempérée à partir du timbreresynthétisé, et nous tenterons de lui appliquer certains effets en modifiant le timbre.

Page 4: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

4 NICOLAS BAJEUX, JAONA RAMAHALEO & MAXIME RIHOUEY

PARTIE IENTRE MUSIQUE ET MATHÉMATIQUES

1. Il était une fois Fourier

Le mathématicien français Joseph Fourier affirma au début du XIXe siècle quetoute fonction T -périodique pouvait se décomposer en une somme infinie de termessinusoïdaux.

Il montra que si f était une fonction T -périodique, elle pouvait alors s’écrire :

f(t) = a0

2 +∞∑n=1

an cos 2πntT

+ bn sin 2πntT

,

avec an = 2T

∫ T0 f(t) cos 2πnt

T dt et bn = 2T

∫ T0 f(t) sin 2πnt

T dt.En utilisant la formule d’Euler eix = cos(x) + i sin(x), la fonction f s’écrit :

f(t) =∑n∈Z

cnei 2πT nt,

avec cn = 1T

∫ T0 f(t)e−i 2π

T ntdt.

1.1. Séries de Fourier. — Tout signal périodique se décompose alors en série deFourier de la façon suivante :

Définition 1.1. — La série de Fourier d’une fonction f périodique de période T estdéfinie sur R par

Sf =∑n∈Z

cnei 2πT nt, cn = 1

T

∫ T

0f(t)e−i 2π

T ntdt.

Les cn sont appelés les cœfficients de Fourier de la série Sf .

Les fonctions qui nous intéressent étant idéalement des signaux continus si l’on oc-culte leur traitement numérique, les conditions de convergence d’une série de Fouriervers sa fonction associée sortent du cadre de notre projet, mais nous attirons néan-moins l’attention du lecteur sur le fait que ces questions sont en général importantes.Nous invitons le lecteur à se rapporter à la bibliographie pour plus d’information.

Avec les séries de Fourier, une nouvelle façon de décrire les fonctions périodiques(représentation fréquentielle) est apparue. Elles font encore actuellement l’objet derecerches actives pour elles-mêmes, et ont suscité plusieurs branches nouvelles, dontl’analyse harmonique, que nous utiliserons ici, dans notre projet de synthèse sonore.

1.2. Transformée de Fourier. — Un signal T -périodique se décomposant en sériesde Fourier, il apparaît comme une somme d’harmoniques de fréquences νn = n/T ,avec n = 0, 1, 2, ... Ces fréquences sont des valeurs isolées dans R. Les fréquencesprésentes dans un signal non-périodique ne sont pas isolées. Elles prennent toutesles valeurs d’un intervalle. Pour que la décomposition fréquentielle d’un tel signaldevienne possible, nous introduisons un nouvel outil qui généralise les séries de Fourier

Page 5: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 5

aux fonctions non-périodiques : la transformée de Fourier. La décomposition et lareconstitution ne se calculent alors non plus par des sommes, mais avec des intégrales.

Définition 1.2. — Soit f ∈ L1. La transformée de Fourier de f est définie sur Rpar

Ff(ν) = f̂(ν) =∫

e−2iπνtf(t)dt.

On définit aussi la transformée de Fourier conjuguée

F̄f(ν) =∫

e2iπνtf(t)dt.

Notons que généralement, F̄ est la transformée inverse de f .

2. Analyse harmonique d’un signal sonore

La musique et ses codes ont toujours fasciné les mathématiciens. La recherche del’ordre, de la rigueur et de la beauté du fond comme de la forme qui régissent lamusique ne sont pas sans rappeler les principes analogues qui prédominent en mathé-matiques. De nombreux mathématiciens se sont alors posés des questions telles que :qu’est-ce-qui rend une musique aussi belle ? Pourquoi la gamme nous paraît-elle har-monieuse ? Pourquoi certains accords sont-ils harmonieux ? Ainsi, Euler ou d’Alembertse sont penchés sur les relations étroites qu’entretenaient musique et mathématiques.

L’avènement de l’informatique a permis de passer de la simple théorisation musicaleà l’application directe de celle-ci en reconstituant des sons numériquement. L’idéemaîtresse de l’analyse des signaux musicaux a été de synthétiser tous les timbresconnus (essentiellement ceux des instruments de musique). C’est ainsi que sont néesles musiques électronique et électro-acoustique.

2.1. Le modèle ondulatoire du son. — Le modèle ondulatoire du son nouspermet de faire une analyse mathématique rigoureuse d’un signal sonore. Néanmoins,il est indispensable d’avoir au préalable une représentation physique du son.

Un son est par définition un type de bruit, c’est-à-dire une vibration de l’air,dans l’absolu. Mais plus précisément, quand un instrument produit un son, c’estgénéralement une note. Sa représentation en temps est celle de la propagation d’uneonde sonore, mesurée par les variations périodiques de la pression de l’air dans l’oreille.

Le principe est donc d’étudier ces variations périodiques en vue de la reconstitutionfuture du son. c’est ce que l’on appelle l’analyse fréquentielle. Elle se fait essentiel-lement à l’aide de la transformée de Fourier. En général, la transformée de Fourierd’une fonction est une fonction à valeurs complexes, dont l’exploitation brute est peupratique. Pour tirer des informations plus facilement de cette transformée, nous pou-vons avoir recours à deux fonctions, nommées spectre : les spectre d’amplitude et lespectre de phase. Nous nous intéresserons ici au spectre d’amplitude uniquement.

Page 6: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

6 NICOLAS BAJEUX, JAONA RAMAHALEO & MAXIME RIHOUEY

2.2. Spectre d’amplitude. — Une des composantes primordiales à observer lorsd’une analyse d’un son, outre sa représentation temporelle, est son spectre d’am-plitude. Il s’obtient en appliquant la transformée de Fourier au signal sonore, et enprenant son module.

Définition 2.1. — Le spectre d’amplitude d’une fonction f est défini parSf (ν) = |Ff(ν)|.

Notons que si la représentation brute du son est temporelle (on écoute le son dansla durée), l’étude de la transformée de Fourier se fait dans le domaine des fréquences,d’où le nom d’analyse fréquentielle.

Le spectre d’amplitude permet la détermination des différentes fréquences qui com-posent le son, et la visualisation des fréquences les plus importantes (celles ayant laplus grande amplitude étant celles que l’on entend le plus).

2.3. Filtrage des fréquences. — L’étape qui suit est de filtrer les fréquences quel’on veut étudier avec un filtre passe-bande. Généralement, la bande de fréquencechoisie pour un harmonique quelconque ν est l’intervalle [ν − ν0/2; ν + ν0/2], où ν0est la fréquence du fondamental.

2.4. Translation. — On effectue ensuite une translation en fréquence du spectrepour la ramener à l’origine. Pour cela, il est utile d’avoir connaissance d’une propriétéde la transformée de Fourier.

Théorème 2.2 (Théorème du retard). — Soit f ∈ L1(R). Soit t0 ∈ R, et g unefonction telle que, ∀t ∈ R, ∀ν0 ∈ R, g(t) = e−2iπν0tf(t). On a alors

Fg(ν) = Ff(ν − ν0).

2.5. Reconstitution des enveloppes temporelles. — Il est important de com-prendre que les informations contenant le signal sont contenues dans la transformée deFourier de ce celui-ci. En isolant une certaine fréquence de ce signal, nous choisissonsde nous intéresser aux informations que contient cette fréquence. Ainsi, à partir decette fréquence, nous pouvons reconstruire ce que l’on appelle l’enveloppe temporellequi lui est associée. Nous utilisons pour cela la transformée de Fourier inverse, ap-pliquée à la transformée de Fourier filtrée et translatée, pour repasser d’un domainefréquentiel au domaine temporel.

La transformée de Fourier inverse étant aussi généralement une fonction à valeurscomplexes, nous choisissons d’étudier ses composantes réelles et imaginaires dans ledomaine temporel.

Pour une fréquence sonore, les caractéristiques qui sont contenues dans son enve-loppe temporelle sont : son intensité, et sa durée.À propos du timbre. — Une même note jouée sur un instrument de musique à vent(trompette, flûte...) et sur un instrument à cordes (violon, clavecin...) ne rend pas dutout le même son. Pourtant la fréquence fondamentale est la même. Ce qui fait ladifférence entre les deux sons est la proportion d’harmoniques. Un son assourdi estpauvre en harmoniques, un son brillant en comporte beaucoup.

Page 7: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 7

2.6. Modulation. — La modulation d’amplitude consiste à faire varier l’amplituded’un signal de fréquence élevée (la fréquence porteuse, qui déterminera la hauteurde la note) en fonction d’un signal de basse fréquence (dans notre cas, il s’agit del’enveloppe). Ce dernier est celui qui contient l’information à transmettre.

Le principe est simple : il repose sur la multiplication du signal porteur par le signalde basse fréquence.

C’est cette modulation par une fréquence porteuse (la note que l’on veut entendre)qui simulera les vibrations de l’air et nous permettra de recréer le son.

Pour recréer une note de fréquence ν, nous modulerons une enveloppe temporelleenvk comme ceci :

modk = envk × e−2iπkν .

Page 8: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

8 NICOLAS BAJEUX, JAONA RAMAHALEO & MAXIME RIHOUEY

PARTIE IIDE L’ACQUISITION À LA SYNTHÉTISATION

Pour procéder à l’analyse harmonique du timbre de l’instrument en vue de saresynthétisation, nous nous sommes servis du logiciel Scilab, édité par l’INRIA.

Sous Scilab, la manipulation de fichiers audio se fait au travers des deux types deformats non compressés au et wav. Bien que nous ayons travaillé dans un environne-ment Linux (où l’utilisation du format au aurait été plus que logique), c’est ce dernierque nous avons décidé d’utiliser car les différents fichiers proposés et en particulierceux présentés dans l’énoncé étaient encodés en wav.

Nous allons voir toutes les étapes permettant d’obtenir la resynthétisation en pas-sant tout d’abord par l’exemple de la note de guitare, exemple pour lequel nous avionsles résultats fournis et qui nous a permis d’étalonner nos outils.

Notons que tout le code Scilab présenté dans la suite de ce document est contenudans les fichiers l’accompagnant. Il suffit de les exécuter pour les voir en action.

3. La note du guitare, un premier exemple universel

3.1. Import dans l’environnement Scilab. — La toute première chose à fairepour pouvoir travailler sur un son dans Scilab consiste à importer le son dans l’en-vironnement. Ici, nous considérons le fichier noteguitare.wav comme étant dans lerépertoire courant. Une fois le fichier importé, il est possible d’obtenir aisément sesvaleurs sous la forme d’un graphe (amplitude en fonction des points d’échantillon-nage).

1 [son ,fe] = wavread (" noteguitare .wav");23 L= length (son);4 N=[1:L];5 F=N*fe/L;6 T=N/fe;78 scf (0);9 clf ();

10 a=gcf ();11 a. figure_size =[800 ,500];12 plot2d (T,son ,9);13 a=gca ();14 a.title.text=" Representation temporelle ( chronogramme ) du signal "

;15 a.title. font_size =4;16 a. x_label .text="Temps (s)";17 a. x_label . font_size =4;18 a. y_label .text=" Amplitude ";19 a. y_label . font_size =4;

Page 9: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 9

-0.3

-0.2

-0.1

0.0

0.1

0.2

0.3

0.0 0.5 1.0 1.5 2.0 2.5

Représentat ion tem porelle (chronogram m e) du signal

Tem ps (s)

Am

plit

ud

e

3.2. Analyse fréquentielle. — L’étude à proprement parler du son en vue de laresynthétisation consiste à en faire l’analyse fréquentielle, dont la première étape estd’obtenir le spectre du signal sonore. Pour ce faire, nous récupérons le module de latransformée de Fourier du signal.

Le spectre est représenté dans le domaine des fréquences et c’est une combinaisonde fonctions de Dirac. Nous observons très clairement une symétrie, qui est une despropriétés de la transformée de Fourier. L’observation plus précise de ce spectre (enzoomant notamment sur sa partie « intéressante ») permet de déterminer les diffé-rentes harmoniques et la fréquence fondamentale, essentielles pour la reconstitutiondu son.

1 [tfd ,spectre ,tfd_r ,tfd_i] = analyse (son);23 scf (1);4 clf ();5 a=gcf ();6 a. figure_size =[800 ,500];7 plot2d (F,spectre ,9);8 a=gca ();9 a.title.text=" Spectre d’ amplitude du signal ";

10 a.title. font_size =4;11 a. x_label .text=" Frequence (Hz)";12 a. x_label . font_size =4;13 a. y_label .text=" Puissance ";14 a. y_label . font_size =4;

Page 10: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

10 NICOLAS BAJEUX, JAONA RAMAHALEO & MAXIME RIHOUEY

0.000

0.005

0.010

0.015

0.020

0.025

0.030

0 5000 10000 15000 20000 25000 30000 35000 40000 45000

Spect re d’am plitude du signal

Fréquence (Hz)

Pu

issa

nce

1 scf (2);2 clf ();3 a=gcf ();4 a. figure_size =[800 ,500];5 plot2d (F (1:3000) ,spectre (1:3000) ,9);6 a=gca ();7 a.title.text=" Partie interessante du spectre ";8 a.title. font_size =4;9 a. x_label .text=" Frequence (Hz)";

10 a. x_label . font_size =4;11 a. y_label .text=" Puissance ";12 a. y_label . font_size =4;

0.000

0.005

0.010

0.015

0.020

0.025

0.030

0 200 400 600 800 1000 1200 1400

Part ie intéressante du spect re

Fréquence (Hz)

Pu

issa

nce

Page 11: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 11

3.3. Obtention des enveloppes. — Les harmoniques étant les fréquences des picsdu spectre, l’idée est de les isoler et de les analyser séparément : c’est la décompositionharmonique.

Pour chaque harmonique, nous appliquons l’algorithme suivant :– isolation de l’harmonique, à ±ν0

2 , où ν0 est la fréquence fondamentale),– translation à la fréquence 0,– transformation de Fourier inverse, entraînant l’obtention d’une enveloppe com-plexe.

Nous appliquons alors cet algorithme sur l’harmonique 2 de la note de guitare :

1 // Filtrage23 tfd2 = [ zeros (1 ,299) tfd (300:560) zeros (1,L -560) ];4 spectre2 = abs(tfd2);56 scf (3);7 clf ();8 a=gcf ();9 a. figure_size =[800 ,500];

10 plot2d (F (1:1000) ,spectre2 (1:1000) ,9);11 a=gca ();12 a.title.text=" Filtrage autour de l’ harmonique 2";13 a.title. font_size =4;14 a. x_label .text=" Frequence (Hz)";15 a. x_label . font_size =4;16 a. y_label .text=" Puissance ";17 a. y_label . font_size =4;

0.000

0.005

0.010

0.015

0.020

0.025

0.030

0 50 100 150 200 250 300 350 400 450 500

Filt rage autour de l’harm onique 2

Fréquence (Hz)

Pu

issa

nce

1 // Translation23 translatee2 = [ tfd2 (486:L) tfd2 (1:485) ];

Page 12: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

12 NICOLAS BAJEUX, JAONA RAMAHALEO & MAXIME RIHOUEY

45 scf (4);6 clf ();7 a=gcf ();8 a. figure_size =[800 ,500];9 plot2d (F,real( translatee2 ) ,9);

10 plot2d (F,imag( translatee2 ) ,5);11 a=gca ();12 a.title.text=" Translation amenant le pic a la frequence 0";13 a.title. font_size =4;14 a. x_label .text=" Frequence (Hz)";15 a. x_label . font_size =4;16 a. y_label .text=" Puissance ";17 a. y_label . font_size =4;18 legends ([" Partie reelle " " Partie imaginaire "],[9 5],"ur");

-0.025

-0.020

-0.015

-0.010

-0.005

0.000

0.005

0.010

0.015

0.020

0.025

0 5000 10000 15000 20000 25000 30000 35000 40000 45000

Translat ion am enant le pic à la fréquence 0

Fréquence (Hz)

Pu

issa

nce

Part ie réellePart ie im aginaire

1 scf (5);2 clf ();3 a=gcf ();4 a. figure_size =[800 ,500];5 plot2d (F (1:250) ,real( translatee2 (1:250) ) ,9);6 plot2d (F (1:250) ,imag( translatee2 (1:250) ) ,5);7 a=gca ();8 a.title.text=" Translation amenant le pic a la frequence 0 (zoom

debut)";9 a.title. font_size =4;

10 a. x_label .text=" Frequence (Hz)";11 a. x_label . font_size =4;12 a. y_label .text=" Puissance ";13 a. y_label . font_size =4;14 legends ([" Partie reelle " " Partie imaginaire "],[9 5],"ur");

Page 13: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 13

-0.005

0.000

0.005

0.010

0.015

0.020

0.025

0 20 40 60 80 100 120

Translat ion am enant le pic à la fréquence 0 (zoom début )

Fréquence (Hz)

Pu

issa

nce

Part ie réellePart ie im aginaire

1 scf (6);2 clf ();3 a=gcf ();4 a. figure_size =[800 ,500];5 plot2d (F(L -500:L),real( translatee2 (L -500:L)) ,9);6 plot2d (F(L -500:L),imag( translatee2 (L -500:L)) ,5);7 a=gca ();8 a.title.text=" Translation amenant le pic a la frequence 0 (zoom

fin)";9 a.title. font_size =4;

10 a. x_label .text=" Frequence (Hz)";11 a. x_label . font_size =4;12 a. y_label .text=" Puissance ";13 a. y_label . font_size =4;14 legends ([" Partie reelle " " Partie imaginaire "],[9 5],"ur");

-0.025

-0.020

-0.015

-0.010

-0.005

0.000

0.005

43850 43900 43950 44000 44050 44100

Translat ion am enant le pic à la fréquence 0 (zoom fin)

Fréquence (Hz)

Pu

issa

nce

Part ie réellePart ie im aginaire

Page 14: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

14 NICOLAS BAJEUX, JAONA RAMAHALEO & MAXIME RIHOUEY

1 // Enveloppe temporelle23 enveloppe2 = fft( translatee2 ,-1);45 scf (7);6 clf ();7 a=gcf ();8 a. figure_size =[800 ,500];9 plot2d (N,real( enveloppe2 ) ,9);

10 plot2d (N,imag( enveloppe2 ) ,5);11 a=gca ();12 a.title.text=" Composantes reelles et imaginaires de l’ enveloppe

temporelle ";13 a.title. font_size =4;14 a. x_label .text="Temps (s)";15 a. x_label . font_size =4;16 a. y_label .text=" Amplitude ";17 a. y_label . font_size =4;18 legends ([" Partie reelle " " Partie imaginaire "],[9 5],"ur");

-0.08

-0.06

-0.04

-0.02

0.00

0.02

0.04

0.06

0 10000 20000 30000 40000 50000 60000 70000 80000 90000 100000

Com posantes réelles et im aginaires de l’enveloppe tem porelle

Tem ps (s)

Am

plit

ud

e

Part ie réellePart ie im aginaire

3.4. Modulation de l’enveloppe. — Une fois l’enveloppe complexe d’une harmo-nique obtenue, nous passons à sa modulation, qui consiste à en faire le produit avecune exponentielle déterminée (cf. partie I.2).

Nous appliquons alors ce principe sur la même seconde harmonique de la guitare.

1 // Modulation23 modulation2 = enveloppe2 .* exp (2* %i*%pi*N*485/L);45 scf (8);6 clf ();

Page 15: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 15

7 a=gcf ();8 a. figure_size =[800 ,500];9 plot2d (T,real( modulation2 ) ,9);

10 a=gca ();11 a.title.text=" Chronogramme du signal reconstitue ( harmonique 2)";12 a.title. font_size =4;13 a. x_label .text="Temps (s)";14 a. x_label . font_size =4;15 a. y_label .text=" Amplitude ";16 a. y_label . font_size =4;

-0.08

-0.06

-0.04

-0.02

0.00

0.02

0.04

0.06

0.08

0.0 0.5 1.0 1.5 2.0 2.5

Chronogram m e du signal reconst itué (harm onique 2)

Tem ps (s)

Am

plit

ud

e

Nous obtenons un signal temporel qui est la composante sonore associée à l’har-monique numéro 2 seule.

3.5. Resynthétisation, sommation sur les enveloppes modulées. — La re-synthétisation consiste in fine à la sommation d’un certain nombre d’enveloppes d’har-moniques. Dans un souci de lisibilité et d’automatisme nous avons écrit les deuxfonctions suivantes :

– getEnveloppe(tfd,debut,fin,pic), qui prend en arguments la transforméede Fourier discrète tfd, et les numéros d’échantillons associés à la bande defréquence de l’harmonique dont on veut obtenir l’enveloppe,

– modulation(enveloppe,frequence), qui module l’enveloppe selon la fréquenceet renvoie la partie réelle de la modulée obtenue.

On resythétise ici la note de guitare en utlisant 12 harmoniques :1 // Reconstitution23 function enveloppeH = getEnveloppe (tfd ,pmin ,pmax ,pic)4 L= length (tfd);5 tfdH = [ zeros (1,pmin -1) tfd(pmin:pmax) zeros (1,L-pmax) ];6 spectreH = abs(tfdH);7 translateeH = [ tfdH(pic:L) tfdH (1: pic -1) ];

Page 16: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

16 NICOLAS BAJEUX, JAONA RAMAHALEO & MAXIME RIHOUEY

8 enveloppeH = fft( translateeH ,-1);9 endfunction

1011 function modulationH = modulation (enveloppeH , frequence )12 fe =44100;13 N=[1: length ( enveloppeH )];14 modulationH = enveloppeH .* exp (-2* %pi*%i*N* frequence /fe);15 modulationH = real( modulationH );16 endfunction1718 // Harmoniques a selectionner :19 //20 // pmin pic pmax21 // 122. 243. 364.22 // 365. 486. 607.23 // 605. 726. 847.24 // 846. 967. 1088.25 // 1089. 1210. 1331.26 // 1331. 1452. 1573.27 // 1816. 1937. 2058.28 // 2057. 2178. 2299.29 // 2303. 2424. 2545.30 // 2791. 2912. 3033.31 // 1573. 1694. 1815.32 // 3523. 3644. 3765.3334 env1 = getEnveloppe (tfd ,122 ,364 ,243);35 env2 = getEnveloppe (tfd ,365 ,550 ,486);36 env3 = getEnveloppe (tfd ,650 ,847 ,726);37 env4 = getEnveloppe (tfd ,848 ,1088 ,967);38 env5 = getEnveloppe (tfd ,1089 ,1331 ,1210) ;39 env6 = getEnveloppe (tfd ,1331 ,1573 ,1452) ;40 env7 = getEnveloppe (tfd ,1816 ,2058 ,1937) ;41 env8 = getEnveloppe (tfd ,2057 ,2299 ,2178) ;42 env9 = getEnveloppe (tfd ,2303 ,2545 ,2424) ;43 env10 = getEnveloppe (tfd ,2791 ,3033 ,2912) ;44 env11 = getEnveloppe (tfd ,1573 ,1815 ,1694) ;45 env12 = getEnveloppe (tfd ,3523 ,3765 ,3644) ;4647 synthese = modulation (env1 ,243* fe/L) + modulation (env2 ,486* fe/L)

+ modulation (env3 ,726* fe/L) + modulation (env4 ,967* fe/L) +modulation (env5 ,1210* fe/L) + modulation (env6 ,1452* fe/L) +modulation (env7 ,1937* fe/L) + modulation (env8 ,2178* fe/L) +modulation (env9 ,2424* fe/L) + modulation (env10 ,2912* fe/L) +modulation (env11 ,1694* fe/L) + modulation (env12 ,3644* fe/L);

4849 scf (9);50 clf ();51 a=gcf ();

Page 17: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 17

52 a. figure_size =[800 ,500];53 plot2d (T,synthese ,9);54 a=gca ();55 a.title.text=" Chronogramme du signal reconstitue (12 harmoniques )

";56 a.title. font_size =4;57 a. x_label .text="Temps (s)";58 a. x_label . font_size =4;59 a. y_label .text=" Amplitude ";60 a. y_label . font_size =4;

-0.15

-0.10

-0.05

0.00

0.05

0.10

0.15

0.0 0.5 1.0 1.5 2.0 2.5

Chronogram m e du signal reconst itué (12 harm oniques)

Tem ps (s)

Am

plit

ud

e

En comparaison avec le signal original :

-0.3

-0.2

-0.1

0.0

0.1

0.2

0.3

0.0 0.5 1.0 1.5 2.0 2.5

Représentat ion tem porelle (chronogram m e) du signal

Tem ps (s)

Am

plit

ud

e

Ces deux chronogrammes présentent de nombreuses similarités, et à l’écoute leson synthétisé ressemble bien à un son de guitare, même s’il manque à l’enveloppesynthétisée quelques composantes, comme l’attaque par exemple. On peut obtenir un

Page 18: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

18 NICOLAS BAJEUX, JAONA RAMAHALEO & MAXIME RIHOUEY

son encore plus riche en augmentant le nombre d’harmoniques, mais la fidélisation duson devient un réel travail d’ingénieur du son, et s’inscrit dans la continuité de notreprojet. Nous n’avons malheureusement pas eu le temps de chercher un timbre plusprécis que celui que nous avons obtenu avec 12 harmoniques.

4. Un problème plus complexe : la note de piano

Lorsque nous choisissons de nous pencher sur des sons plus sophistiqués, telle quepeut l’être une note de piano par rapport à une note guitare, la première difficultéest de determiner la fréquence du fondamental. En effet la lecture d’un spectre untant soit peu bruité d’une note complexe devient vite fastidieux (le bruit masquant enquelque sorte la périodicité), et il faut alors utiliser des outils pour rendre sa lectureplus aisée. Nous allons donc avoir recours à deux outils importants : la fenêtre deHamming et le cepstre.

-1.0

-0.8

-0.6

-0.4

-0.2

0.0

0.2

0.4

0.6

0.8

0 5000 10000 15000 20000 25000 30000 35000 40000 45000

Représentat ion tem porelle de la note de piano

tem ps (s)

am

plit

ud

e

4.1. La fenêtre de Hamming. — La fenêtre de Hamming est un outil importantdans la synthétisation d’une note de musique. Cette fonction simple permet d’atté-nuer les signaux parasites qui peuvent nuire à l’étude des signaux sonores. Si elle esttrès pratique, l’utilisation de la fenêtre de Hamming est malheureusement à doubletranchant : elle peut atténuer de manière sensible le son que l’on souhaite synthétiser,rendant ainsi sa reconstitution fortement biaisée.

Néanmoins, elle s’est avérée très utile pour l’étude de la note de piano.

1 function g = hamming (son)2 L = length (son);3 n = [1:L];4 g = son .*(.54 -.46* cos (2* %pi*n/L));

Page 19: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 19

5 endfunction67 hamming = hamming (piano);

-0.4

-0.3

-0.2

-0.1

0.0

0.1

0.2

0.3

0 5000 10000 15000 20000 25000 30000 35000 40000 45000

Le signal de la note de piano filt rée par la fenêt re de Ham m ing

fréquence (Hz)

am

plit

ud

e

4.2. Le cepstre. — Le principe du cepstre est simple : on transforme le domaineinitial du signal qui est le domain temporel en un domaine analogue mais assez diffé-rent pour que cela induise des modifications facilitant l’analyse du signal. L’utilisationdu cepstre est rapidement devenue courante dans le cadre du projet, c’est pourquoinous avons implémenter une fonction cepstre(son). L’application de la fonctioncepstre est particulièrement éfficace sur un signal au préalable filtré par une fenêtrede Hamming, c’est pourquoi nous l’utilisons ainsi. Suit un exemple de l’applicationdu cepstre sur la note de piano.

1 function cepstre = cepstre (son)2 hamming = hamming (son);3 spectre = abs( hamming );4 cepstre = ifft(log( spectre ));5 endfunction67 cepstre = cepstre (piano);

Page 20: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

20 NICOLAS BAJEUX, JAONA RAMAHALEO & MAXIME RIHOUEY

-0.20

-0.15

-0.10

-0.05

0.00

0.05

0.10

0.15

0.20

500 1000 1500 2000 2500 3000 3500 4000

Applicat ion de la fonct ion cepst re sur la note de piano

fréquence (Hz)

am

plit

ud

e

Page 21: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 21

PARTIE IIIPOUR ALLER PLUS LOIN

5. Variations sur la gamme : discussions théoriques

5.1. L’octave. — En théorie de la musique, une gamme est une suite de sonsordonnés généralement contenus dans une octave.

Définition 5.1. — On appelle octave l’intervalle entre deux sons dont l’un est à lafréquence ν et l’autre à la fréquence 2ν.

Cette définition peut paraître arbitraire, mais elle tient sans doute à la décompo-sition spectrale : l’octave est l’intervalle qui sépare la fondamentale de la premièreharmonique.

Quand nous écoutons un son (admettons un Do), nous entendons aussi, cachéeimmédiatement derrière, la première harmonique qui est le Do de l’octave supérieure.Les notes sont ainsi associées de proche en proche et nous avons l’impression qu’ellessont de la même famille. Nous leur donnons ainsi le même nom : Do.

5.2. La gamme harmonique. — Lorsque l’on écoute un Do de fréquence ν, nousentendons les harmoniques des fréquences 2ν, 3ν, etc., où nous rencontrons le Sol etle Mi :

ν 2ν 3ν 4ν 5ν 6νDo Do Sol Do Mi Sol

En se ramenant à la même octave, c’est-à-dire en choisissant d’obtenir un spectrede fréquences comprises entre ν et 2ν, nous avons :

ν 5/4ν 3/2ν 2νDo Mi Sol Do

Nous construisons donc ainsi ce que nous appelons en analyse musicale un accordparfait : Do-Mi-Sol.

Si nous analysons de manière analogue un Sol, nous obtenons :3/2ν 2ν 9/2ν 6ν 15/2νSol Sol Ré Sol Si

soit, en se ramenant à l’intervalle [ν; 2ν] :ν 9/8ν 5/4ν 3/2ν 15/8ν 2νDo Ré Mi Sol Si Do

Nous commençons à voir se dessiner la gamme Majeure, mais il manque encore leFa et le La. En partant de Mi, nous ne trouvons pas de note nouvelle, au moins dans les3 premières harmoniques. Toutes ces notes ont des fréquences qui s’expriment commedes fractions simples de la fréquence de base ν. Cependant, nous pouvons remarquerque tous les dénominateurs sont des puissances de 2, et la première fraction simple dedénominateur 3 nous permet de découvrir le Fa, de fréquence 4/3ν, à partir duquelnous obtenons le La :

Page 22: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

22 NICOLAS BAJEUX, JAONA RAMAHALEO & MAXIME RIHOUEY

4/3ν 8/3ν 4ν 16/3ν 20/3νFa Fa Do Fa La

Nous disposons maintenant des 7 notes qui composent ce que nous appelons lagamme harmonique :

ν 9/8ν 5/4ν 4/3ν 3/2ν 5/3ν 15/8ν 2νDo Ré Mi Fa Sol La Si Do

Cette gamme est souvent appelée la gamme des physiciens.

5.3. La gamme tempérée. — Un rapport constant entre deux fréquences estperçu à l’oreille comme un intervalle constant entre deux notes. Des intervallesconstants s’expriment donc par des fréquences en progression géométrique.

Si nous voulons rapporter ces variations à des intervalles de longueur constante, ilest indiqué de prendre les logarithmes (par exemple en base 2) de ces fréquences. Nousnous apercevons alors que nous obtenons des intervalles de trois longueurs différentes :le ton majeur, le ton mineur, et le demi-ton.

Ces deux sortes de tons, majeurs et mineurs, ont l’inconvénient de ne pas permettreun partage de l’octave en 12 demi-tons égaux, ni l’attribution d’une valeur fixe auxdièses et aux bémols. Nous pouvons y remédier en divisant brutalement l’octave endouze intervalles égaux. C’est ce qui définit la gamme tempérée :

Do Ré Mi Fa Sol La Si Doν a2ν a4ν a5ν a7ν a9ν a11ν 2ν

d’oùa = 21/12.

Le demi-ton est ainsi défini par l’intervalle [ν; 21/12ν].Nous pouvons ainsi mieux observer les différences entre la gamme harmonique et

la gamme tempérée.Do Ré Mi Fa Sol La Si Do

G. H. ν 1.125ν 1.250ν 1.333ν 1.5ν 1.667ν 1.875ν 2νG. T. ν 1.122ν 1.260ν 1.335ν 1.498ν 1.682ν 1.888ν 2ν

C’est sur la gamme tempérée qu’en principe sont accordés les pianos d’aujourd’hui.

6. Variations sur la gamme : résultats expérimentaux

La reconstitution d’une gamme est directe en modulant les différentes enveloppesque nous avons déterminées en modifiant la fréquence du fondamental.

Nous avons ainsi recréé une gamme majeure à partir du son du piano. Puis nousl’avons transposée en Sol majeur en multipliant les fréquences de la gamme par 1.5.

Page 23: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 23

CONCLUSION

Nous avons réalisé au cours de cette semaine une synthèse d’une note de musique.Nous sommes partis de zéro : Il a fallu se familiariser avec l’outil informatique Scilabet redécouvrir les applications des outils de l’analyse de Fourier d’un point de vuemathématique. Nous avons ensuite entamé le vrai travail consistant à reconstituer unenote de guitare. Une fois que ceci fut fait, nous avons approfondi notre programmeScilab pour pouvoir passer à un autre instrument de manière la plus simple possibleet la plus rapide. Nous avons à partir de la pu reconstituer une note de piano. Puisà partir de ce travail de synthèse sur une note de piano, nous avons étendu le projetpour obtenir de nouveau une gamme musicale en se basant sur le sol du piano.

Certains problèmes sont apparus très rapidement au cours de cette semaine deprojet. Le principal problème est apparu très tôt dans la reconstitution de la note deguitare : Nous n’avons pas réussi à reconstituer l’attaque de la note, c’est-à-dire l’ins-tant où le doigt du guitariste lâche la corde. Pourtant nous avons tenté d’y remédieren utilisant les informations et astuces des deux professeurs. À savoir l’ajout de zérosen début de signal. Mais malgré tout, le problème n’a pas vraiment été résolu.

Nous avons aussi perdu du temps lorsque nous recherchions à faciliter et rendre ra-pide la synthétisation d’une note. En effet nous avons tenu à automatiser le programmeScilab en lui donnant la fréquence fondamentale pour qu’il calcule automatiquementtous les multiples de cette fréquence dans un tableau. En fait nous calculions tousles multiples sans chercher si il y avait vraiment un harmonique à cet endroit. Le sonsynthétisé était alors de qualité médiocre.

Ceci est très représentatif des obstacles rencontrés en voulant automatiser notreprogramme Scilab : nous avons tenu à rendre un code propre mais nous sommestombés dans un cercle vicieux : nous sommes allés trop loin dans la programmationScilab sans avoir été suffisamment impreignés du sujet. Ceci nous a clairement faitperdre du temps précieux dans cette semaine de projet.

Lors de la synthétisation des notes de guitare et de piano, il est clair que le résultatobtenu n’est pas parfait. Ce qui saute aux yeux, et aux oreilles, c’est clairementl’attaque de la note, surtout pour la note de guitare.

Nous aurions aussi pu approfondir l’étude du phénomène de Gibbs qui rendait lesextrémités du son médiocres, mais l’ajout de zéros au début et à la fin des signauxétudiés nous posaient clairement des problèmes de mémoire.

En conclusion, outre le rapprochement fait avec la musique cette semaine qui dé-montre la richesse des domaines d’application des mathématiques, ce projet aura étéextrêmement motivant et formateur, les contraintes (et les libertés) qui nous ont étédonnées caractérisant notre futur métier d’ingénieur.

Page 24: Analyse et synthèse numérique d une note de musiqueusers.polytech.unice.fr/~ramahale/projects/analyse-et-synthese... · ANALYSE ET SYNTHÈSE NUMÉRIQUE SONORE 3 INTRODUCTION AuXIXe

24 NICOLAS BAJEUX, JAONA RAMAHALEO & MAXIME RIHOUEY

CARNET DE BORD

Lundi 24 Janvier. — Découverte du sujetJaona : recherches bibliographiques (Harmonique, fondamentale, analyse musi-

cale).Maxime : recherches bibliographiques (fonctions Scilab).Nicolas : recherches bibliographiques (Tranformée de Fourier discrète, analyse

fréquentielle).

Mardi 25 Janvier. —Jaona : tentative de synthétisation du piano puis découverte du cepstre et de

Hamming.Maxime : synthétisation de la note de guitare, résultats presque analogues à ceux

présentés dans l’énoncé.Nicolas : travail sur la note de guitare avec Maxime et sur l’utilisation des enve-

loppes en vue de l’obtention d’une note de fréquence différente.

Mercredi 26 Janvier. —Jaona : implémentation du cepstre, fenêtre de Hamming.Maxime : automatisation de l’obtention de n harmoniques sur la note de guitare,

jusqu’à n = 60 (résultats peu convaincants).Nicolas : synthétisation de la note de piano.

Jeudi 27 Janvier. —Jaona : mise en place du beamer pour la présentation, perfectionnement de la

synthétisation de la note de piano.Maxime : assainissement du code Scilab.Nicolas : début de rédaction du rapport, détermination d’un plan, travaux pré-

ambules à l’obtention de la gamme.

Vendredi 28 Janvier. —Jaona : implémentation des fonctions Scilab concernant l’obtention d’une note de

fréquence différente avec conservation de l’enveloppe, finalisation du beamer.Maxime : travail sur la partie orale de la présentation, obtention des gammes de

piano et de guitare.Nicolas : avancement dans le rapport, structuration de la présentation orale.

Nicolas Bajeux • E-mail : [email protected] Ramahaleo • E-mail : [email protected] Rihouey • E-mail : [email protected]