mirror of
https://github.com/thestk/stk
synced 2026-01-13 04:51:53 +00:00
57 lines
1.0 KiB
C++
57 lines
1.0 KiB
C++
// sineosc.cpp STK tutorial program
|
|
|
|
#include "FileWvIn.h"
|
|
#include "RtWvOut.h"
|
|
using namespace stk;
|
|
|
|
int main()
|
|
{
|
|
// Set the global sample rate before creating class instances.
|
|
Stk::setSampleRate( 44100.0 );
|
|
|
|
int nFrames = 100000;
|
|
WvIn *input;
|
|
// FileWvOut output;
|
|
WvOut *output;
|
|
|
|
try {
|
|
// Load the sine wave file.
|
|
input = new FileWvIn( "hellosine.wav" );
|
|
|
|
// Open a 16-bit, one-channel WAV formatted output file
|
|
// output = new FileWvOut( "hellosine.wav", 1, FileWrite::FILE_WAV, Stk::STK_SINT16 );
|
|
output = new RtWvOut();
|
|
}
|
|
catch ( StkError & ) {
|
|
exit( 1 );
|
|
}
|
|
|
|
//input.setFrequency( 440.0 );
|
|
|
|
// Option 1: Use StkFrames
|
|
/*
|
|
StkFrames frames( nFrames, 1 );
|
|
try {
|
|
output->tick( input->tick( frames ) );
|
|
}
|
|
catch ( StkError & ) {
|
|
exit( 1 );
|
|
}
|
|
*/
|
|
|
|
// Option 2: Single-sample computations
|
|
for ( int i=0; i<nFrames; i++ ) {
|
|
try {
|
|
output->tick( input->tick() );
|
|
}
|
|
catch ( StkError & ) {
|
|
exit( 1 );
|
|
}
|
|
}
|
|
|
|
delete output;
|
|
delete input;
|
|
|
|
return 0;
|
|
}
|