Drive routines for SB Live! External USB.
(July 05 2011)

Introduction.

Starting with version 03.23 Linrad can use Portaudio for soundcard input. This means that a large number of drive routines become available to the user under Microsoft Windows. Ideally all of them should work fine, but that is not the case with the SB Live External unit.

Under Windows XP none of the drivers will provide 24 bits at 96 kHz. Under Windows Vista and Windows 7 there is a driver that works properly but one has to be careful not to use other soundcards because then the driver configuration might change. Sound in a PC system is black magic....

The SB Live External USB seems to have two series connected volume controls. Some drive routines have a single volume control, others have a fixed gain on the line input. It seems the drive routine can combine two series connected volume controls differently for the same total gain. One driver, WASAPI under Windows Vista is better than all other drivers for this unit. (june 2011.)

All drivers are tested with identical parameter settings in Linrad. The input signal is 1.25V RMS from a Softrock that operates near saturation. The S-meter is calibrated to show 0 dBm for the signal. In each screen dump there are five regions:

  • 1. Softrock connected to line input.
  • 2. Nothing connected to line input
  • 3. A shorted cable connected to line input.
  • 4. Nothing connected to line input
  • 5. Softrock connected to line input.
The bandwidth is set to 1 kHz. The S-meter reading with the shorted cable gives the dynamic range. Add 30 to get it in dBc/Hz.

Windows 7 (32 bit) after a fresh install.

There are drivers for USB sound built into Windows. After a fresh install of 32 bit Windows 7 (the CD is dated 2009) Linrad finds the SB Live USB device but not any of the other soundcards on the computer.

Figure 1 shows the soundcard setup dialogue after selecting not to use Portaudio.



Fig. 1.The setup for 96 kHz/24 bit for the SB Live! External USB. The sound system is in its original state after a fresh install of Windows 7.

The Linrad screen with these settings is shown in figure 2. It is obvious that sampling is at 44.1 kHz and that the device driver resamples the raw data before sending it to Linrad. The dynamic range is 133 dBc/Hz and the bandwidth about 40 kHz.



Fig. 2.Native MME with setup as in figure 1. The dynamic range is 133 dBc/Hz. The sound system is in its original state after a fresh install of Windows 7.

After having answered yes to the Portaudio question Linrad will present the list of devices shown in figure 3.



Fig. 3. The list of Portaudio devices. The sound system is in its original state after a fresh install of Windows 7.

The two MME devices, 00 Microsoft Sound Mapper and 01 Line (USB Audio Device produce identical results as shown in figure 4.



Fig. 4.MME devices through Portaudio. The dynamic range is 131 dBc/Hz. The sound system is in its original state after a fresh install of Windows 7.

Figure 4 is distinctly different from figure 2. Portaudio is degrading the performance. The noise floor does not look right in the waterfall.

To understand what is going on, compare figures 5 and 6. They show the raw data as presented to Linrad by the device. (This is the I = SOUNDCARD TEST MODE in Linrad.)



Fig. 5.Raw data from the MME driver without Portaudio. The sound system is in its original state after a fresh install of Windows 7.





Fig. 6.Raw data from the MME driver with Portaudio. The sound system is in its original state after a fresh install of Windows 7.

It is obvious that Portaudio only uses 16 significant bits. The raw data from the MME driver without Portaudio does not look like white noise. That is because the data is up-sampled from 44.1 kHz.

The Windows Direct Sound drivers do not work at all and the WASAPI and WDM-KS drivers can only be opened for 44.1 kHz.

There is a volume control for line in. It has absolutely no effect.

Windows 7 (32 bit) after a fresh install with the standard format set to 96/24.

Figure 7 shows the windows tool for setting soundcard properties. The default is 44.1 kHz and 16 bit. As can be seen in the figure the USB device can be set to 96 kHz with 24 bit data.



Fig. 7.This shows where the default speed and bit depth is set in Windows 7.

With a changed setting for shared usage, the MME driver behaves differently. See figures 8 and 9.



Fig. 8.Native MME with setup as in figure 1. The dynamic range is 138 dBc/Hz. The sound system is in its original state after a fresh install of Windows 7 but with the shared sound quality set to 96 kHz 24 bit.





Fig. 9.MME devices through Portaudio. The dynamic range is 136 dBc/Hz. The sound system is in its original state after a fresh install of Windows 7 but with the shared sound quality set to 96 kHz 24 bit.

The reason for the differences becomes obvious when looking at the raw data, figures 10 and 11.



Fig. 10.Raw data from the MME driver without Portaudio. The sound system is in its original state after a fresh install of Windows 7 but with the shared sound quality set to 96 kHz 24 bit.





Fig. 11.Raw data from the MME driver with Portaudio. The sound system is in its original state after a fresh install of Windows 7. but with the shared sound quality set to 96 kHz 24 bit.

It is obvious from figure 11 that Portaudio uses 16 bit data even though it presents 32 bits to Linrad. Do not use MME drivers with Portaudio.

The changed soundcard setting allows the WASAPI driver to be opened at 96 kHz with 24 bits. The screen is presented in figure 12.



Fig. 12.WASAPI through Portaudio. The dynamic range is 136 dBc/Hz. The sound system is in its original state after a fresh install of Windows 7. but with the shared sound quality set to 96 kHz 24 bit.

WASAPI through Portaudio is better than MME through Portaudio, but in both cases the dynamic range is lower than with Linrads native MME routines. The reason is that Portaudio truncates to 16 bit data in both cases.

Win 7 (32 bit) after running Windows Update.

After running Windows update untill it does not find any new updates, the portaudio menu is different as shown in figure 13.



Fig. 12. The portaudio menu after using Windows Update.

The drivers that do not work properly are not present after Windows 7 is updated with Windows Update. There is no difference in the performance of the drivers. The line volume control still does not work. (June 2011.)

Windows 7 (32 bit) with the latest drivers from Creative.

After executing USB_W7DRV_LB_1_01_099.exe which was the latest installer from Creative June 2011 the SB Live is reset to its default which is 48kHz and 16 bits. After setting the data format to 96kHz and 24 bits the MME driver without Portaudio gives exactly the same performance which was observed in figure 8.

There is however a working volume control and its default value is 50. Turning it up to 100 will increase the signal level by 6 dB. That increases the noise floor by 6 dB also and the drive routines that deliver 24 bit data do not give any improved dynamic range. See figure 13.



Fig. 13.MME without Portaudio. The dynamic range is 138 dBc/Hz. The drivers from Creative Labs are installed (June 2011.)

Ths S-meter calibration is changed by 6 dB and Linrad reports a 6 dB smaller margin to saturation. Otherwise figure 13 is the same as figure 8.

The list of drivers with Portaudio is longer than with the Microsoft USB sound driver. See figure 14.



Fig. 14. The portaudio menu with drivers from Creative.

The working drivers for the line input of SB Live External USB are:
  • 00 (16 bit) Microsoft Sound Mapper - Input.
  • 01 (16 bit) Line In MME
  • 32 (16 bit) WASAPI
  • 39 (24 bit) WDM-KS
The Direct Sound driver does not work. The WDM-KS produces exactly the same result as the MME driver without Portaudio. The 16 bit drivers are better with the Creative drivers than with Windows USB sound since the increased gain allows use of all 16 bits. See figure 15.



Fig. 15.MME with Portaudio. The dynamic range is 137 dBc/Hz. The drivers from Creative Labs are installed (June 2011.)

Windows Vista (32 bit) with the latest drivers from Creative.

The MME driver can not use 24 bit data. There is a function in Windows that can be used to find out whether a format is supported and that functions says it is. Nevertheless it is not. See figure 16.



Fig. 16.The MME driver in Vista does not work for 24 bit data.

With Portaudio both the MME and Direct Sound drivers work. They are slow however and need the Linrad max DMA rate to be set as low as 20. These routines use 16 bit data and the screen is identical to the screen with the MME driver in Windows 7. See figure 15.

The WDM-KS driver in Vista works well and produces the same screen as the WDM-KS driver in Windows 7. See figure 13.

The WASAPI driver is different however. See figure 17.



Fig. 17.WASAPI with Portaudio. The dynamic range is 142 dBc/Hz. The drivers from Creative Labs are installed (June 2011.)

The wasapi driver has a 3 dB lower noise floor than the other drivers that seem to work properly at 96 kHz with 24 bit data.

Windows Vista (64 bit) with the Microsoft USB Sound Driver.

The MME driver does not work with 24 bit data. The 16 bit drive routines, MME and Direct Sound provide a dynamic range of 104 dBC/hz only while the 32(24) bit WASAPI driver provides 106 dBc/Hz. Performance is significantly worse than expected. The gain control does not work, just like 32 bit Windows 7 it is set to a fixed value of 50 regardless of how the gain control slider is set.

Windows Vista (64 bit) with the latest Creative driver July 2011.

The 64 bit version works like the 32 bit version. The WASAPI driver is the only driver for 96 kHz and 24 bit. It provides a dynamic range of 142 dBc/Hz exactly as the 32 bit version figure 17.

Windows 7 (64 bit) with the latest Creative driver July 2011.

The 64 bit version works exactly like the 32 bit version. MME without Portaudio works with 32 bit data just as in figure 13.

With Portaudio WDM-KS gives 24 bit data and Direct Sound does not work at all while the other drivers give 16 bit data. Everything seems to be the same as with the 32 bit version of Windows 7.

Linux.

ALSA 1.0.23 does not have a volume control for line input and even though it can be opened for 96 kHz 24 bit tha data it delivers only has 16 valid bits. With the 1.25 V input signal the highes bit is unused and therefore the dynamic range becomes 136 dBc/Hz only just as in figure 12.

An alternative to ALSA under Linux is 4Front OSS. I have not been able to make it work with SD Live! External USB.