*/
import glucose.*;
-import glucose.control.*;
-import glucose.effect.*;
import glucose.model.*;
-import glucose.pattern.*;
-import glucose.transform.*;
-import glucose.transition.*;
import heronarts.lx.*;
-import heronarts.lx.control.*;
import heronarts.lx.effect.*;
import heronarts.lx.modulator.*;
+import heronarts.lx.parameter.*;
import heronarts.lx.pattern.*;
+import heronarts.lx.transform.*;
import heronarts.lx.transition.*;
import ddf.minim.*;
import ddf.minim.analysis.*;
final float TRAILER_DEPTH = 97;
final float TRAILER_HEIGHT = 33;
-final int MaxCubeHeight = 5;
-final int NumBackTowers = 11;
+final int MaxCubeHeight = 7;
+final int NumBackTowers = 18;
int targetFramerate = 60;
int startMillis, lastMillis;
lx = glucose.lx;
lx.enableKeyboardTempo();
logTime("Built GLucose engine");
-
+
// Set the patterns
LXEngine engine = lx.engine;
engine.setPatterns(patterns = _leftPatterns(glucose));
long drawNanos = System.nanoTime() - drawStart;
if (diagnosticsOn) {
- drawDiagnostics(lx.drawNanos(), drawNanos, simulationNanos, uiNanos, gammaNanos, sendNanos);
+ drawDiagnostics(drawNanos, simulationNanos, uiNanos, gammaNanos, sendNanos);
}
}
-void drawDiagnostics(long lxNanos, long drawNanos, long simulationNanos, long uiNanos, long gammaNanos, long sendNanos) {
+void drawDiagnostics(long drawNanos, long simulationNanos, long uiNanos, long gammaNanos, long sendNanos) {
float ws = 4 / 1000000.;
int thirtyfps = 1000000000 / 30;
int sixtyfps = 1000000000 / 60;
noStroke();
int xp = x;
float hv = 0;
- for (long val : new long[] {lxNanos, simulationNanos, uiNanos, gammaNanos, sendNanos }) {
+ for (long val : new long[] {lx.timer.drawNanos, simulationNanos, uiNanos, gammaNanos, sendNanos }) {
fill(lx.hsb(hv % 360, 100, 80));
rect(xp, y, val * ws, h-1);
hv += 140;
noFill();
stroke(#333333);
line(x+sixtyfps*ws, y+1, x+sixtyfps*ws, y+h-1);
+
+ y = y - 14;
+ xp = x;
+ float tw = thirtyfps * ws;
+ noFill();
+ stroke(#999999);
+ rect(x, y, tw, h);
+ h = 5;
+ noStroke();
+ for (long val : new long[] {
+ lx.engine.timer.deckNanos,
+ lx.engine.timer.copyNanos,
+ lx.engine.timer.fxNanos}) {
+ float amt = val / (float) lx.timer.drawNanos;
+ fill(lx.hsb(hv % 360, 100, 80));
+ rect(xp, y, amt * tw, h-1);
+ hv += 140;
+ xp += amt * tw;
+ }
+
+ xp = x;
+ y += h;
+ hv = 120;
+ for (long val : new long[] {
+ lx.engine.getDeck(0).timer.runNanos,
+ lx.engine.getDeck(1).timer.runNanos,
+ lx.engine.getDeck(1).getFaderTransition().timer.blendNanos}) {
+ float amt = val / (float) lx.timer.drawNanos;
+ fill(lx.hsb(hv % 360, 100, 80));
+ rect(xp, y, amt * tw, h-1);
+ hv += 140;
+ xp += amt * tw;
+ }
}
void drawSimulation(color[] simulationColors) {
- camera(
+ camera(
eyeX, eyeY, eyeZ,
midX, midY, midZ,
0, -1, 0
noFill();
strokeWeight(2);
beginShape(POINTS);
- for (Point p : glucose.model.points) {
+ for (LXPoint p : glucose.model.points) {
stroke(simulationColors[p.index]);
vertex(p.x, p.y, p.z);
}