Scilab


ScilabPhys



Scilab et les sons


Les différentes commandes

http://www.scilab.org/product/man/html/fr/sound/whatis.htm
loadwave waveread savewave analyze mapsound playsnd sound soundsec

Lire un ficher son

Télécharger le son (La 440 flute traversière)
Placer ce fichier son à la racine du répertoire utilisateur

son=loadwave("son.wav");

Afficher l'évolution temporelle de ce son

plot(s);
son_t.gif
Remarque : en abscisse on lit le numéro de l'échantillon (et la valeur maximale est le nombre d'échantillon)

Afficher le spectre de ce son

analyze(s,fmin=100,fmax=3000,rate=fs);
son_analyze.gif

mapsound(s,dt=0.1,simpl=1,fmin=100,fmax=3000,rate=fs);
son_mapsound.gif


Ecouter le son

playsnd(s);

Créer un son

n=4; // 4 secondes
fs=44100; // frq = 44kHz
t=soundsec(n, fs);
f1=440; // frq fondamental
s=cos(2*%pi*f1*t)+cos(2*%pi*3*f1*t)/9+cos(2*%pi*5*f1*t)/25;
s=s/(10*max(s)); // pour ajuster l'amplitude


savewave("son2.wav",s,fs);

playsnd(s)
Ecouter le son produit

plot(s) (ou plot(t,s) si on veux graduer avec le temps et non le numéro de l'échantillon)
son2_t.gif

analyze(s,fmin=100,fmax=3000,rate=fs)
son2_analyze.gif


mapsound(s,dt=0.1,simpl=1,fmin=100,fmax=3000,rate=fs)
son2_mapsound.gif


voir Harmon ou http://www.falstad.com/fourier


Quelques effets sonores avec Scilab

Augmentation progressive de l'amplitude

20 secondes de son à 440 Hz sans effet (échantillonné à 22050 Hz)
effet_up_no.gif
20 secondes de son à 440 Hz avec effet augmentation progressive de l'amplitude (échantillonné à 22050 Hz)
effet_up_yes.gif

Télécharger le code Scilab

Autres effets sonores

TODO : écho, plus grave ou plus aigu, filtrage numérique (passe-bas, passe-haut...) ...
Pour des effets plus complexes, on pourra utiliser un logiciel dédié à la modification de fichiers sonores comme par exemple Audacity
http://audacity.sourceforge.net

Quelques exemples de traitement du signal (échantillonnage, quantification...)


Accorder une guitare à l'aide du phénomène de battements

Lorsque deux notes très voisines sont jouées simultanément, on entend une seule note modulée en amplitude à une fréquence égale à la différence des deux fréquences. Ce phénomène porte le nom de battements et il permet d'accorder un instrument de musique à l'aide d'un instrument délivrant une note de référence (le diapason).

Exemple : ici la note de référence est un LA à 440 Hz, on joue en même temps un son à une fréquence proche.
accorder_battements.gif
Télécharger le code Scilab
Ecouter le son produit (faire un clic droit et choisir d'enregistrer ce fichier avant de le lire)

Le signal est modulé avec une période T de 2 secondes soit une fréquence f = 1/T de 0.5 Hz. On en déduit donc que la fréquence de l'instrument vaut 440.5 Hz (s'il est plus aigu que la note de référence) ou 339.5 Hz (s'il est plus grave).
Accorder une guitare (des sites de musiciens... pas de physiciens ;-) )
http://www.jpbourgeois.org/guitar/accorder.htm

Voir aussi
http://fr.wikipedia.org/wiki/Note_de_musique
http://fr.wikipedia.org/wiki/Accordage
http://fr.wikipedia.org/wiki/Gammes_et_temp%C3%A9raments

Expérience : Décoder le son de Canal+


Toutes mes simulations avec Scilab sur le son

Obtenir le code source

Accès web
https://openphysic.googlecode.com/svn/trunk/scilab/physique/son

Accès anonyme
svn checkout https://openphysic.googlecode.com/svn/trunk/scilab/physique/son

Accès développeur
svn checkout --username mon_email@gmail.com https://openphysic.googlecode.com/svn/trunk/scilab/physique/son

Quelques exemples sur le web

http://fr.wikibooks.org/wiki/D%C3%A9couvrir_Scilab_Gestion_des_fichiers#Sons
http://fr.wikibooks.org/wiki/D%C3%A9couvrir_Scilab_Graphiques_et_sons#Sons

Voir aussi

sox (programme en ligne de commande)
http://sox.sourceforge.net

voir aussi :
- Musique Assistée par Ordinateur (MAO)
- FFT Perl et sox : http://astro.ensc-rennes.fr/tp/tp_fft.pdf Un TP de Daniel Cordier et Jimmy Roussel
- PureData traitement numérique du son en temps réel
- Octave et wavread

ToDo :
- Synthèse sonore FM
- Effets sonores : echo...

There are no comments on this page. [Add comment]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki