import ddf.minim.analysis.*;
import processing.opengl.*;
import rwmidi.*;
+import java.lang.reflect.*;
final int VIEWPORT_WIDTH = 900;
final int VIEWPORT_HEIGHT = 700;
GLucose glucose;
HeronLX lx;
LXPattern[] patterns;
+Effects effects;
MappingTool mappingTool;
PandaDriver[] pandaBoards;
PresetManager presetManager;
}
return rightPatterns;
}
-
+
+LXEffect[] _effectsArray(Effects effects) {
+ List<LXEffect> effectList = new ArrayList<LXEffect>();
+ for (Field f : effects.getClass().getDeclaredFields()) {
+ try {
+ Object val = f.get(effects);
+ if (val instanceof LXEffect) {
+ effectList.add((LXEffect)val);
+ }
+ } catch (IllegalAccessException iax) {}
+ }
+ return effectList.toArray(new LXEffect[]{});
+}
void logTime(String evt) {
int now = millis();
logTime("Built patterns");
glucose.setTransitions(transitions(glucose));
logTime("Built transitions");
- glucose.lx.addEffects(effects(glucose));
+ glucose.lx.addEffects(_effectsArray(effects = new Effects()));
logTime("Built effects");
// Preset manager
frameRate(++targetFramerate);
break;
case 'b':
- EFF_boom.trigger();
+ effects.boom.trigger();
break;
case 'd':
if (!midiEngine.isQwertyEnabled()) {