49 #define NUM_SECONDS (5) 50 #define SAMPLE_RATE (44100) 51 #define FRAMES_PER_BUFFER (1024) 54 #define M_PI (3.14159265) 57 #define TABLE_SIZE (200) 66 float buffer[FRAMES_PER_BUFFER][2];
67 float sine[TABLE_SIZE];
76 printf(
"PortAudio Test: output sine wave. SR = %d, BufSize = %d\n", SAMPLE_RATE, FRAMES_PER_BUFFER);
79 for( i=0; i<TABLE_SIZE; i++ )
81 sine[i] = (float) sin( ((
double)i/(
double)TABLE_SIZE) * M_PI * 2. );
86 if( err != paNoError )
goto error;
90 fprintf(stderr,
"Error: No default output device.\n");
107 if( err != paNoError )
goto error;
110 printf(
"Play 3 times, higher each time.\n" );
112 for( k=0; k < 3; ++k )
115 if( err != paNoError )
goto error;
117 printf(
"Play for %d seconds.\n", NUM_SECONDS );
119 bufferCount = ((NUM_SECONDS * SAMPLE_RATE) / FRAMES_PER_BUFFER);
121 for( i=0; i < bufferCount; i++ )
123 for( j=0; j < FRAMES_PER_BUFFER; j++ )
125 buffer[j][0] = sine[left_phase];
126 buffer[j][1] = sine[right_phase];
127 left_phase += left_inc;
128 if( left_phase >= TABLE_SIZE ) left_phase -= TABLE_SIZE;
129 right_phase += right_inc;
130 if( right_phase >= TABLE_SIZE ) right_phase -= TABLE_SIZE;
134 if( err != paNoError )
goto error;
138 if( err != paNoError )
goto error;
147 if( err != paNoError )
goto error;
150 printf(
"Test finished.\n");
155 fprintf( stderr,
"An error occured while using the portaudio stream\n" );
156 fprintf( stderr,
"Error number: %d\n", err );
PaError Pa_Initialize(void)
PaError Pa_StopStream(PaStream *stream)
PaError Pa_OpenStream(PaStream **stream, const PaStreamParameters *inputParameters, const PaStreamParameters *outputParameters, double sampleRate, unsigned long framesPerBuffer, PaStreamFlags streamFlags, PaStreamCallback *streamCallback, void *userData)
PaError Pa_StartStream(PaStream *stream)
void * hostApiSpecificStreamInfo
The portable PortAudio API.
PaSampleFormat sampleFormat
const PaDeviceInfo * Pa_GetDeviceInfo(PaDeviceIndex device)
PaDeviceIndex Pa_GetDefaultOutputDevice(void)
PaError Pa_WriteStream(PaStream *stream, const void *buffer, unsigned long frames)
const char * Pa_GetErrorText(PaError errorCode)
PaError Pa_CloseStream(PaStream *stream)
PaError Pa_Terminate(void)