BasicParameter speedParameter = new BasicParameter("SPEED", 0.1);
BasicParameter glitchParameter = new BasicParameter("GLITCH", 0.0);
- public GlitchPlasma(GLucose glucose) {
- super(glucose);
+ public GlitchPlasma(LX lx) {
+ super(lx);
addParameter(saturationParameter);
addParameter(speedParameter);
addParameter(glitchParameter);
}
public void run(double deltaMs) {
- for (Point p : model.points) {
+ for (LXPoint p : model.points) {
float hv = sin(dist(p.x + pos, p.y, 128.0, 128.0) / 8.0)
+ sin(dist(p.x, p.y, 64.0, 64.0) / 8.0)
+ sin(dist(p.x, p.y + pos / 7, 192.0, 64.0) / 7.0)
private int ym;
BasicParameter decayParameter = new BasicParameter("DECAY", 0.3);
- public FireEffect(GLucose glucose) {
- super(glucose);
+ public FireEffect(LX lx) {
+ super(lx);
xm = int(model.xMax);
ym = int(model.yMax);
}
}
- for (Point p : model.points) {
+ for (LXPoint p : model.points) {
int x = max(0,(int(p.x)+int(p.z))%xm);
int y = constrain(ym-int(p.y),0,ym-1);
colors[p.index] = flameColor(intensity[x][y]);
SinLFO[] sat = new SinLFO[numOsc];
float[] colorOffset = new float[numOsc];
- public StripBounce(GLucose glucose) {
- super(glucose);
+ public StripBounce(LX lx) {
+ super(lx);
for (int i=0;i<numOsc;i++) {
fX[i] = new SinLFO(0, model.xMax, random(2000,20000));
fY[i] = new SinLFO(0, model.yMax, random(2000,20000));
boolean on = avgdist<30;
float hv = (lx.getBaseHuef()+colorOffset[i])%360;
float br = max(0,100-avgdist*4);
- for (Point p : strip.points) {
+ for (LXPoint p : strip.points) {
if (on && br>bright[p.index]) {
colors[p.index] = lx.hsb(hv,sat[i].getValuef(),br);
bright[p.index] = br;
SinLFO col1 = new SinLFO(0, model.xMax, 5000);
BasicParameter gainParameter = new BasicParameter("GAIN", 0.5);
- public SoundRain(GLucose glucose) {
- super(glucose);
+ public SoundRain(LX lx) {
+ super(lx);
addModulator(pos).trigger();
addModulator(col1).trigger();
addParameter(gainParameter);
gain = 50*parameter.getValuef();
}
}
- protected void onActive() {
+ void onActive() {
if (this.fft == null) {
this.fft = new FFT(lx.audioInput().bufferSize(), lx.audioInput().sampleRate());
this.fft.window(FFT.HAMMING);
for (int j=0; j<c.strips.size(); j++) {
Strip s = c.strips.get(j);
if (j%4!=0 && j%4!=2) {
- for (Point p : s.points) {
+ for (LXPoint p : s.points) {
int seq = int(p.y*avgSize/model.yMax+pos.getValuef()+sin(p.x+p.z)*2)%avgSize;
seq=min(abs(seq-(avgSize/2)),avgSize-1);
colors[p.index] = lx.hsb(200,max(0,100-abs(p.x-col1.getValuef())/2),lightVals[seq]);
SinLFO col1 = new SinLFO(0, model.xMax, 5000);
SinLFO col2 = new SinLFO(0, model.xMax, 4000);
- public FaceSync(GLucose glucose) {
- super(glucose);
+ public FaceSync(LX lx) {
+ super(lx);
addModulator(xosc).trigger();
addModulator(zosc).trigger();
zosc.setValue(0);
int i=0;
for (Strip s : model.strips) {
i++;
- for (Point p : s.points) {
+ for (LXPoint p : s.points) {
float dx, dz;
if (i%32 < 16) {
dx = p.x - (s.cx+xosc.getValuef());
BasicParameter gainParameter = new BasicParameter("GAIN", 0.5);
SawLFO pos = new SawLFO(0, model.xMax, 8000);
- public SoundSpikes(GLucose glucose) {
- super(glucose);
+ public SoundSpikes(LX lx) {
+ super(lx);
addParameter(gainParameter);
addModulator(pos).trigger();
}
gain = 50*parameter.getValuef();
}
}
- protected void onActive() {
+ void onActive() {
if (this.fft == null) {
this.fft = new FFT(lx.audioInput().bufferSize(), lx.audioInput().sampleRate());
this.fft.window(FFT.HAMMING);
for (int j=0; j<c.strips.size(); j++) {
Strip s = c.strips.get(j);
if (j%4!=0 && j%4!=2) {
- for (Point p : s.points) {
+ for (LXPoint p : s.points) {
float dis = (abs(p.x-model.xMax/2)+pos.getValuef())%model.xMax/2;
int seq = int((dis*avgSize*2)/model.xMax);
if (seq>avgSize) seq=avgSize-seq;