if (abs(p.x - cx) < arm) {
d = min(abs(p.x - cx), abs(p.y - middle));
}
- colors[p.index] = color(
+ colors[p.index] = lx.hsb(
(lx.getBaseHuef() + .2*abs(p.y - model.cy)) % 360,
min(100, sf*dist(abs(p.x - cx), p.y, arm, middle)),
- max(0, 120 - d*falloff));
+ constrain(120 - d*falloff, 0, 100));
}
}
}
}
float posf = position.getValuef();
for (Point p : model.points) {
- colors[p.index] = blendColor(colors[p.index], color(
+ colors[p.index] = blendColor(colors[p.index], lx.hsb(
(lx.getBaseHuef() + .2*abs(p.x - model.cx) + .2*abs(p.y - model.cy)) % 360,
100,
max(0, bright - posf*100 - falloff*abs(p.y - posf*model.yMax))
for (Point p : s.points) {
int wavi = (int) constrain(p.x / model.xMax * wval.length, 0, wval.length-1);
float wavb = max(0, wave.getValuef()*100. - 8.*abs(p.y - wval[wavi]));
- colors[p.index] = color(
+ colors[p.index] = lx.hsb(
(lx.getBaseHuef() + .2*abs(p.x - model.cx) + .2*abs(p.y - model.cy)) % 360,
100,
constrain(wavb + max(0, maxBright - 40.*abs(sparklePos - abs(i - (Cube.POINTS_PER_STRIP-1)/2.))), 0, 100)
float zPos;
BouncyBall(int i) {
- addModulator(xPos).setBasis(random(0, TWO_PI)).start();
+ addModulator(xPos.setBasis(random(0, TWO_PI)).start());
addModulator(yPos = new Accelerator(0, 0, 0));
zPos = lerp(model.zMin, model.zMax, (i+2.) / (NUM_BALLS + 4.));
}
}
class Swarm extends SCPattern {
-
+
SawLFO offset = new SawLFO(0, 1, 1000);
SinLFO rate = new SinLFO(350, 1200, 63000);
SinLFO falloff = new SinLFO(15, 50, 17000);
private GraphicEQ eq = null;
+ private final BasicParameter clr = new BasicParameter("CLR", 0.5);
+
public BassPod(GLucose glucose) {
super(glucose);
+ addParameter(clr);
}
protected void onActive() {
if (eq == null) {
eq = new GraphicEQ(lx, 16);
+ eq.range.setValue(0.4);
+ eq.level.setValue(0.4);
eq.slope.setValue(0.6);
addParameter(eq.level);
addParameter(eq.range);
float bassLevel = eq.getAverageLevel(0, 5);
+ float satBase = bassLevel*480*clr.getValuef();
+
for (Point p : model.points) {
- int avgIndex = (int) constrain(1 + abs(p.x-model.xMax/2.)/(model.xMax/2.)*(eq.numBands-5), 0, eq.numBands-5);
+ int avgIndex = (int) constrain(1 + abs(p.x-model.cx)/(model.cx)*(eq.numBands-5), 0, eq.numBands-5);
float value = 0;
for (int i = avgIndex; i < avgIndex + 5; ++i) {
value += eq.getLevel(i);
float b = constrain(8 * (value*model.yMax - abs(p.y-model.yMax/2.)), 0, 100);
colors[p.index] = lx.hsb(
(lx.getBaseHuef() + abs(p.y - model.cy) + abs(p.x - model.cx)) % 360,
- constrain(bassLevel*240 - .6*dist(p.x, p.y, model.cx, model.cy), 0, 100),
+ constrain(satBase - .6*dist(p.x, p.y, model.cx, model.cy), 0, 100),
b
);
}
boom.trigger();
}
- void doApply(int[] colors) {
+ void apply(int[] colors) {
float brightv = 100 * bright.getValuef();
float falloffv = falloffv();
float satv = sat.getValuef() * 100;
onEnable();
}
- public void doApply(int[] colors) {
+ public void apply(int[] colors) {
for (Layer l : layers) {
if (l.boom.isRunning()) {
- l.doApply(colors);
+ l.apply(colors);
}
}
}
addParameter(invert);
}
- public void doApply(int[] colors) {
+ public void apply(int[] colors) {
if (!enabled) {
return;
}
lastQuant = 0;
}
- public void doApply(int[] colors) {
+ public void apply(int[] colors) {
float fQuant = amount.getValuef();
if (fQuant > 0) {
float tRamp = (lx.tempo.rampf() % (1./pow(2,floor((1-fQuant) * 4))));
class BlurEffect extends SCEffect {
- final LXParameter amount = new BasicParameter("AMT", 0);
+ final BasicParameter amount = new BasicParameter("AMT", 0);
final int[] frame;
final LinearEnvelope env = new LinearEnvelope(0, 1, 100);
env.setRangeFromHereTo(0, 1000).start();
}
- public void doApply(int[] colors) {
+ public void apply(int[] colors) {
float amt = env.getValuef() * amount.getValuef();
if (amt > 0) {
amt = (1 - amt);