Page 1 of 1

enhanced conversion process

Posted: Sat Feb 18, 2012 5:48 pm
by kevin32
Renegade, have you seen ReconUnit's HLDJ Goldwave Conversion tutorial?

http://www.youtube.com/watch?v=PLMV0e11w3Q

In the beginning of the video he shows all of his presets and settings he uses, but if you want to hear the difference between the original song, HLDJs converter, and Goldwave's conversion utilizing his presents, fast foward the video to 4:30. I've been on the surf servers and heard several of his spam with no crackling, hissing, or too much bass.

Using the current HLDJ converter, some of my songs still crackle or hiss, and I find myself having to tweak them often, especially for my electronic/dance songs. I'm wondering if some of the options he used could be integrated into HLDJ's converter so we could achieve the same quality without having to go through all those steps he used.

Re: enhanced conversion process

Posted: Sat Feb 18, 2012 6:51 pm
by Renegade
HLDJ's converter performs some dithering and noise shaping, from the best I could find in libmad. Clipping will still happen though (the crackles you hear) and this probably can be avoided by encoding in 2-passes (it will take twice as long though): first pass you record stats, like what was the highest peak, second pass you adjust gain so that the highest peak stays below some maximum.

for a closer look, in hldj_conv.c, clipping stats are available through dd->stats (clipped_samples, peak_sample, etc).
and the filters that affect quality are: linear_dither, gain_filter, mono_filter
It's possible to improve things there, or add other/better filters (like equalization), or from other libraries:
http://ffmpeg.org/
http://sox.sourceforge.net/libsox.html

libmad and libsamplerate were easier to work with at the time. Now, I don't think I'll be modifying the converter code much (or any other code), but if anyone is interested in adding a few filters, I can help them out.