Home Computer Audio Asylum

Music servers and other computer based digital audio technologies.

RE: A revolution in audio rendering

Hi Thanks, more like dogged determination than skill I am afraid.

Shall include a 32 bit version in the link, just rename it to playerextreme.exe, shall let you know when.

The version in the link is for x64 Intel proceesors

https://rapidshare.com/#myrs_filemanager/file/3363

Apologies for the previous version, I was using while do for the render loop which after a while didn't sound so good so back to while loop which sounded better.

I have updated what to me is the ultimate version as far as sound quality is concerned, it really is very good. No real big changes in the code, just some things I found that made a difference to the sound and then some optimisations.

One of the big finds was
hr = CoInitializeEx(NULL,0x8); //COINIT_SPEED_OVER_MEMORY 0x8

which really brought the sound to another level.

I was reassured that as I optimised for speed the Sound Quality improved.
I was surprised at how big a difference the optimisations made to the sound, you can only do so much with code.

Here are the optimisation settings for x64 Intel processor, /MT, /fp:fast,
and the /O2 /Ob2 /Oi /Ot /Oy switches made the difference

c/c++ section

/Zi /nologo /W3 /WX- /O2 /Ob2 /Oi /Ot /Oy /GL /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /Gm- /EHsc /MT /GS /fp:fast /Zc:wchar_t /Zc:forScope /Fp"x64\Release\playerextreme.pch" /Fa"x64\Release\" /Fo"x64\Release\" /Fd"x64\Release\vc100.pdb" /Gd /errorReport:queue

-DUNICODE -D_UNICODE /Og /favor:INTEL64

linker section

/OUT:"C:\vs2010\playerextreme - mem - one file\source\x64\Release\playerextreme.exe" /INCREMENTAL /NOLOGO "libad64.lib" "libacof64.lib" "libacof64o.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MANIFEST /ManifestFile:"x64\Release\playerextreme.exe.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\vs2010\playerextreme - mem - one file\source\x64\Release\playerextreme.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /PGD:"C:\vs2010\playerextreme - mem - one file\source\x64\Release\playerextreme.pgd" /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X64 /ERRORREPORT:QUEUE

I also made it a single thread which again made a small improvement, also fixed the sizes of buffers etc so that numbers were used in the code. This means that different code would need to be used for different sampling rates. Also worked out a way to play gapless (next release) where the wav data is just appended to the buffer. Means that it won't be able to play different sample rates gapless, but it suits my purposes.

The next release will be gapless and play different sample rates.

http://mqnplayer.blogspot.co.uk/


This post is made possible by the generous support of people like you and our sponsors:
  Western Glow Tube Service  


Follow Ups Full Thread
Follow Ups

FAQ

Post a Message!

Forgot Password?
Moniker (Username):
Password (Optional):
  Remember my Moniker & Password  (What's this?)    Eat Me
E-Mail (Optional):
Subject:
Message:   (Posts are subject to Content Rules)
Optional Link URL:
Optional Link Title:
Optional Image URL:
Upload Image:
E-mail Replies:  Automagically notify you when someone responds.