École Polytechnique Université de Montréal Réalisation d'un processeur audio multi-effets dans l'environnement “Cubase VST” et sur le DSP56002 de Motorola Rapport de projet de fin d’études soumis comme condition partielle à l’obtention du diplôme de baccalauréat en ingénierie. Présenté par : Jasmin Frenette Matricule : 58475 Directeur de projet : Michel Lemire Département de Génie Électrique et de Génie Informatique Décembre 1998 Réalisation d'un processeur audio multi-effets dans l'environnement “Cubase VST” et sur le DSP56002 de Motorola Les nouveaux PCs, de plus en plus performants, remettent en question l'utilisation de DSPs dédiés pour réaliser des effets audio en temps réel. Dans le cadre de ce projet, les équations mathématiques des effets les plus répandus en musique (écho, chorus, flanger, réverbération et compression) ont été développées et implantées sur un PC (dans l’environnement du logiciel audio «Cubase VST») et sur le DSP56002 de Motorola. Nous avons ainsi pu constater que la plate-forme PC se démarquait par son interface utilisateur flexible, sa facilité de programmation et sa grande quantité de mémoire. De plus, il est ressortit que malgré la performance considérable du DSP, sa mémoire limitée, sa faible résolution interne et son architecture à point fixe rend sa programmation beaucoup plus complexe. Finalement, la sonorité des effets implantés s’est ...
École Polytechnique Université de Montréal Réalisation d'un processeur audio multi-effets dans l'environnement Cubase VST et sur le DSP56002 de Motorola
Rapport de projet de fin détudes soumis comme condition partielle à lobtention du diplôme de baccalauréat en ingénierie.
Présenté par : Jasmin Frenette Matricule : 58475 Directeur de projet : Michel Lemire Département de Génie Électrique et de Génie Informatique
Décembre 1998
Réalisation d'un processeur audio multi-effets dans l'environnement Cubase VST et sur le DSP56002 de Motorola
Les nouveaux PCs, de plus en plus performants, remettent en question l'utilisation de DSPs dédiés pour réaliser des effets audio en temps réel. Dans le cadre de ce projet, les équations mathématiques des effets les plus répandus en musique (écho, chorus, flanger, réverbération et compression) ont été développées et implantées sur un PC (dans lenvironnement du logiciel audio «Cubase VST») et sur le DSP56002 de Motorola. Nous avons ainsi pu constater que la plate-forme PC se démarquait par son interface utilisateur flexible, sa facilité de programmation et sa grande quantité de mémoire. De plus, il est ressortit que malgré la performance considérable du DSP, sa mémoire limitée, sa faible résolution interne et son architecture à point fixe rend sa programmation beaucoup plus complexe. Finalement, la sonorité des effets implantés sest avérée excellente sur le PC tout comme sur le DSP. Mots Clés : processeur multi-effet DSP audio musique.
ii
TABLE DES MATIÈRES
LISTE DES FIGURES ................................................................................................................................ V LISTE DES TABLEAUX ............................................................................................................................ V LISTES DES SYMBOLES ET DES ABRÉVIATIONS .......................................................................... VI 1 INTRODUCTION ................................................................................................................................ 1 2 PROBLÉMATIQUE ............................................................................................................................ 2 3 MÉTHODOLOGIE.............................................................................................................................. 4 3.1 CHOIX DES PLATE-FORMES ET DES LOGICIELS .................................................................... 4 3.2 DESCRIPTION DES PLATE-FORMES ET DES LOGICIELS....................................................... 5 3.3 RÉALISATION DES ALGORITHMES ........................................................................................... 7 4 RÉSULTATS ........................................................................................................................................ 8 4.1 RÉALISATION DE LÉCHO ........................................................................................................... 8 4.2 RÉALISATION DU FLANGER ..................................................................................................... 10 4.3 RÉALISATION DU CHORUS ....................................................................................................... 15 4.4 RÉALISATION DE LA RÉVERBÉRATION................................................................................. 22 4.5 RÉALISATION DU COMPRESSEUR........................................................................................... 25 4.6 MODIFICATIONS ET AMÉLIORATIONS POSSIBLES ............................................................. 31 5 DISCUSSION...................................................................................................................................... 33 5.1 QUALITÉ DES ALGORITHMES IMPLANTÉS ........................................................................... 33 5.2 COMPARAISON DES PROBLÈMES DE CONCEPTION SUR PC ET DSP............................... 33 5.3 CARACTÉRISTIQUES DES PLATES-FORMES ......................................................................... 35 CONCLUSION............................................................................................................................................ 38 RÉFÉRENCES............................................................................................................................................ 40 ANNEXE A .................................................................................................................................................. 42 ANNEXE B .................................................................................................................................................. 45
iii
REMERCIEMENTS
Jaimerais exprimer ma reconnaissance à tous ceux qui ont contribué à la
réalisation de ce travail. Plus particulièrement à Mlle Renée Touzin pour son aide dans
le domaine des générateurs de nombres pseudo-aléatoires et à M. Michel Lemire qui a
accepté dêtre mon directeur de PFE et qui ma assisté tout au long du projet.
iv
LISTE DES FIGURES Fig. 1 Interface Graphique des plugins dans le logiciel Cubase VST............................. 5 Fig. 2 Modèle de leffet décho ....................................................................................... 8 Fig. 3 Comportement temporel du flanger.................................................................... 10 Fig. 4 Modèle du Flanger ............................................................................................. 11 Fig. 5 Diagramme de loscillateur numérique ............................................................... 12 Fig. 6 Listing et simulation Matlab de loscillateur du DSP ........................................... 14 Fig. 7 Comportement temporel du chorus .................................................................... 15 Fig. 8 Modèle du chorus ............................................................................................... 16 Fig. 9 Filtrage de la séquence pseudo aléatoire sur le PC........................................... 18 -Fig. 10 Séquence pseudo-aléatoire sur le PC.............................................................. 19 Fig. 11 Comportement temporel des quatre séquences pseudo-aléatoires sur le PC . 19 Fig. 12 Séquences pseudo-aléatoires sur le DSP........................................................ 21 Fig. 13 Modèle de la réverbération............................................................................... 22 Fig. 14 Modèle détaillé des «all pass reverbs» ............................................................ 23 Fig. 15 Modèle détaillé des «comb filters» ................................................................... 23 Fig. 16 Modèle du compresseur ................................................................................... 25 Fig. 17 Modèle détaillé du «offset filter»....................................................................... 26 Fig. 18 Modèle détaillé du «release stage».................................................................. 27 Fig. 19 Modèle détaillé du «loop filter»......................................................................... 28 Fig. 20 Comportement du «loop filter» ......................................................................... 28 Fig. 21 Paramètres du compresseur ............................................................................ 29 LISTE DES TABLEAUX Tableau 1 - Paramètres du Flanger................................................................................. 10 Tableau 2 - Paramètres du Chorus ................................................................................. 15 Tableau 3 - Paramètres de la réverbération.................................................................... 24 Tableau 4 - Paramètres du compresseur ........................................................................ 29
v
Audio Engineering Society Central Processing Unit Digital Signal Processing (désigne aussi «Digital Signal Processor») First In First Out Multiply Accumulate (instruction standard dun DSP) Million Instructions Per Second Read Only Memory Static Random Acces Memory Low Frequency Oscillator Random Number Generator
LISTES DES SYMBOLES ET DES ABRÉVIATIONS AES CPU DSP FIFO MAC MIPS ROM SRAM LFO RNG
vi
1 INTRODUCTION Les nouveaux PCs, de plus en plus performants, remettent en question l'utilisation de DSPs dédiés pour réaliser des effets audio en temps réel. Cest pourquoi on voit apparaître sur le marché de plus en plus de logiciels destinés à faire le même traitement audio que les appareils «hardware» traditionnels. Ainsi, ces derniers devront miser sur leurs avantages sur les logiciels et réorienter leur marché sils veulent rivaliser avec les performances et les coûts des nouveaux processeurs virtuels qui font leur apparition dans le monde des PC. Dans le cadre de ce projet, afin de mieux caractériser les plates-formes logicielles et matérielles, nous nous proposons de réaliser plusieurs effets audio traditionnels. Ces effets seront réalisés à la fois sur un PC et sur un DSP, ce qui nous permettra de mettre en évidence les qualités de chacune de ces plates-formes. Les algorithmes utilisés seront élaborés à partir des descriptions comportementales des effets audio traditionnels. Les effets réalisés seront lécho, le flanger, le chorus, la réverbération et la compression. Tout au long de ce projet, nous ferons état des difficultés ou particularités de conception afin de dresser un portrait révélateur des plates-formes évaluées. Nous pourrons donc les comparer et porter un jugement sur leur puissance, leur flexibilité, la qualité de leur traitement audio et leur facilité dutilisation et de programmation.
1
2 PROBLÉMATIQUE La plupart des effets audio numériques actuels sont inspirés des effets électroniques, acoustiques où mécaniques traditionnels. Avant lavènement de la numérisation, les effets à base de délai (écho, chorus, flanger, etc.) étaient réalisés à laide denregistreurs à ruban. Les réverbérations étaient réalisées à partir de ressorts ou alors simulées en enregistrant le son provenant de haut-parleurs dans une salle possédant de bonnes qualités acoustiques. Finalement, dautres effets comme les compresseurs étaient réalisés de façon analogique à laide de transistors. Ce nest que vers la fin des années 50 que les ordinateurs sont devenus assez puissants pour permettre le traitement de laudio en un temps relativement acceptable (mais encore très loin du temps réel). Depuis, les processeurs appelés DSP sont sortit sur le marché. Leur langage assembleur optimisé pour le traitement du signal leur permet de réaliser des effets audio de plus en plus complexes en temps réel. Ainsi, de nos jours, il est courant den retrouver un peu partout, dautant plus que leur taille permet leur utilisation dans une vaste gamme dappareils. Puis les PC actuels sont devenus si rapides que même sils nont pas étés conçus pour le traitement du signal, ils sont maintenant en mesure de rivaliser avec les DSPs. Leur interface graphique conviviale et leurs environnements de programmation élaborés les rendent très attrayants, tant pour les programmeurs que pour les utilisateurs. Lobjectif de ce projet est donc de fournir une base de comparaison entre les environnements de programmation du PC et du DSP pour fournir à lingénieur en traitement de signal linformation nécessaire pour prendre une décision plus éclairée lors dun choix de plate-forme de programmation. Pour ce faire, les caractéristiques suivantes des deux plates-formes seront observées :
la facilité dutilisation du multi-effet par lutilisateur ; la flexibilité de lalgorithme : le nombre de paramètres accessibles à lusagé ; le niveau de complexité de lalgorithme réalisable en temps réel (la puissance et la rapidité du processeur) ;
2
la mémoire disponible ; le nombre de bits des échantillons lors du traitement :la qualité du son produit interne et la fréquence déchantillonnage ; le temps de développement dun effet selon sa complexité ; le temps dapprentissage de lenvironnement de programmation ; la puissance de lenvironnement de programmation.
Afin de bien évaluer toutes ces caractéristiques, tous les effets réalisés seront implantés sur les deux plates-formes. De plus, des effets audio simples et complexes seront réalisés, ce qui permettra de distinguer les avantages des plates-formes selon la complexité de lalgorithme à implanter.
3
3 MÉTHODOLOGIE 3.1 CHOIX DES PLATE-FORMES ET DES LOGICIELS 3.1.1 Choix du logiciel sur le PC Le traitement de laudio sur Mac ou PC, il ny a pas si longtemps réservé aux studios denregistrement et aux salles de montage vidéo professionnelles, est maintenant beaucoup plus abordable et donc accessible aux particuliers qui sintéressent à la musique. Bien que la plupart des programmes professionnels (Pro Tools, Soundscape, PARIS, etc.) nécessitent un ajout matériel à lordinateur afin de le rendre plus performant, les nouveaux logiciels destinés aux particuliers ou aux petits studios (Sound Forge, Cakewalk, Emagic Logic Audio, etc.) exploitent la vitesse des nouveaux CPUs pour réaliser le traitement audio en temps réel. La plupart de ces logiciels supportent les «plugins». Un plugin est un petit logiciel qui vient complémenter un programme denregistrement ou de traitement audio en lui offrant une fonctionnalité supplémentaire. La plupart des plugins sont des effets audio (réverbération, égalisation graphique, distorsion, etc.) que lusager peut acheter après sêtre procuré le programme audio principal de son choix. Pour la réalisation du projet sur PC, le logiciel Cubase VST de la compagnie Steinberg a été retenu car la méthode de réalisation des plugins quil supporte est accessible gratuitement et est très bien documentée [19]. De plus, les plugins VST sont de plus en plus reconnus par les logiciels audio sur PC. 3.1.2 Choix du DSP Par ailleurs, pour le traitement audio à laide dun DSP, plusieurs compagnies offrent des solutions abordables (Analog Devices, AT&T, Motorola, NEC, Texas Instruments, Zoran, etc.). Les vitesses de leurs DSPs en juin 1995 se situaient entre 8.8 et 70 MIPS et leur prix, entre 6$ et 450$ (pour une commande de 1000 pièces) [10]. Certains modèles (avec arithmétique à point fixe) représentent les échantillons audio par des entiers ou des fractions entre 1.0 et 1.0 alors que dautres (à points flottants) les
4
représentent à laide dune mantisse suivit dun exposant. Notons que dans le premier cas, il est aussi possible (bien que coûteux en temps de calcul) de simuler larithmétique flottante lorsque nécessaire. Dans le cadre de ce projet, le DSP56002 de Motorola a été choisi car il est assez puissant pour effectuer les effets audio envisagés et relativement peu dispendieux. De plus, un module dévaluation et les outils de développement du DSP sont disponibles à prix raisonnable. 3.2 DESCRIPTION DES PLATE-FORMES ET DES LOGICIELS 3.2.1 Caractéristiques du logiciel Cubase VST et du PC Le logiciel Cubase offre une interface graphique standard pour les plugins qui a lapparence des processeurs audio «hardware» traditionnels (voir fig.1), ce qui permet de sauver du temps lors de la programmation de linterface usagé. Le langage utilisé pour la programmation des plugins est le C++ (bien quil y ait aussi moyen dutiliser le C) car le logiciel Cubase a été réalisé en C++. Les échanges entre les plugins et Cubase se font aisément à laide de fonctions définies de façon très précise dans le guide de programmation des développeurs fournis par Steinberg [19]. Tous les échantillons audio sont codés sur 16 bits, mais ils sont convertis en nombres à point flottant de 32 ou de 64 bits (floats ou doubles) pour tous les calculs internes. Notons aussi que la mémoire utilisée par les plugins est une partie de celle réservée par Windows à lapplication Cubase.
Fig. 1 Interface graphique des plugins dans le logiciel Cubase VST Pour le projet, la programmation C++ se fera avec le compilateur Visual C++ 5. Le logiciel Cubase VST (version 3.553) roule sur Windows 95 sur un Pentium II 266MHz