CM6631 usb audio interface .... any good?

Already done, nothing has changed.

I suspect the issue comes from the firmware installed on the CM6631A board interface which was set to play fixed 48kHz sample rate.
 

Attachments

  • Audio_Device_Properties.jpg
    Audio_Device_Properties.jpg
    52.9 KB · Views: 293
(1) One can set the device's default sample rate and bit-depth to exactly match the audio file, or (2) one can install two sound cards and assign one as the default sound device and default communication device, then use the other sound card to play un-resampled audio in ASIO mode, or (3) one can use WASAPI Exclusive Mode.

In any case, leave the Windows volume control for the device all the way up.

Followed strictly, the above things have been tested and worked with earlier releases of Windows. Most likely they still work now.

Note: Most good dac products, and or good USB-to-I2S boards, have drivers that support ASIO. Only dac I have seen that uses WASAPI Exclusive Mode was Denafrips.
 
Last edited:
Could be it be that Exclusive Mode is not configured right?

Since most decent dacs support ASIO, and some support DSD, if Windows tried to resample DSD the resulting audio stream couldn't work (Windows does not support DSD with its Sound Engine so far as I know, except maybe in WASAPI Exclusive mode, not sure). So it seems like there must be a way to tell Windows not to mess with the audio stream. Maybe it can be flagged as a non-PCM stream?
 
Last edited:
The real pain is that I don't know if the issue comes from Windows or from the firmware installed on the CM6631A interface board.

I don't know what kind of firmware has been loaded on the Cmedia device.
There is a tool to configure and upload the updated firmware but it works on Windows XP only.
 

Attachments

  • CM6331A_FW_Configuration.jpg
    CM6331A_FW_Configuration.jpg
    65 KB · Views: 342
Could be it be that Exclusive Mode is not configured right?

Since most decent dacs support ASIO, and some support DSD, if Windows tried to resample DSD the resulting audio stream couldn't work (Windows does not support DSD with its Sound Engine so far as I know, except maybe in WASAPI Exclusive mode, not sure). So it seems like there must be a way to tell Windows not to mess with the audio stream. Maybe it can be flagged as a non-PCM stream?
Thinking the same. WASAPI exlusive mode require application to:
1. request WASAPI exclusive mode, check status whether is granted.
2. set pipe parameters, quite many. I can't help with this particular wrapper.

Windows has no support for DSD. It will pass DSD in DOP (embedded in PCM) frames if bit-perfect transfer is obtained. DSD files are good for testing bit-perfect transfers, it will result in noise when mixer is involved.
 
Thank you all, problem partially solved in this way on a Windows 7 OS machine:

- firmware regenerated as in post #867 and flashed on the CM6631A by a Windows XP machine
- Cmedia ASIO driver installed on the W7 machine
- DC samples played with Foobar on the W7 machine via ASIO

This way the DC samples are not resampled.

Now I have to check if this way works even on my W10 machine using the dotnet application and ASIO driver for Windows 10.

I cannot use Foobar because I need to automate the process:
- play DC sample
- start the DC measurement by NI GPIB interface with a Keythley DMM
- store the readings
- play the next DC sample and so on
 
Thank you all, problem partially solved in this way on a Windows 7 OS machine:

- firmware regenerated as in post #867 and flashed on the CM6631A by a Windows XP machine
- Cmedia ASIO driver installed on the W7 machine
- DC samples played with Foobar on the W7 machine via ASIO

This way the DC samples are not resampled.

Now I have to check if this way works even on my W10 machine using the dotnet application and ASIO driver for Windows 10.

I cannot use Foobar because I need to automate the process:
- play DC sample
- start the DC measurement by NI GPIB interface with a Keythley DMM
- store the readings
- play the next DC sample and so on

Succeeding in Windows 10 with WASAPI exclusive mode, now the DC samples are rendered correctly without any resampling in its originale format 192kHz/24 bit.

While is quite simple automating the measurement process of a Keythley DMM by using NI GBIP USB Interface and its libraries, Windows Digital Media is a real madness, one have to get crazy to do the simpler job like playing DC samples.
Not a big surprise knowing who Microsoft's Vice President of Digital Media was.
 

Attachments

  • TWSDACLTCal.jpg
    TWSDACLTCal.jpg
    444.5 KB · Views: 453
A question about DSD output from CM6632A...
I am using a DIY development board based on CM6632A where LEDs are connected to all GPIO ports for indication. For testing I am using firmware "6632A-ES9018DSD-0305-ALL. hex" file from the SDK without any changes. Thus VID and PID used with default values (0D8C 0141), so using a driver from Windows Update, as it was written about this on this forum earlier. As a player for testing, I use Foobar 2000, as the most common option for outputting a DSD stream. I set up the player according to the instructions on this link, since the same IC is used in that DAC. No matter what DSD files I tried to play with any player settings, I never had the LED light up signaling the presence of a DSD stream. I tried other players like JRiver or Album Player that can output a DSD stream, but I never managed to output a DSD stream.
Can you tell me what I'm doing wrong? What should I do with the firmware, driver or player to output the DSD stream from CM6632A?
Thank you in advance!
 
A picture guide is missing important steps, by example what output is selected in Foobar? Use the latest software, this one is very old, it ask you to install proxy, it is only needed in a specific situation and is incompatible with the latest Foobar version. Uninstall everything and follow this guide: Foobar 2000 for Dummies (Part 1) – General Setup | DIY-Audio-Heaven

A guide is frequently updated, DSD playback in the second part, but don't skip the first part. Try basic setup first (without proxy), it will transfer DSD embedded in DoP frames over WASAPI or ASIO, see valid output selections (screenshot): https://diyaudioheaven.files.wordpress.com/2015/11/outputs_zpsyoxcjuld.jpg

It starts from DSD:WASAPIxxx:<your drivername>
or DSD:ASIO:<your drivername>
 
Last edited:
Thank you sajunky for your help.

1. I have disconnected all the output devices and uninstalled their drivers except native drivers for the CM6632A and the speakers built into the monitor.
2. I deleted the directory with the portable version of the player and all plugins. Also uninstalled ASIO Proxy.
3. According to your instructions I installed the portable version of Foobar 2000 and the following plugins.
4. Then I configured the plugins.

I haven't tried installing DSDTranscoder yet.

But in the output devices list I do not find devices where the word DSD is present in the name.
Just in case, I attach the dump of my board received by Thesycon USB Descriptor Dumper.
 

Attachments

  • Components.png
    Components.png
    69.4 KB · Views: 261
  • ASIO.png
    ASIO.png
    49.2 KB · Views: 251
  • DSD.png
    DSD.png
    46.2 KB · Views: 246
  • Output.png
    Output.png
    85.9 KB · Views: 246
Seems like there was only a very old version of Foobar that could play DSD with an added component. Later support for that component looks to have been dropped. Perhaps the problem is that DSD is not an open standard. Players supporting it may have to pay for licensing from Sony/Philips (or whoever it is). That may be why only paid players appear to support it.
 
All right. I upgraded Foobar to the latest v1.6.7. It didn't break anything, can play PCM and DSD files as usual. There is one important change that WASAPI shared is no longer default output, but WASAPI exclusive. It means what WASAPI component is not longer needed. It is said in the release notes clear.

So I uninstalled WASAPI component. Nothing has changed, except there is a need to reselect driver. Previously there was WASAPI event: [drivername] and WASAPI push [drivername], now the word WASAPI disappeared, replaced by two positions:

Default : [name of the driver]
Default : [name of the driver] (exclusive)

I gather that the first one will be shared access (goes through system mixer) and the second one is the old (with addon) WASAPI exclusive. Only the second one should be used when playing DSD. Shame, the word 'exclusive" is on the end of string and is obscured in my Toolbar switcher. For @P.M. it doesn't matter, as long ASIO output is selected.

In next step I updated SACD component to the latest v.1.3.7. The only change is following Foobar's simplification of output device list. Now SACD component is fully integrated with Foobar, there is no separate output called DSD:xxx. So don't need to worry about as long it plays DSD files! A quote from a plugin Q&A:
A. 1.3.x line has introduced "autoproxy" feature when SACD plugins outputs DoP if it is set to DSD or DSD+PCM. 1.2.x does the same when foobar output is set to "DSD : ..."

It means that autoproxy feature replaces DSD:xxx output, there is no longer DSD:xxx
 
Last edited:
Thank you sajunky for your help again and I apologize for the long answer.

I use the latest versions of programs and pluggins, just like you are now)

I switched the output to the second point, as you recommended. In my case, the output is called - Speakers (USB 2.0 Audio Device) [exclusive]. When I try to play, I get an error message. I tried to set different output data format in the settings, but it didn't help.

Is there a way to check the DSD support by the driver and the firmware of the CM6632A?

I have a feeling that the necessary driver is simply missing, considering that I downloaded the default firmware from SDK into the IC.
 

Attachments

  • Output Exclusive.png
    Output Exclusive.png
    89.1 KB · Views: 117
  • Error.png
    Error.png
    11.9 KB · Views: 117
The output device is correct. On the second sreenshot problem is identified:
"Unsupported stream format: 176400 Hz / 16-bit"

It seems 16-bit Output Format is set on the same page (obstracted by the expanded view of output devices, so I couldn't see it). When you play PCM, output will be truncated to 16-bits, but when playing DSD, it is a wrong word size. Change to 24-bits and it should play DSD fine.

You will also find that ASIO plays as well. :)
 
Last edited: