Вы находитесь на странице: 1из 8

PLATEFORME VERSATILE DEXPERIMENTATION AUDIO : TRAITEMENT ET SYNTHESE NUMERIQUE

L. Barrandon Institute of Microelectronics and Wireless Systems, National University of Ireland Maynooth lbarrandon@eeng.nuim.ie
RSUM Nous prsentons une plateforme lectronique ddie la mise en uvre de traitements numriques audio en temps rel. Ce systme modulaire permet de numriser jusqu 8 signaux audio mono provenant de diffrentes sources, et de les restituer, aprs traitements, sur 8 sorties. Le caractre reprogrammable de son lment principal, un FPGA1, permet dutiliser cet outil des fins dexploration concernant le traitement et la synthse du son. Il peut donc tre employ aussi bien dans un cadre pdagogique, quexprimental et artistique. Deux aspects principaux sont dvelopps dans ce document. Une prsentation gnrale de la constitution matrielle du prototype, de son fonctionnement et de sa mise en uvre permet dapprcier la versatilit de cet outil. Partant de cette base, quelques applications concrtes sont proposes et permettent une initiation pratique et progressive au traitement numrique du son suivant les diffrents niveaux hirarchiques dfinis : le niveau oprateur dfinit les outils arithmtiques et les manipulations lmentaires disponibles, le niveau fonction met en uvre les oprateurs afin de produire des effets et outils de synthse, le niveau application vise personnaliser la plateforme pour une finalit prcise : linterface homme-machine (paramtrage et couplage au geste) ainsi que les paramtres ainsi contrls sont programmables volont. 1. INTRODUCTION

S. Crand Institut dElectronique et de Tlcommunications de Rennes samuel.crand@univ-rennes1.fr

ainsi quune mise en uvre des principes du traitement du signal travers la manipulation du son. La section suivante prsente la plateforme dveloppe et donne une vue densemble de ses possibilits oprationnelles au travers de sa conception matrielle, de ses performances intrinsques, et des diffrentes tapes ncessaires sa mise en uvre. La troisime partie dcrit des applications possibles utilisant cette carte par une approche concrte, hirarchique et volutive rpondant dventuels besoins pdagogiques, les tudiants tant capables de constituer leur propre synthtiseur et de personnaliser leurs effets sonores en temps rel. Nous aborderons finalement les perspectives ouvertes par cette approche et les diffrents objectifs fixs afin denrichir notre projet. 2. LA PLATE-FORME

Cette partie prsente les caractristiques physiques du prototype (conception, performances) et explique les diffrentes oprations ncessaires son utilisation.
2.1. Principe

Cet article prsente la premire phase dun projet intitul Dveloppement dune plate-forme de prototypage pour applications audio [1]. Ce projet sinscrit dans la formation Master lectronique prpare luniversit de Rennes 1. Cette plate-forme sera enrichie danne en anne dans le cadre de projets effectus par des tudiants de Master 1 ou de Master 2. Lobjectif final de ce projet tait de mettre en uvre une plate-forme reconfigurable ddie des applications de traitement du signal audio. Outre le fait que le dveloppement de cette plate-forme est assur par des tudiants, celle-ci sera aussi un support pour lenseignement. En effet, cette plate-forme matrielle sera utilise pour mettre en pratique les concepts et les mthodologies de conception de systmes numriques
1

FPGA : les Field Programmable Gate Array , ou rseaux de portes programmables, constituent une famille de composants lectroniques numriques apparue dans les annes 90.

Lindustrie de llectronique propose depuis quelques annes des composants de traitement numrique flexibles, performants et abordables, aussi bien financirement que du point de vue de leur prise en main. Dune part, les FPGA, de part leur capacit accder et manipuler de faon transparente des donnes binaires donnent une grande libert aux concepteurs. Ils ncessitent lutilisation dun ensemble doutils logiciels ddis dont nous parlerons rapidement par la suite, et la description de lapplication laide de langages dits de description matrielle tels que VHDL [2, 3]. Les exemples donns dans le troisime paragraphe seront crits laide de ce langage dont la syntaxe et lutilisation sont trs abordables tout en permettant la programmation dalgorithmes complexes. Lobjectif de la 1re phase de ce projet tait donc de dvelopper une plate-forme de prototypage pour applications audio. Pour ce faire, nous avons slectionn un CODEC audio, conu et ralis les cartes lectroniques ncessaires, et cr linterface de contrle du systme afin dinitialiser la plateforme et de rendre son utilisation transparente. Dun point de vue applicatif, ce systme permet de numriser jusqu 8 signaux audio mono provenant de

diffrentes sources (instruments de musique, lecteur MP3, oscillateurs), et de les restituer, aprs traitements, sur 8 sorties (par exemple des hauts parleurs pr amplifis, une table de mixage...). Il est donc possible de traiter des donnes audio, et ventuellement mixer diffrentes sources de signaux audio. La qualit dcoute est de fait un critre dterminant dans la conception de notre systme. Cet aspect pourra tre pris en compte lors de la caractrisation du module mise en forme principalement constitu de filtres analogiques.
2.2. Conception matrielle

Ci-dessous, une photographie du prototype indiquant lencombrement total du dispositif actuel (carte de filtrage 23x 20 cm, carte Codec 10 x 7cm.
Entre s

SPARTAN3

CODEC

La figure 1 prsente lorganisation de la plate-forme. Ce projet sarticule autour de la carte de prototypage SPARTAN-3 Starter Board de la socit DIGILENT [4] et de deux cartes ralises pour notre application.

FILTRAGE Sortie s

Figure 2. Prsentation des 3 cartes. 2.2.1. audio


Entre 8 voies Connectique + Filtrage Sortie 8 voies

Carte dacquisition et de restitution

CODEC

Analogique

Numrique

Traitements

Interfaces utilisateur

La carte dite carte CODEC est constitue du CODEC AUDIO CS42448-CQZ de la socit CIRRUS LOGIC [5]. Ce composant permet dacqurir jusqu 8 entres mono (soit 4 entres stro) et 8 sorties mono (soit 4 sorties stro). Il possde 3 convertisseurs analogique/numrique (CAN) stro, dont un pouvant tre multiplex en interne pour grer 4 entres mono (2 voies stro), et 4 convertisseurs numrique/analogique (CNA) stro indpendants. La frquence dchantillonnage des convertisseurs est comprise entre 32 KHz et 192 KHz et leur rsolution est de 16 24 bits (voir table 1). Ces paramtres peuvent tre slectionns par lutilisateur en cours de fonctionnement. Le CODEC est constitu de deux parties principales : le port de contrle et le port de donnes. Des fonctions de configuration, dajustement de volume en entre et en sortie sont accessibles directement par le port de contrle. Lacquisition et lenvoi dchantillons audio sont assurs par le port de donnes par une liaison srie. Au lieu dutiliser un microcontrleur pour le contrle et un DSP pour le traitement des chantillons audio, nous avons choisi un FPGA. Les avantages dune telle utilisation sont dune part que le FPGA permet de remplir ces deux rles et dautre part dillustrer lenseignement portant sur limplantation matrielle dapplications dcrites haut niveau. Entres Sorties Frquence chant. Rsolution Min 1 voie 1 voie 32 16 Max 8 voies mono 8 voies mono 192 kHz 24 bits

Figure 1. : Synoptique de la plate-forme audio.

Lutilisateur peut agir en temps rel sur lapplication par le biais des 4 boutons poussoirs et des 8 interrupteurs prsents sur la carte. Afin dtendre lergonomie, le port PS2 permet de brancher soit un clavier, soit une souris dont les donnes peuvent tre interprtes par lapplication. Par exemple, la position de la souris est code par deux nombres sur 8 bits. Ces deux nombres peuvent par exemple reprsenter de manire relativement directe un volume sonore ou une frquence doscillation.

Table 1. Performances dacquisition/restitution.

2.2.2.

Carte de traitement et de configuration


AUDIO
CODEC ADCs DACs

La carte Xilinx Spartan-3 [6], avec son FPGA associ et ses ports priphriques est tout fait adapte ce type de plate-forme de prototypage1. Elle nous permet de configurer et de piloter le CODEC audio tout en effectuant des traitements numriques sur les chantillons audio, grce au FPGA. De plus, les liaisons VGA et srie permettent limplantation dune interface homme/machine facilitant lergonomie de ce type de plate-forme. Cette interface permet la fois dinteragir sur le fonctionnement de la plate-forme en assurant la configuration, la gnration de signaux audio, le suivi des traitements et la rcupration de donnes traites. Frquence dhorloge Ressources logiques Multiplieurs 18b x 18b Mmoire FPGA Mmoire externe 50 MHz 200 000 portes 12 216kbits 1Mo

Registres

Acquisition

Restitution

Configuration CODEC Gestion horloges

Application , traitements

Affichage

Interfaces

FPGA

Table 2. Caractristiques de la carte de traitement.

Figure 3. Organisation fonctionnelle de la plateforme.

Les ressources logiques dites distribues , relatives aux 200 000 portes peuvent prendre en charge tout type dopration numrique lmentaire. Des oprations plus complexes, telles que la multiplication ou la fonction mmoire, peuvent tre mises en uvres en utilisant des blocs prcbls du FPGA. Lintrt davoir des multiplieurs et de la mmoire ddis consiste optimiser le systme tout en conomisant les ressources logiques distribues. Environ 3% des ressources sont utiliss pour linterfaage (port souris) et la configuration du CODEC.
2.2.3. Carte dinterface connecteur et filtrage.

La suite de cet article sera consacre aux fonctions qui peuvent tre intgres au bloc nomm application, traitements . Nous allons nous intresser de plus prs aux tapes ncessaires la mise en uvre de la plateforme :
Dfinition du fonctionnement objectif Description du systme (VHDL , Verilog, vue schmatique Simulation, vrification

Synthse physique

La carte dite de filtrage intgre les connectiques audio, des filtres actifs et passifs (anti-repliement et adaptation dimpdance) sur chacune des entres et des sorties, ce qui explique la taille de cette carte. Le choix entre les deux types de filtres est assur par des cavaliers. Nous avons choisi de sparer le CODEC audio des filtres et connectiques pour pouvoir augmenter la modularit de notre plate-forme de prototypage et faciliter son utilisation dans un cadre pdagogique. En effet, la carte de filtrage pourra tre utilise en licence 2 et/ou licence 3 afin dillustrer lenseignement sur les filtres passifs et actifs. Lintrt est de pouvoir caractriser simplement les filtres en leur fournissant un signal audio et en connectant les sorties des haut-parleurs pr amplifis.
2.3. Mise en uvre, utilisation

Programmation de la carte

Vrification sur prototype, utilisation finale

Figure 4 Flot de dveloppement dune application sur FPGA

Toutes les oprations dinitialisation et de configuration du CODEC, de rcupration et de restitution des donnes sont les premires fonctions dj ralises sur la base de ce systme et sont organises selon le schma prsent sur la figure suivante :
1

La socit Altera propose des produits comparables, et le site [7] peut tre consult. Les logiciels proposs sont galement comparables en premire approximation. Les codes VHDL et les principes fondamentaux sont donc transposables sans distinction de marque.

La premire tape de tout projet est la dfinition du fonctionnement atteindre. Lobjectif est de dcrire de faon matrielle, mathmatique et algorithmique les oprations qui devront tre ralises. Cette description est ensuite formalise dans un langage informatique puis le fonctionnement global vrifi par simulation comportementale. Une fois cette tape valide, lopration de synthse logique et physique peut tre effectue. Elle consiste utiliser un logiciel permettant de traduire la description du fonctionnement dun systme en une association de fonctions logiques lmentaires. Elle aboutit la gnration dun fichier de configuration du FPGA qui est envoy sur la carte de traitement typiquement via un cble parallle ou USB. Si le rsultat final nest pas satisfaisant, il faut identifier lerreur ou limperfection en corrigeant la description du systme.

Un des intrts considrables de cette approche matrielle, cest--dire base sur lutilisation dun prototype, plutt quune approche purement simulatoire, est le gain de temps au niveau de lexploration de lespace de conception. En effet, ds lors quune application fonctionne mais ncessite des amliorations, on peut se passer de faire des simulations coteuses en temps, il suffit donc de configurer le FPGA et de lui fournir du son pour valider ou dcider de modifier lapplication considre. 3. APPLICATIONS

ENTITY tremolo IS PORT( entree:IN STD_LOGIC_VECTOR(15 DOWNTO 0); trem:IN STD_LOGIC_VECTOR(15 DOWNTO 0); sortie:OUT STD_LOGIC_VECTOR(15 DOWNTO 0)); END tremolo; ARCHITECTURE exemple OF tremolo IS SIGNAL mult: STD_LOGIC_VECTOR(31 DOWNTO 0) BEGIN mult <= entree * trem; sortie <= mult(31 DOWNTO 16); END exemple;

3.1. Une approche multi niveau

Dans lapproche que nous proposons, afin de tirer parti de la plate forme, nous allons distinguer diffrentes couches hirarchiques dans le but de dcouper les problmes et daborder le prototypage de traitement du signal en temps rel de manire progressive : le niveau oprateur dfinit les outils arithmtiques de base ainsi que les manipulations lmentaires disponibles ; le niveau fonction met en uvre les oprateurs afin de produire des effets et des outils de synthse du son ; le niveau application vise personnaliser la plateforme pour un cadre dutilisation prcis. Dans la suite de cette section, diffrents exemples, loin dtre exhaustifs, sont proposs et explicits pour chaque niveau, par ordre de complexit croissante.
3.2. Niveau oprateur

Les oprateurs, tels que laddition, la multiplication ou la mmoire, constituent le niveau de base en termes de conception de traitements du signal. Ce niveau va nous permettre dillustrer certains principes lmentaires et daborder leur utilisation au sein du prototype audio. Trois exemples sont dtaills ici : la balance, le trmolo et la distorsion.
3.2.1. Le tremolo

Tout comme les exemples qui vont suivre, les mots cls du VHDL sont indiqus en lettres majuscules. LENTITY reprsente linterface dun bloc, cest--dire ses entres et sorties, et lARCHITECTURE dfinit le comportement ou la structure du bloc. STD_LOGIC dsigne basiquement un bit et STD_LOGIC_VECTOR un signal numrique de 16 bits dont les bits sont numrots, dans cet exemple, entre 15 et 0. Entree est un signal mono numris sur 16 bits, cest--dire prlev directement sur lune des sorties du CODEC aprs dsrialisation. Ce signal est envoy sur Sortie aprs multiplication par la valeur de trem. Mult est un signal intermdiaire recevant le rsultat dune multiplication, cest--dire des donnes dont la taille, en bits, est la somme des tailles des oprandes (soit 32 bits). Il faut donc le redimensionner avant de lassocier la sortie 16 bits. Le signal trem peut tre un LFO (de lordre de quelques Hertz) branch sur une entre mono analogique de la carte, aussi bien quune source numrique gnre lintrieur du FPGA, lamplitude et la valeur moyenne de ce signal modulant devant tre adaptes leffet souhait. Un exercice intressant peut consister partir de ce systme raliser un modulateur en anneau.
3.2.2. Balance

La balance consiste associer une amplitude relative chaque sortie audio. Le systme de la figure 6 utilise une source unique (input), rpartie sur deux sorties. La sortie dun oscillateur que nous nommerons bal pilote lamplitude associe chaque sortie.

Le principe du tremolo consiste a moduler un son en multipliant celui-ci par un oscillateur basse frquence [2 chap. 30].

Figure 6. Schma dune balance (source: [7] chap. 30).

Figure 5. Schma dun tremolo (source: [2]).

En VHDL, cela peut se traduire par le code suivant :


LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_SIGNED.ALL;

Ce traitement est trs proche de lexemple prcdent du point de vue de son implmentation et consiste changer la gamme de frquences et ventuellement la nature signal modulant. Afin de gnrer le signal sur la sortie output laquelle est affecte input*(1bal), une astuce simple et efficace consiste crire la ligne VHDL suivante :
Mult <= Input * not(bal) ;

Not(bal) tant le complment 2 de bal, et Mult un

signal intermdiaire suivant le principe du code du tremolo. Tout comme dans lexemple prcdent on peut envisager de remplacer le LFO par une source extrieure, ou de moduler la valeur de bal en temps rel grce la souris, comme voqu dans la partie 2. Rappelons que la plate-forme dispose de 8 sorties mono qui peuvent tre mises profit. Il est donc possible, par exemple, demployer trois signaux quivalents bal et rpartir le son selon les trois dimensions sur 6 ou 8 haut-parleurs.
3.2.3. Saturation, distorsion Figure 7. Exemples de waveshaping dune sinusode [2].

La saturation et la distorsion visent dformer un signal (et peuvent tre parfois des effets indsirables). Voici un exemple de code permettant de saturer un signal en limitant volontairement son amplitude.
{les appels bibliothques sont identiques} ENTITY saturation IS PORT( entree:IN STD_LOGIC_VECTOR(15 DOWNTO 0); sortie:OUT STD_LOGIC_VECTOR(15 DOWNTO 0)); END saturation; ARCHITECTURE exemple OF saturation IS CONSTANT sat:STD_LOGIC_VECTOR(15 0100000000000000; BEGIN PROCESS(entree) BEGIN IF entree > sat THEN sortie <= sat; ELSIF entree < -sat THEN sortie <= -sat; ELSE Sortie <= entree; END IF; END PROCESS; END exemple; DOWNTO 0) :=

Voici le code VHDL pouvant rpondant au principe dfini :


{le bloc ENTITY est identique au prcdent} ARCHITECTURE exemple OF distortion IS TYPE waveshp IS ARRAY (0 TO 2^16-1) OF STD_LOGIC_VECTOR(15 DOWNTO 0); CONSTANT tab: waveshp:= ("111100110011010110", {), "011100110011010110"); BEGIN Sortie <= tab(conv_integer(entree)) ; END exemple;

La fonction conv_integer permet dinterprter le signal dentre (qui est un vecteur de bits) comme un entier, ce dernier tant associ au contenu de la case mmoire correspondante dans le tableau tab, conformment la figure 7.
3.3. Niveau fonction

Ce code spcifie un bloc permettant de limiter le signal dentre entre les valeurs dfinies par sat et sat. Une fois de plus, cette valeur peut tre une donne externe slectionne par boutons poussoirs ou dfinie avec la souris. Suivant un principe plus gnrique mais partant de la mme ide, de la mmoire doit tre utilise dans le but de faire du waveshaping , aussi appel distorsion non-linaire ou processus non-linaire. Au lieu de dfinir trois zones dans la dfinition de la fonction dentre/sortie du code prcdent, chaque code binaire de lentre numrise correspond une case mmoire dont le contenu est attribu la sortie.

Le niveau fonction, comme il a dj t voqu, peut se dfinir comme lassociation de diffrents oprateurs afin de raliser un traitement plus complexe. Deux exemples, lcho et le filtrage sont traits dans cette partie. Dautres effets tels que le vibrato, la compression, auraient galement pu avoir leur place ici.
3.3.1. Echo

Lcho est typiquement un effet utilisant une ligne retard, ce qui se traduit en lectronique numrique par de la mmoire. Le signal est donc transmis de manire directe de la source vers la sortie, et additionn avec une ou plusieurs versions de lui-mme retardes et filtres (ou du moins attnues, cest--dire multiplies par un coefficient). Lexemple suivant prsente un cho dont lamplitude de lentre est divise par 2 chaque passage dans une ligne retard dont le nombre de point mmoire est delay, soit 4410, cest--dire un dixime de seconde une frquence dchantillonnage de 44100 Hz.
{le bloc ENTITY est identique au prcdent} ARCHITECTURE exemple OF echo IS CONSTANT delay : integer := 4410;

TYPE mem IS ARRAY (0 TO delay-1) STD_LOGIC_VECTOR(15 DOWNTO 0); SIGNAL ligne:mem; BEGIN PROCESS(entree) BEGIN Sortie <= ligne(delay-1); FOR i IN delay-1 DOWNTO 0 LOOP ligne(i) <= ligne(i-1); END LOOP ; ligne(0) <= entree/2 + ligne(delay-1)/2 ; END exemple;

OF

sortie:OUT STD_LOGIC_VECTOR(15 DOWNTO 0)); END fir_dir; ARCHITECTURE exemple OF fir_dir IS TYPE mem IS ARRAY (0 TO 4) OF STD_LOGIC_VECTOR(15 DOWNTO 0); SIGNAL dly:mem; CONSTANT coef : mem := ("0011001100110101", "0110011001101000", "0111111111111111", "0110011001101000", "0011001100110101"); BEGIN fir : PROCESS(clk) VARIABLE add:mem; VARIABLE mult:mem; VARIABLE vmult : STD_LOGIC_VECTOR(31 DOWNTO 0); BEGIN IF rising_edge(clk) THEN sortie<=add(Ncoef-1); FOR i IN 0 TO Ncoef-1 LOOP vmult:=coef(i)*dly(i); mult(i):=sxt(vmult(31 DOWNTO 17),16); END LOOP; add(0):=mult(0); FOR i IN 1 TO Ncoef-1 LOOP add(i):=ext((add(i-1)+mult(i)),16); END LOOP; FOR i IN 1 TO Ncoef-1 LOOP dly(i)<=dly(i-1); END LOOP; dly(0)<=entree; END IF; END PROCESS fir; END exemple;

Des raffinements de cette exemple basique peuvent tre mens dans le dveloppement deffets tels que le slapback echo , multitap echo avec utilisation de la stro ou ventuellement de plus de 2 voies.
3.3.2. Filtrage FIR

Le filtrage est trs utilis dans le traitement du son et il parat pertinent daborder cet question afin dapprhender certaines problmatiques lies lutilisation des FPGA. Le code VHDL basique dun filtre rponse impulsionnelle finie (RIF) est propos sur la colonne suivante. Celui-ci correspond larchitecture directe bien connue prsente sur la figure 8 et au gabarit de filtrage indiqu sur la figure 9, mais il peut tre modifi en recrant la liste (en binaire ou hexadcimal) des coefficients indiqus ici sous le nom coef, cest--dire en modifiant leur nombre et leur valeur. Ce type de filtre utilise essentiellement les oprateurs multiplication et addition. Des points mmoire, reprsents par les oprandes de type VARIABLE, sont galement ncessaires la sauvegarde des calculs intermdiaires. Toutes les oprations sont synchrones lhorloge clk.
coef(0) entre mult(0)

coef(1) D dly(1) coef(Ncoef-1) D dly(Ncoef-1) sortie mult(1) add(1)

Figure 8. Schma bloc dun filtre FIR.

Ce code peut tre adapt en fonction de la rponse de filtrage dsire. Une attention toute particulire doit tre apporte laspect matriel issu de ce code et qui peut apporter quelque clairage quand lutilisation des FPGA. En effet, ce filtre comprenant 5 coefficients, 5 multiplieurs, sur les 12 disponibles (cf. table 2) sont mis en uvre. Cela fait une proportion importante, dautant plus que ce filtre prsente une slectivit trs faible. Cependant, le logiciel de conception utilis pour la synthse de ce filtre estime 80 MHz la frquence dhorloge maximale utilisable, soit plus de 1000 fois les frquences utilises typiquement pour les dbits audio. Il faut donc avoir lesprit quil est possible doptimiser lalgorithme de filtrage afin dassocier un seul multiplieur plusieurs dizaines voire quelques centaines de coefficients. Larchitecture MAC (Multiplier / ACumulator), fournie par le constructeur [6], permet de rpondre ce besoin. Elle peut tre utilise en tant que bote noire, de mme que de nombreux systmes de traitement optimiss (Transforme de Fourier Rapide FFT, filtres CIC, algorithme CORDIC), il nest donc pas ncessaire ici de rentrer dans les dtails concernant ces aspects, lide principale tant linitiation.
3.4. Niveau application

Figure 9. Fonction de transfert en dB du filtre propos en fonction des frquences normalises.


LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_SIGNED.ALL; ENTITY fir_dir IS PORT( clk:IN STD_LOGIC; entree:IN STD_LOGIC_VECTOR(15 DOWNTO 0);

Les principes essentiels de traitements du son dans le cadre de notre projet ont t dfinis. Le niveau application va consister assembler diffrentes fonctions et des oprateurs afin de crer une plate-forme adapte une application donne.

G LFO Instrument Souris Tremolo delay Y Echo stro Balance D LFO X

4.3. Utilisation dune plateforme de traitement hybride

Figure 10. dapplication.

Vue

schmatique

dun

exemple

Les logiciels de conception proposent un mode schmatique qui donne la possibilit de dfinir une application en utilisant des fonctions sous forme de botes noires. Il suffit donc pour crer un systme de rcuprer des blocs dans une bibliothque prdfinie, de connatre linfluence des diffrents paramtres et la relation entre(s)/sortie(s) et dassembler ces fonctions. Signalons que le flot mis en uvre est toujours conforme ce qui est prsent sur la figure 4. 4. PERSPECTIVES

4.1. Mise en place de travaux pratiques et de projets

Des travaux pratiques, ventuellement par binmes, sur la base de cette plate-forme peuvent tre mis en place de faon relativement aise. Il ncessite, pour un poste, le prototype de traitement audio, un ordinateur et le logiciel ISE, propos gratuitement sur [6]. Cette version est apparemment limite, mais elle est utilisable pour le FPGA de la carte sans restriction. La constitution dune bibliothque comme voqu plus haut, sur la base des exemples proposs, parat un prliminaire relativement incontournable afin de se familiariser avec les outils de dveloppement dans un premier temps, sans avoir apprendre un langage type VHDL demble.
4.2. Recherche, cration

Une version compacte du prototype prsent sur la figure 2 est en cours de ralisation. Cette nouvelle plateforme prsentera les mmes caractristiques et des performances identiques avec un encombrement rduit. Une surface totale de lordre de 30 50% de la premire version devrait tre atteinte grce lutilisation de composants monts en surface (CMS). Une autre carte de traitements plus puissante peut avantageusement remplacer celle que nous avons propose ici. Par exemple, la carte XUPV2P [4] utilise des FPGA Virtex 2 Pro [6] proposant des processeurs internes. Il serait donc possible ici de bnficier de la flexibilit inhrente aux FPGAs tout en ayant la puissance de calcul ncessaire certains algorithmes complexes, comme par exemple des calculs matriciels, ou des oprations devant tre effectues en virgule flottante. Nous entrons ici dans un domaine qui ncessite des comptences lectroniques et informatiques dpassant le pur cadre pdagogique initialement associ cet article et concerne plutt la mise en place de projets spcifiques. Il est cependant intressant voire indispensable de se pencher sur ces aspects pour ceux qui veulent suivre cette voie au-del de ce que nous prsentons ici, mais cela ncessite par ailleurs une licence payante du logiciel ainsi que le logiciel EDK [6] pour lutilisation de la partie processeur. Une plateforme prsentant un ou plusieurs processeurs permettrait dapprocher les performances offertes par des outils informatiques [8, 9]. Il y a de fait une convergence sensible entre les dispositifs lectroniques autonomes et les logiciels de synthse et de traitement. Ce dispositif, inspir lorigine par les effets pour guitare du commerce, dont [10] est un exemple de multi-effet reprogrammable via connexion USB, pourrait donc prsenter des fonctionnalits comparables mais avec des solutions dinterfaces audio et numriques plus flexibles. 5. CONCLUSION

Dans un contexte de performance artistique, ce type dapproche implique lartiste dans la cration mme de son instrument ou de ses effets. Laspect dexcution en temps rel parat essentiel ce cadre-l. La modularit de la plateforme ainsi que ses diffrents type daccs laissent une grande libert quant la mise en place dinteraction entre linterprte et linstrument. Pour la recherche sonore et acoustique, nous avons ici un outil supplmentaire dexprimentation. Dans une perspective large de modlisation et dexprimentation de physique acoustique, notons que les traitements implants dans le FPGA peuvent tre assimils leur environnement par le biais de description de phnomnes analogiques. Les langages Verilog-A et VHDL-AMS [3], extensions du Verilog et du VHDL la modlisation en temps continu, sont des leviers puissants permettant cette approche-l. Les traitements numriques sont alors un des maillons dun ensemble de phnomnes physiques.

Le systme de traitement sonore reprogrammable prsent est un outil dexploration temps rel pour la traitement ou la synthse du son. Nous avons vu le fonctionnement et les performances de cette plateforme et quelques exemples simples permettant den illustrer les possibilits. Dun point de vue lectronique, les deux extensions envisages pour ce projet sont la rduction de lencombrement de la plateforme et lutilisation dune autre carte de traitements numriques plus puissante. Le ct applicatif quant lui peut bnficier dune souplesse dutilisation par la constitution dune bibliothque doprations et de fonctions afin daborder sa mise en uvre au niveau application.

6.

REFERENCES

[1] Laronche, D., Barrandon, L., Crand, S., Lelu, H., Lecomte, S., Mallet, B., Levallois, D. ''Dveloppement dune Plateforme de Prototypage pour Applications Audio'', Actes des 9mes Journes Pdagogiques du CNFM Saint-Malo, France, 2006. [2] IEEE standard. VHDL reference manual, Std 1076-1993. IEEE, 1993. [3] Houzet, D., Barrandon, L. Conception de Circuits en VHDL et VHDL-AMS Principes et Mthodologie, 2me dition, ISBN 2.85428.527.1. Editions Cpadus, Toulouse, 2006. [4] Site Internet de la st Digilent :
www.digilentinc.com

[5] Site Internet de la st Cirrus : www.cirrus.com. [6] Site Internet de la st Xilinx : www.xilinx.com [7] Site Internet de la st Altera : www.altera.com [8] Boulanger, R. et al. The Csound Book Perspectives in Software Synthesis, Sound Design, Signal Processing and Programming. MIT Press, Boston, MA., USA. [9] http://www.cycling74.com/products/maxmsp [10] http://line6.com/podxtlive

Вам также может понравиться