Example #1
0
int main(){
	
	ArrayPow2<float>
		tbSaw(2048), tbSqr(2048), tbImp(2048), tbSin(2048), tbPls(2048),
		tb__1(2048), tb__2(2048), tb__3(2048), tb__4(2048);

	addSinesPow<1>(tbSaw, 9,1);
	addSinesPow<1>(tbSqr, 9,2);
	addSinesPow<0>(tbImp, 9,1);
	addSine(tbSin);
    addWave(&tbSin[0], 2048, SAW);
    addWave(tbSin, SAW);
    
	{	float A[] = {1,1,1,1,0.7,0.5,0.3,0.1};
		addSines(tbPls, A,8);
	}

	{	float A[] = {1, 0.4, 0.65, 0.3, 0.18, 0.08};
		float C[] = {1,4,7,11,15,18};
		addSines(tb__1, A,C,6);
	}

	// inharmonic partials
	{	float A[] = {0.5,0.8,0.7,1,0.3,0.4,0.2,0.12};
		float C[] = {3,4,7,8,11,12,15,16};
		addSines(tb__2, A,C,7);
	}

	// inharmonic partials
	{	float A[] = {1, 0.7, 0.45, 0.3, 0.15, 0.08};
		float C[] = {10, 27, 54, 81, 108, 135};
		addSines(tb__3, A,C,6);
	}

	// harmonics 20-27
	{	float A[] = {0.2, 0.4, 0.6, 1, 0.7, 0.5, 0.3, 0.1};
		addSines(tb__4, A,8, 20);
	}

		
	Scheduler s;

	s.add<Vib>( 0).set( 5, 220, 0.5, 0.1, 0.08, 3.5, 3.5, 0.5, 0.005, tbSin, -1.0);
	s.add<Vib>( 5).freq(110).table(tbSqr);
	s.add<Vib>(10).set( 5, 220, 0.5, 0.1, 0.08, 3.5, 5.8, 0.5, 0.03, tbSaw, 1.0);
	s.add<Vib>(15).set( 5, 110, 0.5, 0.1, 0.08, 9.8, 3.5, 0.5, 3.00, tbSqr, 0.0);
	s.add<Vib>(20).set( 5, 220, 0.3, 2.0, 1.00, 3.5, 7.0, 1.0, 0.005,tbSaw, -0.8);
	s.add<Vib>(25).set(10, 220, 0.3, 0.1, 0.08, 1.0, 100, 0.0, 0.30, tbSin, 0.8);

	AudioIO io(256, 44100., s.audioCB, &s);
	Sync::master().spu(io.fps());
	io.start();
	printf("\nPress 'enter' to quit...\n"); getchar();
}
Example #2
0
int main(){
	
	ArrayPow2<float> tbSin(2048), tbSqr(2048), tbSaw(2048);
	addWave(tbSin, SINE);
	addWave(tbSqr, SQUARE);
	addWave(tbSaw, SAW);
	
	Scheduler s;
	s.add<OscTrm>( 0).set(10, 262, 0.5, 0.1,2,0.8, 0.4,4,8,0.5, tbSin, 0.8); 
	
	s.add<OscTrm>(11).set(10, 262, 0.5, 0.1,2,0.8, 0.4,4,8,0.5, tbSqr, 0.8); 
	
	s.add<OscTrm>(20).freq(120).table(tbSaw);
	
	s.add<OscTrm>(30).set(20, 262, 0.5, 0.1,2,0.8, 0.4,4,80,0.2, tbSin, 0.8); 
	
	s.add<OscTrm>(50).set(10, 262, 0.5, 0.1,2,0.8, 0.8,4,8,0.5, tbSin, 0.8); 
	
	AudioIO io(256, 44100., Scheduler::audioCB, &s);
	gam::sampleRate(io.fps());
	io.start();
	printf("\nPress 'enter' to quit...\n"); getchar();
}