ofSoundStream broken for Windows in OF 0.8.0?

Hi OF team!

After finally installing visual studio 2012, I decided to upgrade OF for my projects as well and moved from OF 0.7.4 to OF 0.8.0. While my project compiles fine, the ofSoundStream / ofRtAudioSoundStream implementation is no longer working for me.

Since the error message wasn’t entirely helpful, I decided to add these two lines in my new and old project:

ofRtAudioSoundStream test1; 
test1.listDevices();

The result can be found in the screenshot below.

I’ve read in the changelog the following:

/ updated ofSoundStream to use rtAudio 4

After comparing the soundstream files and libraries with winmerge, I saw that Windows was already using rtAudio and that the library was updated from version 4.0.6 to 4.0.12.

Would anyone have a clue what might have changed and why it no longer detects any of my sound devices properly?

seems like the library was probably compiled with support only for ASIO devices, i think in windows if you are doing RT audio you should be using ASIO anyway but i would try recompiling RtAudio and checking which options it has when running the configure script. there’s probably some other types of drivers that now come disabled by default

1 Like

Hi Arturo,

Thanks!

I’ve managed to fix it with your suggestions.

So according to: http://www.music.mcgill.ca/~gary/rtaudio/compiling.html

There is a flag _WINDOWS_DS_ for DirectSound and a flag _WINDOWS_ASIO_ for ASIO.

If both are defined, I get the error in the screenshot. If I just build it with DirectSound support, it works fine here.

I’m still a bit confused though why it isn’t working with ASIO though. The GX device I’m using is a Line 6 Pod Studio GX device (USB Soundcard for connecting a guitar with low latencies) that comes with ASIO drivers (Works fine in Amplitube/Gearbox etc).

@falcon4ever do you get similar errors running the rtAudio tests?

Nope, the samples build fine (they have the two flags enabled) and if I try to run the audioprobe I get this:

D:\projects\rtaudio-4.0.12\tests\Windows>audioprobe.exe

RtAudio Version 4.0.12

Compiled APIs:
  Windows ASIO
  Windows Direct Sound

Current API: Windows ASIO

Found 1 device(s) ...

Device Name = ASIO GX
Probe Status = Successful
Output Channels = 2
Input Channels = 4
Duplex Channels = 2
This is the default output device.
This is the default input device.
Natively supported data formats:
  32-bit float
Supported sample rates = 44100 48000 88200 96000

hmm… maybe the next step is to try the code from audioProbe in the main.cpp of an OF project (in place of the typical main). Can you try that? Maybe there’s an issue with compile flags or DLLs that’s making Asio not work?

@zach will try soon if I get the time.

I did notice that after running those bundled samples, it did work a few times without issues on OF 0.8.0 until the next reboot. It showed the GX device as default asio device so perhaps we’re missing an additional callback or the device needs to be flagged default somehow first.