Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: My tests over kmixer effects (Read 98979 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

My tests over kmixer effects

I've been doing some tests over kmixer effect, both using standard waveout and directsound, connecting my TBSC digital output to my Audiophile digital input, under WinXP (no SP1), and I'm sure that with a single stream at 48 KHz, with the TBSC mixer volume at max, the kmixer doesn't touch a bit of the audio stream, it's sent bit-perfectly to the output of the card. At 44.1 KHz I can't be so conclusive, since the TBSC resamples everything to 48 KHz and I've had some problems to test it the same way, but according to my analog measurements in loopback mode of Audiophile output, there is no trace of signal degradation over the 44.1 KHz played data.

...So it's very possible that this kmixer sounding worse than ASIO or k.streaming is our old friend mr. placebo entering into scene again.

Anyway, I'll do some more tests in the future.

My tests over kmixer effects

Reply #1
Could you describe this setup in a bit more detail. How did you generate the 48Khz WAV file how did you record it digitally and how did you compare.

Try this with a 44.1Khz wav file on your M-Audio card and let us know what you find. So, far no one has found a way to get the exact bits you stuff into Directsound or waveOut come out at the other end unmodified.

If you somehow found a way around that problem, that would be great. Please describe in detail how you do it. Good sample files are the DTS encoded material from swedish broadcasting run into a DTS receiver over digital out. If the receiver can decode the DTS signal at the right speed you are there!

This helps a lot with the placebo question. Stereo hiss is very different from a correctly decoded DTS signal.

Cheers

  Thomas

My tests over kmixer effects

Reply #2
I used WinXP pre-SP1. As I said, at 48 KHz,  I used the digital output of the TBSC connected to the digital input of the M-Audio Audiophile 2496. I set the volume of the TBSC wave slider in the mixer at max. I played several signals I generated with CoolEdit Pro 1.2a in 16 bit mode. First, a 1 KHz at -1dB and another at -60 dB dithered sine that showed no digital or analog distortion artifacts, or amplitude changes when recorded. And second, and more important, a series of single pulses with known amplitude (data values) , that showed exactly same data values after recorded. For a more thorough test, I will record a musical singal and the proceed to compare bit-by bit the signal, using EAC wave comparator, but I don't think there will be any difference. The result was the same with waveout or directsound.

Note that if the output of the mixer wave slider of the TBSC is not at max, all I've said doesn't hold. Digital distortion artifacts appear and the recorded data is no longer equal to the played data.

As I said, with 44.1 KHz I couldn't use a digital comparison, since the card resamples everything to 48 KHz and when I did the test, due to some operating limitations with my Win98SE, I couldn't have a reference of the output of a hardware resampled 44.1 KHz wave file without kmixer effect, to compare. Now I have, so I will try so make a similar test with 44.1 KHz data.

Alternatively, I used analog output and input of the Audiophile, connected to each other (loopback configuration). The recording was done in 24 bit mode, with AP mixer disabled, and I played several test signals both in Win98SE (without kmixer effect) and in WinXP (with kmixer effect), and all the analog measurements I did with several 16 bit dithered signals generated with CEP (dynamic range, frequency response, distortion) were the same the same, I didn't appreciate any differences. I this case of 44.1 KHz I'm almost sure that the data is not altered, but since I can't make a digital copy, I can't prove it 100%. But even if the kmixer does something, it doesn't reflect into high precision analog quality measurements so I can conclude that, at least, it won't be audible.

I don't have any DTS decoder available to check if there's a problem here, but as I said, I'll make some more tests and try to get more conclusive results when I have time.

Now, could you describe how did you do your tests? Maybe you card internal mixer was the one that was altering the data played?

My tests over kmixer effects

Reply #3
Did anyone actually claimed that it sounds better? I thought what we're going for here is accuracy, as in what goes in MUST come out the same instead of something else NOT intended.

 

My tests over kmixer effects

Reply #4
I don't think anybody has claimed it sounds better, more the opposite.

My tests over kmixer effects

Reply #5
So basically all of thomaspf claims turn out to be false?
"To understand me, you'll have to swallow a world." Or maybe your words.

My tests over kmixer effects

Reply #6
Very interesting. All the experiments I did came after I upgraded my PC to XP from Win98 and something was wrong. I have my collection of music on HD in Monkey audio format and after the upgrade I could ABX the digital out of my computer from my CD player which just did not make sense.

Many people pointed me towards jitter which is so small an effect on my system that it did not make sense either, so I ended up looking at the bits. I send and recorded the 16bit 44.1Khz streams in loopback mode on the M-audio and XP/SP1 and the streams are indeed different when doing a bit compare.

I have never tried 48Khz before.

Sending the DTS or HDCD encoded 16bit/44.1Khz files is a reliable method to see whether you have this problem without extensive ABXing and the problem has manifested itself for many others as well. I'd be interested to hear what you find if you do your loopback test on the M-audio with a digital loopback and a 16bit/44.1Khz file.

I will do a little more testing on 48Khz files in 16 and 24bits as well.

Cheers

    Thomas

My tests over kmixer effects

Reply #7
Loopbacking a soundcard into itself can lead to problems.

1- The clock is left as "master", and the input is bit exact -> depending on the latency between the output creating the bits, and the input reading them, there can be skipping.

2- The clock is set to "digital input" -> anything can occur... the clock is completely disabled, the input is used to clock the output... that is the other end of the input cable ! It's a kind of Larsen effect, but in the time domain instead of the intensity one...

3- There is no clock setting, and/or the soundcard resamples -> The recording is OK, but the bits are different from the original.

My tests over kmixer effects

Reply #8
Interesting. I thought input and output of this card can actually work asynchronously. So if you make the sending port master the input port will derive the clock via the input stream. However, I haver never tried to send a 44.1Khz stream and record 48Khz at the same time.

In any case, some people repeated this with end-to-end tests and found the same problem. Also the problem with HDCD/DTS signatures on 16bit/44.1Khz files goes between the sound card and an external receiver. These problems all go away if using ASIO, including the capability of using digital loopback to record exactly the bits you send.

My receiver/DAC is currently in the factory for upgrades so I have not played with the kernel streaming plugin.

Cheers

    Thomas

My tests over kmixer effects

Reply #9
thomaspf, there's one thing I don't understand... with my M-Audio Audiophile it is impossible to loopback the digital in and out, because, as Pio says, with this card, in order to record a spdif signal the clock must be set to external in order to lock the card with the incoming spdif data, so the internal clock is disabled, and if the external clock is disabled no clock can be sent to the digital output. (?)

My tests over kmixer effects

Reply #10
Strange. I have an M-audio DIO24/96 and I have no problem doing this. I set the master clock to internal xtal and can record the digital output via loopback just fine. I have not connected anything to the monitor mixer. Is the Audiophile different from the DIO in this respect?

It turns out that input and output are not asynchronous but I can record only when I play and record at the same frequency. I am a bit lost how skipping can occur here. This locking seems to get one sample read for one sample written. The internal API delays might affect when a sample actually hits the wire after calling the API but as long as you don't have underruns on the send side you will end up sending the complete consecutive stream. All these bits will get recorded in the same order with the same values with a varying amount of leading and trailing samples of zeros.

I just completed a whole set of recordings. I used ntrack for recording the S/PDIF input and played the tracks with different output methods using Winamp (wave,DS, ASIO), foobar2000 (wave, DS, KS) on the same machine, and my external CD player.


I wrote a little command line tool for finding offset in the recorded files and doing the comparison but I can't find that anymore, so I did an early check using the statistics function in cooledit2000. So far, I get the same picture that I got 8 month ago. The values in this statistic that are invariant to leading and trailing samples of zeros in the recorded files have exactly the same values for the EAC ripped wav file, the recording from the external player, and the loopback recording played via ASIO.

All the other recordings fail easy checks like min and max values for the samples including the recording using foobar with KS output.

I have to work tomorrow, so I will probably have to continue this next week.
@KikeG how did you do the bit compare between the recordings and your original file. Do you have some tool that finds the correct offset in the recording and does a sample for sample compare?

Cheers

  Thomas

My tests over kmixer effects

Reply #11
Actually, long ago, I managed the same loopback with the Marian Marc 2. But I don't remember how. I don't know if the clock was on master or slave, and if I used coax or optical. I tried more recently, and couldn't find how I did the first time. I think only one of the four combinations (coax/opt + internal/external) must work.

When recording from the DAT analog input through the digital input of the card, I often run into a clock loopback because the DAT being my D to A converter, it is always in slave mode, and I often turn the souncard to slave first when I have to record. At this time, both are slaved to each other. On the DAT, there is a display showing the synching on the external source. In this configuration, it blinks crazily, like a broken fluorescent lamp.

One question : what is an ASIO driver ? You seem to imply that we have the choice between an ASIO driver and a non-ASIO one. I don't see this in the Marian Marc 2 (supporting ASIO 2.0). I wonder if it's not an "ASIO-only" card.

My tests over kmixer effects

Reply #12
Windows has supported a various driver models over the different versions. Most of these were introduced by Microsoft but the professional music market has developed it's own standards.


Microsft has MME, Waveout/in, Direct Sound

Steinberg has ASIO
Tascam has gsif

The M-audio cards have a multi headed driver that let's you run applications written to either standard talking to the card. I used the term ASIO driver loosely to mean the code that transfers PCM samples from a player application to the ASIO driver implemented for a card. Besides some professional programs someone in Japan wrote a Winamp output plugin for ASIO, which is what I used for this test. Since the Marian card supports ASIO that should work for that card as well.

http://www.aikis.or.jp/~otachan/out_asio.html

is the link to the latest. Besides Winamp I have used ntrack with ASIO and it has support built in. I use coax for the loopback and master clock is set to internal crystal.

Cheers

    Thomas

My tests over kmixer effects

Reply #13
A few more results. First I recreated this little tool to check whether I can find a series of samples in another file. I then applied this to find the ripped original in all the recordings.

In the first round I found a bit exact copy of the original file only in the ASIO file but the recording from the external CD player had skips in it. So, I went back and it turns out that I recorded this file with the master clock still set to internal. I changed that to S/PDIF in and 44.1Khz and the new recording now also contains the correct bits as expected.

I then repeated my recording experiment with the same track resampled to 48Khz by ssrc and again the version recorded when playing via the ASIO plugin is correct. I only checked waveout in this case but again the bits are not identical to the original. This is all in loopback since I can't use a second computer to do an end-to-end and the external CD player only emits 44.1Khz.

Where does this leave us? While I can't make end-to-end tests with 2 computers like KikeG I still can't seem to reproduce his results of bit perfect playback.

Can anyone else on this board use WAV or direct sound playback in Winamp or Foobar to play the DTS/DD encoded files from the swedish radio to your receiver and get the receiver to lock? Can you do this when you switch to the ASIO output plugin in Winamp. In any case you must have full volume and all effects disabled.

@kikeG
Do you have any recommendation to what I could try different?

Cheers

    Thomas

My tests over kmixer effects

Reply #14
I have only one computer too, but two soundcards in it. I've doing some more tests this weekend.

I've not been able to loopback the digital in and out of the Audiophile, no matter what I try, using latest drivers for both XP and Win98. Your card uses same drivers, but if you are able to record digitally I guess the hardware must be a little different. If using ASIO/KS you get bit-perfect results, that proves it works in your case. (don't try ks of foobar because this prog. already changes the data due to additional internal processing)

In order to check bit-perfect reproduction, I connected the digital output of my TBSC to the digital in of  the Audiophile, but this works well only for 48 KHz data, since the TBSC resamples 44.1 KHz.

After doing more tests using this system, I've concluded that, at 48 KHz, the data played is bit perfect. I've checked this recording 20 sec. of music, manually adjusting the starting offset of it, and then mixing with it an inverted copy of the original data, in CEP. The result is all zeroes, that means that the data was exactly the same. This works no matter you use waveout or directsound.

With 44.1 KHz data I've found some differences. It's impossible to use same method because the TBSC internal resampling changes slightly the data depending on what OS and software are you using. In this case, I've relied on traditional signal quality measurements (SNR, dynamic range, frequency response, low level distortion and graphical analysis of the noise spectrum) both using the digital output and the analog output of the TBSC, obtaining same results in both cases. In case of analog output, analog recording was done with the Audiophile in 24 bit mode to obtain greater precision.

I've found that, in case of the TBSC at 44.1 KHz , waveout output uses kmixer resampling whereas directsound and kernel streaming use internal hardware resampling. Kmixer resampling is easily detectable, and offers slightly better high-frequency response (hardly audible), but a noticeably worse SNR due to increased digital distortion (audible? could be, for good systems/ears/music). Disabling directsound acceleration of the card (also called hardware mixing, etc), kmixer gets in too, getting same as with waveout. So, ks and hardware-compatible directsound output offer indistinguishable quality according to these measurements, but waveout distorts a little bit more the signal.

However, dropping the TBSC and looping back just the Audiophile analog in and out the results are the same no matter what I use:waveout, directsound or kernel streaming, or W98 waveout. No difference according to these analog measurements, so I can guess that kmixer does never kick in, in this case. I didn't try ASIO, but I assume there will be no difference.

So, my conclusion: kmixer changes the data depending on your card, drivers and output method. Directsound is not supposed to change the data, at least if your card offers directsound hardware support (hardware mixing or acceleration), but kernel streming is more secure. With good semi-pro cards I guess kmixer won't change the data in any case, but I've only checked this for my card.

Note: all this holds with the mixer wave slider at max. in the case of the TBSC, and with the Audiophile patchbay/router set to hardware output connected to wave output (no monitor mixer selected at the hardware output, please). Otherwise the output data may change due to re-scaling of the data.

I've seen that kmixer acts when simultaneous different sampling rate signals are sent to a non-resampling card (Audiophile in my case) or when the sampling rate/bitdepth is not supported from the card. I've seen also that the resampling quality slider in the audio devices control panel applet only ahs effect when kmixer resampling happens with directsound signals. With waveout signals, kmixer resampling quality is always the max. possible. All this happens as said by Microsoft.

Another note: SSRC resampling is better that TBSC (and any other AC'97 card) resampling, and "more" better than kmixer resampling, so this is another viable option.

Hope this clears up (if possible (?) ) the issue.

My tests over kmixer effects

Reply #15
So, all software that uses waveout (WinABX, abc/hr, PCABX, others) won't  play max. quality signal with TBSC cards and I guess that with other AC97 cards too.

My tests over kmixer effects

Reply #16
thomaspf, make sure that in the settings of the patchbay/router of your card the hardware spdif out is connected to the wave spdif out, not to the monitor mixer.

Also, about ABXing your card against a cd player, in order to have a meaningful comparison, first you have to match the ouput levels of the devices at test with a max. difference of 0.1 dB, using for example a 1 KHz tone.

What driver version do you use?

My tests over kmixer effects

Reply #17
Looks like we are getting on the same page here!

I have no connections to the monitor mixer.

Matching the levels comes for free in my case since I am just passing the digital stream out to my DAC and my whole investigation started by my assumption that given the same bits that should sound the same.

I have made all these experiments initially on the 5.10.00.27 drivers. Since I also use that PC for watching DVDs I am now using the 5.10.00.31 wave cyclic driver which does not have the problem of corrupting the time stamps leading to audio/video sync problems. The results are the same.

The real news to me is that you can use directsound with hardware mixing and get bit perfect playback. This makes a lot of sense sense since that should also bypass kmixer. Unfortunately when I use the DS output plugin v2.2.6 and select force harware mixing it does not work but pops up an error dialog stating that it can't create a direct sound buffer. What are your settings to make this work on the M-audio card.

Cheers

    Thomas

My tests over kmixer effects

Reply #18
In my Winamp 2 directsound plugin, I have no options to force directsound acceleration, I just leave it as is. I can disable direcsound acceleration only in foobar.

With my Audiophile, the results are the same no matter if I use the .26 or the .27 drivers, or waveout or directsound. The analog output signal is of the same quality than in Win98 or ASIO in my case, but I can't be sure that no bits have been changed.

I'ts a pity I dont have any DTS decoder or anything to receive a spdif signal in order to check what's happening.

My tests over kmixer effects

Reply #19
My DAC/surround sound proc is on it's way back from the factory. I will do some final eval with DD/DTS encoded files next weekend.

Cheers


    Thomas

My tests over kmixer effects

Reply #20
Ok, I've managed to get decent drivers for my motherboard-embedded CMI8738 card. I've installed M-Audio Delta DIO2448 WDM drivers, which use same hardware, and I can say that, in case of a single stream, and setting the wave mixer slider at max., the digital output is bit-perfect, no matter if the stream is 44.1 KHz, 48 KHz, directsound or waveout. It is pretty clear that in this case kmixer doesn't alter the signal at all.

About Audiophile 2496, DIO2496 and similars, considering that I couldn't detect degradation on the analog output of mine, and since the driver I've used for my CMI8738 card is also from M-Audio, I think it is pretty probable that the output of the former card is also bit-perfect in my case.

Still, there can be problems with resampling cards, such as the ones I verified with my Turtle Beach Santa Cruz.

Edit : OS is WinXP (no SP1)

My tests over kmixer effects

Reply #21
Quote
Ok, I've managed to get decent drivers for my motherboard-embedded CMI8738 card. I've installed M-Audio Delta DIO2448 WDM drivers, which use same hardware, and I can say that, in case of a single stream, and setting the wave mixer slider at max., the digital output is bit-perfect, no matter if the stream is 44.1 KHz, 48 KHz, directsound or waveout. It is pretty clear that in this case kmixer doesn't alter the signal at all.

I have the same onBoard sound. Does this produce bit-perfect results only with these special drivers?

I tried a digital loop-back some time ago, which didn't yield perfect results, but as was mentioned somewhere, loop-back is not a fair test because of the clocking.

As the analog quality is terrible, I've hardly used it, but if the digital output is ok, I'd gain a digital coax in/out (not that I need one...  ).

My tests over kmixer effects

Reply #22
@kikeG

I am expecting to get my DAC back this weekend and want to close this out. I would like to recreate your environment and it would be great if you could share more detail about the software you are using for your tests. I still have not been able to recreate your successes.

What player are you using?
What plugins at what version with what setting are you using to get bit perfect playback?
What drivers are you using?

I will try to recreate and post my results over the weekend.

Thomas

My tests over kmixer effects

Reply #23
Quote
I have the same onBoard sound. Does this produce bit-perfect results only with these special drivers?

With generic drivers, it was impossible because they always scaled the data, no scaling was impossible.

My tests over kmixer effects

Reply #24
Player: Winamp 2.81

Drivers: latest M-Audio Dio2448

Recording with Audiophile 2496 spdif in.