Ce référentiel est une collection de plugins d'effets audio implémentés à partir des explications du livre "Audio Effects: Theory, Implementation and Application" de Joshua D. Reiss et Andrew P. McPherson, et prend comme exemple le code fourni avec le livre qui a des contributions et implémentations par Brecht De Man et d'autres.
Les effets audio implémentés sont :
Template Time Domain implémente une interface utilisateur graphique générique avec des curseurs, des bascules et des listes déroulantes linéaires et logarithmiques. Ce projet introduit une classe personnalisée de paramètres audio qui résume une grande partie de la complexité liée à l'ajout, à la configuration et à l'utilisation de paramètres de plugin automatisables à la fois dans le processeur audio et dans l'éditeur générique (GUI). Ce plugin n'applique aucun traitement particulièrement intéressant à l'entrée, il s'agit simplement d'un projet modèle pour les effets de traitement audio dans le domaine temporel.
Le domaine de fréquence du modèle implémente une classe de transformation de Fourier à court terme. Ce plugin n'applique aucun traitement à l'entrée, il convertit simplement le bloc d'entrée dans le domaine fréquentiel, puis de nouveau dans le domaine temporel en utilisant la méthode d'ajout de chevauchement. Ce plugin est utilisé comme projet modèle pour les effets de traitement audio dans le domaine fréquentiel.
Delay implémente un délai de base avec des commandes de feedback et de mixage utilisant une ligne de retard circulaire. Il utilise une simple interpolation linéaire pour obtenir des temps de retard fractionnaires.
Vibrato utilise un oscillateur basse fréquence (LFO) pour moduler le retard du signal d'entrée et simuler des variations périodiques de hauteur. Différents types d'interpolation d'échantillons sont introduits dans ce plugin.
Flanger simule un effet audio basé sur un retard dans lequel une copie du signal d'entrée est retardée avec un temps de retard variable et mélangée au son d'origine, produisant ainsi le son "swooshing" caractéristique de cet effet audio classique.
Chorus simule le phénomène qui se produit lorsque plusieurs musiciens interprètent le même morceau en même temps, c'est-à-dire qu'il crée des copies du signal d'entrée avec de petites variations de hauteur et de temps, créant ainsi une source unique comme s'il s'agissait de plusieurs enregistrements individuels.
Ping-Pong Delay est une version stéréo du delay de base. Dans le délai Ping-Pong, le signal retardé rebondit entre les canaux gauche et droit.
L'égaliseur paramétrique implémente différents types de filtres paramétriques (passe-bas, passe-haut, plateau bas, plateau haut, passe-bande, coupe-bande et crête/encoche). Les filtres du premier et du deuxième ordre peuvent être sélectionnés et ajustés en fonction de la fréquence de coupure, du facteur de qualité (bande passante) et du gain.
Wah-Wah est un effet audio qui injecte un caractère vocal au son d'entrée. Il peut être utilisé en mode manuel, où la fréquence de coupure d'un filtre passe-bas résonnant, d'un passe-bande ou d'un filtre de crête/coupe-bande est modifiée à l'aide d'un curseur, ou en mode automatique où la fréquence de coupure du Le filtre est contrôlé avec un LFO, avec l'enveloppe du signal d'entrée, ou avec une combinaison des deux.
Phaser utilise des filtres passe-tout en configuration en cascade pour introduire des déphasages dans le signal d'entrée. Ces décalages créent des encoches dans le spectre de fréquences lorsque le signal filtré est mélangé avec celui d'origine. Le phaser produit un effet similaire au flanger, mais il y a potentiellement plus de contrôle sur l'emplacement des encoches.
Tremolo utilise un LFO pour moduler l'amplitude du signal d'entrée. Cela simule de petites variations du niveau du signal ou transforme une seule note soutenue en une série de répétitions rapides.
La modulation en anneau est le résultat de la multiplication du signal d'entrée par une porteuse périodique (similaire au trémolo mais à des fréquences plus élevées). Il s'agit d'un effet audio non linéaire qui crée un son très inharmonique.
Compresseur/Expanseur implémente quatre processeurs audio en un (compresseur, limiteur, expanseur et noise gate). La configuration Compresseur/Limiteur réduit la plage dynamique du signal en atténuant les sections du son d'entrée avec un gain supérieur au seuil. La configuration Expander/Noise gate augmente la plage dynamique en atténuant les sections du son d'entrée avec un gain inférieur au seuil.
La distorsion applique une transformation non linéaire au son d'entrée qui augmente son gain jusqu'à des limites créant un son dur, flou ou granuleux. Différentes fonctions non linéaires peuvent être sélectionnées et le gain de sortie peut être contrôlé individuellement pour restaurer le niveau sonore d'origine. Un filtre haut de gamme peut également être utilisé pour contrôler la tonalité du son de sortie.
La robotisation/chuchotement implémente deux effets audio basés sur l'algorithme du vocodeur de phase. Ce plugin est destiné à être utilisé avec des sons vocaux. La robotisation applique une hauteur constante au signal tout en préservant les formants, le résultat sonne comme une voix robotique. La chuchotation élimine toute sensation de hauteur tout en préservant les formants, le résultat devrait ressembler à celui de quelqu'un qui chuchote.
Pitch Shift modifie la hauteur du signal d'entrée sans changer la durée à l'aide de l'algorithme du vocodeur de phase. Il s'agit d'une implémentation en temps réel qui permet des changements continus et fluides du paramètre de pitch shift.
Le panoramique modifie la position apparente d'une source sonore entre deux canaux, gauche et droite. Il peut être utilisé dans deux modes, le premier mode utilise l'effet de préséance et la loi tangente pour ajuster les retards et les gains des signaux gauche et droit, il est bon pour la reproduction sur des haut-parleurs en supposant une disposition stéréo standard. Le deuxième mode utilise un modèle sphérique de la tête pour estimer la différence de temps interaural (ITD) et la différence de niveau interaural (ILD). Il convient parfaitement à la reproduction au casque.
Ces plugins sont implémentés à l'aide de JUCE, qui fournit un cadre pour créer des plugins audio pour diverses plates-formes (Windows et macOS) et dans plusieurs formats (VST, AU, RTAS, AAX, etc.), ainsi que des applications autonomes. Vous pouvez exécuter les commandes suivantes dans le terminal pour cloner ce référentiel et extraire la dernière version de JUCE utilisée pour créer tous les projets :
git clone https://github.com/juandagilc/Audio-Effects.git
cd Audio-Effects/
git submodule update --init
Code de Juan Gil https://juangil.com/. Copyright © 2017-2020 Juan Gil.
Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la licence publique générale GNU telle que publiée par la Free Software Foundation, soit la version 3 de la licence, soit (à votre choix) toute version ultérieure.
Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de QUALITÉ MARCHANDE ou d’ADAPTATION À UN USAGE PARTICULIER. Voir la licence publique générale GNU pour plus de détails.
Vous devriez avoir reçu une copie de la licence publique générale GNU avec ce programme. Sinon, consultez https://www.gnu.org/licenses/.