Radio code (sound and Arduino)

Thank you so much guy !
You made me understand all the lines of this program (especially for the SerialEvent function). It was Chinese for me but now I understand everything and I succeeded what I wanted to do, here is the final program (I just added more audio files) :

import processing.serial.*;
import ddf.minim.*; //Import de la bibliothèque "minim" pour lecture des sons
import ddf.minim.analysis.*;
import ddf.minim.effects.*;
import ddf.minim.signals.*;
import ddf.minim.spi.*;
import ddf.minim.ugens.*;


Serial port;            //L'objet "port" qui gère la lcture des sons
Minim minim;            //L'objet "minim" qui gère la lcture des sons
AudioPlayer radio1;     //Objet contenant les données audio de la premiere radio
AudioPlayer radio2;     //Objet contenant les données audio de la deuxieme radio
AudioPlayer radio3;     //Objet contenant les données audio de la troisieme radio
AudioPlayer bruitage;

int value=0; //valeur lue sur le port série, envoyé par la carte Arduino

void setup() {
  background(0, 60, 60); //Couleur de l'arrière plan en RVB
  size(200,200);
  port = new Serial(this, Serial.list()[0], 9600); // !!!!!!!!! A CHANGER   !!!!!!!!!!!!!
  port.bufferUntil('\n'); //Attendre arrivée d'un saut de ligne pour générer évènement série
  minim = new Minim(this);
  radio1 = minim.loadFile("radio1.mp3");
  radio2 = minim.loadFile("radio2.mp3");
  radio3 = minim.loadFile("radio3.mp3");
  bruitage = minim.loadFile("bruitage.mp3");
}

void draw() {
  radio();
  delay(100);
}

void radio() {
  println("valeur" + value);
  if (!radio1.isPlaying() && value==1) {
    radio3.pause();
    radio2.pause();
    bruitage.pause();
    radio1.rewind();
    radio1.play();
  }
  if (!bruitage.isPlaying() && value==2) {
    radio1.pause();
    radio2.pause();
    radio3.pause();
    bruitage.rewind();
    bruitage.play();
  }
  if (!radio2.isPlaying() && value==3) {
    radio1.pause();
    radio3.pause();
    bruitage.pause();
    radio2.rewind();
    radio2.play();
  }
  if (!bruitage.isPlaying() && value==4) {
    radio1.pause();
    radio2.pause();
    radio3.pause();
    bruitage.rewind();
    bruitage.play();
  }
  if (!radio3.isPlaying() && value==5) {
    radio1.pause();
    radio2.pause();
    bruitage.pause();
    radio3.rewind();
    radio3.play();
  }
}

void serialEvent(Serial port){
    String serialStr = port.readStringUntil('\n');
    serialStr=trim(serialStr);
    int values[]=int(split(serialStr,','));
    if(values.length==1){
      value=values[0];    // here i suggested a [0]
      println(value);
    }
}

2 Likes