Table des matières

KINECT/MULTITOUCH

Description du projet

Comment joindre le son et son acteur avec l'espace ?

L'installation proposée permet de créer un univers graphique scénique et visuel tout en offrant une grande liberté d'intervention sur la musique. Elle s'adapte au titre Love Like a Sunset de Phoenix. Ce morceau, comme une accumulation sonore, renvoie au voyage. Un résultat abstrait se présente suite aux expériences graphiques opérées sur des visuels de paysages (montagne). Ils permettent une superposition des traits et aplats crées, renvoyant à la manipulation possible des samples de Phoenix. Chque sample correspond à un module (volume pyramidale) et s'active au paysage d'une main en dessous. Ces zones de réactivité sont générées par la Kinect et le programme sous Processing.

Matériaux

Kinect avec connection USB pour PC/MAC + vidéoprojecteur

Tutoriel d'installation de la kinect

Librairies nécessaires pour Kinect:

Fichier d'installation : installation_kinect.zip

Photos

code processing (mise à jour 09 Avril 2015)

Attention : deux onglets

// LIBRAIRIES
  import processing.opengl.*; // librairie qui initialise la 3D
  import SimpleOpenNI.*; // librairie de la kinect 
  import ddf.minim.*; // librairie de son 

// VARIABLES GLOBALES
  SimpleOpenNI kinect;
  float rotation = 0;
  Minim minim;
  // Déclaration d'un TABLEAU dynamique "ArrayList" contenant les objets de type "AudioPlayer" (les sons) ( qui sont associés aux cubes/hotpoint)
    ArrayList<AudioPlayer> playList; 
  
  // Déclaration d'un TABLEAU dynamique "ArrayList" contenant les objets de type "Hotpoint" (cubes spatiaux)
    ArrayList<Hotpoint> trigers;
    int nbHotpoint = 8 ; // nombre de hotpoints (cubes spatiaux)
    
  // Déclaration d'un TABLEAU dynamique "ArrayList" de PVector ( de vecteurs) contenant les positions des cubes spatiaux
    ArrayList<PVector> trigerPos;  
  
  // Déclaration d'un TABLEAU dynamique "ArrayList" d' IMAGES 
    ArrayList <PImage> images;
      
  // DEFINTION DE LA  POSITION exact des hotpoints (cubes spatiaux) dans l'espace sachant que 1000 pixels = 1m 
    //IRCAM (devant CS)
      float posX3 = -750, posY3 = 000, posZ3 = 2100; 
    //CS (tout au fond gauche)
      float posX13 = -550, posY13 = 000, posZ13 = 2500; 
    //Reich(tout au fond droite)
      float posX30 = 550, posY30 = 000, posZ30 = 2600;
    //Oiseau (devant reich)
      float posX32 = 750, posY32 = 000, posZ32 = 2200; 
    //Guit
      float posX35 = -500, posY35 = 000, posZ35 = 1800; 
    //AC
      float posX36 = 200, posY36 = 000, posZ36 = 1300; 
    //Nu
      float posX38 = 500, posY38 = 000, posZ38 = 1800; 
    //HH
      float posX54 = -200, posY54 = 000, posZ54 = 1300;       
      
      
    

////////////////////////////////////////////SETUP 
void setup() {
  size(2048, 1100, OPENGL); //taille ecran de la salle : 2048*1100 // ECRAN ORDI PORTABLE MORGANE 2048*745
  kinect = new SimpleOpenNI(this); // instancie la librairie SimpleOpenNi
  kinect.enableDepth(); // permet la profondeur 

  minim = new Minim(this);
  
  // CREATION DE LA LISTE (Arraylist) DE SONS (playList) initialement vide
    playList = new ArrayList<AudioPlayer>();  
  
  // REMPLISSAGE DE LA LISTE (par importation de sons dans la playlist)
    //IRCAM
      playList.add(minim.loadFile("IRCAM3.mp3"));
    //CS
      playList.add(minim.loadFile("CS1.mp3")); 
    //reich
      playList.add(minim.loadFile("Reich.mp3")); 
    //Oiseau
      playList.add(minim.loadFile("GtrOis