Les Enveloppes

Par définition, le générateur d'enveloppe (EG pour enveloppe generator) est un module destiné à faire évoluer tel ou tel paramètre d'un son dans le temps. Il s'applique en premier lieu à l'amplitude, mais aussi au timbre (fréquence de coupure d'un filtre en synthèse soustractive, niveau de sortie d'un opérateur modulateur en synthèse FM...), à la hauteur (fréquence de l'oscillateur), et ainsi de suite.

Un générateur de son possède au minimum une enveloppe d'amplitude, et au maximum (selon la bonne volonté du constructeur), autant d'enveloppes que de paramètres à faire évoluer (par exemple quatre, destinées respectivement à l'amplitude, au timbre, à la hauteur et au niveau de sortie d'un LFO). Par souci d'économie, sur certains instruments, une seule et même enveloppe est utilisée pour contrôler plusieurs paramètres (l'amplitude et le timbre, etc).

Nos ancêtres les ADSR

Plus connus sous la dénomination d'ADSR, les premiers modèles d'enveloppes firent leur apparition avec les synthétiseurs analogiques. Le terme d'ADSR provient des initiales des quatre segments qui les composent (attack, decay, sustain release), et dont voici la signification :

Attack (attaque) : ce segment correspond au temps mis par le signal d'enveloppe pour atteindre son niveau maximum, à partir du moment où la note est enfoncée.

Decay (décroissance) : ce segment correspond au temps mis par le signal d'enveloppe pour passer du niveau maximum au niveau de maintien, déterminé par le segment suivant.

Sustain (maintien) : ce segment s'applique à un niveau, et non plus à une durée. Il correspond au niveau auquel le signal d'enveloppe est émis, passé les segments d'attaque et de décroissance, tant que la note n'est pas relâchée.

Release (relâchement) : ce segment correspond au temps mis par le signal d'enveloppe pour atteindre le niveau zéro à partir du point de l'enveloppe auquel la note est relâchée.

De l'origine de la segmentation

Dès l'apparition des commandes numériques, l'ADSR fut remplacée par un système plus efficace. Celui-ci divise l'enveloppe en un certain nombre de segments (variable selon les instruments), chacun d'entre eux étant caractérisé par une vitesse (rate, time), et un niveau (level).

Afin d'illustrer ce principe, je vous propose d'étudier le fonctionnement de l'unique enveloppe des synthétiseurs Roland de la famille Juno (Juno 1/2, MKS-50), constituée de quatre segments (time 1/level 1, time 2/level 2, time 3/level 3, time 4), dirigée simultanément vers les étages d'oscillation, de filtrage, et d'amplification. La plage de valeurs des paramètres T et L couvre une étendue qui va de 0 à 127.

Segment 1 : le signal d'enveloppe met un certain temps (T1) pour passer du niveau 0 au niveau L1.

Segment 2 : le signal d'enveloppe met un certain temps (T2) pour passer du niveau L1 au niveau L2.

Segment 3 : le signal d'enveloppe met un certain temps pour (T3) passer du niveau L2 au niveau L3, auquel il reste tant que la note est enfoncée.

Segment 4 : le signal d'enveloppe met un certain temps (T4) pour passer du niveau auquel il se trouve lorsque la note est relâchée, au niveau zéro.

En ce qui concerne l'oscillateur, il convient de régler la profondeur d'action de l'enveloppe (taux réglable de 0 à 127), ainsi que son mode de fonctionnement à choisir parmi les quatre modes suivants :

Normal ( ) : l'évolution de la hauteur suit la courbe de l'enveloppe.

Inversé ( ) : l'évolution de la hauteur suit la courbe inverse de l'enveloppe.

Normal avec dynamique ( ) : l'évolution de la hauteur suit la courbe de l'enveloppe, dont l'amplitude est fonction de la vélocité d'enfoncement.

Inversé avec dynamique ( ) : l'évolution de la hauteur suit la courbe inverse de l'enveloppe, dont l'amplitude est fonction de la vélocité d'enfoncement.

En ce qui concerne le filtre, il convient de régler la profondeur d'action de l'enveloppe (taux réglable de 0 à 127), ainsi que son mode de fonctionnement à choisir parmi les quatre modes suivants :

Normal ( ) : l'évolution de la fréquence de coupure suit la courbe de l'enveloppe (pour que cet effet soit audible, il est nécessaire que la fréquence de coupure ne soit pas à son maximum, puisqu'elle augmente par rapport au niveau zéro de l'enveloppe).

Inversé ( ) : l'évolution de la fréquence de coupure suit la courbe inverse de l'enveloppe (pour que cet effet soit audible, il est nécessaire que la fréquence de coupure ne soit pas à son minimum, puisqu'elle diminue par rapport au niveau zéro de l'enveloppe).

Normal avec dynamique ( ) : l'évolution de la fréquence de coupure suit la courbe de l'enveloppe, dont l'amplitude est fonction de la vélocité d'enfoncement (pour que cet effet soit audible, il est nécessaire que la fréquence de coupure ne soit pas à son maximum, puisqu'elle augmente par rapport au niveau zéro de l'enveloppe).

Dynamique ( ) : seule la vélocité d'enfoncement influe sur la fréquence de coupure (à condition qu'elle ne soit pas à son maximum).

En ce qui concerne l'amplificateur, il convient de régler le mode de fonctionnement de l'enveloppe (dépourvue de profondeur d'action, puisqu'elle agit systématiquement sur le volume) à choisir parmi les quatre modes suivants :

Normal ( ) : l'évolution du volume suit la courbe de l'enveloppe.

Porte ( ) : le volume passe instantanément à son niveau maximum lorsqu'une touche est pressée, pour redescendre tout aussi rapidement à zéro lorsqu'elle est relâchée (l'enveloppe reste sans effet).

Normal avec dynamique ( ) : l'évolution du volume suit la courbe de l'enveloppe, dont l'amplitude est fonction de la vélocité d'enfoncement.

Porte avec dynamique ( ) : le volume passe instantanément à son niveau maximum lorsqu'une touche est pressée, pour redescendre tout aussi rapidement à zéro lorsqu'elle est relâchée (l'enveloppe reste sans effet). Ce maximum est fonction de la vélocité d'enfoncement.

La série Juno s'accompagne d'un programmeur : le PG-300. Un outil bien plus efficace que l'alpha-dial...

Face au patche disco bass

L'enveloppe crée l'illusion d'un écho. En effet, après une attaque rapide (T1 = 11, L1 = 127), le son décroît progressivement jusqu'à son volume minimum pendant une durée fonction de T2 (à 56 dans cet exemple), pour atteindre à vitesse maximum (T3 = 00) un niveau de sustain légèrement inférieur au niveau d'attaque (L3 = 100). Pour modifier le temps d'écho, il suffit de changer la valeur de T2.

Face au patch scratch

Si la phase de release (T4) entre en action dès le relâchement de la note, cela ne signifie pas pour autant qu'elle démarre à partir du niveau de sustain (L3). En effet, pour peu que le musicien relâche la note lors de l'attaque (T1/L1) ou du decay (T2/L2), le release prendra immédiatement le relais, et ceci à partir du niveau courant (court-circuitant ainsi la phase de sustain). Dans cet exemple, le release est long (T4 = 71), pour un sustain nul (L3 = 00).

Par conséquent, en maintenant la note enfoncée suffisamment longtemps pour qu'elle entre dans cette période de sustain, le release restera sans effet. Par contre, en la relâchant entre L1 (127) et L2 (127), le release partira directement de ce niveau maximum (T1 étant réglé à 38 pour les besoins du son, le fait de relâcher la note avant L1 en diminuera l'amplitude, et par conséquent, le temps de release).

Notez par ailleurs que l'enveloppe agit sur la hauteur, ainsi que sur le timbre. Un moyen de renforcer la différence entre les deux bruitages de ce patch. Pour une même valeur de T, la durée du segment correspondant dépend de l'étendue d'amplitude à parcourir, c'est-à-dire de la différence entre les niveaux de début et de fin de ce segment.

Au programme de ce second volet sur la vie trépidante des enveloppes : l'incroyable aventure des pentes et niveaux de la famille Casio CZ. Une excellente leçon d'ergonomie et de souplesse d'utilisation...

Pour revenir au sujet qui nous préoccupe, sachez qu'un son de Casio CZ est constitué de deux oscillateurs possédant chacun trois enveloppes identiques respectivement dédiées à la hauteur, à la distorsion de phase (que nous assimilerons au filtrage par souci de simplification), et à l'amplitude.

Ces enveloppes sont composées d'un nombre variable de segments (compris entre 1 et 8), chaque segment étant caractérisé par une pente (rate) et par un niveau (level). Cette pente, dont la valeur correspond à l'angle mesuré par rapport à l'horizontale, détermine la vitesse à laquelle ce niveau est atteint.

A la carte

Nous fixerons le nombre de segments d'une enveloppe en affectant le point de fin (end) à l'un d'entre eux. Ainsi, en admettant que l'on désire programmer un son dont le timbre, à son maximum de brillance, ne subisse aucune évolution, il conviendra de lui associer une enveloppe à un seul segment (c'est à dire un segment de fin), de niveau et de pente maximum.

De par une économie de manipulations, réduites à la saisie des valeurs des pentes et niveaux des segments nécessaires; ce système facilite grandement l'édition des enveloppes. De même, la phase de maintien (sustain) pourra être affectée à n'importe quel segment. En l'atteignant, l'enveloppe se maintiendra à un volume constant jusqu'au relâchement de la note. Nous voici donc en présence d'enveloppes configurables, aux possibilités d'expression bien supérieures à celles rencontrées sur la plupart des synthétiseurs.

Post-enveloppe

Le fait que la phase de sustain soit liée à n'importe quel segment de l'enveloppe autorise la création de mouvements complexes. Ainsi, en positionnant le sustain au niveau du second segment, les six suivants serviront par exemple à programmer une enveloppe à part entière, se déclenchant 'après coup' dès le relâchement de la note.
Je vous laisse imaginer la richesse d'évolution d'un son lorsque les trois enveloppes de chaque oscillateur infligent des mouvements différents à la hauteur, au timbre et à l'amplitude !

Double Croche

Le patch Double Croche est une extension du patch Echo Bass du mois dernier. Il repose sur deux formes d'ondes dans le style basse synthétique, la seconde (dents de scie + double sinus) étant légèrement plus brillante que la première (dents de scie + impulsions). L'enveloppe d'amplitude de cette première forme d'onde simule une séquence interprétant quatre doubles croches successives, tandis que l'enveloppe d'amplitude de la seconde à pour effet de maintenir le son pendant la durée de ces quatre notes (avec un volume à forte décroissance), pour enchaîner par trois autres doubles croches.

Essayez d'utiliser ce patch sur les premier et troisième temps de chaque mesure d'une séquence en 4/4, à un tempo de 76 à la noire, en rajoutant un éventuel délai d'environ 132 millisecondes. Dans ce cas, les sept notes produites par le CZ exécuteront un sextolet de doubles croches, suivi de la première double du temps suivant.

Evolution

Le patch Evolution est un double bruitage particulièrement sidéral, qui, de l'attaque au sustain, se déroule sur une vingtaine de secondes! Les enveloppes de pitch et d'amplitude évoluent différemment, ce qui permet aux deux formes d'ondes d'apparaître, de disparaître, et de changer de hauteur indépendamment l'une de l'autre. Après approximativement quatre secondes, le LFO entre en action. Par ailleurs, l'oscillateur deux est modulé par du bruit blanc.

Après s'être penché sur le rôle et la structure des enveloppes lors des deux précédents dossiers, je vous invite aujourd'hui à découvrir quelques unes des méthodes destinées à les rendre plus vivantes.

Le degré d'expression d'une enveloppe dépend du potentiel que le constructeur décide de mettre à la disposition du musicien pour qu'il en contrôle les paramètres, c'est à dire les pentes et niveaux des différents segments en fonction de son jeu.

Ces pentes et niveaux sont le plus souvent contrôlées par les informations contenues dans les messages MIDI qui pilotent l'enveloppe. Rappelons à ce sujet qu'une enveloppe entre en action dès réception d'un message de note enfoncée (constitué d'un numéro de note et d'une vélocité d'enfoncement), pour passer la main au(x) segment(s) de release dès réception d'un message de note relâchée (constitué du même numéro de note, et d'une éventuelle vélocité de relâchement).

Nous voici donc à la tête de numéros de notes et de vélocités, prêts à modifier dynamiquement nos enveloppes. Mais comment ? Et pourquoi ?

Le suivi d'enveloppe

De par leurs caractéristiques physiques, nombreux sont les instruments acoustiques dont l'enveloppe d'amplitude évolue suivant la hauteur. Pour vous en convaincre, maintenez enfoncée une note de piano tout en chronométrant le temps mis par le son pour s'éteindre complètement. Inférieure à une seconde pour la note la plus aiguë du clavier, cette durée atteint près d'une demi minute dans les extrêmes graves.

Ce phénomène tient au fait que l'énergie communiquée à une corde se dissipe à une vitesse proportionnelle à sa longueur, plus importante dans les graves. Le niveau de sustain d'un piano étant nul (puisque qu'une vibration ne peut être entretenue), c'est au segment de décroissance (decay) que s'appliqueront ces constatations.

Autre exemple, celui de l'orgue d'église, dont la hauteur des notes, fonction de la longueur des tuyaux, est calculée selon la célèbre formule 'f = V:2L' (f représentant la fréquence, V la vitesse du son, et L la longueur). Tout cela pour prouver, mais vous l'auriez deviné, que la colonne d'air parcourra plus lentement un tuyau long qu'un tuyau court! Ces propriétés affectent ici les segments d'attaque et de release, l'orgue étant un instrument sans decay, d'un niveau de sustain maximum (maintenu par l'arrivée de l'air jusqu'au relâchement de la note).

Généralités

Les expériences précédentes démontrent qu'il est nécessaire pour un synthétiseur, d'être en mesure de simuler ces caractéristiques naturelles en augmentant ou en réduisant la vitesse de déroulement des segments de l'enveloppe d'après la hauteur de la note jouée.

Par extension, rien n'empêche de contrôler cette vitesse par la vélocité (attaque plus rapide lorsqu'une touche est enfoncée plus rapidement, release plus lent lorsqu'une touche est relâchée plus lentement, etc). En poursuivant ce raisonnement, hauteur et vélocité pourront également agir non plus sur les pentes, mais sur les niveaux des différents segments (niveau d'attaque plus élevé dans les aigus que dans les graves, niveau de decay plus faible lorsqu'une touche est enfoncée plus lentement, etc).

Trop souvent négligées, ces quatre méthodes (contrôle de la vitesse et/ou du niveau des segments, individuellement ou globalement, en plus ou en moins en fonction de la hauteur d'une note et/ou à la vélocité), permettent de rendre un son extrêmement vivant, en y induisant de subtiles nuances...

ParticularitésPour en finir avec la théorie, précisons que la vélocité de relâchement, bien que rarement implémentée, représente un cas particulier. En effet, contrairement à la vélocité d'enfoncement ou au numéro de note, celle-ci est incapable d'influer sur les segments compris entre l'attaque et le sustain puisqu'elle appartient au message de note relâchée, qui par définition, déclenche le ou les segments de release d'une enveloppe (des instruments comme le Kawai K5 ou ceux de la série Casio examinée le mois dernier comportent plusieurs segments de release).

Enfin, notons que le contrôle des pentes et niveaux des segments ne concerne pas uniquement l'enveloppe d'amplitude, mais tout module d'un générateur de son auquel s'adresse une enveloppe (filtre, oscillateur...). je vous propose, à titre indicatif, d'examiner sommairement la manière dont certains synthétiseurs procèdent, histoire de vous faire une idée plus précise sur la mise en oeuvre de ces quelques notions.

Le Yamaha SY77

Le paramètre keyboard rate scaling (+/-7), programmable pour chacune des enveloppes d'amplitude, de filtre et de pitch, en contrôle la vitesse de déroulement suivant la hauteur de la note jouée. Par ailleurs, les niveaux de l'enveloppe de pitch réagissent à la vélocité (l'importance des écarts de hauteur variant proportionnellement à la vitesse de frappe).

Le Roland D-50

Sur le D-50, tous les segments de l'enveloppe de pitch sont sensibles à la vélocité quant à leurs vitesses (velo, de 0 à 2) ou à la hauteur de la note quant à leurs niveaux (time key follow, de 0 à 4). De même pour l'enveloppe de filtre (plus précis, le paramètre velo va de 0 à 99), si ce n'est que la hauteur de la note intervient aussi sur les niveaux de tous les segments (depth key follow, de 0 à 4). Pour l'enveloppe d'amplitude, en plus du paramètre time key follow, la vitesse du segment d'attaque est sensible à la vélocité (velo, de 0 à 99).

Le Roland JD-800

Sur le plan de l'enveloppe d'amplitude, la vélocité, pondérée par l'une des quatre courbes de réponse disponibles (vélocité en abscisse, valeur convertie en ordonnée), influe d'une part sur les niveaux des deux premiers segments (L1, L2) et sur celui du sustain en fonction de la valeur du paramètre velocity sensitivity (+/-50), et d'autre part sur la durée de l'attaque en fonction du paramètre time velocity sensitivity (+/-50).

Enfin, le numéro de note influe sur la durée des deuxième et troisième segments ainsi que sur celle du release en fonction de la valeur du paramètre time key follow (+/-10). A quelques détails près, les enveloppes de filtre et de hauteur du JD-800 sont contrôlées similairement.

Le Korg M1

Tous les segments de l'enveloppe de pitch sont sensibles à la vélocité, qu'il s'agisse de leurs vitesses (EG time vel sens, +/-99), ou de leurs niveaux (EG level vel sens, +/-99). Les quatre segments des enveloppes de filtre et d'amplitude (attack, decay, slope, release) sont individuellement programmables pour répondre en plus ou en moins à la vélocité et/ou au à la hauteur de la note (par rapport à un point central : center key), et ceci quant à leurs vitesses, en fonction d'un taux global (EG time velocity sensitivity, EG time keyboard tracking, tous deux allant de 0 à 99).

Le niveau de l'ensemble des segments de l'enveloppe de filtre est également sensible à la vélocité (EG intensity velocity sensitivity, +/-99).

Le Kawai K5

Nous nous bornerons à commenter l'enveloppe d'amplitude, constituée de sept segments (le sustain, à emplacement fixe, correspondant au niveau du cinquième segment). Après avoir sélectionné individuellement le ou les segments à traiter, il est possible d'en contrôler la vitesse à partir de la vélocité d'enfoncement, de relâchement, et du numéro de note (+/- 15 pour chacun de ces trois contrôles).

Quant au niveau de l'ensemble des segments, il répond à la vélocité d'enfoncement et à la hauteur de la note jouée (+/-31 pour chacun de ces deux paramètres). De plus, il faut savoir que le K5 traite cette hauteur après qu'elle soit passée par une courbe de pondération nommée 'keyboard scaling curve' (d'un concept proche de celui qu'emploie le JD-800 pour la vélocité).

Egalement utilisée par d'autres modules que l'enveloppe d'amplitude, cette courbe se programme en définissant une note centrale (break point), ainsi que des pentes ascendantes ou descendantes (+/-31) de part et d'autre de celle-ci. Un bon moyen de personnaliser la réponse à la hauteur.

La conclusion à tirer de ces quelques exemples est que chaque constructeur traite d'une manière qui lui est propre la réponse d'une enveloppe à la hauteur de la note et à la vélocité, avec plus ou moins d'efficacité. Si votre synthétiseur habituel ne figure pas parmi les cinq modèles ci-dessus, décortiquez-en le mode d'emploi !

Christian Braut