XXHighEnd

Ultimate Audio Playback => Why XXHighEnd => Topic started by: PeterSt on June 28, 2007, 01:52:07 pm



Title: 30 | XXHighEnd - Technical workout
Post by: PeterSt on June 28, 2007, 01:52:07 pm


Introduction anno 2013

Below you will find the uncensored text as how it was written in June 2007 - never changed since then. It were the first steps to change the Operating System's behavior so, that it would be better suitable for Audio Playback.
It was also the time that people started to discuss the "bit perfect phenomenon" because it could not be true that Sound Quality changed while the digital data was unmodified. Today, and maybe only since 2010-2011, it is generally accepted : Sound Quality sure can change. It changes per XXHighEnd version and the target always is "for the better".

Today a few more software players exist that operate similar to XXHighEnd. Or try to. But let's keep in mind : XXHighEnd was the first and it will probably be miles ahead of anything as long as we all keep listening to the changes I apply to your directions.

Peter


June 2007


General

When this forum was activated (May 28, 2007), it was expected that the users of the XXHighEnd Audio Player for a great deal would exist of people who currently do not PCs for audio playback. Another group would use PCs already. Both groups experienced the development of XXHighEnd, and with those people in mind this forum was created. Do note that both groups urged for highend audio playback in general, and that nobody cared about the technical insights of *this* player. Why ? well, because in the end it is about the quality of the playback, and not so much about the means to achieve that.

Besides this, from the beginning I (as the developer of XX from off August 2006) was participating in this thread from AVS (http://www.avsforum.com/avs-vb/showthread.php?t=713073&page=5&pp=30) (my first post is on this page) and it was clear for everybody what I'm about and what I was heading for. Also is was clear that whatever question I asked it remained without answer (a 100% score for that throughout the whole thread !) and whatever I stated was not rejected by the Microsoft people. From this grew XXHighEnd, which aimed for bitperfect playback in Vista from that point on (August 2006). Although I had that running as a stand alone "Engine" in the first days of January 2007, it took very much time to decently control that Engine, which I achieved in a first means (far from technically complete) as per version 0.8 of XX (June 17 2007). For reference : within the player this is called Engine#3.

Now, since implicitly this forum addresses others than the "known groups" mentioned above, the outlays don't suffice anymore, I think. You urge for technical insight, which I explicitly left out to keep things understandable for the groups I mentioned, and again, with their reference of the AVS thread anyway.

Bit Perfect

For the techies, or anyone else who feels that an audio player should be bit perfect for beginnings, yes, XXHighEnd is Bit Perfect with its Engine#3 for Vista. This is not achieved by means of ASIO (doesn't sound good IMHO) and this is not achieved by means of Kernel Streaming, which just doesn't exist anymore as such under the Vista OS. You could say it is "my streaming", and for those with some more knowledge of it, it runs in Exclusive Mode, what half of the AVS thread I referred to is about.
The player is bit perfect for any Signed driver for Vista, and by which means the endpoint device (DAC) is connected doesn't matter, might it be S/PDIF, USB or Firewire.

Because it is highly likely that you don't have the experience with a non-ASIO controlled audio stream in Vista and "when am I operating in bit perfect hence Exclusive mode ?" ... when you can switch off whatever audio device (not make it inactive), move the sliders and all, and the sound keeps on playing, then you're good. You then avoid the SRC, and "KMixer" (officially called Audio Engine in Vista :scratching:). You could check it by physical means (reading back the data etc.).

You can fairly say that what happens in there is Kernel Streaming, but officially this is not true (because KS is connected to physical Microsoft (API) code that's someting different, and it doesn't exist natively in Vista, hence when you get that running it's emulated). It is a new way of kernel streaming, which should be called "user streaming" officially, because it doesn't happen in kernel code anymore.

Latency

I know, you tend to (or could) measure the quality of an audio player with its latency. Mind you, please, I say this is non-sense (but never mind), although anyway the latency I can achieve with XX is about 1 44K1 audio sample. Well, if anything is non-sense, it is this obviously. Of course it can't work like this effectively, because of the buffer in the DAC to which you would be dependent on.
I had some wrong figures here before, which Klaus kindly pointed out to me.

As a sidenote I'd like to mention the two other engines in the player, generally referred to as Engine#1 and Engine#2;
Although they both have heir purpose, this is unimportant for what we deal with in this context. What is important though, is that these Engines too achieve a measurable latency of 112 44K1 audio samples, but which will be somewhat lower and just cannot be tested (because the buffer in my soundcard won't go lower). This *is* important to the sound for these two Engines, which both are kind of Direct Sound based. "Kind of", because I apply my own means of getting things going in there, and the important thing for you will be that this is not Kernel Streaming. *That* I apply my own means can be measured by the latency, and that it brings the better sound ... well, please take a listen yourself.

Real time

Back to Engine#3 under Vista ... this operates in real time mode. Maybe it is better to say that I couldn't find any means to let it have glitches, and obbviously I already know what the headroom is, knowing about the 1 sample latency, while actually the buffer size of the DAC is being used (which is inmensely larger). You could try it yourself by running anything in a reasonable high amount on the PC, and notice that the sound keeps on going without glitches. Do note that that currently I did not provide a means to uplevel the priority of the player just because it isn't necessary, but you should aldo not uplevel your test tasks in order to get the plat down then (would be unfair).

In fact this counts for Engine#1 and #2 the same, BUT, in there I *do* need uplevelled priority for the according threads making the sound, so in there this possibility does exist.

The above is important for the users, which I'd like to see as people who are unexperienced with tweaking PCs for decent audio playback. For that matter, above explained "real time" operation, was an explicit objective just to leave the PC be for those users, and this is just what was achieved and where a great deal of the quality comes from (you know that those tweaks can help, so now you can expect why the quality is better for starters).

High End

Strangely enough, where the mentioned groups of people just start listening and judge from there, you, say, techies won't dig that means. I must say, to a certain extend I am the same; If a player can't achieve bit perfect playback, why should I care to even start to listen (look at the AVS thread again, and you know).

Now, how to make clear why this should be a high end player, assuming this is a prerequisite for you to start listening to it. Difficult task ...

Ok, let me tell you that I created the player for one reason only : I couldn't get satisfied by all the players I could find back then. And yes, I know what can bother a player, and  I do know how to tweak my PC and all, and I was spending YEARS on it. So please trust me on this.

Then, I'm the kind of guy who doesn't like "filtering" means, in order to get the sound better. Thus, e.g. apply a certain cable to remove harshness, is not my kind of way. From that came the 1:1 playback as much as possible throughout the whole route, which begins at the PC. You could also say that I try to let the player be as accurate as possible.

I know this sounds stupid, knowing - or assuming that bit perfect = bit perfect. But sadly, this is not so. This is not so at all because all is influenced by jitter. So you could well say that all XX is doing, is eliminating jitter. Yeah yeah, I hear you say ... :evil:

I think I can hardly find more words to define how XX operates, unless I'd explain my means of doing it, which I won't for obvious reasons :nea:
So I guess it's time to get a listen. One more thing in this chapter maybe; without the background of the development period and all what happened, you might expect that in here we're talking about "the best PC playback ever". Well, nothing could be more wrong, and it would be the last thing I had liked to achieve (outclass other software players). So no, my objective was to get the best audio playback ever, which includes anything on this earth for playback means. This started with XMPlay, then Foobar, and then all the others, but my CD transport kept beating it. So only and just because I had this objective with great dissatisfaction after two years of trying, I thought to just create myself a player.

Djeez, I must pay for it ! :yes:

That this turned into a commercial product is not anything I wanted. Maybe it's hard to believe, but after having the first version ready for playing (which was oh so much better than anything else, and was so much "worse" than the current version(s)) I was in rather regular communication with the guy building my horn loudspeakers, and let's say that in my house on my old speakers readu to be replaced, all sounded better than in his studio with the super dooper speakers. I had XX and he had something else (and out of all he was the ONLY one I could find on the planet stribing for PC Audio Playback from a commercial angle (hence he had to sell he speakers by means of that)).
To keep this story short, he received XX and started to want it to be friendlier and such and so, and another came around his door wanting it too, and I ... I started to having to do it for "you". Ok. But for a bit of money then. Just for my good feelings that I spent well over 2,000 hours by now on it, ehh, besides my normal job that is (and knowing that it's far from ready).

No DSP

The one thing I keep far from is DSP stuff. No convolvers, no replay gain, no digital volume, no nothing. This is just my principle of getting the best sound. And I know already, that during the process of other people searching for better players (opposed to whatever they had), quite some people like saturated sound. The funny thing is, I don't like cold sound. The best part of it all is that the best is achieved by letting things through the best 1:1 as possible. Thus, *also* for those who like saturated sound, easily created by (more or less random (i'm not completely serious here of course)) DSP means. I just won't do it.

What I *will* do, however, is applying means without actually changing the sound data. A good example of it - and only in the context of how XX operates internally - is the "Doubling" of the data I apply. Looking at the DAC running at twice the speed just the same, you'd say this can bring nothing because effectively it shouldn't change anything (so that's why I think this is legit for "no DSP"). Well, as how XX operates it just does influence the sound, and whether it's for the better or for worse, is up to you.
On the very edge would be the Upsampling, which only emerged from situations with no bit perfect playback and what to my reasoning (and again how the player operates internally makes it better for quality in theory. Again, whether this is really so is up to you; in all cases it's an option. Btw, there's more behind this for reasons, like my struggle to get Vista bit perfect going, and this was a temporary solution while it was not. Now it just exists, and you can use it. Why not (it does change the sound definitely, confirmed by everybody).

Nos-DAC ?

This small chapter is only there because I can see that there are some misunderstandings about this;

There's these two worlds, one disliking the non oversampling DAC for good reasons, and another that just likes it for, say, unknown good reasons. :) I say it like this, because from theories the nos-DAC is superbad.
Okay, so coincidentally I am from the other world, and I like it for my own reason : when I'm a believer of 1:1 playback, the nos-DAC is the best. I can extensively explain why *I* think this is net better than the oversampling DAC, but I did thet elsewhere, and in many places by now.

The most important message for this page, is that there's not one expression of mine anywhere that states that with an os-DAC XX won't perform. Nowhere. The only thing I do say, is if you follow the 1:1 route best (nos-DAC), all fits to what XX achieves, and if you don't (os-DAC) you'll be destroying what XX so carefully tried to achieve. Here too is a "net" for the overall result, knowing about the lacking (and actually needed filters and all). So, besides destroying partly what XX created (and remember this is partly only) it is coincidentally my opinion that an nos-DAC sounds best. This latter is unrelated to XX itself obviously, and in addition it's just *my* opinion.

Besides all, people with os-DACs are raving about XX just the same, and all togther this comes to a relative matter. Were you using an nos-DAC then with XX all sounds better, and were you using an os-DAC ... the same.

High End once more

Because you might have missed it on the other pages, and because it might help you at understanding why I call this a "High End" player, in the very end me and a few others are explicitly working on 100% natural playback of music. You could say "who does not ?". Well ...

It is not up to me to decide for how you perceive music, but since you want to have the best playback anyway, try to listen once more to the naturallity of instruments and all. Of course, all of your audio chain contributes to whatever you hear from it, but generally, how many things do distrurb ? a harshness here, a hissing cymbal there, a booming bass ehh everywhere, a tinny violin, a screeming voice, wrongish timbre, no involvement ...

Overhere in our listening rooms, we are at the edge of 100% music playback as it was intended. We explicitly work on that. I know, you can't do that with XX alone. But I'd really like you to know that XX currently gives you this very good base for it. Well, according to the so many ears coming to this same conclusion. And I can tell you, *everybody* was sceptic in advance. :secret:

Well, this must be it for commercials. The rest is up to you ! But for that maybe you want to know these things :

Installation :nea:

When you jump in these pages I can see that you might be quite suspicious on what's going to happen with this "install";

First off, there is no install as such. You copy the 10 files from the zip (See below) to any directory you like and you are good to go with XXHighEnd.exe.
For XP actually XXHighEnd.exe is all you need, since the icon files are only needed for your conveniency (and an install which doesn't exist can't attach them to antything :)).
For Vista you'd need the dll's and the manifest file, this avoiding a bunch of (so far impossible ?) Vista whatever development stuff, and the XXEngine3.exe.
The Help file contains a brief explanation on when to use what Engine for best sound quality, and which html in the end might provide more means of offline Help.

So this is just explaining what is what, and in the end you just dump this where you like and start playing.
There is *NO* amendment to the registry whatsoever, or it must be out of my scope.
As long as you don't get your Activation Code there is *no* connection with the Internet whatsoever (see below).

Getting the Activation Code

Currently only PayPal is supported, and I must say, because of the fully automated proces I wanted to have for you, it's quite enough for me at this moment. :yes:
When you press the PayPal button (in the UnDemo section of the player), yes, I do send some information from the PC to an ASP page, which info is needed in order to get you a unqiue code for activation. But -and please mind this- the one and only reason I just *have* to send this information, is because I want you to have this means of using your license for all the PCs in your household you can find (which excludes your neighbour :grazy:). For that matter the process of "installation" (remember, it really is no install as such) is rather special (as explained here : Activation ... How ? (http://www.phasure.com/index.php?topic=87.0)), and I MUST have something to connect to "your household". The data which is drawn from your one Internet connected PC at the time of getting the Code is similar to what Microsoft does since XP, and it kind of defines it is you. The data is sent in an encoded form, and decoding never happens. All what happens is when the player checks for the Code, again the encoding takes place, and the results much match. Simple as that, and as honest as can be.

But :
Via email I do receive the decoded data, which is for your own saftey only; e.g. you might lose your Code. Also it can happen that you end up in a situation that you just can't get it to work anymore. In that case I'm just able to check it is you and help you out.

Peter