Peut-on créer un son à partir d'une fonction ?

post-thumb

Pourquoi cet article ?

Cet article peut servir d’exemple de sujet pour le grand oral, alliant à la fois les mathématiques, la physique et la musique. Cependant, il n’est pas rédigé de façon adéquate pour cet examen. Cela a simplement pour but de mieux comprendre une manière de représenter le son à travers des notions de mathématique relativement simple.

Une onde sonore, c’est quoi au fait ?

Au sens large, une onde est une déformation qui se propage au sein d’un milieu. Plus précisément, une onde sonore est une déformation se propageant dans l’air, permettant d’acheminer un son d’un émetteur à un récepteur.

Transmission d'un son

En effet, les molécules d’air se “bousculent”, autrement dit, ce sont les mouvements moléculaires de l’air qui permettent la transmission de l’onde.

Cela engendre une variation de la pression de l’air appelée pression acoustique. C’est ainsi que l’on peut représenter le son sur un graphique, grâce à cette variation de la pression de l’air en fonction du temps.

Nous pouvons le constater sur de nombreux logiciels d’enregistrement, notamment Audacity pour n’en citer qu’un. La mention “pression acoustique” n’est pas indiquée, on remarquera plutôt le terme “amplitude” ou “A” sur l’axe des ordonnés, mais souvent ce n’est pas indiqué du tout.

Schéma Axes

Nous possédons maintenant un graphique avec deux axes définis précédemment, il ne reste plus qu’à tracer la courbe représentative de notre fonction.

Sauf qu’on n’a pas encore de fonction…

Une fonction de trigoquoi ?

Sinus et Cosinus…

Les fonctions de trigonométrie permettent d’étudier les triangles ou de modéliser des phénomènes périodiques. Cette seconde possibilité est très intéressante, car une onde, sous sa forme la plus classique, est périodique. C’est-à-dire qu’elle se répète au bout d’un certain temps.

Schéma Période

Les fonctions trigonométriques que l’on connait tous sont cosinus et sinus. Comme nous voulons simplement créer un son, le choix entre ces deux dernières n’a pas une grande importance. Cela décalera juste le départ de l’onde sur l’axe des abscisses. À cette échelle, la différence n’est pas perceptible par l’oreille humaine. La fonction sinus de x ou sin(x) est une fonction sinusoïdale periodique. Nous avons donc trouvé notre fonction et donc créé un son !

  • C’est tout ?
  • Non.

Des variables en plus…

J’aurais pu en rester là, avec un son ennuyant qui ne ressemble à rien qui existe sur terre, à part peut être des acouphènes. Au lieu de ça, on peut essayer de trouver comment recréer une infinité de sons.

La fonction sinus ne va pas suffire, il manque des variables. En maths, ce sont des valeurs qui changent en fonction de l’abscisse, x. Ici ce sont des valeurs qui changent en fonction du temps.

Alors, on fait appel à la fonction sin(a*x+b). Au niveau du graphique, rien ne change au premier abord, mais si on remplace les variables abstraites que sont a et b par des variables qui s’appliquent dans le cas présent, tout devient plus claire… ou pas.

sin(a*x+b) devient alors : sin(2π*f*t+φ)

représente un tour du cercle trigonométrique, soit une révolution de l’onde. f est la fréquence en Hertz, l’inverse de la période T, car f=1/T. t est la variable qui correspond au temps. φ (phi) est la phase à l’origine, une variable permettant de décaler l’origine de la fonction sur l’axe des abscisses.

Grâce à cela, nous pouvons créer des sons de différentes hauteurs, n’importe quelle note, de la plus grave à la plus aigüe, nous pouvons aussi changer la phase à l’origine, ce qui peut être utile en cas d’interférences par exemple.

Pour modifier le volume sonore, il faut pouvoir contrôler l’amplitude. En effet, le volume perçu change en fonction de l’importance de la variation de la pression de l’air. Pour cela, il faut simplement ajouter une variable que l’on appellera A et qui sera en facteur de notre fonction :

A*sin(2π*f*t+φ)

Sur Audacity, Les valeurs de l’amplitude sont comprises entre -1 et 1. Nous ne pouvons pas convertir de façon si simple et généralisée l’amplitude en décibels, car cela dépends de l’unité utilisée. Dans le cas d’Audacity, cela dépends aussi de la limite de saturation de la carte son.

Nous pouvons appliquer notre formule à un cas concret en utilisant le traceur de courbe MAFA, disponible ici : https://www.mathe-fa.de/fr (Le logiciel ne reconnait pas le symbole π, il faut écrire 3,14)

Pour créer un son d’une fréquence de 262 Hz, correspondant à un do 3, nous rentrons cette formule :

Fonction Onde

0.5 est l’amplitude de l’onde et 262 Hz est sa fréquence f. φ=0, car cela n’apporte pas grand-chose dans le cas présent (il aurait pu ne pas figurer).

Et nous obtenons ce graphique :

Graphique Onde

La raison pour laquelle j’ai divisé x par 1000 n’est qu’une question de visibilité, l’axe des abscisses est au départ en secondes, x correspond au temps, nous observons donc une graduation en millisecondes.

Expelliarmus…

Pour aller encore plus loin et modifier le son dans un autre aspect, on peut apporter des harmoniques. Cela consiste à superposer des ondes aux fréquences de plus en plus aigües (généralement multiple de la première) afin de rendre le son unique.

Nous pouvons bel et bien différencier un son de guitare et de piano bien qu’ils aient le même volume et qu’ils jouent la même note !

Superposer des ondes revient, dans notre cas, à faire des additions. Nous devons donc additionner des fonctions sinusoïdales de fréquences multiples pour obtenir des harmoniques :

A1*sin(2π*f1*t+φ1)+A2*sin(2π*f2*t+φ2)+A3*sin(2π*f3*t+φ3)+...

Nous pouvons continuer d’additionner autant des formules en fonction du nombre d’harmoniques recherchées.

Exemple : Nous pouvons reprendre la fonction précédente et l’améliorer. Ainsi, nous pouvons choisir des multiples de la fréquence fondamentale tels que 786 et 1048 Hz, avec des amplitudes de plus en plus faibles.

Graphique Onde Harmonique

Une infinité de sons

Pour l’instant, nous avons abordé seulement les signaux périodiques. Or la majeure partie des sons que nous pouvons percevoir dans notre quotidien ne le sont pas. Actuellement, je tape sur mon clavier, cela produit un son percussif, court qui ne se répète pas de façon systématique.

Afin que notre fonction soit capable d’agrandir le nombre de sons qu’elle peut générer, il est inutile de la changer fondamentalement. La modification que nous allons apporter se fera au niveau de la valeur que prendront les variables. Elles ne seront plus fixes, mais varieront au cours du temps. Il y aura donc une variable de temps dans la valeur que prendra la variable. Pour simplifier les choses, prenons un exemple.

Si nous voulons un son qui s’atténue au cours du temps, il faut que l’amplitude soit moins forte, nous pouvons faire en sorte que son coefficient se rapproche de 0 au cours du temps. (une valeur négative aurait le même effet qu’une valeur positive). La fonction inverse pourrait fonctionner par exemple.

(1/x)*A*sin(2π*f1*t+φ1)

Le problème est que notre amplitude doit être comprise entre -1 et 1 si l’on souhaite se conformer à Audacity, or notre fonction inverse à une limite en +∞, Autrement dit le son sera très fort, voir saturé au début.

Cependant, l’inverse de la fonction exponentielle a pour limite -1 et 0 (sur l’intervalle [0;+∞] ). C’est ce qu’on appelle une fonction sigmoïde décroissante.

1/exp(x)*A*sin(2π*f*t+φ)

Exemple :

Continuons avec la même fonction, nous avons donc ajouté la formule 1/exp(x) devant chaque sinus et voici le résultat :

Fade Out

Un magnifique “Fade out” !

D’autres Exemples

Voici quelques courbes que l’on peut obtenir :

Fade In
Variation du volume
Harmonique d'une guitare

Vous voulez vraiment la formule de celle-ci ?

Alors la voici…

1/2*sin(2*3.14*97.11*x/1000+0)+0.308/2*sin(2*3.14*122.35*x/1000+0)+0.231/2*sin(2*3.14*183.32*x/1000+0)+0.115/2*sin(2*3.14*198*x/1000+0)+0.038/2*sin(2*3.14*212.8*x/1000+0)+0.019/2*sin(2*3.14*319*x/1000+0)+0.062/2*sin(2*3.14*324*x/1000+0)+0.073/2*sin(2*3.14*332*x/1000+0)+0.062/2*sin(2*3.14*340*x/1000+0)+0.115/2*sin(2*3.14*348*x/1000+0)

Je pense qu’il y a réellement moyen de faire plus compacte… … mais on applique purement et simplement la fonction.

Exemple Guitare

Pourquoi créer un son à partir d’une fonction ???

  • Ben oui, à quoi ça sert tout ça ?

Nous avons maintenant en notre possession de belles courbes qui représente un son. L’utilité principale de ce projet est d’aider le designer sonore, concepteur d’environnement sonore dans le cinéma, les jeux vidéo ou la communication, à créer des sons fictifs ou réels difficiles à reproduire via un enregistrement. Évidemment, je ne suis pas développeur et je n’ai pas la compétence pour coder un programme capable de convertir les données qu’apporte la courbe pour produire un son. Heureusement, je suis bien entouré et peut-être que dans quelques mois un nouvel article vous expliquant comment créer ce programme sera disponible. Avant tout, le but de ce projet était de vous faire découvrir quelque chose de concret, de pouvoir créer quelque chose à partir de formules pouvant sembler barbare au premier abord. Grâce à ces recherches, j’ai entrouvert les portes d’un monde que je connaissais à peine et j’espère vous avoir donné l’envie d’aller plus loin.

Tu pourrais aussi aimer