Vous êtes sur la page 1sur 4

Mini-Projet dAMEA Synth` ese de Karplus Strong

Benjamin L evy

Indications
Ce mini-projet dAMEA est probablement long. Le but nest donc pas darriver au bout ` a tout prix mais plut ot de comprendre ce que lon fait, comprendre les eventuelles erreurs, bugs ou observations. Les questions donnent des el ements qui doivent appara tre dans le compterendu (si possible num erique, en pdf ) mais ne sont pas exhaustives. Toutes les remarques, commentaires ou explications suppl ementaires que vous jugerez utiles sont les bienvenus. Les scripts Matlab sont bien entendu ` a joindre au compte-rendu. Il nest pas n ecessaire de faire appara tre chaque etat des scripts si vous montrez dans les r eponses et commentaires que les etapes ant erieures ont bien et e eectu ees. Pensez egalement ` a commentez vos scripts. Vous trouverez en n de sujet une petite bibliographie contenant quelques articles et sites qui mont permis de construire ce sujet. Nh esitez pas ` a vous en servir et chercher dautres documents si n ecessaire. Nh esitez pas egalement ` a me contacter : benjamin.levy@ensea.fr

Introduction

Dans ce sujet il sagit d etudier et de programmer dans Matlab lalgorithme de synth` ese de Karplus-Strong. Trois m ethodes de programmation sont propos ees successivement qui permettent d eclairer ce type de synth` ese de mani` eres di erentes. La synth` ese de KarplusStrong peut etre utilis ee pour synth etiser des sons de type corde pinc ee et de type percussif. Une fois ces deux types de sons obtenus, on essayera de raner la seconde methode pour obtenir un meilleur rendu sonore.

Fonctionnement

Lalgorithme de synth` ese de Karplus-Strong, invent e autour de 1983 par Alex Strong et etudi e en d etail par Kevin Karplus est repr esent e sur le sch ema suivant (Fig 1). Q1 : Calculez la fonction de transfert et l equation de la boucle de retour. Quelle est lop eration eectu ee, de quel type de ltre sagit-t-il ? Q2 : Calculez la fonction de transfert globale et l equation aux di erences correspondante. 1

Figure 1 Sch ema de lalgorithme La fr equence fondamentale correspondante est f0 =


Fs N +1/2

o` u Fs est la fr equence d echantillonnage.

Q3 : Pourquoi pouvait-on pr evoir lappartion dune fr equence fondamentale ? Quels probl` emes posent lexpression de f0 ?

Programmation par tableau

La premi` ere m ethode pour programmer cette synth` ese est la suivante : partant dun tableau d echantillons de bruit blanc de longueur N (utiliser la fonction rand), on eectue la moyenne des echantillons cons ecutifs (d ecalage circulaire du tableau puis demi-somme). Le r esultat est accol e au premier tableau et lon it` ere ce processus jusqu` a ce que lamplitude du son soit faible. Q4 : De quel type de synth` ese cette m ethode se rapproche-t-elle ? Q5 : Programmez la synth` ese selon lalgorithme d ecrit. Ecoutez le son obtenu et observez son spectre. V eriez la valeur de la fr equence fondamentale pour di erentes valeurs de N . Q6 : Observez et commentez leet de N sur le r esultat (hormis le changement de hauteur).

Programmation par echantillons

La seconde m ethode propos ee reprend exactement le m eme principe que la premi` ere mais en eectuant les calculs echantillon par echantillon (dans une boucle for) ` a partir du tableau de bruit blanc. Chaque echantillon est donc calcul e suivant l equation aux di erences trouv ee au 2. Q7 : Programmez la synth` ese selon cette methode. Ecoutez le son obtenu et observez son spectre. Q8 : Comparez le signal obtenu avec celui obtenu par la m ethode pr ec edente. Expliquez les eventuelles di erences.

5Noise-burst Programmation Fig. 3. input to wavetable.

par ltrage Fig. 4. Basic drum


technique.

La synth` ese de Karplus peut egalement etre vue comme un ltrage r ecursif global de fonction de transfert H (z ) calcul ee pr ec edemment. Limpl ementation dans Matlab est alors beaucoup plus ecace en utilisant la fonction filter. Q9 : A quel type de synth` ese cette m ethode se rattache-t-elle ? Q10 : Programmez la synth` ese avec la fonction filter de Matlab. Ecoutez le son obtenu et observez son spectre. Q11 : Comparez le signal obtenu avec celui obtenu par les autres m ethodes. Expliquez les eventuelles di erences.

Son de type percussion

Une m ethode tr` es simple pour obtenir un son de type percussif a et e trouv ee en 1979 par Kevin Karplus. Il sagit dintroduire un signe al eatoire sur la moyenne selon le sch ema suivant (Fig 2) :
Fig. 4

Figure 2 Sch ema de lalgorithme pour la synth` ese de son de percussion

factor of 0 negates the entire signal every p + 1/2 Q12 : En utilisant la seconde m ethode (boucle samples. for), programmez la synth` ese dun de and This drops the anson octave frequency A simple variation of basic type percussif. On introduira un tirage al eatoireleaves (probabilit e p et 1 p) du a ` chaque harmonics Strong's ofsigne the new algorithm fundamental. only odd drum timbres. wasrand discovered Kevin Forfairly high pitches, this is a ratherodd timbre yields tour (utilisez la This fonction et uneby comparaison). in : December The simplest Karplus that a "plucked bottle." For lower descripQ13 Observez 1979. et d ecrivez leet de la longueur N we du call tableau de d epart pour di erentes pitches, tion of the drum variant is a recurthe sound is probabilistic harplike. valeurs de p. rence relation: For b 1/2, the wavetable length does not control the pitch of the tone, as the sound is aperiodic.In7 +Quelques ranements stead, it controls the decay time of the noise burst. + Y,__,) probability b 2 (Y,_P The decay time is roughly proportionalto p. For Yt = fairly large p (200 or more) and a sampling fre7.1 D e croissance + Y,t-p-) probability 1 - b. (Yt-p quency of 20 KHz, the effect is that of a snare Q14 : Proposez (et impl ementez) une m ethode simple acc el erer la d ecroissance du son, drum. pour For small is that of a p (around 20), the effect 4 shows the block diagram of the correcest ` a dire raccourcir la r esonance. Commentez. brushedtom-tom. Intermediate values provide inFigure termediate timbres, allowing smooth transition sponding digital filter. The parameter b is called the blend factor. With from one drum sound to another. a blend factor of 1, the algorithm reduces to the The initial wavetable can be filled with a conbasic plucked-string algorithm, with p controlling stant (A), since the drum algorithm will create the the pitch. With a blend factor of /2, the sound is randomnessitself. For blends other than b = 1/2, drumlike. Intermediate values produce sounds instarting with a constant gives some buildup before termediate between plucked string and drum, some the decay,while starting with randomness gives

Drum Algorithm

Pour allonger le temps de d ecroissance, on introduit une nouvelle variable S [1, +] (stretch factor). La nouvelle r ecurrence s ecrit (dans le cas du son de corde pinc ee) : y [n] = y [n N ] probabilit e 1 1/S 1 ( y [ n N ] + y [ n N 1]) probabilit e 1/S 2

Q15 : Programmez ce r eglage de la d ecroissance dans lalgorithme par echantillons (boucle for) et testez. Commentez. Q16 : Adaptez cet allongement dans le cas du son percussif (toujours dans limpl ementation par echantillons). Comparez avec le cas de la corde pinc ee.

7.2

Source

Sil reste du temps, on pourra essayer dutiliser comme echantillons de d epart, non plus un bruit blanc mais dautres types de bruit ou les echantillons dun extrait de son instrumental et ecouter les resultats obtenus. Commentez alors.

R ef erences
[1] K.Karplus, A. Strong, Digital Synthesis of Plucked-String and Drum Timbres, Computer Music Journal, Vol. 7, No. 2, 1983. [2] D.A. Jae, J.O. Smith, Extensions of the Karplus-Strong Plucked-String Algorithm, Computer Music, Journal, Vol. 7, No. 2, 1983. [3] J.O. Smith Virtual Acoustic Musical Instruments : Review of Models and Selected Research, http://ccrma.stanford.edu/~jos/Mohonk05/Mohonk05.html. [4] A-M. Burns, Karplus-Strong Plucked-String Synthesis Algorithmor How To Create String Instruments Out of Noise, http://www.music.mcgill.ca/~amburns/physique/index. html

Vous aimerez peut-être aussi