1 // foursine.cpp STK tutorial program
2 
3 #include "SineWave.h"
4 #include "FileWvOut.h"
5 #include <cstdlib>
6 
7 using namespace stk;
8 
main()9 int main()
10 {
11   // Set the global sample rate before creating class instances.
12   Stk::setSampleRate( 44100.0 );
13 
14   int i;
15   FileWvOut output;
16   SineWave inputs[4];
17 
18   // Set the sine wave frequencies.
19   for ( i=0; i<4; i++ )
20     inputs[i].setFrequency( 220.0 * (i+1) );
21 
22   // Define and open a 16-bit, four-channel AIFF formatted output file
23   try {
24     output.openFile( "foursine.aif", 4, FileWrite::FILE_AIF, Stk::STK_SINT16 );
25   }
26   catch (StkError &) {
27     exit( 1 );
28   }
29 
30   // Write two seconds of four sines to the output file
31   StkFrames frames( 88200, 4 );
32   for ( i=0; i<4; i++ )
33     inputs[i].tick( frames, i );
34 
35   output.tick( frames );
36 
37   // Now write the first sine to all four channels for two seconds
38   for ( i=0; i<88200; i++ ) {
39     output.tick( inputs[0].tick() );
40   }
41 
42   return 0;
43 }
44