X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=TobySegaran.pde;h=443be5b053b8bbdf3c333a3ec9b247774c064580;hb=e28f168cec8ae5a8c25cae159af94f5b0aa7b342;hp=fd4a44217fb2b4329007da40a9420492b85325c5;hpb=821ceae95aca73def4a6d5abc36e0065895cfa37;p=SugarCubes.git diff --git a/TobySegaran.pde b/TobySegaran.pde old mode 100644 new mode 100755 index fd4a442..443be5b --- a/TobySegaran.pde +++ b/TobySegaran.pde @@ -137,13 +137,23 @@ class SoundRain extends SCPattern { private LinearEnvelope[] bandVals = null; private float[] lightVals = null; private int avgSize; + private float gain = 25; SawLFO pos = new SawLFO(0, 9, 8000); + SinLFO col1 = new SinLFO(0, model.xMax, 5000); + BasicParameter gainParameter = new BasicParameter("GAIN", 0.5); public SoundRain(GLucose glucose) { super(glucose); addModulator(pos).trigger(); + addModulator(col1).trigger(); + addParameter(gainParameter); } + public void onParameterChanged(LXParameter parameter) { + if (parameter == gainParameter) { + gain = 50*parameter.getValuef(); + } + } protected void onActive() { if (this.fft == null) { this.fft = new FFT(lx.audioInput().bufferSize(), lx.audioInput().sampleRate()); @@ -163,23 +173,23 @@ class SoundRain extends SCPattern { for (int i = 0; i < avgSize; ++i) { float value = this.fft.getAvg(i); this.bandVals[i].setEndVal(value,40).trigger(); - float lv = min(value*25,100); + float lv = min(value*gain,100); if (lv>lightVals[i]) { - lightVals[i]=min(lightVals[i]+10,lv,100); + lightVals[i]=min(lightVals[i]+15,lv,100); } else { lightVals[i]=max(lv,lightVals[i]-5,0); } } - for (int i=0; ilightVals[i]) { + lightVals[i]=min(lightVals[i]+30,lv,model.yMax+10); + } else { + lightVals[i]=max(lv,lightVals[i]-10,0); + } + } + int i = 0; + for (Cube c : model.cubes) { + for (int j=0; javgSize) seq=avgSize-seq; + seq=constrain(seq,0,avgSize-1); + float br=max(0, lightVals[seq]-p.fy); + colors[p.index] = color((dis*avgSize*65)/model.xMax,90,br); + } + } + } + } + } +} +