Étape 7: Transformation et Minim
Ce qui est Minim ?
Minim est le prêt à la bibliothèque de traitement d’occasion qui nous permettent de faire des choses avec son. Nous pourrions lecture différents formats audio, comme MP3, fichiers WAV.
Voici l’esquisse de traitement. (FSRProcessing.pde)
Vous aurez besoin les fichiers sons de tambour (inclus dans l’archive zip ci-dessous). Si vous souhaitez modifier le fichier audio peut tu dois http://Free-Loops.com (tous les fichiers de sons de tambour utilisés dans ce sketch proviennent de franche-Loops.com) ou d’autres fichiers audio téléchargeables gratuitement web site.
Et tous les fichiers sont fournis, il y a dans le dossier appelé données.
Que signifie l’esquisse ?
Quand on lance l’esquisse, une fenêtre de petits 200 x 200 pixels, pop up, affichant quatre cercles noirs.
Il attend les commandes de l’Arduino.
Lorsque la commande arrive il va jouer le tambour sonore en conséquence, tout en animant le cercle.
Pour plus d’informations sur la bibliothèque de Minim, visitez Processing.org ou parcourir les discussions sur le Forum de traitement sur Minim ici.
Croquis de traitement
Import processing.serial.* ;
Import ddf.minim.* ;
Import ddf.minim.signals.* ;
Import ddf.minim.analysis.* ;
Import ddf.minim.effects.* ;
Série XBeePort ;
int val ;
Minim minim ;
Coup de AudioSample ;
AudioSample BigDrum ;
AudioSample cloche ;
Cymbales AudioSample ;
AudioSample piège ;
void setup() {}
taille (200, 200, P2D) ;
minim = new Minim(this) ;
Échantillons audio
BigDrum = minim.loadSample("BigDrum.wav") ;
Cloche à vache = minim.loadSample("Cowbell.wav") ;
Cymbales = minim.loadSample("Cymbals.wav") ;
Snare = minim.loadSample("Snare.wav") ;
« COM7 » doivent être changés selon votre nombre de XBee série comm.
XBeePort = nouvelle série (this, « COM7 », 9600) ;
}
{} void draw()
if(XBeePort.available() > 0) {}
Val = XBeePort.read() ;
println((Char)Val) ;
Delay(1) ;
}
Background(255) ;
Fill(0) ;
ellipse (50, 50, 40, 40) ; 2
ellipse (150, 50, 40, 40) ; 1
ellipse (50, 150, 40, 40) ; 4
ellipse (150, 150, 40, 40) ; 3
int croître ;
{Switch(Val)}
affaire « 1 » :
Fill(204) ;
ellipse (150, 50, 40, 40) ; 2
Delay(1) ;
Fill(255,0,0) ;
pour (grandir = 40 ; croître < 90 ; croître ++) {}
ellipse (150, 50, grandir, grandir) ;
}
drumTrigger(1) ;
rupture ;
affaire « 2 » :
Fill(204) ;
ellipse (50, 50, 40, 40) ; 1
Delay(1) ;
remplissage (0,255, 0) ;
pour (grandir = 40 ; croître < 90 ; croître += 2) {}
ellipse (50, 50, grandir, grandir) ;
}
drumTrigger(2) ;
rupture ;
affaire « 3 » :
drumTrigger(3) ;
Fill(204) ;
ellipse (150, 150, 40, 40) ; 4
Delay(10) ;
remplissage (0, 0, 255) ;
pour (grandir = 40 ; croître < 90 ; croître += 2) {}
ellipse (150, 150, grandir, grandir) ;
}
rupture ;
affaire « 4 » :
Fill(204) ;
ellipse (50, 150, 40, 40) ; 3
Delay(10) ;
remplissage (255, 255, 0) ;
pour (grandir = 40 ; croître < 90 ; croître += 2) {}
ellipse (50, 150, grandir, grandir) ;
}
Snare.Trigger() ;
drumTrigger(4) ;
rupture ;
par défaut :
rupture ;
}
}
void drumTrigger (int tambour) {}
{Switch(Drum)}
cas 1 :
BigDrum.trigger() ;
rupture ;
cas 2 :
Cowbell.Trigger() ;
rupture ;
cas 3 :
Cymbals.Trigger() ;
rupture ;
cas 4 :
Snare.Trigger() ;
rupture ;
par défaut :
rupture ;
}
}
stop() Sub
{
toujours fermer les classes audio Minim lorsque vous avez terminé avec eux
Kick.Close() ;
BigDrum.close() ;
Cowbell.Close() ;
Cymbals.Close() ;
Snare.Close() ;
minim.Stop() ;
Super.Stop() ;
}
Vidéo :