Easy Signal Processing

of 21/21
SIYH ToTovai novembre 2011 V1.1 Easy Digital Signal Processing [email protected]
  • date post

    04-Aug-2015
  • Category

    Documents

  • view

    34
  • download

    1

Embed Size (px)

Transcript of Easy Signal Processing

SIYH ToTovainovembre 2011 V1.1

Easy Digital Signal Processing

[email protected]

Table des mati`res e

1 Introduction 1.1 Signal Processing quest ce que cest ? . . . . . . . . . . . . 1.2 Cool et cest dur ? . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Les bases, de quoi ai-je besoin ? . . . . . . . . . . . . 1.2.2 Jai pas les bases . . . . . . . . . . . . . . . . . . . . 1.2.2.1 Matlab jai pas ou jai pas la bonne version . 1.2.2.2 Je nai jamais travaill sur matlab . . . . . . e 1.2.2.3 Je nai pas de connaissance en traitement de 2 Acquisition de donnes Matlab e 2.1 Les objets Audio . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Les proprits des objets . . . . . . . . . . . . . . . ee 2.1.1.1 Comment setter les proprits dun objet ? ee 2.1.2 Proprits intressantes . . . . . . . . . . . . . . . ee e 2.1.3 Setting des proprits . . . . . . . . . . . . . . . . ee 2.1.3.1 Proprits avec appels de fonctions . . . . ee 2.2 Lancer les Objets . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Dtruire les objets . . . . . . . . . . . . . . . . . . e

. . . . . . . . . . . . . . . . . . . . . . . . signal

. . . . . . .

. . . . . . .

5 5 6 6 6 6 7 7 8 8 8 9 9 9 10 10 11 12 12 13 13

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

3 Traitement des donnes Matlab e 3.1 Update de lacquisition . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Processing exemple simple : Gain . . . . . . . . . . . . . . . . . . . . . 3.3 Le Code total . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Aller plus loin avec Matlab 15 4.1 Un petit Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2 Interface Graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5 Signal processing avec Audacity (non temps-rel) e 16 5.1 Prsentation de nyquist . . . . . . . . . . . . . . . . . . . . . . . . . . 16 e 5.2 Exemple : contrler le volume . . . . . . . . . . . . . . . . . . . . . . . 16 o 1

Siyh 5.3 5.4 Crer un plugin pour audacity . . . . . . . . . . . . . e 5.3.1 Exemple : Gain avec interface graphique . . . Aller plus loin avec Nyquist . . . . . . . . . . . . . . 5.4.1 Exemple : contrle de lenveloppe dun accord o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 17 19 19

2

Diusion autorise sur techniguitare.com et http://totovai.e-monsite.com/ e

Table des gures

1.1 5.1 5.2 5.3 5.4 5.5

Traitement du signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . Audacity . . . . . . . . Mon premier plugin . . Plugin en cours . . . . . Accord avant enveloppe Accord apr`s enveloppe e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 16 18 19 20 20

3

Bibliographie

[1] Audacity introduction ` la programation nyquist. cliquez ici. a [2] Base de nyquist. cliquez ici. [3] Data acquisition toolbox user guide. cliquez ici. [4] Digital audio eects. cliquez ici. [5] Dbuter avec matlab. cliquez ici. e [6] Le traitement de signal. cliquez ici. [7] Les compresseurs tude et ralisation. cliquez ici. e e [8] Manuel de rfrence nyquist. cliquez ici. ee [9] Multi-eect processor for acoustic guitar - acoustics. cliquez ici.

4

1Introduction 1.1Signal Processing quest ce que cest ?Il sagit dapprendre ` traiter du son par ordinateur. Ce tutoriel est spcialement a e conu pour les personnes qui dsirent apprendre ` crer des eets numriques pour leurs c e a e e instruments. Parmi ces eets on peut compter : Delay Reverb Distorsion Simulation (bae, ampli) Equaliser ...

Vous voudriez bien apprendre ` crer ce genre deet et les tester avec votre guitare ? a e Ce tutoriel est fait pour vous :)

Figure 1.1 Traitement du signal

5

Chapitre 1 - Introduction

Siyh

1.2

Cool et cest dur ?Jai cherch pendant tout un temps une mani`re simple de traiter du son par ordinae e teur. Une mani`re ecace de faire est de coder des VST (Virtual Studio Technology) qui e est une librairie grant les entres sorties audio. Le probl`me cest quil faut une bonne e e e connaissance du C++ 1 . Une mthode de programmation beaucoup plus simple ` utiliser : MATLAB 2 . e a

1.2.1

Les bases, de quoi ai-je besoin ?

1. Matlab 32bits (jinsiste sur le 32 bits :) ) 2. La Toolbox data acquisition de Matlab 3. Un peu de connaissance sur la programmation sur Matlab (tr`s simple) e 4. Un peu de connaissance en Traitement de signal (pour comprendre comment rae liser vos eets) 5. De la M.O.T.I.V.A.T.I.O.N Alors cest parti ?

1.2.2

Jai pas les bases

Dans cette section je vais dtaill un peu que faire si vous navez pas les bases cites e e e ci dessus de mani`re ` les acqurir rapidement. e a e 1.2.2.1 Matlab jai pas ou jai pas la bonne version

Si vous avez Matlab 64bits , vous devez rinstaller la version 32 bits, normalement e la version est prsente dans le rpertoire Win32 de votre cd dinstall. Si vous navez pas e e Matlab vous pouvez vous tourner vers le logiciel Octave (mme syntaxe que matlab) ou e Simulink. Il vous faudra chercher un peu mais le tutoriel vous donnera tout de mme une e vue densemble sur comment a marche. Si vous navez pas matlab vous pouvez encore c vous tourner vers une mthode alternative, Nyquist pour audacity. 3 e1. Vous avez une bonne connaissance du C++ ? alors je vous conseil dutiliser la SDK tlchargeable ee sur le site de Steinberg 2. Il existe un quivalent ` Matlab qui est free cest Octave, je nai pas encore test la mthode sur e a e e Octave. 3. Voir chapitre 5 section 5.1, page 16.

6

Diusion autorise sur techniguitare.com et http://totovai.e-monsite.com/ e

Chapitre 1 - Introduction 1.2.2.2 Je nai jamais travaill sur matlab e Voir tuto [5]

Siyh

Matlab est un langage tr`s tr`s intuitif. On sy fait en 2H e e 1.2.2.3

Je nai pas de connaissance en traitement de signal

Que faut il savoir ? Voici une liste non-exhaustive pour dbuter : e Comment un son est il reprsent numriquement ? e e e Frquence dchantillonnage e e Vous pouvez vous baser sur le tuto [6]

Allez maintenant, cest parti

7

Diusion autorise sur techniguitare.com et http://totovai.e-monsite.com/ e

2Acquisition de donnes Matlab e 2.1Les objets AudioLe but du travail est de rcuprer les donnes qui transitent de notre guitare vers e e e lentre de notre carte son. De traiter ces donnes et de les renvoyer vers la sortie de la e e carte son . La premi`re chose ` faire est de dnir des objets Audio avec lesquelles on va come a e muniquer. On veut donc un objet analogique input et un objet analogique output.1 2

AI = a n a l o g i n p u t ( w i n s o u n d , 0 ) ; a d d c h a n n e l ( AI , 1 ) ; Quai je fais ? Jai dni un objet (AI comme analog input) et je lui ai dit de prendre e la carte son de mon pc comme entre (winsound). Ensuite jai dis sur cet objet tu e ? Dnissons maintenant e ajoutes un canal (pour travailler en mono). Simple non un objet de sortie :

1 2

AO = a n a l o g o u t p u t ( w i n s o u n d , 0 ) ; a d d c h a n n e l (AO, 1 ) ;

Pas beaucoup plus compliqu e

.

2.1.1

Les proprits des objets e e

Les objets AI et AO que lon vient de crer on une certaine quantit de proprits, e e ee pour voir les direntes proprits de lobjet il sut de taper la commande e ee1 2

get ( AI ) get (AO) 8

Chapitre 2 - Acquisition de donnes Matlab e

Siyh

Lobjet a donc pleins de proprits qui peuvent tre utile par exemple il y a moyen ee e de lancer lenregistrement dun claquement de main . Nous allons dans un premier temps nous intresser au seule proprits vraiment indispensable pour notre utilisation. e ee 2.1.1.1 Comment setter les proprits dun objet ? e e

Cest simple, il sut demployer la commande set, suivie du nom de lobjet, puis le nom de la proprit entre guillemet suivit de la valeur ` setter. Exemple : ee a1

s e t ( AI , r e p e t i t i o n , 3 ) ; Aura comme eet de setter la proprit de rptition de lobjet analogique input ` ee e e a la valeur 3 .

2.1.2

Proprits intressantes e e e

1. SampleRate : permet de dnir la frquence dchantillonnage. e e e 2. SamplePerTrigger : le nombre de sample par trigger 1 3. TriggerType : permet de choisir le type de trigger : Immediate le trigger se lance d`s quon ` lancer lobjet dacquisition. e a Manual lobjet attends le mot cl trigger pour lancer lacquisition. e Software permet de lancer lacquisition sur base dautre vnements e e 4. ManualTriggerHwOn : permet de minimiser le temps entre lacquisition et la restitution des donnes. e 5. SamplesOutputFcn : permet dappeler une fonction lors dun vnement prdni 2 e e e e 6. SampleOutputFcnCount : cest un vnement de la proprit SamplesOutputFcn 3 e e ee 7. StpFcn : permet dappeler une fonction lorsque lobjet audio sarrte. e

2.1.31 2 3 4

Setting des proprits e e

s e t ( [ AI AO] , SampleRate , SampleRate ) ; s e t ( AI , S a m p l e s P e r T r i g g e r , i n f ) ; s e t ( [ AI AO] , T r i g g e r T y p e , Manual ) ; s e t ( AI , ManualTriggerHwOn , T r i g g e r ) ; Jusquici il ny a rien de particulier, je vous conseille de crer une variable appele e e SampleRate=44100 ; SamplePerTrigger est sett ` linni ce qui veut dire quune fois ea lacquisition lance elle ne sarrte pas, si vous voulez 10 secondes denregistrement, vous e e pouvez faire ceci :1. Le trigger est un vnement qui lance notre acquisition e e 2. Voir point suivant. 3. Voir section 2.1.3.1, page : 10

9

Diusion autorise sur techniguitare.com et http://totovai.e-monsite.com/ e

Chapitre 2 - Acquisition de donnes Matlab e1 2

Siyh

d u r e e =10; s e t ( AI , S a m p l e s P e r T r i g g e r , d u r e e SampleRate ) ;

2.1.3.11 2 3 4 5

Proprits avec appels de fonctions e e

% Multiples devices b u f f e r S i z e =2000; s e t (AO, SamplesOutputFcn ,{ qmoredata , AI , b u f f e r S i z e }) s e t (AO, SamplesOutputFcnCount , b u f f e r S i z e ) s e t ( [ AI AO] , StopFcn , @ d a q c a l l b a c k ) Dnissons ` la ligne 2, un buer de 2000 chantillons (la taille dpend de votre e a e e : on carte son et de votre pc). La ligne 3 et 4 sont lies, commenons par la ligne 4 : e c va donner ` notre objet de sortie AO une proprit qui va crer un vnement lorsquil a ee e e e aura sorti buerSize lments soit 2000 chantillons sonores. Pourquoi ? Parce que son ee e buer est vide et que lon veut quil aie charger les nouvelles donnes acquises par AI e (Analog Input). La ligne 3 quant ` elle appelle une fonction si elle reoit un vnement. a c e e Cette fonction cest qmoredata qui va soccuper de transfrer les donnes de AI vers AO. e e En rsum : AO va sortir SizeBuer chantillons et crer un vnement (maman jai e e e e e e ni !) lvnement va dclencher lexcution dune fonction qui sappelle qmoredata e e e e . La syntaxe est un peu particuli`re mais il ny a rien de compliqu ! e e Et @daqcallback quesako : Lorsque AI et AO sarrteront, ils appelleront cette e fonction qui achera le motif de cet arrt . Ca peut tre utile au dbug mme si je e e e e prf`re la mthode ee e

2.2

Lancer les ObjetsBon cest ni ? On peut jouer ? Ca vient, il nous reste ` lancer les objets a1 2 3 4 5

.

% Start d a t a=z e r o s ( b u f f e r S i z e 4 , 1 ) ; p u t d a t a (AO, d a t a ) ; s t a r t ( [ AI AO ] ) t r i g g e r ( [ AI AO ] )

10

Diusion autorise sur techniguitare.com et http://totovai.e-monsite.com/ e

Chapitre 2 - Acquisition de donnes Matlab e 1. cest parti 2. je cre un vecteur de donne rempli de zro (pour commencer) e e e 3. je le met dans le buer de lobjet de sortie via la commande putdata 4 4. je start les objets 5. je leurs dis de commencer leurs acquisitions.

Siyh

2.2.1

Dtruire les objets e

Pour viter les fuites de mmoire et arrter lacquisition proprement il faut encore e e e inclure le code suivant :1 2 3 4 5 6 7 8 9

%Stop and C l e a n Resp = input ( P r e s s q t o s t o p t h e program \n , s ) i f strcmp ( Resp , q ) s t o p ( [ AI AO ] ) d e l e t e (AO) c l e a r AO d e l e t e ( AI ) c l e a r AI end

1. Comment stopper lacquisition ? 2. je dis au programme dattendre que lutilisateur rentre une information au clavier. 3. si la touche presse est q (comme quit). e 4. arrter lacquisition e 5. dtruire les objets. e Cest tout ? Presque il ne reste quun dtail de rien du tout... mais en fait... notre e programme la, il fait rien .

4. Attention avant de dmarrer lobjet de sortie il faut obligatoirement lui donner un lment de e ee sortir sinon il ne saura pas quoi sortir et gnrera une erreur e e

11

Diusion autorise sur techniguitare.com et http://totovai.e-monsite.com/ e

3Traitement des donnes Matlab e 3.11 2 3 4

Update de lacquisitionLa fonction qmoredata ca vous dit quelque chose 1 ? Une fois le buer de AO vide, la fonction va le remplir avec les nouveaux samples apports par AI. e f u n c t i o n qmoredata ( o b j , e v e n t , AI , b u f f e r S i z e ) d a t a=g e t d a t a ( AI , b u f f e r S i z e ) ; putdata ( obj , data ) ; 1. qmoredata est donc une fonction qui prend en premier argument un objet 2 2. 3. la fonction getdata va rcuprer les 2000 derniers chantillons acqui par AI 3 e e e 4. putdata mets les chantillons dans lobjet (AO). e

Ben alors cest parti Rock 4 Bon alors trop cool non ? Vous avez appel toute votre famille er de vous ... et la y e en a toujours un pour dire Mais en fait tu mets juste ton entre sur ta sortie... ca sert e ` rien ? ... a aaaah , quelquun ` dit quelque chose ? a .

1. En cas de rponse ngative faut arrter e e e 2. AO voir section 2.1.3.1, page 10 ligne 3. 3. 2000=SizeBuer 4. Si ca ne marche pas, 1) essayez avec un buer plus grand. 2) goooo

12

Chapitre 3 - Traitement des donnes Matlab e

Siyh

Bon faut bien lavouer notre programme est pas tr`s utile mais maintenant le plus e pnible est fait. e

3.2

Processing exemple simple : GainLapplication la plus simple que lon peut envisager cest un contrle de gain. Pour o cela il sut de crer une fonction Volume et de linsrer entre lacquisition des donnes e e e et la remise sur le buer de sortie :1 2 3 4 5

f u n c t i o n qmoredata ( o b j , e v e n t , AI , b u f f e r S i z e ) d a t a=g e t d a t a ( AI , b u f f e r S i z e ) ; d a t a=Volume ( data , 5 ) ; putdata ( obj , data ) ; Et la fonction Volume comment a marche ? Ca cest simple jose esprer que vous c e auriez pu la coder vous mme e

1 2 3

f u n c t i o n [ d a t a ]= Volume ( data , g a i n ) d a t a=g a i n d a t a ; elle prend comme argument un vecteur de donnes, un gain. elle multiplie chaque e chantillon par le gain et renvoi le nouveaux vecteur. e

3.31 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Le Code totalUn chier acquisition.m contenant : % Global SampleRate = 4 4 1 0 0 ; b u f f e r S i z e = 3000; %I n p u t AI = a n a l o g i n p u t ( w i n s o u n d , 0 ) ; a d d c h a n n e l ( AI , 1 ) ; s e t ( AI , SampleRate , SampleRate ) ; s e t ( AI , S a m p l e s P e r T r i g g e r , i n f ) ;

%Output AO = a n a l o g o u t p u t ( w i n s o u n d , 0 ) ; a d d c h a n n e l (AO, 1 ) ; s e t (AO, SampleRate , SampleRate ) ; s e t ( [ AI AO] , T r i g g e r T y p e , Manual ) ; 13 Diusion autorise sur techniguitare.com et http://totovai.e-monsite.com/ e

Chapitre 3 - Traitement des donnes Matlab e17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

Siyh

s e t ( AI , ManualTriggerHwOn , T r i g g e r ) ;

% Multiples devices s e t (AO, SamplesOutputFcn ,{ qmoredata , AI , b u f f e r S i z e }) s e t (AO, SamplesOutputFcnCount , b u f f e r S i z e ) s e t ( [ AI AO] , StopFcn , @ d a q c a l l b a c k ) % Start d a t a=z e r o s ( b u f f e r S i z e 4 , 1 ) ; p u t d a t a (AO, d a t a ) ; s t a r t ( [ AI AO ] ) t r i g g e r ( [ AI AO ] ) %Stop and C l e a n Resp = input ( P r e s s q t o s t o p t h e program \n , s ) i f strcmp ( Resp , q ) s t o p ( [ AI AO ] ) d e l e t e (AO) c l e a r AO d e l e t e ( AI ) c l e a r AI end Un chier qmoredata.m contenant :

1 2 3 4 5

f u n c t i o n qmoredata ( o b j , e v e n t , AI , b u f f e r S i z e ) d a t a=g e t d a t a ( AI , b u f f e r S i z e ) ; d a t a=Volume ( data , 5 ) ; putdata ( obj , data ) ; Finalement un chier Volume.m contenant :

1 2 3

f u n c t i o n [ d a t a ]= Volume ( data , g a i n ) d a t a=g a i n d a t a ;

Voila il ne vous reste plus qua vous amuser

14

Diusion autorise sur techniguitare.com et http://totovai.e-monsite.com/ e

4Aller plus loin avec Matlab 4.1 4.2Un petit DelayA venir

Interface GraphiqueA venir

Je vous conseille de faire un tour dans ces 2 excellents pdf [4] et [9] pour en savoir plus sur les eets guitar

Mes autres tutoriels : clique ici

15

5Signal processing avec Audacity (non temps-rel) e 5.1Prsentation de nyquist eFaut il encore prsenter audacity ? Dans le doute je le fais , donc Audacity est un e squenceur audio tr`s intuitif, simple, libre et multi plateforme. e e

Figure 5.1 Audacity Audacity ore une fonctionnalit intressante, cest le prompt Nyquist. Il permet e e de lancer des commandes directement sur son traiter par audacity.

5.2

Exemple : contrler le volume o Ouvrez Audacity. Enregistrez un sample audio, ou importez en un. Cliquez sur le menu Eet puis sur console Nyquist Entrez la commande suivante : return scale(0.5, s) Ok 16

Chapitre 5 - Signal processing avec Audacity (non temps-rel) e

Siyh

SHazaaaam le niveau audio a t rduit de moiti... Simplissime non ? Qua ton ee e e fait ? On a demand dapliquer un facteur dchelle de 0.5 ` la cha s (qui est le ux e e a ne lu par audacity).

5.3

Crer un plugin pour audacity eBon cest bien beau tout a, mais bon si on veut un delay, ca devient plus compliqu c e on ne voudrait pas retaper le code ` chaque fois. h bien il sut dcrire un plugin a e e Nyquist (chier .ny) et de le placer dans le rpertoire Plugin dAudacity. e Les avantages : Langage simple. Le plugin appara automatiquement dans les eets Audacity. t Interface graphique programmable de mani`re intuitive. e Multi plate-forme

Ca Impressionne Mammy un max Le dsavantage : Vous ne pouvez pas appliquer leet en temps rel, vous devez e e enregistrer puis appliquer leet

5.3.11 2 3 4 5 6

Exemple : Gain avec interface graphique

Pour crire votre plugin prenez un diteur de texte 1 . Copier ce code : e e ; n y q u i s t p l u g i n ; version 3 ; codetype s a l ; type p r o c e s s ; name TS Volume ; a c t i o n C a l c u l en c o u r s ne p a s a r r a c h e r l e d i s q u e d u r a v e c ses dents 7 ; info j e d d i c a c e ce p l u g i n mon dady 8 ; c o n t r o l v a r 1 p r e m i r e v a r i n t Volume 5 1 10 9 return s c a l e ( 0 . 5 , s ) 1. Un header commence par un ;ensuite on dit que lon veut crer un plugin Nyquist e 2. On renseigne la version utilise (je vous conseil la 3 sauf si vous avez une vieille e version daudacity) 3. Le type de code, par dfaut on utilise un langage LIPS mais ici on va utiliser un e autre langage qui est plus intuitif et qui comporte moins de parenth`se , le SAL. e 4. Le type du plugin : il en existe 31. Jutilise Kate sur Kde, pour Windows je conseille notepad++

17

Diusion autorise sur techniguitare.com et http://totovai.e-monsite.com/ e

Chapitre 5 - Signal processing avec Audacity (non temps-rel) e

Siyh

Generate : permet de gnrer des sons e e Process : permet de traiter du sons Analyze : permet danalyser le son 5. Renseignons le nom de notre plugin (je conseille vos initiale underscore le nom, car il existe dja beaucoup de plugins) e 6. action : ache une phrase lors de lexcution du programme e 7. info : donne des informations qui seront visibles lors des settings. 8. control : cest ici que lon va dire que lon voudrait un bouton de volume. La syntaxe est la suivante : (a) le nom de la variable (b) le texte ` mettre ` gauche a a (c) le type de la variable (int, real) (d) la valeur par dfaut de la variable e (e) la valeur minimum de la variable (f) la valeur maximale. 9. la/les commande(s) ` excuter. a e Sauvons le chier et nommons le Volume.ny . Il faut maintenant aller le mettre ici c :\\programmes\ audacity\plugins 2 On relance audacity, on va dans le menu eet on descend dans les modules qui sont classs par ordre alphabtique et on trouve TS Volume. On clique dessus pour obtenir e e la fentre 5.2 e

Figure 5.2 Mon premier plugin Apr`s avoir rgl le volume, on clique sur ok pour obtenir la gure 5.3 e e e Alors ? Heureuse2. Sur Linux : /usr/share/audacity/plugins. il faut les droits admin donc sudo mv Volume.ny /usr/share/audacity/plugins

18

Diusion autorise sur techniguitare.com et http://totovai.e-monsite.com/ e

Chapitre 5 - Signal processing avec Audacity (non temps-rel) e

Siyh

Figure 5.3 Plugin en cours

5.4

Aller plus loin avec NyquistCest bien jolis tout a, mais comment on fait des truc plus complexe ? H bien il c e faut se renseigner sur les fonctionnalits du langage SAL ou LIPS. Je vous conseille : e Le manuel de rfrence [8] ee Dbuter avec Nyquist sur Audacity [1] e Base de Nyquist [2] Nyquist permet de faire plein de chose, il poss`de des librairies permettant de faire e des t, lfo, drum machine, convolution, ltres, mini moog. Le tout tr`s simplement par e exemple une convolution scrira convolve(sound, response). e

5.4.11

Exemple : contrle de lenveloppe dun accord o

Si je veux grer lenveloppe dun accord 3 : e r e t u r n s env ( 0 . 1 4 , 0 . 3 , 0 . 5 , 2 . 0 , 0 . 5 , 2 . 8 ) Je multiplie le son (s) avec une fonction enveloppe o` : u 1. 2. 3. 4. 5. 6. Le param`tre 1 = le temps dAttaque e Le param`tre 2 = le temps de Decay e Le param`tre 3 = le temps de Release e Le param`tre 4 = le level au moment de lattaque e Le param`tre 5 = le level au moment du sustain e Le param`tre 6 = la dure totale par extension le temps de sustain = dureTot e e e - DureAttack - DureRel - DureDec e e e

Sur la gure 5.4 on voit laccord avant traitement et sur la gure 5.5 laccord apr`s e traitement. On retrouve bien :3. Voir ADSR dans [7]

19

Diusion autorise sur techniguitare.com et http://totovai.e-monsite.com/ e

Chapitre 5 - Signal processing avec Audacity (non temps-rel) e

Siyh

Attack = 0.14 s Decay = 0.3 s Sustain= 2.8-0.14-0.3-0.5= 1.86 s Release = 0.5 s lors de lattaque le signal est ampli dun facteur 2 e lors du sustain la note est diminue de moiti e e

Figure 5.4 Accord avant enveloppe

Figure 5.5 Accord apr`s enveloppe e

20

Diusion autorise sur techniguitare.com et http://totovai.e-monsite.com/ e