Guillaume Loizillon

Traité de synthèse sonore : 2 Modèle soustractif, formes d'onde, bruit, filtres.

1 Modèle additif / 3 Modulation de fréquence / 4 Granulations / 5 Modèles physiques / 6 Synthétiseurs analogiques

 

 

 

Synthèse sonore selon un modèle soustractif

Le modèle soustractif est extrêmement répandu. Une grande majorité des synthétiseurs grand public se fonde sur lui.
Dans ce procédé, on part d'un son au spectre déjà riche. C'est le bloc de départ dans lequel il faut "tailler".
Pour un travail des sons harmoniques on choisira par exemple une forme d'onde rectangulaire ou  en dent de scie. Pour des sons sans hauteur déterminée, le bruit blanc constitue un bon point de départ. On peut également partir d'un son enregistré de toute provenance. On quitte dans ce cas  la synthèse sonore au sens strict.
On transforme alors le son à l'aide d'un ou plusieurs filtres qui permettent de révéler  la richesse intérieure du spectre.
Les filtres peuvent opérer sur le haut ou le bas du spectre ainsi que sur des bandes, plus ou moins sélectives. Les résultats les plus intéressants seront obtenus en faisant évoluer dans le temps les caractéristiques de ces filtres.
Une autre catégorie de travail est d'appliquer au des variations d'intensité dans le temps afin d'obtenir des profils dynamiques variés. Le générateur d'enveloppe est l'outil principal de ce type de manipulations.

[Rodin : Jeux de nymphes]


Construire des formes d'ondes variées. Les différents langages de synthèse sonore offrent plusieurs procédés pour générer des formes d'ondes.

Si 'on éprouve dee difficultés à passer par des langages spécialisés, certains éditeurs audio, dont des gratuits, offrent la possibilté de générer des formes d'ondes ou du bruit blanc sur des pistes audio. On peut ensuite les traiter avec différents effets et leur donner un profil dynamique.
Construction de formes d'ondes ou de bruit blanc dans l'application gratuite Audacity.

Télécharger les exemples 5 a-b-c-d

[Exemple 5-a]

3 Formes d'ondes (Max msp)

Max msp offre des objets pouvant générer directement des formes d'ondes variées. En voici les 3 principaux. (voir aussi la génération des ondes sinusoïdales dans le chapitre modèle additif de ce traité)

L'onde carrée ou rectangulaire . Le rapport de cycle (duty cycle) permet de modifier le rapport de durée entre la phase haute et la phase basse de l'onde. Il varie entre 0 et 1. Quand il est fixé (valeur par défaut) à 0,5 les rapports de cycle en haut et en bas sont égaux : l'onde est carrée. Elle fourni un spectre composée seulement des harmoniques impaires et décroissant rapidement en amplitude.

L'onde dent de scie fournit toutes les harmoniques avec une décroissance d'amplitude progressive.

L'onde triangulaire est la plus pauvre sur le plan spectral. Comme l'onde carrée elle ne contient que des harmoniques impaires avec une décroissance encore plus rapide.Elle est également déformable avec le rapport de cycle.

[Exemple 5-b]

Transformation de forme d'onde par écrétage (Max msp)

L'objet clip~ permet de contraindre un signal à se maintenir entre certaines valeurs. Il faut lui spécifier une valeur haute et une valeur basse. Le signal audio varie normalement entre -1 et 1. Si on lui restreint cet intervalle [par exemple entre -0.5 et 0.5] cela provoquera un écretage entendu comme une distorsion. Si l'on limite une onde sinusoïdale par ce procédé, elle se transformera progressivement en onde carrée. L'objet expr permet d'effectuer des opérations arithmétiques et logiques sur des nombres. Il sert ici à donner le négatif de la valeur de limitation pour la phase basse de l'onde. la valeur entrante est récupérée dans expr par $f1 (variable décimale n°1). Il suffit de lui placer le signe "-" devant.

Il faut ensuite compenser la perte de gain, ce que fait  l'opération définie par le second usage de l'objet expr.


[Exemple 5-c]

Création d'une onde carrée à partir d'une onde sinusoïdale.(Pure Data)

L'objet expr~ (Le "~" pour spécifier que nous travaillons sur du signal) fonctionne de la même manière qu'avec Max msp. La sortie de l'oscillateur [objet osc~] fournie une oscillation variant entre -1 et 1. On la recueille avec l'expression $v1 qui signifie variable n°1 de type signal. (v pour vector). L'opération if teste si la variable est inférieure à 0 ( point où l'onde passe à sa valeur centrale de repos). Si c'est la cas la valeurs est à ramenée à -1 sinon, la valeur est donc supérieure à 0 et est ramenée à 1.
Il en résulte une onde carrée en sortie.

La structure de if : if (condition , valeur si la condition est remplie, valeur si la condition n'est pas remplie)


 
Le bruit blanc

On utilise ce mot en analogie avec la lumière où la couleur blanche est la résultante de la somme de toutes couleurs du spectre. Le bruit blanc est ainsi composé  de toutes fréquences audible, sans aucune hiérarchie. Cette complexité maximale engendre cependant une sensation d'écoute banale, sans évolution du son dans le temps.  On est parfois amené à évoquer la notion de  "bruit rose" ou de "bruit coloré". Dans ce cas,il s'agit d'une concentration du bruit dans une bande  restreinte du spectre. (Le "bruit rose" est concentré la partie basse du spectre). Sur le plan perceptif, le bruit  est proche du souffle. C’est le son résiduel caractéristique des appareils électroniques. Le son du vent, de la pluie la mer etc. sont des bandes de bruit. En musique certains instruments, ne délivrant pas des hauteurs précises, produisent un son analysable comme du bruit  : tambour, caisse claire, maracas etc. 

Les fonctions ou les objets permettant de générer du bruit blanc sont très similaires dans les différents outils de créations sonore. Dans Pure Data comme dans Max msp, c'est l'objet noise~, ne réclamant aucune variable d'entrée qui est utilisé.
Dans Csound, plusieurs fonctions sont disponibles.La plus évidente à utiliser est noise, qui réclame deux arguments. Voici son écriture :
abruit noise amp, filtre : amp précise l'amplitude et filtre est une valeur entre -1 et 1(>-1 et < 1) qui permet de colorer le bruit. La plupart du temps il est bien de laisser cette valeur à 0.

Rappel : abruit est une étiquette dont le nom est choisi par l'utilisateur. Elle doit seulement commencer par la lettre a (pour signifier audio).
Remarque : de manière plus précise le bruit blanc se construit comme une fonction aléatoire. On rencontrera ainsi d'autres syntaxes possibles pour des utilsations spécifiques de conrôles ou de modulations.

 

Du filtrage

Les filtres sont des outils  efficaces pour travailler des sons riches en partiels ou des bruits. Il permettent de révéler ou d'atténuer des parties du spectre sonore. Il y a plusieurs catégories de filtres qui se caractérisent par leurs modes d'accès au spectre et par le niveau des amplifications ou des atténuations qu'ils sont suceptibles d'opérer. Schématiquement nous partirons des 3 catégories de filtres les plus répandues.
passe bas (ou coupe haut) : les fréquences au dessus d'une certaine fréquence, dite de coupure, sont atténuées.
passe haut (ou coupe bas) : les fréquences au dessous de la fréquence de coupure sont atténuées.
passe bande ou coupe bande : le filtre amplifie ou atténue une certaine bande de fréquence. (c'est une combinaison de passe haut et de passe bas.)

En synthèse sonore le plus important dans l'usage des filtres est de faire évoluer dans le temps leurs caractéristiques, en tour premier lieu les fréquences de coupures.

 

Télécharger les exemples 6 a-b-c-d

[Exemple 6-a]

Fragments de bruit blanc filtrés avec un filtre à bande.(Csound)

Csound offre de très nombreux filtres, tous intéressants à explorer. L'exemple montré ici utilise le filtre resonx, filtre passe bande réclamant 3 arguments :
- le signal à filtrer (ici, le bruit définit sur la ligne d'étiquette abruit)
- la fréquence centrale de la bande. celle-ci se déplace entre deux valeurs (p4 et p5) dans notre exemple.
-la largeur de la bande. Plus la bande est étroite, plus le filtre aura tendance à résoner. Cette résonance produit un sifflement de plus en plus net plus la bande est étroite.

Écouter

1 largeur de bande de l'exemple présenté (kbouge*0.6)



2 Variante : largeur de bande plus étroite (kbouge*0.25)


 

[Exemple 6-b]

Modulation aléatoire d'un filtre (Max msp)

Comme filtre, nous utilisons  l'objet reson~, filtre passe bande résonant. Il réclame en entrée 4 éléments : (de gauche à droite)

1 signal à filtrer
2 gain
3 fréquence centrale du filtre
4 "Q" qui définit la largeur de bande en conservant la même proportion, quelque soit la fréquence du centre.

Le signal à filtrer est composé de deux ondes triangulaires (objet tri~). Elles délivrent initialement la même fréquence. Il est possible de désacorder l'une d'elle pour créer un battement afin de rendre le son de départ plus mobile.

Le sonagramme nous montre la trajectoire du filtre qui se "ballade" entre une fréquence basse et une fréquence haute que l'on peut ajuster. La bande foncée représente la valeur du centre du filtre (issue de la sortie de l'objet scale~) . Cette ligne sera d'autant plus évidente et foncée que le facteur de résonance "Q" sera élevé.

Pour exploiter le patch, faire varier :
- la hauteur fondamentale.
- le battement (valeur à 1 = pas de battement).
- la fréquence de la modulation aléatoire et les limites basses et hautes du filtre.
- Le facteur "Q" (entre 1 et 100 environ. Plus la valeur est grande plus la bande est étroite et résonante).

Régler le gain du filtre en cas de perte de volume ou de résonance trop forte.

Écouter : extrait sonore issu du patch faisant varier aléatoirement la fréquence de coupure du filtre et le battement ,entre les deux ondes triangulaires.

 

[Exemple 6-c]

Bruit Blanc et enveloppe dynamique servant également à faire varier la fréquence du filtre.(Pure Data)


L'objet graphique envgen permet de créer des enveloppes à multiples segments. (Pure Data version 0.43.4 - Pure Data Extended).

La sortie gauche de l'objet envgen envoie des données au format line. Les valeurs varient de 0 à 1 sur l'axe vertical. Elles permettent de produire une enveloppe dynamique. Elles servent également à faire varier la fréquence centrale du filtre. On multiplie la sortie pour obtenir une fréquence mobile du filtre utillisable. On l'additionne à une autre valeur fixant la fréquence la plus basse du centre de la bande filtrée.

L'objet vcf~ fait référence aux filtres analogiques des synthétiseurs de la génération des années 60 et 70 : Voltage Controlled Filter.
C'est un filtre passe bas classique ou l'on règle 2 valeurs :
- La fréquence de coupure.(entrée du centre)
- Le facteur "Q" (entrée à droite) qui contrôle la largeur de la bande. Une valeur plus élevée produit une bande plus étroite avec une mise en résonance de plus en plus accentuée.
nb : ce facteur "Q" est intialisé à 15 au chargement du patch


Écouter : sons formés de différents réglages des paramètres de filtre et d'enveloppe.

[Exemple 6-d]

Filtre et enveloppe dynamique [max msp]

Nous partons dans cet exemple d'une forme d'onde en dent de scie (objet saw~) initialisée à 110 Hz, mais dont il est possible de varier la fréquence. Cet oscillateur est dirigé à l'entrée un filtre de type passe bas résonant (objet lores~). Plus le facteur de résonance est élevé (tendant vers 1), plus il aura tendance faire ressortir la résonance à la fréquence de coupure, jusqu'au sifflement.
Une enveloppe est  déclenchée chaque 1/4 de secondes (objet metro à 250 ms). À chaque nouveau déclenchement, la fréquence de coupure augmente de 100 Hz. Pour bien comprendre le processus il faut assimiler le fonctionnement de l'objet accum. Quand la fréquence de coupure atteint 7000 Hz, celle-ci repasse à 100 Hz. Le dispositif fonctionne en boucle.

 

Écouter-voir : vidéo à partir du mode "présentation" du patch

 

 

Modèle additif / Modulation de fréquence / Granulations / Modèles physiques / Synthétiseurs analogiques