Support

If you have a problem or need to report a bug please email : support@dsprobotics.com

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

NEW REGISTRATIONS - please contact us if you wish to register on the forum

Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright

ASIO4ALL coupled to SAR on Win7

For general discussion related FlowStone

ASIO4ALL coupled to SAR on Win7

Postby steph_tsf » Mon Feb 03, 2020 3:43 am

You may have noticed, during years I faced a practical issue with WinXP sound mixer. I remained desperately in search of a simple unified way to tell WinXP to send the stereo "Play" sound that's elaborated by the WinXP sound mixer, not to the motherboard sound chipset, not to the USB soundcard, but to a virtual chipset named "Cable", made available to WinXP by VAC. During years, I remained under the impression that the WinXP "Sound" Control Panel behaved inconsistently, depending on the application that was elaborating the "play" sound. If I remember, it was required to open the Winamp "preferences" panel and tell over there, that the stereo sound Winamp was playing, had to be routed to the "Cable" device instead of the "default" device. Possibly I had to do this because I had a bad understanding of what is a "default device". Possibly I omitted to tell into the WinXP "Sound" Control Panel, that the "Cable" device needed to be defined as "default device". Also, if I remember, the sound that was elaborated by Google Chrome (say a Youtube video) could not be routed to the "Cable" device.

I got a nice surprise after building a Win7 PC : the Win7 sound mixer panel. It shows the applications that are currently putting sound into the Win7 sound mixer. This gives a reassuring, visual confirmation of the sound that's elaborated by the Win7 sound mixer. It allows to realize that sampling rate conversions may eventually be carried out, before actually doing the mix.

Comes the question of determining, who is in charge of imposing the final, physical sampling frequency.
Obviously, such imposition relates to the "Play" device that's currently in use.
Indeed, you impose the final sampling frequency by selecting one of the many audio standards that the "Play" device is reporting to Win7, as supported. You do this in the "Sound" Control Panel, selecting the "Play" tab, selecting one of the "Play" devices (motherboard sound chipset, USB soundcard, cable made available by VAC), right-clicking it, selecting "Properties", selecting the "Advanced" tab, and scrolling into the "by default format" selection box.

What if there are many "Play" devices currently in use simultaneously?
Is it allowed by Win7? In other words, is it allowed by Win7 to output the "Play" audio, to two different USB sound cards simultaneously, one that's operating following the 16 bits 48 kHz standard (DVD quality), while the other is operating following the 24 bits 96 kHz standard (studio quality)?

Can some expert answer such question?

By the way, in Win7, one can tell for each "Play" device, one by one (motherboard sound chipset, USB soundcard, cable made available by VAC), if "applications are allowed to take exclusive control of it". Such is the "Exclusive Mode" provided by the Win7 sound system. You specify this in the "Sound" Control Panel, selecting the "play" tab, selecting one of the "Play" device (motherboard sound chipset, USB soundcard, cable made available by VAC),
right-clicking it, selecting "properties", selecting the "Advanced" tab, and checking the "Exclusive Mode" box.
The aim of the Win7 "Exclusive Mode" is to ensure that the soundtrack that's processed by the application (Google Chrome, Foobar, Media Player Classic) remains at its genuine sampling rate, till it reaches the selected "Play" device (motherboard sound chipset, USB soundcard, cable made available by VAC).
Does it mean that in case the "Exlusive Mode" is enabled, that each time we ask Foobar to play a .flac, Foobar gets allowed by Win7 to take the Exclusive Control of the USB soundcard, Foobar is allowed to force the USB soundcard to operate at the .flac sampling frequency (no clicks and pops in case of change?), and Foobar audio gets treated as sole and only audio stream within Win7, actually bypassing the Win7 sound mixer?
Does it mean that each time we ask Foobar to play a .flac, we can't anymore listen to the audio that may emanate from all other applications like Google Chrome (Youtube), Media Player Classic, etc?
Under which circumstances, Win7 is going to assume that it can revert to a normal, non-exclusive operation? Is it as soon the .flac gets completely played by Foobar? Or, is it as soon as Foobar window gets closed? Oh, this is getting cumbersome. While writing this, I am under the impression that the Exclusive Mode needs to be further described.

Please correct me in case I am wrong.
steph_tsf
 
Posts: 249
Joined: Sun Aug 15, 2010 10:26 pm

Re: ASIO4ALL coupled to SAR on Win7

Postby steph_tsf » Mon Feb 03, 2020 4:12 am

Anyway, the good news is that the combination of Win7 32bits, ASIO4ALL and SAR (Synchronous Audio Repeater) allows to streamline the audio configuration of a PC running Flowstone, equipped with a IDT HD audio codec (sitting on the motherboard), a Bluetooth headset, and a USB soundcard (Creative Labs SB1095 marketed as Sound Blaster X-Fi Surround 5.1 Pro). One need to install all drivers just as usual, then install ASIO4ALL, then install SAR (and create a cable as virtual sound device). This allows to drag the ASIO-in component and ASIO-out component into the .fsm.

The audio configuration gets easier in case you install a small, however very useful utility named "asioconfig".

Upon fiddling with ASIO4ALL, I realized that the ambition of ASIO4ALL is a lot more more elevated than just providing a lazy way, expedite way, for transforming your non-ASIO sound device into a ASIO sound device.

Indeed, as soon as you dare entering the ASIO4ALL "expert mode" (click the wrench symbol), you get allowed to develop the hierarchical view of ALL ASIO devices within the machine. This way, thanks to ASIO4ALL, within a same audio device, you can independently enable or disable its "Play" endpoints, and you can independently enable or disable its "Record" endpoints. It suffices to repeat this for all the audio devices. It only takes one minute in case you know what you are doing. Figure out that the audio devices I am talking about here, are of many sorts, and they ALL properly show: the IDT HD audio codec that's sitting on the motherboard, the Bluetooth headset, and the USB soundcard (Creative Labs SB1095 marketed as Sound Blaster X-Fi Surround 5.1 Pro).

Very important is to ensure that in Win7 "Sound" Control Panel, you duly connect (to the hardware), and activate, and enable the audio devices that you want to see appearing as ASIO devices. You must go into the "Play" tab, and you must go into the "Record" tab. Such is the hinge, linking the Win7 domain to the ASIO domain.

I wrote all this for confirming, if required, that Flowstone + ASIO remain my preferred tool for designing realtime audio DSP applications controlled by a class-leading GUI along with physical joysticks and physical gaming controllers.

I am saying this because the APO (Audio Processing Objects) specification and realtime audio digital signal processing architecture that got issued by Microsoft, lead to the development of a widely acclaimed APO-equalizer named EqualizerAPO, whose download rate is currently exploding (presently 32,668 downloads per week according to SourceForge). Moreover, as soon as I realized that EqualizerAPO is loading and executing VSTs, I went even more intrigued, as it means that the APO specification and architecture, allow building VST hosts, MIDI sequencers, etc. I felt that Steinberg (hence Yamaha) and Microsoft had a romance, consisting in field-testing a next-gen realtime audio DSP architecture, fully compatible with the past. This is quite important stuff. This is helping extending the life expectancy of Windows, along with Steinberg hosts, sequencers, VST and VSTi, in the context of 10 watts to 100 watt computers, batch processing the audio, featuring audio buffers sizes due to slowly but surely shrink from 512 to 32 or perhaps 1 (reaching a truly minimal delay audio DSP), now that Qualcomm is producing the CSR Apt-X LL chipset. It could be that the ambition of Microsoft is to prepare for a race aiming at reaching a truly minimal delay audio DSP, running on a plain simple machine executing Win11, Win12, or anything else whose name is starting with the w-i-n letters.

Feel free to comment. I may be wrong. It seems there is no articulated synthesis available I can base on, for resolving the doubts I have concerning the Win7 "Exclusive mode". It seems there is no articulated synthesis available I can base on, for documenting the way Win7, SAR, ASIO4ALL and Flowtone do cooperate. Please be indulgent. I thank you in advance, for you correcting me whenever required.
steph_tsf
 
Posts: 249
Joined: Sun Aug 15, 2010 10:26 pm

Re: ASIO4ALL coupled to SAR on Win7

Postby trogluddite » Mon Feb 03, 2020 5:08 am

steph_tsf wrote:What if there are many "Play" devices currently in use simultaneously?
Is it allowed by Win7? In other words, is it allowed by Win7 to output the "Play" audio, to two different USB sound cards simultaneously, one that's operating following the 16 bits 48 kHz standard (DVD quality), while the other is operating following the 24 bits 96 kHz standard (studio quality)?

Possibly, but there are a lot of constraints. For it to work, at least one of the soundcards must show a "Stereo Mix" among its inputs. Essentially you "listen" to this input as if in a "live monitoring mode". It's quite tricky to set up, but this superuser answer has a fairly good description a couple of posts down ("You need to use the Stereo Mix..."). As for different sample rates, I don't know. When I tried it a few years ago, I couldn't find a definitive answer to that anywhere. I guess that maybe the 'slave' soundcard would resample from whatever rate the 'default device' is using, but the devices I was using didn't allow me any way to check. I also found that the timing was very poor - a big latency between the two outputs. A lot will depend on your soundcard drivers - so good luck!

steph_tsf wrote:in case the "Exlusive Mode" is enabled

AFAIK, it's the same as for MIDI and ASIO drivers. When an application gets access to the driver, it "locks" the driver, so that all other applications would be refused access. I'm not sure whether it's possible in principle to "lock"/"unlock" for each time playing back a song, but the applications that I've tried it with all seemed to "lock" the driver until the application is closed, or at least until the driver is de-selected in their audio options. So it's a case of "whoever asks first".
All schematics/modules I post are free for all to use - but a credit is always polite!
Don't stagnate, mutate to create!
User avatar
trogluddite
 
Posts: 1730
Joined: Fri Oct 22, 2010 12:46 am
Location: Yorkshire, UK


Return to General

Who is online

Users browsing this forum: No registered users and 68 guests