Accueil Floss Manuals francophone

Puredata

La synthèse audio

Pure Data offre toute une série d'objets pour l'audio : ceux qui permettent de produire, de traiter ou d'analyser du son sont presque toujours nommés par la terminaison tilde (« ~ »). Par exemple, l'objet [osc~] produit une onde sinusoïdale. En fait, un signal sonore est représenté par un nombre dont la valeur change très rapidement, à la fréquence du taux d'échantillonnage audio de l'application.

Nous allons maintenant présenter quelques objets Pure Data permettant de réaliser de la synthèse audio. Pour chacun, nous verrons à quoi il sert et comment l'utiliser. Nous en profiterons pour expliquer d'autres notions de base de l'audio numérique (voir chapitre « Les bases de l'audio numérique »).

[noise~] : Le bruit

Un bruit, c'est un son dont la hauteur n'est pas déterminée. Son onde fait des sauts dans un désordre total. Un bruit blanc est un bruit à peu près uniforme, un son dont le spectre parcourt toutes les fréquences. L'objet [noise~] produit du bruit blanc. Avant d'essayer l'exemple qui suit, il est conseillé de baisser le volume sonore au minimum.

1_noise

L'intérêt de cet objet se manifeste notamment dans la synthèse soustractive, ainsi que dans la création d'effets sonores.

[osc~] : Produire une onde sinusoïdale

Une onde sinusoïdale oscille comme une pendule entre ses deux extrêmes selon une courbe sinusoïdale. Il s'agit d'une fonction sinusoïdale du temps. Si on lui donne une fréquence audible, par exemple 440 Hertz, cela donne un son pur, sans harmonique.

synth_2_sinus

Le premier et le seul argument de cet objet est sa fréquence, en hertz. On peut modifier cette fréquence en envoyant un nombre dans sa première entrée. La seconde entrée sert à remettre sa phase à zéro.

[phasor~] : Une onde en dents de scie

Si l'on souhaite synthétiser un son timbré à hauteur déterminée, créer des dizaines d'objets [osc] pour tous les additionner ensemble est un peu long. L'objet [phasor] génère une onde en dents de scie, c'est-à-dire une ligne qui va périodiquement de 0 à 1.

phazor.png

Si on en fait une analyse de Fourier, on peut voir qu'elle contient de nombreuses harmoniques. Sans entrer dans les détails, le son produit évoque celui d'un klaxon.

[dbtorms] : Les décibels

Les professionnels de l'audio utilisent le décibel (dB) comme unité de mesure pour l'atténuation ou l'amplification du volume d'un signal audio. Chaque fois que l'on baisse de 6 dB, l'amplitude diminue de moitié. Si on augmente de 6 dB, l'amplitude double. Une atténuation de -6 dB sera perçue comme donnant un son moitié moins fort que l'original. Un son qui aurait une amplitude de 1.0 se retrouverait avec une amplitude de 0.5.

En mixage audio, on se garde habituellement une marge de manœuvre de l'ordre de -12 ou -18 dB, pour s'assurer que l'amplitude de chaque source sonore ne dépasse pas environ 25% ou 12.5% de l'amplitude maximale possible en sortie.

Dans Pure Data, les objet [dbtorms] et [dbtorms~] aident à convertir des gains en dB vers un facteur linéaire. Il s'agit ici du facteur par lequel on multiplie un signal audio afin d'ajuster son volume. Ainsi, on bénéficie d'un contrôle fin sur le volume sonore. La perception de celui-ci n'est pas linéaire, mais logarithmique. Utiliser une échelle logarithmique étant assez difficile, on préférera utiliser des décibels.

audio_db

Dans Pure Data, l'échelle en dB va de 0 à 100, notation plus simple que d'aller de moins l'infini à zéro. Si ce n'était pas le cas, jusqu'à combien de dB dans le négatif faudrait-il descendre afin d'atteindre le silence ? Ainsi, dans Pure Data, à 100 dB (au lieu de zéro), le volume d'un signal n'est pas atténué. À 0 dB (au lieu de moins l'infini), c'est le silence absolu. À 106 dB, il est deux fois plus fort, et à 94 dB, il est deux fois moins fort.

Enfin, la différence entre la version sans tilde de [dbtorms], et celle avec tilde, c'est que la première fonctionne avec des nombres, et donc à une fréquence maximale d'une fois toutes les 5 millisecondes, alors que la seconde fonctionne avec des signaux audio, et donc à une fréquence égale à celle du taux d'échantillonnage de l'application. Par défaut, c'est 44 100 hertz.

[mtof] : Notes MIDI et fréquence

La norme MIDI est un standard pour la musique numérique qui date des années 80. Elle permet de spécifier la hauteur des notes de musique, leur volume et différents contrôles, comme la pédale de soutien d'un piano. Les objets [notein] et [noteout], ainsi que [ctlin] et [ctlout] permettent de recevoir et d'envoyer des notes et des contrôles MIDI avec Pure Data. Ainsi, il est relativement facile de brancher un appareil MIDI dans Pure Data.

En MIDI, le Do central correspond au nombre 60. Chaque unité correspond à un demi-ton. Ainsi, le nombre 61 est un Do dièse, et 59 est la note Si. Il y a 12 demi-tons dans une octave. Ainsi, la note 72 est un Do d'une octave plus haute que le Do central.

audio_mtof

Pour la synthèse audio, c'est la fréquence qui nous intéresse, pas la note MIDI. Si on veut contrôler la note à synthétiser au moyen de notes MIDI, il faut convertir ces notes en fréquences. C'est l'objet [mtof] qui nous le permet.

audio_accords

Il est assez facile d'utiliser des listes de nombres pour représenter des accords ou des gammes. Pour les transposer, il suffit d'additionner ou de soustraire à chacun des nombres dans la liste. Cet exercice est laissé aux soins du lecteur. La famille des abstractions musicales dans la librairie pdmtl offrent de telles fonctionnalités.

La synthèse additive

En musique, un son à hauteur déterminée, dont la forme d'onde se répète périodiquement, peut être décomposé en une somme d'ondes sinusoïdales multiples de la fréquence fondamentale du signal. Cette fondamentale, c'est la note que nous pouvons identifier. Les autres ondes sont appelées harmoniques. Par exemple, un La 440 sur un violon aura 440 Hz comme fondamentale, puis plusieurs harmoniques, comme 880 Hz, 1320 Hz, 1760 Hz, et ainsi de suite. Le timbre est déterminé par la quantité relative de chaque harmonique partielle. Un timbre est plus nasillard lorsqu'il contient plus d'harmoniques aiguës.

Ainsi, on peut en théorie synthétiser tout son à hauteur déterminée en additionnant plusieurs ondes sinusoïdales. C'est ce que l'on appelle de la synthèse additive. À l'inverse, on peut décomposer tout son au moyen de l'analyse de Fourier, afin d'en tirer les harmoniques.

synth_5_additif.png

Notez que certains sons contiennent des ondes périodiques qui ne sont pas des multiples de la fondamentale. On les appelle alors des partielles.