Log in

View Full Version : Possible low quality mp3 decoding in MPC-HC


aquamarinebeach
29th January 2013, 05:11
try Gabest's MP3 decoder.
huge soundstage, very clear audio, IEEEE float output.

it doesn't get any better than that, I think it's by far the best mp3 decoder(I tried Shibatch, MAD, Franhofer, foobar, etc..)

there's some MPC HC versions with standalone .ax filters ;)

Yes PITCH.FR you are totally right! The old versions of Mpadec (i.e the ones written by Gabest) are the best mp3 decoders even today in terms of sound quality. The new versions released in MPC-HC have gone down in quality.

I just discovered their awesome quality by accident a few weeks ago - and like you said, it is way better than the better known Mp3 decoders that I have been using until this great find.

I have found mpasplitter.ax v 1.0.0.2 to be the best in terms of splitter.

As for the mpa decoder, I have found the one in MPC 6.4.8.6 - i.e the last build of mpa decoder v 1.0.0.0 to be the best sounding - huge soundstage, clear lyrics and tight bass.

The second best is the last Gabest version - i.e. mpadecfilter.ax v 1.0.0.4. While it is good, the sound is boomier, the bass is less tight and the lyrics are louder but more shrill compared to the perfect decoder of MPC 6.4.8.6 (latest version of MPC with that decoder - ver 6.4.8.7 switched to mpadecfilter.ax v 1.0.0.1 and the sound quality degraded)

Right now I am stuck with using MPC 6.4.8.6 (very obsolete and buggy player) and using mpasplitter.ax v 1.0.0.2 loaded externally combined with the internal decoder - simply because the sound quality is out of this world.

I have not been able to find the stand-alone filter mpadecfilter.ax v 1.0.0.0 in order to use it in more modern and sleek directshow players like Imesh (excellent interface, features and organization of my whole mp3 library and uses mpadecfilter.ax - albeit a later MPC-HC build)

The sourceforge URL has the later builds but is missing the oldest but best one.

https://sourceforge.net/projects/guliverkli/files/MPA%20Decoder/ - it has MPA Decoder 1.0.0.1, 1.0.0.2, 1.0.0.3 but it is missing the stand alone filter MPA Decoder 1.0.0.0.

PITCH.FR: Do you have to have stand-alone filter mpadecfilter.ax v 1.0.0.0 by any chance. That would be a real ife saver indeed.

Please let me know either way. Thanks

[ReX]
30th January 2013, 21:37
aquamarinebeach, here's the standalone MPA Decoder from MPC 6.4.8.6 (revision 447 on SVN).
http://rghost.net/43433617

Edit: Link updated, patched the non-unicode version with ExeVersion (http://www.steelbytes.com/?mid=47) to make it work with Windows 9x.

aquamarinebeach
30th January 2013, 22:45
;1613684']aquamarinebeach, here's the standalone MPA Decoder from MPC 6.4.8.6 (revision 447 on SVN).
http://rghost.net/43431712

Hey ReX - thanks a lot man man. What a nice unexpected surprise. I'll give it a try later on. By the way, where did you get it from if you do not mind me asking - did you by any chance compile it...just wondering...coz I see it was modified today.

Regards,

Ray

aquamarinebeach
31st January 2013, 22:15
Hey Rex, I got to test the codec you created for me and compared it to the internal decoder of MPC 6.4.8.6.
They sound very similar in terms of rendition of the notes. The only difference is that the one you built sounds overly boomy and a bit less accurate than the internal decoder.

I made sure to use the exact same splitters and used both decoders in MPC 6.4.8.6 along with the same DirectX output renderer.
I also tried it in modern mp3 players and it sounds overly boomy there too.
So, the only remaining culprit for the difference would be the DirectX SDK versions used in compiling the 2 decoders unless of course if using VB2005 or VB2008 could cause a difference too?

As you already know I do not have a whole lot of knowledge on the above 2 applications – but I did read that different sdk’s can affect the compilation. It’s different codes after all.

Media Player Classic 6.4.8.6 has the 6th of November 2005 as the date in its files were modified.

From:

http://www.toymaker.info/Games/html/d3dx_dlls.html

and

http://www.toymaker.info/Games/html/directx_9_0c.html

and since that MPC version was released on 7 Nov 2005 and d3dx9_27.dll was released as its accompanying download – Gabest most likely used the latest SDK available at the time – i.e. the October 05, 2005 release to compile MPC 6.4.8.6. Or the previous release (probably not though – i.e. August 2005). As per below there’s not much of a difference between these 2 versions, nothing that I would think would affect the sound any way.
based on:

DirectX SDK October Update 2005

Changes in this update:
• XInput - a new API for the Xbox 360 controller
• XACT beta - cross platform audio creation tool
• Improved support for Visual Studio 2005
• Effect Edit and Mesh View tools removed. The new DirectX Ops and DirectX Viewer tools are meant to replace the functionality however they do not have all the previous functionality so you may wish to keep the tools from the old SDK.

DirectX SDK August Update 2005

Only a few small changes this update:
• PIX (Performance Analyser for DirectX) tool update
• Effect system updates
• New sprite sorting flags.
• The D3DX DLL is now named D3DX9_27.dll (see note)
• DirectX Viewer - allows viewing x files with DXSAS compliant effect. As this tool is replacing functionality currently in MView (for viewing mesh) and EffectEdit (editing and viewing shaders and effects) these two tools are now deprecated and in fact MView will be removed in the next SDK release..
• A few other minor changes (see the DirectX SDK Download Page for more details).
• The sample browser will not work with IE 7 !
Note: DirectShow was moved to the Platform SDK in the April release and overall DirectX is becoming more reliant on the Platform SDK, so always a good idea to get the latest.


DirectX 9.0c (Oct 05) SDK is available for download at the URL below:

http://www.filehippo.com/download_directx/479/

Finally, from the following it is safe to deduce that MPC 6.4.8.6 was compiled with VS2005

Changes in Media Player Classic 6.4.9.1 :

- update svn ignore list;
- add the needed DirectX include files and ddraw.lib;
- add the atl include files;
- add VS2008 project/solution files (quickly updated from VS2005 files with the minimum needed changes to compile);
- update common/release.vsprops and the manifest file;
- now mpc should compile with VS2008;
- backport r3013,r3019 from mpc-hc svn.

In the light of the above, Rex could you please please please recompile the external decoder for me u sing DirectX SDK October 2005 & VS 2005. Since you are so smart , I am sure it will only take you a few minutes this time around.
Since the sound is already so close, I am sure the above decoder will replicate the sound of the internal decoder of MPC 6.4.8.6.
I guess the settings in the decoder were optimized with the latest DirectX version at the time and hence do not work so well with the latest libraries.
Also, would you happen to know if there is a way to change the settings in this external decoder – i.e. from 16-bit to 24-bit…because it cannot be right clicked on.
P.S: I use Windows XP – do don’t worry about the Non-Unicode version.
Thanks for all your help with this crazy obsession of mine, Rex.
I owe you a beer.
Regards, Ray

aquamarinebeach
31st January 2013, 22:19
Also given DirectX's quirks, I was reading it's best to uninstall a version of DirectX SDK before installing another one - due to potential problems....it may cause when compiling....Once again I have no practical experience with that - just stuff i read and thought may be helpful to you with this huge favour you have done to me.

Hey Rex, sorry to disturb you again man, the link above only had the October 2005 end-user files.

I was able to find the October 2005 SDK at the URL below

http://filemare.com/browse/115.90.232.68/driver/dxsdk_oct2005.exe

P.S: Don't forget to uninstall your current DirectX SDK before installing this one - yo don't wanna take the chance that it causes problems to your current libraries.

I guess, once you have compiled the decoder you can switch back to your current Directx SDK.

Thank you so much for your time and effort man

aquamarinebeach
5th February 2013, 08:44
Impatiently waiting for some generous soul to compile Mpadecfilter.ax 1.0.0.0 from SVN 447 (Source Code of MPC 6.4.8.6)

http://guliverkli.svn.sourceforge.net/viewvc/guliverkli?view=revision&revision=447

and October 2005 Directx 9 Libraries (the decoder will sound the best with those as MPC 6.4.8.6 was built around the latest DirectX libraries available at the time of its release - i.e 6 Nov 2005) - Download URL below:

http://filemare.com/browse/115.90.232.68/driver/dxsdk_oct2005.exe

P.S: MPC 6.4.8.6 was compiled with VB2005. My knowledge about compiling is very limited. So, I don't know whether using VB 2005 or VB 2008 could also make a difference to the way the decoder sounds.

Thanks in advance for your help

LigH
5th February 2013, 08:53
Except for bugs, every compiler should create code which does the same, effective in all cases, just more or less efficient.

If you couldn't rely on that, "compiler independency" or even "portable sources" wouldn't make any sense.

aquamarinebeach
5th February 2013, 15:56
Except for bugs, every compiler should create code which does the same, effective in all cases, just more or less efficient.

If you couldn't rely on that, "compiler independency" or even "portable sources" wouldn't make any sense.

I understand what you are saying - but I will give you a simple example. Whenever I update DirectX libraries on my PC, my sound card drivers sound more boomy and less accurate. I have to reinstall my sound drivers to overwrite these DirectX library files in order to get my sound back to its optimal level - so (from practical experience) I do know for a fact that different DirectX libraries do indeed make the sound different.

To support what you said, I guess using VB 2005 or VB 2008 should not make a difference though.

clsid
5th February 2013, 19:09
The compiler and DirectX lib have no effect at all on the sound quality of MPA splitter/decoder. PERIOD.

aquamarinebeach
5th February 2013, 19:12
The compiler and DirectX lib have no effect at all on the sound quality of MPA splitter/decoder. PERIOD.

So clsid, in your opinion what would cause the difference in the sound between the internal mp3 decoder of MPC 6.4.8.6 and the external decoder [Rex] compiled?

Please refer to the first post on: http://forum.doom9.org/showthread.php?t=167054 for the differences heard.

clsid
6th February 2013, 00:22
This topic is about ffdshow. You should take this MP3 decoder discussion elsewhere. I don't know nor care what [Rex] did. Create a blind test if you want to be sure your mind isn't fooling you. Hint: use GraphStudioNext + File Writer filter to dump output to a WAV file.

e-t172
6th February 2013, 01:09
Whenever I update DirectX libraries on my PC, my sound card drivers sound more boomy and less accurate.

That would be very, very, *VERY* strange. The only explanation would be that your sound card's drivers have been designed and developed by monkeys, and even then, it would be a challenge to diagnose the actual root cause. A more likely explanation is that you're simply imagining it.

ryrynz
6th February 2013, 05:24
This topic is about ffdshow. You should take this MP3 decoder discussion elsewhere. I don't know nor care what [Rex] did. Create a blind test if you want to be sure your mind isn't fooling you. Hint: use GraphStudioNext + File Writer filter to dump output to a WAV file.

I was going to suggest this also, use Foobar with the ABX Comparator component once you've made the WAV files as Clsid suggested.