Lag on Trigger using Minim
in
Integration and Hardware
•
2 years ago
I'm very new to Processing, but I've got an infrared sensor that when a certain distance is detected, will play a sound. I'm using Minim to play the sound but when it is triggered, it lags for almost an entire second before playing. The sound byte is very small and it's loaded in my setup so I'm unsure how I can counter this lag. Here is my code:
import processing.serial.*;
import cc.arduino.*;
import ddf.minim.*;
AudioPlayer player;
Minim minim;
AudioSample doink;
Arduino arduino;
float laststep;
float analogIn;
int playerTriggered = 0;
//set pin values
int anPin = 0;
void setup() {
size(470, 280);
minim = new Minim(this);
doink = minim.loadSample("doink_doink.wav", 2048);
//init the arduino and set rate
arduino = new Arduino(this, Arduino.list()[0], 57600);
//loop through and set analog pins to input
for (int i = 0; i <= 13; i++) {
arduino.pinMode(i, Arduino.INPUT);
}
}
//loop and output values to console
void draw() {
println(arduino.analogRead(anPin));
delay(100);
analogIn = arduino.analogRead(anPin);
if(analogIn > 450 && analogIn < 500 && playerTriggered !=1 ) {
playerTriggered = 1;
//player.play();
doink.trigger();
println("player triggered");
}
//minim.stop();
laststep = analogIn;
}
void stop(){
doink.stop();
minim.stop();
}
import processing.serial.*;
import cc.arduino.*;
import ddf.minim.*;
AudioPlayer player;
Minim minim;
AudioSample doink;
Arduino arduino;
float laststep;
float analogIn;
int playerTriggered = 0;
//set pin values
int anPin = 0;
void setup() {
size(470, 280);
minim = new Minim(this);
doink = minim.loadSample("doink_doink.wav", 2048);
//init the arduino and set rate
arduino = new Arduino(this, Arduino.list()[0], 57600);
//loop through and set analog pins to input
for (int i = 0; i <= 13; i++) {
arduino.pinMode(i, Arduino.INPUT);
}
}
//loop and output values to console
void draw() {
println(arduino.analogRead(anPin));
delay(100);
analogIn = arduino.analogRead(anPin);
if(analogIn > 450 && analogIn < 500 && playerTriggered !=1 ) {
playerTriggered = 1;
//player.play();
doink.trigger();
println("player triggered");
}
//minim.stop();
laststep = analogIn;
}
void stop(){
doink.stop();
minim.stop();
}
2