Capturing Audio from system speakers


I am trying to capture audio output from my sound card to create an audio visualizer type of software.

I have first checked the record.cpp example, however here is where things get strange:

getRecordNumDrivers/getRecordDriverInfo gives me the following results :

3 recording sources found
Speakers (SoundMAX Integrated Digital HD Audio)
SPDIF Interface (SoundMAX Integrated Digital HD Audio)
MT5651-4 (NVIDIA High Definition Audio)

However recordStart with id 0 actually records the microphone, which is indeed my first recording device.

If this isn’t a bug it is very confusing API design to say the least, as all of those methods are declared as part of the “recording API” in the header files but refer to different ids: getRecordDriverInfo actually gave my my output devices ids, yet the recordStart/recordStop method’s ids refer to the recording devices.

Anyway, I’ve looked around these forums for pointers and the closest I could come up with for help is the following topic : Back then the only option was to implement platform specific API and fmod did not provide an abstraction.

I am using latest FMOD API release, is this still the case ? Is there any practical way to record the speakers output from my soundcard through fmod ?

Thanks in advance.

Hi Samuel,

FMOD doesn’t support WASAPI loopback devices natively. You’ve been mislead by a bug in getRecordDriveInfo that’s returning output device names instead of recording device names. The bug exists in all 1.05.XX releases and will be fixed in 1.05.08.

This case
covers how to set up a loopback device in the windows system settings.