//----------------------------------------------------------------------------------------------------------------------------------\r
public class Pong extends DPat {\r
SinLFO x,y,z,dx,dy,dz; \r
- float cRad; _DhP pSize;\r
+ float cRad; DParam pSize;\r
Pick pChoose;\r
\r
Pong(GLucose glucose) {\r
int XSym=1,YSym=2,RadSym=3;\r
float zTime = random(10000), zTheta=0, zSin, zCos;\r
float rtime = 0, ttime = 0, transAdd=0;\r
- _DhP pSpeed , pDensity, pRotZ;\r
+ DParam pSpeed , pDensity, pRotZ;\r
Pick pChoose, pSymm;\r
int _ND = 4;\r
NDat N[] = new NDat[_ND];\r
public class Play extends DPat\r
{\r
int nBeats = 0;\r
- _DhP pAmp, pRad;\r
- _DhP pRotX, pRotY, pRotZ;\r
+ DParam pAmp, pRad;\r
+ DParam pRotX, pRotY, pRotZ;\r
xyz Theta = new xyz();\r
xyz TSin = new xyz();\r
xyz TCos = new xyz();\r
pRotZ = addParam("RotZ", .5);\r
pAmp = addParam("Amp" , .2);\r
pRad = addParam("Rad" , .1 );\r
- pTempoMult = addPick ("TMult" , 0 , 6 , new String[] {"1x", "2x", "4x", "8x", "16x", "Rand" } );\r
- pTimePattern= addPick ("TPat" , 0 , 5 , new String[] {"Bounce", "Sin", "Roll", "Quant", "Accel" } );\r
+ pTempoMult = addPick ("TMult" , 5 , 6 , new String[] {"1x", "2x", "4x", "8x", "16x", "Rand" } );\r
+ pTimePattern= addPick ("TPat" , 5 , 6 , new String[] {"Bounce", "Sin", "Roll", "Quant", "Accel", "Rand" } );\r
pShape = addPick ("Shape" , 0 , 10 , new String[] {"Line", "Tap", "V", "RandV", "Pyramid",\r
"Wings", "W2", "Sphere", "Cone", "Noise" } );\r
pForm = addPick ("Form" , 0 , 3 , new String[] {"Bar", "Volume", "Fade" } );\r
float t,a;\r
xyz cPrev = new xyz(), cCur = new xyz(), cMid = new xyz(), cMidNorm;\r
float LastBeat=3, LastMeasure=3;\r
- int CurRandTempo = 1;\r
+ int CurRandTempo = 1, CurRandTPat = 1;\r
\r
void StartRun(double deltaMs) {\r
t = lx.tempo.rampf();\r
TSin .set(sin(Theta.x), sin(Theta.y), sin(Theta.z));\r
TCos .set(cos(Theta.x), cos(Theta.y), cos(Theta.z));\r
\r
- if (t<LastMeasure) { CurRandTempo = int(random(4)); } LastMeasure = t;\r
+ if (t<LastMeasure) {\r
+ if (random(2) < 1) CurRandTempo = int(random(4));\r
+ if (random(2) < 1) CurRandTPat = int(random(5));\r
+ } LastMeasure = t;\r
+ \r
+ int nTempo = pTempoMult .Cur(); if (nTempo == 5) nTempo = CurRandTempo;\r
+ int nTPat = pTimePattern.Cur(); if (nTPat == 5) nTPat = CurRandTPat ;\r
\r
- switch (pTempoMult.Cur()) {\r
+ switch (nTempo) {\r
case 0: t = t; break;\r
case 1: t = (t*2. )%1.; break;\r
case 2: t = (t*4. )%1.; break;\r
case 3: t = (t*8. )%1.; break;\r
case 4: t = (t*16.)%1.; break;\r
- case 5: t = (t*pow(2,CurRandTempo))%1.; break;\r
}\r
\r
if (t<LastBeat) { cPrev = cCur; cCur = cCur.setRand(); } LastBeat = t;\r
\r
- switch (pTimePattern.Cur()) {\r
+ switch (nTPat) {\r
case 0: t = sin(PI*t); break;\r
case 1: t = norm(sin(2*PI*(t+PI/2)),-1,1); break;\r
case 2: t = t; break;\r