Copyright © 2010-2012 by Peter Belkner (http://home.snafu.de/pbelkner/)
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
Download the latest Version
Contents
About | ||
News | ||
Objectives | ||
Installation | ||
Additional Setup | ||
General Configuration | ||
Configuring SoX | ||
Amplification | ||
The "vol" Effect | ||
The "gain" Effect | ||
Resampling | ||
Dithering |
FFSoX Player is a Winamp input plug-in based on the FFmpeg and SoX libraries. Using FFmepg almost all multimedia files may be played with Winamp, including but by far not restricted to H.264 and VP8. Audiophile sound processing is provided using high quality 32 bit SoX algorithms and dithering.
Note that only a minimal FFmpeg is bundled with FFSoX Player releases. If you you want to have full FFmpeg support you have to get a complete FFmpeg build from third party sites (see below).
Home: | http://in-ffsox.sourceforge.net/ | |
Project: | http://sourceforge.net/projects/in-ffsox/ | |
Download: | http://sourceforge.net/projects/in-ffsox/files/ | |
FFSoX Player at WA Forum: | http://forums.winamp.com/showthread.php?t=319968 | |
FFSoX Player at Doom9 Forum: | http://forum.doom9.org/showthread.php?t=155350 | |
Getting Help: | http://sourceforge.net/projects/in-ffsox/forums/forum/1162526 | |
General Discussion: | http://sourceforge.net/projects/in-ffsox/forums/forum/1162525 | |
Loudness Analysis with R128GAIN: | http://r128gain.sourceforge.net/ |
2012-12-13 | 0.6.1 |
|
||||||||||||
2012-12-08 | 0.6.0 |
|
||||||||||||
2012-11-25 | 0.5.0 |
|
||||||||||||
2012-11-04 | 0.4.9-2 |
|
||||||||||||
2012-04-29 | 0.4.9 | Looking up "in_ffsox.ini" as described by "DrO" at WA forum:use IPC_GETINIDIRECTORY(W) from wa_ipc.h and then append \Plugins\in_ffsox to get the correct location - that api has been around since 2.9x -daz |
||||||||||||
2012-03-09 | 0.4.8 |
|
||||||||||||
2012-02-11 | 0.4.7 |
|
||||||||||||
2011-10-13 | 0.4.6.7 |
|
||||||||||||
2011-10-03 | 0.4.6.6 |
|
||||||||||||
2011-10-01 | 0.4.6.5 |
|
||||||||||||
2011-05-15 | 0.4.6.4 |
Important: Requires "bumped"
FFmpeg, i.e.
"avformat-53.dll",
"avcodec-53.dll", and
"avutil-51.dll". For upgrading to the latest full FFmpeg build
(cf. installation below) get the respective DDLs from
http://ffmpeg.zeranoe.com/builds/win32/shared/, or | ||||||||||||
2011-01-15 | 0.4.6 |
|
||||||||||||
2010-12-16 | 0.4.5 |
|
||||||||||||
2010-10-10 | 0.4.4 |
|
||||||||||||
2010-08-28 | 0.4.3 |
|
||||||||||||
2010-08-22 | 0.4.2 |
|
||||||||||||
2010-08-08 | 0.4.1 |
|
||||||||||||
2010-07-25 | 0.4 |
|
||||||||||||
2010-07-04 | 0.3 |
|
||||||||||||
2010-07-04 | 0.2.1 |
|
||||||||||||
2010-07-03 | 0.2.1 |
|
||||||||||||
2010-07-03 | 0.2 |
|
||||||||||||
2010-06-27 | 0.2 |
|
||||||||||||
2010-06-13 | 0.1 |
|
Please note: Most of the following, if not all, will not apply if you prefer to listen to your music by a simple 2.1 system (or similar) on your desktop. We refer to our home stereo tool chain:
The whole thing started some years ago by being totally annoyed by the crappy sound coming out of the speakers when connecting the PC to the home stereo.
In order to get an idea of what potentially disturbs digital audio plaback you may read the "The Unique Evils of Digital Audio" paper published by Benchmark Media Systems, Inc, one of the leading suppliers of digital audio equipment. The bottom line is that each distortion in the playback chain, being it jitter (induced by fluctuations of your DAC's clock) or quantization noise (rounding errors induced by digital sound processing, e.g. the application of replay gain), will correspond to the generation of nonhamonics interfering with the original signal.
There are a lot of people out there telling you that you are physically unable to here distortions of that small order of magnitute. Don't believe them by any means:
A main objective of the solution proposed here (the Winamp plug-in is only part of it) is to minimize any distortion of the audio signal, or to avoid it at all, if possible. This contradicts the second main objective to provide replay gain, unfortunately implying digital sound processing (DSP), i.e. altering the audio signal by intention in the digital domain. The compromise is as follows:
http://ffmpeg.zeranoe.com/builds/win32/shared/
The following steps are strictly not needed but recommended.
Note the bit depth (e.g. 16 or 24 bits).
Note: If choosing an extension make sure that no other input plug-in is supporting the same.
The options to configure SoX correspond to the SoX command line (cf. SoX man page):
Amplification (or attenuation) is needed to implement replay gain.
SoX offers two effects for amplificationm (or attenuation), "gain" and "vol".
Coosing "vol" from the drop down box corresponds to the
following SoX command:
Switching on "Limit" adds a limiter with the associated limiter gain to the "vol" effect:
In case of attenuation no limiter is added even if switched on.
The limiter may make clipping a bit smoother. We recommend to avoid
clipping at all by using an appropriate (small) replay gain preamp
and using the "gain" effect instead of "vol".
Coosing "gain" from the drop down box corresponds to the
following SoX command:
Switching on "Limit" adds a limiter to the "gain" effect:
In case of attenuation no limiter is added even if switched on.
To our ears the "gain" effect seems to introduce much less noise then
the "vol" effect. Because of that the "gain" effect is our preferred
method for amplification.
Depending on your taste and on the capabilities of your digital
analog converter (DAC, see e.g.
http://en.wikipedia.org/wiki/Digital-to-analog_converter)
you may wish to up-sample the audio. This is done by choosing an appropriate
sample frequency from the corresponding drop-down box. The corresponding
SoX command looks like
Depending on the power of your PC you may wish to select a quality level
for resampling (cf.
SoX man page):
The switch Largest Multiple defines how the FFSox Player plug-in
should interpret the selected sample frequency:
Because this mode avoids odd fractions between input and output
sample frequencies it is of particular interest if you only want
to up-sample during play-back because of sound improvement and are
not bound to a particular output sample frequency.
Dithering is a kind of "intelligent" rounding when it comes to throwing
away the superfluous bits from SoX's internal 32 bit sound representation
(i.e. 8 bits in case you've chosen 24 bit for output and 16 bits in case of
16 bits for output, cf.
http://en.wikipedia.org/wiki/Dither). Please note that dithering is a matter of taste.
Activating dithering corresponds to the following SoX command:
Activating noise shaping corresponds to the following SoX command:
The "vol" Effect
sox <input file> <output file> vol <gain>dB
sox <input file> <output file> vol <gain>dB <limiter gain>
The "gain" Effect
sox <input file> <output file> gain <gain>
sox <input file> <output file> gain -l <gain>
Resampling
sox <input file> <output file> rate <sample frequency>
sox <input file> <output file> rate [-q|-l|-m|-h|-v] <sample frequency>
Dithering
sox <input file> <output file> <amplify> <resample> dither
sox <input file> <output file> <amplify> <resample> dither -s