ISN-Compléments-lire un fichier audio

Transcription

ISN-Compléments-lire un fichier audio
ISN-Compléments-lire un fichier audio
Dans Processing il existe une bibliothèque qui permet de jouer des fichiers audio ou de capter un son
entrant par le microphone. A priori cette bibliothèque est déjà installée sur votre machine. Pour vérifier
sa présence et l'intégrer dans votre programme, il suffit d'aller dans le menu Sketch > Import Library... >
minim
Configurer minim
Le lancement de notre sketch via le bouton Run ne suffit pas pour jouer un son. Au préalable, il faut
prévoir d'activer les fonctionnalités de gestion audio de minim (son moteur audio en jargon
informatique). Pour jouer un son, minim doit en effet auparavant demander un accès à la carte son de
votre ordinateur. Ne vous inquiétez pas, minim s'occupe de toute cette cuisine interne pour vous, il
suffit de lui dire de s'activer pour cela. Le fait d'avoir activé minim suppose de prévoir de le désactiver à
la fin de notre programme.
Si vous ne comprenez pas tout ce que nous venons de dire,
ce n'est pas trop grave. Sachez simplement qu'il faut saisir
le code suivant au début et à la fin de chaque programme utilisant
minim :
Si par curiosité vous voulez savoir à quoi sert le mot « this » dans
ce programme, sachez qu'il sert à indiquer à Processing que nos
instructions s'appliquent à « ce » programme. minim a besoin de
connaître l'adresse de « ce » programme (le nôtre) pour le faire
communiquer avec la carte son de notre ordinateur.
Encore une fois, si vous ne comprenez pas ce que nous venons de
dire, ce n'est pas grave. Sachez seulement que ces mots doivent
être écrits au début et à la fin de chaque programme lorsque nous
voulons produire du son.
import ddf.minim.spi.*;
import ddf.minim.signals.*;
import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.ugens.*;
import ddf.minim.effects.*;
Minim minim;
void setup() {
minim = new Minim(this);
}
void stop() {
minim.stop();
super.stop();
}
ISN-Compléments-lire un fichier audio
Importer un son
Tout comme les images photographiques ou la typographie, nous allons importer un fichier son
dans Processing pour pouvoir le jouer dans notre programme. Pour bien réussir cette étape, nous
vous recommandons de sauvegarder d'abord votre sketch.
Nos sons peuvent venir de plusieurs sources : des sons téléchargés, des sons que vous avez créés
vous-même via un logiciel comme Audacity, voire des sons que vous pouvez trouver par défaut
dans votre système d'exploitation.
Identifiez et sélectionnez à présent le fichier son que vous souhaitez utiliser, et glissez-le
directement sur la fenêtre Processing
Cette action placera le son de ce fichier
dans le dossier « data » de votre sketch
Formats audio
Vous pouvez utiliser trois formats audio avec minim : WAV, AIFF, et MP3. Les deux premiers
formats peuvent être exportés par défaut via des logiciels libres comme Audacity.
Comme pour les images, les différents formats ont leurs avantages et désavantages.
1. Les formats WAV et AIFF sont quasi identiques et sont deux formats non compressés. Ils
peuvent être lus sans trop de difficultés par minim, car ils ne requièrent pas de
décompression. Ils sont souvent utilisés pour des sons courts, de type bruitage. Pour un
morceau de musique de même durée, ces deux formats occupent beaucoup plus de place
mémoire que les fichiers au format MP3.
2. Le format MP3 est un format compressé. Il est souvent beaucoup moins volumineux que
les fichiers WAV et AIFF. Par contre, la lecture du format MP3 nécessite plus de
ressources de calcul de votre ordinateur, car le fichier doit être décompressé lors de sa
lecture.
ISN-Compléments-lire un fichier audio
AudioSnippet, AudioSample, AudioPlayer
La bibliothèque minim distingue plusieurs manières de jouer un son dans Processing. En
principe, les instructions à utiliser dépendront de la nature et rôle du son dans votre programme.
Si l'on se réfère à la documentation décrivant les fonctionnalités offertes par minim, un
AudioSnippet sera employé pour une lecture simple d'un court extrait sonore, un AudioSample
pour une lecture rapide et répétée comme une boîte à rythmes, et enfin un AudioPlayer pour
jouer des fichiers audio plus longs (souvent de type MP3)
AudioPlayer
AudioSnippet
On préalablement chargé un fichier Mp3
dans le data qui se nomme unmorceau.mp3
On préalablement chargé un fichier mp3
dans le data qui se nomme arme1.mp3
On déclare un objet AudioPlayer
On déclare un objet AudioSnippet
AudioPlayer music ;
AudioSnippet pan ;
On rajoute dans le setup()
On rajoute dans le setup()
minim = new Minim(this);
music = minim.loadFile("unmorceau.mp3");
music.play();
minim = new Minim(this);
pan = minim.loadSnippet("arme1.mp3");
On rajoute la méthode draw
void draw(){
// do what you do
}
On rajoute dans la fonction stop() :
music.close();
On trouve des « tas » de fichiers son sur le net
On rajoute la méthode draw
void draw(){
// do what you do
}
On rajoute une fonction keyPressed()
void keyPressed(){
if(key=='d'){
pan.play();
pan.rewind();//remet le son au début
}
On rajoute dans la fonction stop() :
pan.close();
ISN-Compléments-lire un fichier audio
AudioSample
On préalablement chargé un fichier wav dans le
data qui se nomme bouchon.wav
On déclare un objet AudioSample
AudioSample pshit;
On rajoute dans le setup()
minim = new Minim(this);
pshit = minim.loadSample("bouchon.wav");
Notez avant tout que les instructions d'importation
et de lectures changent selon le type choisi.
AudioPlayer et AudioSample utiliseront tous les
deux la méthode play() car leur lecture est
toujours unique (un seul son à la fois).
Par contre, AudioSample nécessite la lecture de
nombreux sons simultanés (on peut taper plusieurs
fois sur une batterie) et pour cette raison utilise une
autre nomenclature, trigger(), pour décrire le
lancement d'un son. En anglais, le mot « trigger »
signifie une gâchette.
On rajoute la méthode draw
void draw(){
// do what you do
}
On rajoute une fonction keyPressed()
void keyPressed(){
if(key=='p'){
pshit.trigger();
}
On rajoute dans la fonction stop() :
pshit.close();
Un petit travail ……………….
Voici un code qui dessine une cible
Faites en sorte que lorsqu’on clique sur la souris
Un coup de feu retentisse………………
background(0);
pushStyle();
noCursor();
noFill();
strokeWeight(3);
stroke(255,0,0);
ellipse(mouseX, mouseY, 30, 30);
line(mouseX-30, mouseY, mouseX+30, mouseY);
line(mouseX, mouseY-30, mouseX, mouseY+30);
popStyle();
Une idée de projet : réaliser un juke-box qui joue vos morceaux préférés…………..