示例#1
0
	MyApp(){
		lpf.type(LOW_PASS);		// Set filter to low-pass response
		lpf.res(4);				// Set resonance amount to emphasize filter
		env.attack(0.01);		// Set short (10 ms) attack
		env.decay(0.4);			// Set longer (400 ms) decay
		tmr.freq(120./60.*4.);	// Set timer frequency to 120 BPM
		tmr.phaseMax();			// Ensures timer triggers on first sample
		modCutoff.period(30);	// Set period of cutoff modulation
		modCutoff.phase(0.5);	// Start half-way through cycle
		freq.lag(0.1);			// Lag time of portamento effect
		step=0;
	}
void audioCB(AudioIOData& io){
		position pos;
		pos.x=-10;
		pos.y=0;
		pos.z=0;
	while(io()){
		float r;
		r=rand()%7;

	//	cout<<bpmInput<<endl;
	//	cout<<tmr2.freq()<<endl;
		float s = 0;
		float tone = 0;
		float bass = 0;
		if (tmr()){	

			src3.reset();
			envLPF.reset();
			}
	if(tmr3()){
			env.reset();
			env2.reset();
			//src3.reset();
			tmr3.freq(rnd::uni(beat,beat*2));
			src2.reset();
		}
		if(tmr2()){
//			src.reset();
			tmr2.freq(rnd::uni(beat,beat*3));
			src3.reset();
			src2.reset();
		}
		if (tmr4()){	
	//		src.reset();
			pos.x+=1;
			tmr4.freq(rnd::uni(beat,beat*2));
			src3.reset();
			envLPF.reset();
			}
		if (tmr5()){	
	//		src.reset();
			pos.x+=1;
			tmr5.freq(rnd::uni(beat/2,beat*2));
			src4.reset();
			envLPF.reset();
			}
		if (tmr6()){	
	//		src.reset();
			pos.x+=1;
			src5.reset();
			envLPF.reset();
			}
		if (tmr7()){	
	//		src.reset();
			pos.x+=1;
			src6.reset();
			envLPF.reset();
			}
		if (tmrRand())
		{
			envswell.reset();
			envpan.set(434200,-3);
//			beat*=(float)r;

		}
		if(sweep()){

				envwhite.reset();
		

		}
			
		float wet1, wet2;
		s=src()*env()*.3;
		hpfreq*=envLPF();
		tone = src2()*.2;
	 	bass = src3()*.3;
	 	s+=src4()*.2+src5()*.2+src6()*.2;
		tone+=bass;
		s+=tone;
		reverb(s,wet1, wet2);
		//double xplane =  pos.x/10;




		//define my sound variables with pan
		float batleft=swnoise()*envwhite()*envswell()*.15*envpan();
		float batright= swnoise()*envwhite()*(envswell())*.15*(1-envpan());









		float preout=LPF(s);
		float out = preout+LPF(wet1*.2);
		io.out(0) = out+batleft;
		io.out(1) = out+batright;
	}
}