Trådlös Finger Drum (7 / 7 steg)
Steg 7: Bearbetning och Minim
Vad är Minim?
HALVNOT är redo att använda bildbehandling bibliotek som tillåter oss att göra saker med ljud. Vi kunde spela upp olika ljudformat, som MP3, WAV-filer.
Följande är den bearbetning skiss. (FSRProcessing.pde)
Du måste trumman ljudfilerna (ingår i zip-fil nedan). Om du vill ändra ljudfilen kan du att http://Free-Loops.com (alla trumma ljud-filer används i denna skiss är från Free-Loops.com) eller annan gratis nedladdningsbara ljudfiler webbplats.
Och alla filer finns, finns i mappen kallas data.
Vad skissen?
När vi kör skissen, en liten 200 x 200 pixlar fönster dyker upp, som visar fyra svarta cirklar.
Det väntar på kommandon från Arduino.
När kommandot anländer kommer det spela trumman ljud, medan animera cirkeln.
För mer information om Minim bibliotek, besök Processing.org eller bläddra igenom bearbetning Forum diskussionerna om Minim här.
Processing skiss
import processing.serial.*;
import ddf.minim.*;
import ddf.minim.signals.*;
import ddf.minim.analysis.*;
import ddf.minim.effects.*;
Seriella XBeePort;
int val;
Minim minim;
AudioSample kick;
AudioSample BigDrum;
AudioSample Cowbell;
AudioSample cymbaler;
AudioSample snara;
void setup() {
storlek (200, 200, P2D);
Minim = nya Minim(this);
Ljud prover
BigDrum = minim.loadSample("BigDrum.wav");
Cowbell = minim.loadSample("Cowbell.wav");
Cymbaler = minim.loadSample("Cymbals.wav");
Snara = minim.loadSample("Snare.wav");
"COM7" behöva ändras enligt din XBee seriell komm.
XBeePort = ny följetong (här, "COM7", 9600);
}
void draw() {
IF(XBeePort.available() > 0) {
Val = XBeePort.read();
println((Char)val);
Delay(1);
}
Background(255);
Fill(0);
ellips (50, 50, 40, 40); 2
ellips (150, 50, 40, 40); 1
ellips (50, 150, 40, 40); 4
ellips (150 150, 40, 40); 3
int växa;
Switch(val) {
fall '1':
Fill(204);
ellips (150, 50, 40, 40); 2
Delay(1);
Fill(255,0,0);
för (växa = 40; växa < 90; växa ++) {
ellips (150, 50, växa, växa);
}
drumTrigger(1);
bryta;
fallet "2":
Fill(204);
ellips (50, 50, 40, 40); 1
Delay(1);
fyllning (0,255, 0);
för (växa = 40; växa < 90; växa += 2) {
ellips (50, 50, växa, växa);
}
drumTrigger(2);
bryta;
fallet "3":
drumTrigger(3);
Fill(204);
ellips (150 150, 40, 40); 4
Delay(10);
fyllning (0, 0, 255);
för (växa = 40; växa < 90; växa += 2) {
ellips (150, 150, växa, växa);
}
bryta;
fallet "4":
Fill(204);
ellips (50, 150, 40, 40); 3
Delay(10);
fyllning (255, 255, 0);
för (växa = 40; växa < 90; växa += 2) {
ellips (50, 150, växa, växa);
}
Snare.trigger();
drumTrigger(4);
bryta;
standard:
bryta;
}
}
void drumTrigger (int trumma) {
Switch(Drum) {
fall 1:
BigDrum.trigger();
bryta;
fall 2:
Cowbell.trigger();
bryta;
fall 3:
Cymbals.trigger();
bryta;
fall 4:
Snare.trigger();
bryta;
standard:
bryta;
}
}
void stop()
{
alltid stänga Minim ljud klasser när du är klar med dem.
kick.Close();
BigDrum.close();
Cowbell.Close();
Cymbals.Close();
Snare.Close();
Minim.stop();
Super.stop();
}
Video: