Porteur(s) du projet: gants boussole
\\ **Biampinga Yann-Daniel** (contact : [[yann_biampinga@hotmail.fr|yann_biampinga@hotmail.fr]])\\
** Pauline BEALU** (contact : [[pauline.bealu@gmail.com|pauline.bealu@gmail.com]])\\
Date de début : Janvier/2018-2019.
====== Cahier des charges ======
=== Introduction ===
Objectif: Créer un dispositif permettant une perception autrui
Thématique : En quoi la perception de l'émotion musicale peut-elle être un outil de médiation entre nous et le monde ?
La musique est avant tout l’art de combiner les sons de manière harmonieuse et expressive, cela provoque chez celui qui la perçoit une réaction qui est dans la plupart des cas suivi d’une ou de plusieurs émotions. De plus l’émotion dépend avant tout, du niveau de sensibilité de l’individu, elle peut être passagère ou bien très intense. La perception auditive commence tout d’abord par le cheminement du son, s’ensuit d’une propagation de l’information dans l’oreille et enfin d’un traitement de l’information sonore dans le cerveau. C’est le cerveau qui traite l’information sonores suite à la propagation de cette dernière.
L’émotion musicale peut toucher plusieurs personnes en même temps, si ces personnes en question possèdent le même niveau de sensibilité. Moi, avec mon instrument ou ma voix je peux transférer une émotion d’un point A vers un point B. Et la réaction de la ou des personnes émut par ma musique peux m’émouvoir en retours. On parle alors de contacte émotionnel, qui varie d’un individu à un autres.
{{:wiki:projets:e_motion.jpg?600|}}
=== Description du projet ===
But: Résumer sa semaine en musique et par la même occasion de connaitre celles des autres.
Nombre de participants et d'émotions: On a limité l'application à trois participants et à trois émotions, mais on aurait pu en ajouter plus. On a fait ce choix pour que l'application soit rapide et pas trop répétitif.
L'application Musicachrone permet aux utilisateurs d'être perçut par autrui à travers des notes de musique. Chaque utilisateurs devra sur l'application d'écrire les sentiments qu'il a ressenti tout au long de la semaine par le billet de la musique. De plus pour chaque jours de la semaine il y aura 3 choix de réponses : "excellente", "Normale" et "horrible!! "; toutes les réponses seront liées à une notes de musique. Ensuite lorsque tous les participants auront répondu, une mélodie sera joué et correspondra à la sommes de toutes les notes de musique liées aux sentiments ressenti selon chacun, par rapport à la semaine qu'ils viennent de surmonter.
Voici la première version de l'application
{{:wiki:projets:capture_d_e_cran_2019-05-03_a_15.05.08.png?600|}}
{{:wiki:projets:capture_d_ecran_2019-04-29_a_02.20.05.png?600|}}
{{:wiki:projets:capture_d_ecran_2019-04-29_a_02.20.55.png?600|}}
{{:wiki:projets:capture_d_e_cran_2019-05-22_a_12.10.54.png?600|}}
====== Veille ======
{{:wiki:projets:capture_d_e_cran_2019-05-22_a_11.52.46.png?600|}}
{{:wiki:projets:capture_d_e_cran_2019-05-22_a_11.45.27.png?600|}}
{{:wiki:projets:capture_d_e_cran_2019-05-22_a_11.50.34.png?600|}}
====== Typographie Musicale ======
{{:wiki:projets:istockphoto-857130574-1024x1024.jpg?600|}}
{{:wiki:projets:t2.jpg?600|}}
{{:wiki:projets:753a82091bdf93df272697e1f26229c2_xl.jpg?600|}}
{{:wiki:projets:alienor-fernandez_diutdo11.jpg?600|}}
====== Posters ======
{{:wiki:projets:imagemusica.png?600|}}
{{:wiki:projets:imageconsignnn.png?600|}}
{{:wiki:projets:poster_ok.png?600|}}
====== Code ======
import ddf.minim.*;
import ddf.minim.ugens.*;
Minim minim;
AudioOutput out;
Sampler kick;
Sampler snare;
Sampler hat;
boolean[] hatRow = new boolean[21];
boolean[] snrRow = new boolean[21];
boolean[] kikRow = new boolean[21];
ArrayList buttons = new ArrayList();
int bpm = 120;
int beat; // which beat we're on
{
void noteOn( float dur )
{
if ( hatRow[beat] ) hat.trigger();
if ( snrRow[beat] ) snare.trigger();
if ( kikRow[beat] ) kick.trigger();
}
void noteOff()
{
// next beat
beat = (beat+1)%21;
// set the new tempo
out.setTempo( bpm );
// play this again right now, with a sixteenth note duration
out.playNote( 0, 0.25f, this );
}
}
// simple class for drawing the gui
class Rect
{
int x, y, w, h;
boolean[] steps;
int stepId;
public Rect(int _x, int _y, boolean[] _steps, int _id)
{
x = _x;
y = _y;
w = 21;
h = 30;
steps = _steps;
stepId = _id;
}
public void draw()
{
if ( steps[stepId] )
{
fill(0,255,0);
}
else
{
fill(255,0,0);
}
rect(x,y,w,h);
textSize(90);
text("X",700,70, width/10, height/2);
}
public void mousePressed()
{
if ( mouseX >= x && mouseX <= x+w && mouseY >= y && mouseY <= y+h )
{
steps[stepId] = !steps[stepId];
}
}
}
void setup()
{
size(800, 800);
minim = new Minim(this);
out = minim.getLineOut();
// load all of our samples, using 4 voices for each.
// this will help ensure we have enough voices to handle even
// very fast tempos.
kick = new Sampler( "BD.wav", 4, minim );
snare = new Sampler( "SD.wav", 4, minim );
hat = new Sampler( "CHH.wav", 4, minim );
// patch samplers to the output
kick.patch( out );
snare.patch( out );
hat.patch( out );
for (int i = 0; i < 21; i++)
{
buttons.add( new Rect(10+i*24, 50, hatRow, i ) );
buttons.add( new Rect(10+i*24, 100, snrRow, i ) );
buttons.add( new Rect(10+i*24, 150, kikRow, i ) );
}
beat = 0;
// start the sequencer
out.setTempo( bpm );
out.playNote( 0, 0.25f, new Tick() );
}
void draw()
{
background(0);
fill(255);
//text(frameRate, width - 60, 20);
//text("L",15,20, width/10, height/2);
textSize(12);
text("M",40,20, width/10, height/2);
text("M",65,20, width/10, height/2);
text("J",92,20, width/10, height/2);
text("V",113,20, width/10, height/2);
text("S",138,20, width/10, height/2);
text("D",162,20, width/10, height/2);
//text("L",187,20, width/10, height/2);
text("M",209,20, width/10, height/2);
text("M",232,20, width/10, height/2);
text("J",261,20, width/10, height/2);
text("V",281,20, width/10, height/2);
text("S",305,20, width/10, height/2);
text("D",329,20, width/10, height/2);
//text("L",354,20, width/10, height/2);
text("M",376,20, width/10, height/2);
text("M",399,20, width/10, height/2);
text("J",428,20, width/10, height/2);
text("V",449,20, width/10, height/2);
text("S",475,20, width/10, height/2);
text("D",496,20, width/10, height/2);
text(": Excellente :-)",520,70);
text(": Normale ",520,120);
text(": Horrible!!! ",520,170);
//text("{ PARTICIPANT 1 } ",15,200);
//text("{ PARTICIPANT 2 } ",187,200);
//text("{ PARTICIPANT 3 } ",354,200);
fill(0, 102, 153, 204);
textSize(30);
text("Bienvue sur l'application Musicachrone, exprime ",15,300);
text("ta semaine en Musique, pour chaque jours de la",15,350);
text("semaine choisi une émotion qui correspondra à",15,400);
text("une note musicale. Une fois que tous les participants",15,450);
text("auront coché toutes leurs cases le grand X deviendra ",15,500);
text("vert et une instrumentale musicale sera alors joué",15,550);
fill(0, 102, 153, 250);
ellipse(17,200,16,16);
ellipse(162,200,16,16);
textSize(12);
text("{ PARTICIPANT 1 } ",15,200);
text("L",15,20, width/10, height/2);
fill(127,80,0);
text("{ PARTICIPANT 2 } ",187,200);
text("L",187,20, width/10, height/2);
ellipse(187,200,16,16);
ellipse(335,200,16,16);
fill(255,130,200);
ellipse(354,200,16,16);
ellipse(496,200,16,16);
text("{ PARTICIPANT 3 } ",354,200);
text("L",354,20, width/10, height/2);
for(int i = 0; i < buttons.size(); ++i)
{
buttons.get(i).draw();
}
stroke(128);
if ( beat % 4 == 0 )
{
fill(200, 0, 0);
}
else
{
fill(0, 200, 0);
}
// beat marker
rect(10+beat*24, 35, 21, 9);
}
void mousePressed()
{
for(int i = 0; i < buttons.size(); ++i)
{
buttons.get(i).mousePressed();
}
}
====== Articles fondateurs/ Livres ======
Pour notre mémoire, plus précisément pour la partie théorique on a choisi comme appui l'essaie de Vladimir Jankélévitch "La musique et l'ineffable"
{{:wiki:projets:71v7hqysm8l.jpg?600|}}
====== Journal de Bord ======
10/04/19:
On a programmé plusieurs instruments virtuels comme un piano, une guitare et une batterie qui fonctionne avec les touche du clavier. Il ne reste plus qu'à relier les instruments à distance afin que chaque utilisateurs puissent manipuler son instrument et écouter les notes de musique des autres participants. De plus on devra améliorer le programme pour que les utilisateurs n'entendent pas leurs propre musique mais seulement celles des autres, en gros couper notre musique pour entendre celles d'autrui.
{{:wiki:projets:capture_d_e_cran_2019-05-03_a_14.30.56.png?400|}} PIANO VIRTUEL
{{:wiki:projets:capture_d_e_cran_2019-05-03_a_14.32.59.png?400|}} GUITARE VIRTUEL (à deux cordes)
17/04/19:
On a réussi a connecter deux ordinateur entre eux, sur le premier écran il y a l'instrument du participant 1 et sur le deuxième écran est affiché le spectre musicale du participant 1; maintenant reste plus qu'a réussir à afficher un spectre musicale et un instrument de musique en même temps
{{:wiki:projets:capture_d_e_cran_2019-05-03_a_14.53.38.png?400|}} Spectre musicale du participant 1 jouant de la guitare sur l'écran du participant 2
{{:wiki:projets:capture_d_e_cran_2019-05-03_a_21.33.49.png?400|}} Spectre musicale du participant 1 jouant du piano sur l'écran du participant 2
22/04/19:
On a changé d'idée, l'application Musicachrone perçoit maintenant les sentiments ressenti par un utilisateur tout au long de la semaine. On d'abord améliorer un drum machine en modifiant les notes de musique pour créer un contraste de notes de musique. Ensuite on a r'ajouter des jours de la semaine et on a allongé la ligne de notes musicale pour qu'il y est au moins 3 utilisateurs.
{{:wiki:projets:capture_d_ecran_2019-04-24_a_23.39.49.png?600|}}
On a abandonné l'idée précédente a cause des multiples bugs et erreurs de compilations lorsqu'on rassemble l'ensemble des programmes.
16/05/19:
On a ajusté les notes de musique afin créer une différences sonores entre elles. Ensuite on a r'ajouté un grand X rouge qui bascule au vert lorsque tous les participants ont fini de cocher leurs cases.
{{:wiki:projets:jeudi18.png?600|}}
{{:wiki:projets:vendredi19.png?600|}}