this seems to be an exciting time for computer audiophiles with a number of new players becoming available.
I have developed a minimalist Wasapi WAV player that has several innovations not seen in other players, it was born out of my frustrations with the sound quality of other players and the desire to understand why players with so called efficient code sounded so digital and also different to each other. My hunch was proven right (to my ears, anyway) that the other players made design compromises that introduced noise to the sound at critical sections and that by carefully checking and rechecking the sonic impact of every constituent part of the code/build and using optimisations for speed as much as possible the noise could be reduced to a minimum.
It is minimalist, there is no user interaction, it just loads a file into memory and renders it to the default audio device. It is gapless, but can only play files of the same bit depth/sample rate at a time.
It is WAV only at the moment, but I plan to modify the MQn.bat file so that sox can be used to convert FLAC etc to WAV before loading to memory.
Innovations are optimised render loop, page aligned memory, optimised memcpy, Visual Studio 2012 compile using the latest optimisation techniques, auto vectorisation, profile guided otimisation, use of Intel C++ libraries during build, each setting has been tested to ensure best sound quality, fixed period sizes to align with memory page size, each sample rate/bit depth combination has it's own render loop, use of goto in loop rather than for/while, static libraries, single core compile etc
It is free.
I use it on quite a revealing and neutral system NAD M51 dac, Linn Klout power amp and ATC SCM 20 speakers, so any weakness in players is apparent. I do use beyerdynamic headphones on my bedroom system.
I am posting this on head-fi.org because I feel that the community here are a bit more interested in sound quality than most and am interested in any feedback to see how it compares to other players, have already had good feedback from users in AA and CA.
it requires 64 bit win7/8 and an x64 intel cpu with as much ram as required. bit rates supported are 16 bit 44/48 and 24 in 32 bit container 44/48/88/96/176/192
there is no install, just download 3 files (mqn.exe, paste.exe and mqn.bat) into a directory eg c:\MQnPlayer, copy the required WAV files or folder to the clipboard and double click MQn.bat. the console will close automatically after play finishes or can be closed down manually to stop play.
it can be controlled via foobar2000, see MQnfoobar.txt in the download link
it doesn't seem to get on with the JPlay windows service or fidelizer, due to them setting the system timer to 0.5ms (introduces a digital sound), so stop them before using MQn
here is the text from the MQnreadme.txt file
MQn - Just good music is a minimalist WASAPI Wav memory player that is stripped back as far as possible to reduce noise.
Innovations are optimised render loop, page aligned memory, optimised memcpy, Visual Studio 2012 compile using the latest optimisation techniques, auto vectorisation, profile guided otimisation, use of Intel C++ libraries during build, each setting has been tested to ensure best sound quality, fixed period sizes to align with memory page size, each sample rate/bit depth combination has it's own render loop, use of goto in loop rather than for/while, static libraries, single core compile etc.
example render loop for 16/44 shown at bottom of this file.
requirements are x64 Intel cpu with x64 win 7 or x64 win 8 and as much ram as you need to load the music you are about to play.
It plays 16 bit 44/48 in 16 bit containers and 24 bit 44/48/88/96/176/192 in 32 bit containers.
To play music just highlight the wav files/folder required, right mouse click and select copy to load the filenames into the clipboard
then just double click on MQn.bat
Installation - there is no installation or registry modification
Just download the MQn.bat, paste.exe and the latest version of the MQn.exe that meets your needs (see below) to a directory eg c:\MQnPlayer
Why the different versions - each version has the release point for the data to the device buffer optimised for a particular device
There are 3 options - the normal method of loading the buffer is
1. MQn.exev3 - normal method
buffer event triggered -> get next buffer from device -> load buffer -> release buffer, so release point is last thing that happens
2. MQn.exev1 - buffer preloaded from previous loop
buffer event triggered -> release buffer -> get next buffer from device -> load buffer, so release point is first thing that happens
3. MQn.exev2 - buffer preloaded from previous loop
buffer event triggered -> load buffer -> release buffer -> get next buffer from device, so release point is first thing that happens
Just try the different versions and use the one that works/sounds best
MQn.exev1 is for realtek laptop drivers/HDMI and some dacs
MQn.exev2 is for usb eg I use it for my MF Vlink 192 usb/spdif convertor
MQn.exev3 is a vanilla version and should work with everything, but sound very slightly compromised compared to v1 and v2
rename the one selected to MQn.exe
optimisation tip - right mouse click on MQn.exe and select properties, then select compatability and tick
disable visual themes, disable desktop composition, disable display scaling on high DPI settings and rune as an administrator
then click apply
example render loop
A_memcpy (pData, sound_buffer += 4096, 4096);
Edited by sbgk - 3/31/13 at 2:59am