Version 4.2.1

This commit is contained in:
Gary Scavone
2009-03-24 23:02:14 -04:00
committed by Stephen Sinclair
parent a6381b9d38
commit 2cbce2d8bd
275 changed files with 8949 additions and 6906 deletions

View File

@@ -1,54 +1,40 @@
// foursine.cpp STK tutorial program
#include "WaveLoop.h"
#include "WvOut.h"
#include "SineWave.h"
#include "FileWvOut.h"
int main()
{
// Set the global sample rate before creating class instances.
Stk::setSampleRate( 44100.0 );
int i, j;
WvOut *output = 0;
WaveLoop *inputs[4];
for ( i=0; i<4; i++ ) inputs[i] = 0;
int i;
FileWvOut output;
SineWave inputs[4];
// Define and load the sine waves
try {
for ( i=0; i<4; i++ ) {
inputs[i] = new WaveLoop( "rawwaves/sinewave.raw", true );
inputs[i]->setFrequency( 220.0 * (i+1) );
}
}
catch (StkError &) {
goto cleanup;
}
// Set the sine wave frequencies.
for ( i=0; i<4; i++ )
inputs[i].setFrequency( 220.0 * (i+1) );
// Define and open a 16-bit, four-channel AIFF formatted output file
try {
output = new WvOut( "foursine.aif", 4, WvOut::WVOUT_AIF, Stk::STK_SINT16 );
output.openFile( "foursine.aif", 4, FileWrite::FILE_AIF, Stk::STK_SINT16 );
}
catch (StkError &) {
goto cleanup;
exit(0);
}
// Write two seconds of four sines to the output file
StkFloat frame[4];
for ( j=0; j<88200; j++ ) {
for ( i=0; i<4; i++ )
frame[i] = inputs[i]->tick();
StkFrames frames( 88200, 4 );
for ( i=0; i<4; i++ )
inputs[i].tick( frames, i );
output->tickFrame( frame );
}
output.tickFrame( frames );
// Now write the first sine to all four channels for two seconds
for ( j=0; j<88200; j++ ) {
output->tick( inputs[0]->tick() );
for ( i=0; i<88200; i++ ) {
output.tick( inputs[0].tick() );
}
cleanup:
for ( i=0; i<4; i++ ) delete inputs[i];
delete output;
return 0;
}