This review page is supported in part by the sponsors whose ad banners are displayed below

All incoming files can be upconverted to 32bit/768kHz depending on your DAC. Part of this software upsampling/filtering is based on what Peter calls Arc Prediction. What exactly that is remains vague but it comes down to very very low distortion. That XXHighEnd means serious business can be clarified by the fact that Arc Prediction upsampling and filtering are performed in memory as the earlier flow string showed already. A 16/44.1 track of 30MB on disk transferred to memory with applied 32-bit/705.6kHz upsampling bulks out to 960MB. This transfer from disc to memory can be fine-tuned to obtain the best-sounding chunks. A very realistic setting of 430MB chunks already consumes 2GB of memory.


Data thus is sent to the DAC either from the original file location when no additional playback memory is available; or from playback disk to memory. Now it depends on the DAC's speed to process the data. Luckily there's a buffer between software player and DAC. XXHighEnd fills that buffer and the software driver on the Windows side empties it. This buffer is the bumper between both and once sized appropriately prevents transfer lapses. Lapses are audible as ticks or glitches and obviously undesirable. It wouldn’t be XXHighEnd if this buffer weren't user settable. In fact there are two buffers, one in XXHighEnd and one in the device driver. The former can be manipulated by one of many configurable parameters in the user interface. Here we meet one of the important quality settings, Q1. Filling and emptying the buffers is a task for the computer’s CPU. Believe it or not but that device can only perform one task at a time. Because it can switch between tasks at outrageous speeds, it seems to perform many parallel tasks but in fact doesn't.


The moment a buffer refill is late, there will be a glitch. With multi-core CPUs—chips that act as though multiple CPUs were available which still share common parts—tasks really can be performed in parallel rather than being spliced in series. Even so a given core can still be fully tied up with one task by just a bit too long. Setting the correct buffer size prevents overruns and thus noises. If you recall the earlier flow string, you'll remember that it started with a FLAC file. Conversion of FLAC to WAV can be done per file per core. Thus a 12-core CPU can simultaneously convert 12 tracks and do so at blazing speed.


With modern multi-core CPUs widely available, XXHighEnd carries a variety of settings which influence how operating system tasks are spread out over various CPU cores to arrive at the best sound quality. The more efficient this spread, the shorter any latencies are. Latency refers to the time a computer takes to store a sample from an audio interface in memory to then copy that same sample from memory to the audio interface's buffer. Latency issues plague many computer audio players and various driver protocols like ASIO and WASAPI attempt to bypass several internal software layers just to gain speed and fight delays.


The fastest way to get audio data to the output buffer is via so-called kernel streaming. Here processing occurs in the very heart or kernel of the OS unhindered by protective steps which slow things down. XXHighEnd supports this mode but adds something special. Even though the main mantra of this player is to be bit perfect, with the choice of normal, adaptive and special modes of kernel streaming called engines, you choose the best sound quality. XXHighEnd is all about ultimate quality and it is you who must determine what that is, exactly. If you want computer audio that works straight out of the box, stick with iTunes, Foobar and the lot. They all will do a decent enough job. If you look to push computer audio to its absolute limits like XXHighEnd does, you cannot be afraid of a steep learning curve and plenty of setbacks along the road. So join us on now our own journey of discoveries.


Because a given engine sends data to the output buffer, it needs to know the size of that buffer. Here an additional parameter setting optimizes the engine further. Now we arrive at the part where XXHighEnd becomes a project for fearless users. Your computer—or better its operating system needed for conversion and filtering before the data stream hits the DAC—will influence the sound quality. Therefore at least 15 different parameters can and should be set to best tweak these influences. The tricky bit is that many of these parameters are interactive. They mutually enhance each other or detract and interfere. As with any serious endeavor, this is all about trial and error and documenting your experiments.


When the already mentioned minimized OS mode shuts down non-musical processes to dedicate the entire computer to playback, there are two options to start listening to tunes. One kicks off fastest. Here only the first track gets converted to start streaming immediately. Subsequent tracks get converted and buffered whilst the first one plays. The other method converts all tracks in a playlist or CD to the limits of your available memory before any playback commences. This option eliminates potential incidents because having all tracks pre-converted and cued up in memory prevents undesirable interruptions or parallel activities other than playback which would draw on computing resources. An additional fact is that once playback starts, XXHighEnd itself stops if unattended mode was checked. Then only the rudimentary process of streaming is active. Once playback stops, XXHighEnd resurrects itself and the user interface is ready for you to compose the next session.