import processing.opengl.*;
import rwmidi.*;
import java.lang.reflect.*;
+import java.net.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
LXEffect[] effectsArr;
DiscreteParameter selectedEffect;
MappingTool mappingTool;
-GrizzlyOutput[] grizzlies;
+IPOutput[] outputs = {};
PresetManager presetManager;
MidiEngine midiEngine;
boolean mappingMode = false;
boolean debugMode = false;
boolean simulationOn = true;
+boolean structureOn = false;
boolean diagnosticsOn = false;
LXPattern restoreToPattern = null;
PImage logo;
size(VIEWPORT_WIDTH, VIEWPORT_HEIGHT, OPENGL);
frameRate(targetFramerate);
noSmooth();
- // hint(ENABLE_OPENGL_4X_SMOOTH); // no discernable improvement?
logTime("Created viewport");
// Create the model
logTime("Setup MIDI devices");
// Build output driver
- grizzlies = new GrizzlyOutput[]{};
try {
- grizzlies = buildGrizzlies();
- for (LXOutput output : grizzlies) {
+ outputs = buildOutputs();
+ for (LXOutput output : outputs) {
lx.addOutput(output);
}
} catch (Exception x) {
x.printStackTrace();
}
- logTime("Built Grizzly Outputs");
+ logTime("Built Grizzly + Panda Outputs");
// Mapping tool
mappingTool = new MappingTool(lx);
// Right controls
new UIPatternDeck(lx.ui, lx.engine.getDeck(RIGHT_DECK), "PATTERN B", width-144, 4, 140, 324),
uiMidi = new UIMidi(midiEngine, width-144, 332, 140, 158),
- new UIOutput(grizzlies, width-144, 494, 140, 106),
+ new UIOutput(outputs, width-144, 494, 140, 106),
// Crossfader
uiCrossfader = new UICrossfader(width/2-90, height-90, 180, 86),
println("Total setup: " + (millis() - startMillis) + "ms");
println("Hit the 'o' key to toggle live output");
+
+ lx.engine.framesPerSecond.setValue(60);
+ lx.engine.setThreaded(true);
}
public SCPattern getPattern() {
noStroke();
int xp = x;
float hv = 0;
- for (long val : new long[] {lx.timer.drawNanos, simulationNanos, uiNanos, gammaNanos, lx.timer.outputNanos }) {
+ for (long val : new long[] {lx.timer.drawNanos, simulationNanos, uiNanos, gammaNanos, lx.engine.timer.outputNanos }) {
fill(lx.hsb(hv % 360, 100, 80));
rect(xp, y, val * ws, h-1);
hv += 140;
break;
case 'o':
case 'p':
- for (LXOutput output : grizzlies) {
+ for (LXOutput output : outputs) {
output.enabled.toggle();
}
break;
simulationOn = !simulationOn;
}
break;
+ case 'S':
+ if (!midiEngine.isQwertyEnabled()) {
+ structureOn = !structureOn;
+ }
+ break;
}
}