Paso 7: Procesamiento y Minim
¿Qué es mínima?
Mínima es la biblioteca de procesamiento usado que nos permiten hacer cosas con el sonido. Podríamos reproducir varios formatos de audio, como MP3, archivos WAV.
Lo que sigue es el bosquejo de procesamiento. (FSRProcessing.pde)
Usted necesitará los archivos de sonido de tambor (incluidos en el archivo zip siguiente). Si desea cambiar el archivo de sonido tienes para http://Free-Loops.com (todos los tambor archivos de sonido utilizados en este esquema son de Free-Loops.com) u otro sitio de web de archivos de sonido para descargar gratis.
Y todos los archivos se proporcionan, en la carpeta llamada data.
¿Qué significa el dibujo?
Cuando ejecuta el bosquejo, una ventana pequeña 200 x 200 pixeles pop, mostrando cuatro círculos negros.
Espera que los comandos de la Arduino.
Cuando el comando llega desempeñará el tambor sonido por consiguiente, mientras la animación del círculo.
Para obtener más información sobre biblioteca mínima, visita Processing.org o navegar a través de las discusiones del Foro de procesamiento en Minim aquí.
Proceso de bosquejo
Import processing.serial.*;
Import ddf.minim.*;
Import ddf.minim.signals.*;
Import ddf.minim.analysis.*;
Import ddf.minim.effects.*;
Serie XBeePort;
int val;
Mínima mínima;
AudioSample kick;
AudioSample BigDrum;
AudioSample cencerro;
AudioSample platillos;
AudioSample trampa;
void setup() {}
tamaño (200, 200, P2D);
mínima = nuevo Minim(this);
Muestras de audio
BigDrum = minim.loadSample("BigDrum.wav");
Cencerro = minim.loadSample("Cowbell.wav");
Platillos = minim.loadSample("Cymbals.wav");
Trampa = minim.loadSample("Snare.wav");
"COM7" necesita ser cambiado según su número de XBee serie com.
XBeePort = nueva serie (esta, "COM7", 9600);
}
void draw() {}
if(XBeePort.Available() > 0) {}
Val = XBeePort.read();
println((Char)Val);
Delay(1);
}
Background(255);
Fill(0);
elipse (50, 50, 40, 40); 2
elipse (150, 50, 40, 40); 1
elipse (50, 150, 40, 40); 4
elipse (150, 150, 40, 40); 3
int crecer;
{Switch(Val)}
caso '1':
Fill(204);
elipse (150, 50, 40, 40); 2
Delay(1);
Fill(255,0,0);
para (crecer = 40; < 90 de crecer crecer ++) {}
elipse (150, 50, crecer, crecer);
}
drumTrigger(1);
rotura;
caso '2':
Fill(204);
elipse (50, 50, 40, 40); 1
Delay(1);
relleno (0,255, 0);
para (crecer = 40; < 90 de crecer crecer += 2) {}
elipse (50, 50, crecer, crecer);
}
drumTrigger(2);
rotura;
Case '3':
drumTrigger(3);
Fill(204);
elipse (150, 150, 40, 40); 4
Delay(10);
relleno (0, 0, 255);
para (crecer = 40; < 90 de crecer crecer += 2) {}
elipse (150, 150, crecer, crecer);
}
rotura;
caso '4':
Fill(204);
elipse (50, 150, 40, 40); 3
Delay(10);
relleno (255, 255, 0);
para (crecer = 40; < 90 de crecer crecer += 2) {}
elipse (50, 150, crecer, crecer);
}
Snare.Trigger();
drumTrigger(4);
rotura;
por defecto:
rotura;
}
}
void drumTrigger (int tambor) {}
{Switch(drum)}
caso 1:
BigDrum.trigger();
rotura;
caso 2:
Cowbell.Trigger();
rotura;
caso 3:
Cymbals.Trigger();
rotura;
caso 4:
Snare.Trigger();
rotura;
por defecto:
rotura;
}
}
void stop()
{
cierre siempre las clases audio mínima cuando termines con ellos
Kick.Close();
BigDrum.close();
Cowbell.Close();
Cymbals.Close();
Snare.Close();
Minim.STOP();
Super.STOP();
}
Video: