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(); }
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(); }