unchained
18th October 2001, 10:59
Many thanks to Krash for letting me know that user-created variables ARE in fact persistant across frames. Thanks to this fact, I now present a preset in which not only the pace/ammount of the effect is beat driven, but the type of effect itself changes based on what the beat's doing.
I'm just getting started with this code, but here's a modification of my "perverted dialect" preset as a teaser.
================
Tribal Dialect
================
[preset00]
fRating=4.000000
fGammaAdj=2.000000
fDecay=0.978000
fVideoEchoZoom=1.006500
fVideoEchoAlpha=0.500000
nVideoEchoOrientation=0
nWaveMode=7
bAdditiveWaves=0
bWaveDots=0
bModWaveAlphaByVolume=0
bMaximizeWaveColor=1
bTexWrap=0
bDarkenCenter=0
bMotionVectorsOn=0
bRedBlueStereo=0
nMotionVectorsX=12
nMotionVectorsY=9
bBrighten=0
bDarken=0
bSolarize=0
bInvert=0
fWaveAlpha=0.799999
fWaveScale=2.047093
fWaveSmoothing=0.750000
fWaveParam=0.000000
fModWaveAlphaStart=0.750000
fModWaveAlphaEnd=0.950000
fWarpAnimSpeed=1.000000
fWarpScale=1.000000
fZoomExponent=3.394161
fShader=0.000000
zoom=1.008148
rot=0.000000
cx=0.500000
cy=0.500000
dx=0.000000
dy=0.000000
warp=1.000000
sx=1.000000
sy=1.000000
wave_r=0.500000
wave_g=0.500000
wave_b=0.500000
wave_x=0.500000
wave_y=0.500000
ob_size=0.010000
ob_r=0.000000
ob_g=0.000000
ob_b=0.000000
ob_a=1.000000
ib_size=0.010000
ib_r=0.250000
ib_g=0.250000
ib_b=0.250000
ib_a=0.000000
per_frame_1=warp = 0;
per_frame_2=dx = dx - .001;
per_frame_3=dy = dy - .001;
per_frame_4=wave_r = wave_r + if(above(bass_att,1.4),1,.49*sin(time*2));
per_frame_5=wave_g = wave_g + if(above(bass_att,1.4),0,if(above(treb_att,1.4),1,.49*sin(time*3)));
per_frame_6=wave_b = wave_b + if(above(treb_att,1.4),0,.49*sin(time));
per_frame_7=bass_flux=if(equal(abs(bass_flux),1),bass_flux,1)*if(above(abs(timing),.97),-1,if(above(bass_att,1.3),-1,1));
per_frame_8=treb_flux=if(equal(abs(treb_flux),1),treb_flux,1)*if(above(treb_att,1.3),-1,1);
per_frame_9=timing=if(above(abs(timing),.97),timing*.9,timing)+if(above(mid_att,1.3),.09,.03)*bass_flux;
per_frame_10=q1=timing;
per_frame_11=q2=-timing*bass_flux;
per_frame_12=q3=timing*treb_flux;
per_frame_13=rot=if(above(q1,0),if(above(q2,0),.1,-.1),0);
per_frame_14=zoom=zoom+.05*q2+.05*q1;
per_frame_15=wave_mystery=wave_mystery+.7*q1+.3*q2;
per_frame_16=wave_size=wave_size+0.5*q3;
per_frame_17=cx=cx+.2*q1;
per_frame_18=cy=cy+.2*q3;
per_pixel_1=centerx = .5;
per_pixel_2=centery = .5;
per_pixel_3=crad = abs(rad-.5)*q2;
per_pixel_4=grid=abs(x*10-5)%2 + abs(y*10-5)%2;
per_pixel_5=sx_temp = if(equal(grid,0),if(above(x,centerx),sx - crad - centerx,sx + crad - centerx),sx);
per_pixel_6=sy_temp = if(equal(grid,0),if(above(y,centery),sy - crad - centery,sy + crad - centery),sy);
per_pixel_7=sx=if(below(q1,0),sx-sx_temp*q2*.1,sx);
per_pixel_8=sy=if(below(q1,0),sy-sx_temp*q2*.1,sy);
I'm going to look at that "bass_thresh" code from the shift preset, and see if I can't come up with something more like real BPM detection. For now, those who LIKE jittery presets feel free to change every occurance of 1.3 above to .9 or so. :)
--
unchained
I'm just getting started with this code, but here's a modification of my "perverted dialect" preset as a teaser.
================
Tribal Dialect
================
[preset00]
fRating=4.000000
fGammaAdj=2.000000
fDecay=0.978000
fVideoEchoZoom=1.006500
fVideoEchoAlpha=0.500000
nVideoEchoOrientation=0
nWaveMode=7
bAdditiveWaves=0
bWaveDots=0
bModWaveAlphaByVolume=0
bMaximizeWaveColor=1
bTexWrap=0
bDarkenCenter=0
bMotionVectorsOn=0
bRedBlueStereo=0
nMotionVectorsX=12
nMotionVectorsY=9
bBrighten=0
bDarken=0
bSolarize=0
bInvert=0
fWaveAlpha=0.799999
fWaveScale=2.047093
fWaveSmoothing=0.750000
fWaveParam=0.000000
fModWaveAlphaStart=0.750000
fModWaveAlphaEnd=0.950000
fWarpAnimSpeed=1.000000
fWarpScale=1.000000
fZoomExponent=3.394161
fShader=0.000000
zoom=1.008148
rot=0.000000
cx=0.500000
cy=0.500000
dx=0.000000
dy=0.000000
warp=1.000000
sx=1.000000
sy=1.000000
wave_r=0.500000
wave_g=0.500000
wave_b=0.500000
wave_x=0.500000
wave_y=0.500000
ob_size=0.010000
ob_r=0.000000
ob_g=0.000000
ob_b=0.000000
ob_a=1.000000
ib_size=0.010000
ib_r=0.250000
ib_g=0.250000
ib_b=0.250000
ib_a=0.000000
per_frame_1=warp = 0;
per_frame_2=dx = dx - .001;
per_frame_3=dy = dy - .001;
per_frame_4=wave_r = wave_r + if(above(bass_att,1.4),1,.49*sin(time*2));
per_frame_5=wave_g = wave_g + if(above(bass_att,1.4),0,if(above(treb_att,1.4),1,.49*sin(time*3)));
per_frame_6=wave_b = wave_b + if(above(treb_att,1.4),0,.49*sin(time));
per_frame_7=bass_flux=if(equal(abs(bass_flux),1),bass_flux,1)*if(above(abs(timing),.97),-1,if(above(bass_att,1.3),-1,1));
per_frame_8=treb_flux=if(equal(abs(treb_flux),1),treb_flux,1)*if(above(treb_att,1.3),-1,1);
per_frame_9=timing=if(above(abs(timing),.97),timing*.9,timing)+if(above(mid_att,1.3),.09,.03)*bass_flux;
per_frame_10=q1=timing;
per_frame_11=q2=-timing*bass_flux;
per_frame_12=q3=timing*treb_flux;
per_frame_13=rot=if(above(q1,0),if(above(q2,0),.1,-.1),0);
per_frame_14=zoom=zoom+.05*q2+.05*q1;
per_frame_15=wave_mystery=wave_mystery+.7*q1+.3*q2;
per_frame_16=wave_size=wave_size+0.5*q3;
per_frame_17=cx=cx+.2*q1;
per_frame_18=cy=cy+.2*q3;
per_pixel_1=centerx = .5;
per_pixel_2=centery = .5;
per_pixel_3=crad = abs(rad-.5)*q2;
per_pixel_4=grid=abs(x*10-5)%2 + abs(y*10-5)%2;
per_pixel_5=sx_temp = if(equal(grid,0),if(above(x,centerx),sx - crad - centerx,sx + crad - centerx),sx);
per_pixel_6=sy_temp = if(equal(grid,0),if(above(y,centery),sy - crad - centery,sy + crad - centery),sy);
per_pixel_7=sx=if(below(q1,0),sx-sx_temp*q2*.1,sx);
per_pixel_8=sy=if(below(q1,0),sy-sx_temp*q2*.1,sy);
I'm going to look at that "bass_thresh" code from the shift preset, and see if I can't come up with something more like real BPM detection. For now, those who LIKE jittery presets feel free to change every occurance of 1.3 above to .9 or so. :)
--
unchained