Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float noteHz(float x){return pow(2.,(x-49.)/12.)*440.;}
- vec2 noteHz(vec2 x){return vec2(pow(2.,(x.x-49.)/12.),pow(2.,(x.y-49.)/12.))*440.;}
- float random(float x){return fract(sin((x+5.623)*623.62)*7346.25);}
- vec2 random(vec2 x){return fract(sin((x+5.623)*623.62)*7346.25);}
- float pow2(float a,float b){return pow(abs(a),b)*sign(a);}
- vec2 pow2(vec2 a,float b){return vec2(pow(abs(a.x),b)*sign(a.x),pow(abs(a.y),b)*sign(a.y));}
- vec2 mainSound(float time){
- time*=(time*.01)+.5;
- vec2 master=vec2(0.);
- for(int i=0;i<4;i++){
- float speed=pow(2.,float(i));
- if(random(floor(time*speed))>.8){speed*=2.;}
- master+=
- pow2(sin(noteHz(12.+floor(random(floor(time*speed)+(float(i)*vec2(2.4,3.6)))*31.))*time*PI*2.),10.*(1.+random(floor(time*speed))))*
- min(fract(time*speed)*80.,pow(1.-fract(time*speed),10.))*
- .1;
- for(int j=0;j<4;j++){
- master+=
- fract(noteHz(24.+(random(float(j))*.8)+floor(random(floor(time*speed)+(float(i)*vec2(2.4,3.6)))*31.))*time)*
- min(fract(time*speed)*180.,pow(1.-fract(time*speed),3.))*
- .1;
- }
- }
- master*=max(pow(fract(time*4.),.7),1.-(fract(time*4.)*80.));
- master+=sin(pow(1.-fract(time*4.),40.)*30.)*.4*min(fract(time*4.)*600.,1.-fract(time*4.));
- return master;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement