FFSoX Player

Copyright © 2010 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
History
Installation
Additional Setup
General Configuration
Configuring SoX
  Amplification
    The "vol" Effect
    The "gain" Effect
  Resampling
  Dithering

About

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).

URL: http://in-ffsox.sourceforge.net/
Project: http://sourceforge.net/projects/in-ffsox/
Download: http://sourceforge.net/projects/in-ffsox/files/

Getting Help: http://sourceforge.net/projects/in-ffsox/forums/forum/1162526
General Discussion: http://sourceforge.net/projects/in-ffsox/forums/forum/1162525

History

2010-08-28      0.4.3
  • Fixed reading metadata from OGG/Vorbis.
  • Fixed Musepack SV7 and SV8 formats crashing at the end of a track.
2010-08-22   0.4.2
  • Fixed seeking OGG.
  • Verified that sreaming (e.g. via HTTP) is supported. For streaming "SoX decoder" in preferences should be switched off.
2010-08-08   0.4.1
  • Support for "avcore-0.dll" (new FFmpeg library, c.f. also how to install FFmpeg from third party sites below).
  • Resolved some video synchronization issues.
  • Switch on/off SoX decoders via configuration.
2010-07-25   0.4
  • Enabled seeking (depends on whether the corresponding FFmpeg format supports it).
  • Made switching on/off the gain effect's limiter available in configuration dialog.
  • Resolved some issues which caused the plug-in to crash in case of unsupported codecs.
2010-07-06   0.3
  • Posted some of the arguments why I wrote this plug-in on Hydrogenaudio (HA). They where considered by HA's Super Moderators as NONSENS and unappropriate advertisement, respectively, and where moved into HA's Recycle Bin (cf. here and here).
2010-07-04   0.3
2010-07-04   0.2.1
  • Fixed a minor bug which caused the plug-in to crash in case of unsupported codecs.
2010-07-03   0.2.1
  • No need any longer to switch off global RG settings.
  • FFmpeg build process adapted (e.g. "-std=gnu99" instead of "-std=c99").
2010-07-03   0.2
  • Added FFmpeg source code to "in_ffsox-0.2-src.tar.gz" in order to comply with FFmpeg license.
2010-06-27   0.2
  • NSIS installer added.
  • Minimal FFmpeg added (only with decoders/containers for VORBIS, FLAC, WAVPACK, WAV, THEORA, VP8, OGG, MKV, WEBM).
2010-06-13   0.1
  • Initial release.
  • Decoding via libSoX.

Installation

  1. If not already done download and install Winamp (v5.58 recommended, v5.572 should work, v5.571 may crash on playing video, v5.56 should work).
  2. If not already done close Winamp.
  3. Download the latest FFSoX Player release.
  4. Run the installer "in_ffsox-<ver>.exe".
  5. If you want to have full FFmpeg support do the following:
  6. Start Winamp.

Additional Setup

The following steps are strictly not needed but recommended.

  1. If not already done close Winamp.
  2. If your sound card doesn't support native ASIO (if you've never heard about ASIO this propably is the case) download and install ASIO4ALL.
  3. Google for "winamp asio otachan".
  4. Download the "out_asio(dll).dll" and drop it into Winamp's "Plugins" sub-folder (e.g. "C:\Program Files\Winamp\Plugins").
  5. Start Winamp.

General Configuration

  1. If not already done start Winamp.
  2. Go to Options -> Preferences -> Output -> ASIO output:

  3. Choose the device (e.g. ASIO4ALL or your native ASIO driver):

  4. Close both preference dialogs.
  5. Start playing a song.
  6. Double click the ASIO4ALL symbol appearing at the far right of Window's task bar.

    Note the bit depth (e.g. 16 or 24 bits).

  7. If there are drop outs adjust buffer sizes for both, ASIO4ALL and Winamp's ASIO plug-in.
  8. Go to Options -> Preferences -> Input -> FFSoX Player:

  9. Adjust Extensions and Bits per Sample (according to ASIO4ALL, see above).

    Note: If choosing an extension make sure that no other input plug-in is supporting the same.

  10. Go to Options -> Preferences -> File Types and click All:

  11. Go to Options -> Preferences -> Playback -> Playback and adjust Allow 24bit depending on wether your sound device is 24 bit or not (see ASIO4ALL above).

  12. Go to Options -> Preferences -> Video and adjust Video Preferences according to your needs:

Configuring SoX

The options to configure SoX correspond to the SoX command line (cf. SoX man page):

Amplification

Amplification (or attenuation) is needed to implement replay gain. SoX offers two effects for amplificationm (or attenuation), "gain" and "vol".

The "vol" Effect

Coosing "vol" from the drop down box corresponds to the following SoX command:

sox <input file> <output file> vol <gain>dB

Switching on "Limit" adds a limiter with the associated limiter gain to the "vol" effect:

sox <input file> <output file> vol <gain>dB <limiter gain>

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".

The "gain" Effect

Coosing "gain" from the drop down box corresponds to the following SoX command:

sox <input file> <output file> gain <gain>

Switching on "Limit" adds a limiter to the "gain" effect:

sox <input file> <output file> gain -l <gain>

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.

Resampling

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

sox <input file> <output file> rate <sample frequency>

Depending on the power of your PC you may wish to select a quality level for resampling (cf. SoX man page):

sox <input file> <output file> rate [-q|-l|-m|-h|-v] <sample frequency>

The switch Largest Multiple defines how the FFSox Player plug-in should interpret the selected sample frequency:

Dithering

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, some people don't like it. We recommend it.

Activating dithering corresponds to the following SoX command:

sox <input file> <output file> <amplify> <resample> dither

Activating noise shaping corresponds to the following SoX command:

sox <input file> <output file> <amplify> <resample> dither -s