View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

Outils > Processing

Processing : Jouer un son avec Mplayer

Explication

  • Sur un système Gnu/Linux tel qu'Ubuntu, on dispose d'un lecteur de fichiers sons et vidéos multiformat très performant, mplayer. Ce programme peut être lancé en ligne de commande facilement. D'où l'idée de l'utiliser depuis Processing pour lancer la lecture d'un fichier son en ligne de commande.
  • La ligne de commande à utiliser sera de la forme : mplayer /home/hinault/Bureau/mes_sons/r2d2_2.mp3 -quiet Ici le paramètre -quiet a pour effet de limiter les messages renvoyés dans la console.
  • Pour lancer une ligne de commande système depuis Processing sous Ubuntu, on utilise un tableau de String pour y mettre les éléments de la ligne de commande et on envoie le tout vers la console système via un bout de code en Java. Le pied !

Ressources utiles

Le programme

  • Mettez des fichiers sons dans le répertoire de votre choix. Indiquer dans le programme le chemin des fichiers sons et tester plusieurs sons en changeant le nom du fichier son dans le programme. Vous trouverez ici une série de sons utilisables, dont quelques bruits de r2d2 sympas...
  • Lancer le programme et amusez-vous bien !



// Programme processing
// généré avec le générateur de code Processing
// www.mon-club-elec.fr
// par X. HINAULT - Avril 2011 - tous droits réservés

String[] command ; // pour envoi ligne de commande

void setup(){ // fonction d'initialisation exécutée 1 fois au démarrage

        // ---- initialisation paramètres graphiques utilisés
        colorMode(RGB, 255,255,255); // fixe format couleur R G B pour fill, stroke, etc...
        fill(0,0,255); // couleur remplissage RGB
        stroke (0,0,0); // couleur pourtour RGB
        rectMode(CORNER); // origine rectangle : CORNER = coin sup gauche | CENTER : centre
        imageMode(CORNER); // origine image : CORNER = coin sup gauche | CENTER : centre
        //strokeWeight(0); // largeur pourtour
        frameRate(30);// Images par seconde

        // --- initialisation fenêtre de base ---
        //size(400, 130); // ouvre une fenêtre xpixels  x ypixels
        background(0,0,0); // couleur fond fenetre

} // fin fonction Setup

// XXXXXXXXXXXXXXXXXXXXXX Fonction Draw XXXXXXXXXXXXXXXXXXXX

void  draw() { // fonction exécutée en boucle


//------ code type pour jouer son avec mplayer par ligne commande (Ubuntu) ----

String nomFichier="r2d2_1.mp3"; // variable pour nom du fichier son à jouer
String cheminFichier="/home/glapbox/Bureau/mes_sons/"; // chemin complet avec / de fin

joueSonMplayer (cheminFichier, nomFichier);

 delay (5000);

 joueSonMplayer (cheminFichier, "r2d2_5.mp3");

 //while(true); // stoppe programme

} // fin de la fonction draw()

// XXXXXXXXXXXXXXXXXXXXXX Autres Fonctions XXXXXXXXXXXXXXXXXXXXXX

//--------------------- fonction lecture son avec Mplayer ---------------
void joueSonMplayer(String cheminSon, String fichierSon) {

 //------ code type pour jouer son avec mplayer par ligne commande (Ubuntu) ----

command = new String[3]; // tableau String pour la ligne de commande

// mplayer /home/hinault/Bureau/mes_sons/r2d2_2.mp3 -quiet
command[0] = "mplayer";
command[1] = cheminSon+fichierSon;
command[2]="-quiet";

//--- exécution de la ligne de commande (code Java)

try {
    Process p = exec(command); // exécute la commande

    //--- récupère la sortie de la commande dans la console de Processing
    BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
    String line = null;
    while ((line = in.readLine()) != null) {
      System.out.println(line);
    }//fin while
  } // fin try
  catch (IOException e) { // gestion exception
    e.printStackTrace();
  }  // fin catch

} //--------------------- fin joueSonMplayer