PDA

View Full Version : [C++ - RtAudio] secondo lui non ho un dispositivo audio!!!


nucce
08-01-2008, 21:51
salve a tutti...stavo provando l'esempio (http://www.music.mcgill.ca/~gary/rtaudio/playback.html) presente sul sito della libreria RtAudio (per comodità lo riporto qui)


#include "RtAudio.h"
#include <iostream>

// Two-channel sawtooth wave generator.
int saw( void *outputBuffer, void *inputBuffer, unsigned int nBufferFrames,
double streamTime, RtAudioStreamStatus status, void *userData )
{
unsigned int i, j;
double *buffer = (double *) outputBuffer;
double *lastValues = (double *) userData;

if ( status )
std::cout << "Stream underflow detected!" << std::endl;

// Write interleaved audio data.
for ( i=0; i<nBufferFrames; i++ ) {
for ( j=0; j<2; j++ ) {
*buffer++ = lastValues[j];

lastValues[j] += 0.005 * (j+1+(j*0.1));
if ( lastValues[j] >= 1.0 ) lastValues[j] -= 2.0;
}
}

return 0;
}

int main()
{
RtAudio dac;
if ( dac.getDeviceCount() < 1 ) {
std::cout << "\nNo audio devices found!\n";
exit( 0 );
}

RtAudio::StreamParameters parameters;
parameters.deviceId = dac.getDefaultOutputDevice();
parameters.nChannels = 2;
parameters.firstChannel = 0;
unsigned int sampleRate = 44100;
unsigned int bufferFrames = 256; // 256 sample frames
double data[2];

try {
dac.openStream( &parameters, NULL, RTAUDIO_FLOAT64,
sampleRate, &bufferFrames, &saw, (void *)&data );
dac.startStream();
}
catch ( RtError& e ) {
e.printMessage();
exit( 0 );
}

char input;
std::cout << "\nPlaying ... press <enter> to quit.\n";
std::cin.get( input );

try {
// Stop the stream
dac.stopStream();
}
catch (RtError& e) {
e.printMessage();
}

if ( dac.isStreamOpen() ) dac.closeStream();

return 0;
}


il codice viene compilato senza errori ma al momento dell'esecuzione viene trovato nessun dispositivo audio (infatti getDeviceCount() ritorna 0)...uso dev-c++ su vista con una sound blaster (non si sa mai che possa servire anche la configurazione per meglio comprendere il problema)...secondo voi cosa sbaglio?

PS: ogni volta che avvio l'exe mi esce una scritta di output: "RtApiDummy: This class provides no functionality"

variabilepippo
08-01-2008, 22:40
ogni volta che avvio l'exe mi esce una scritta di output: "RtApiDummy: This class provides no functionality"


Non hai specificato l'API da utilizzare (http://www.music.mcgill.ca/~gary/rtaudio/compiling.html), quindi la libreria usa di default l'API "dummy" (inutile) ed ovviamente non trova nessun dispositivo audio.

nucce
09-01-2008, 13:55
ti ringrazio!!!...quindi da quello che ho capito bisogna aggiungere delle opzioni al compilatore del dev-c++ giusto?...ma se volessi usare i driver ASIO devo includere anche loro con la direttiva #include???