Watch on youtube.com


The commandline in uploaded video was:

[me@host: ~]$ for n in *.wav ; do for f in "" ",earwax" ; do \
> echo -n "${n} ${f}" ; ffplay -f lavfi "
> amovie=${n},atrim=0:4
> ${f}
> ,asplit[a1][a2];
> [a1]volume=1[out1];
> [a2]channelsplit[a21][a22];
> [a21]showcqt=s=$((16*60))x$((9*60/2)),setsar=1[v1];
> [a22]showcqt=s=$((16*60))x$((9*60/2)),setsar=1,vflip[v2];
> [v1][v2]vstack[out0]" -autoexit 2>/dev/null ; done ; done

Technically, this filter is an FIR filter that uses specific designed and tuned taps. (This filter was ported from SoX, so unusual for ffmpeg, which has almost no comments in the source code, af_earwax.c has a little technical description. Read it if you are interested.)

An explanation of what this filter does is that given by “ffmpeg -filters”:

[me@host: ~]$ ffmpeg -filters 2>&1 | sed '/Filters:$/,/sink filter$/!d'
  T.. = Timeline support
  .S. = Slice threading
  ..C = Command support
  A = Audio input/output
  V = Video input/output
  N = Dynamic number and/or type of input/output
  | = Source or sink filter
[me@host: ~]$ ffmpeg -filters 2>&1 | grep earwax
 ... earwax            A->A       Widen the stereo image.

or in the documentation:

Make audio easier to listen to on headphones.

This filter adds ‘cues’ to 44.1kHz stereo (i.e. audio CD format) audio so that when listened to on headphones the stereo image is moved from inside your head (standard for headphones) to outside and in front of the listener (standard for speakers).

(This explanation also is ported from SoX.)

Since this filter has no parameters, that’s all even if the processing result is not what you want:

[me@host: ~]$ ffplay some.mp3 -af earwax

There is nothing more you can do. The best you can do is to apply it multiple times. There is no guarantee that this ready-made filter will be what you want, as the judgment of “easy listening on headphones” is subjective (and depends on the input audio).

By the way, what does this taps design come from (who) and the origin of the name “earwax”? It is the author of SoX that gives the explanation “easy to hear on headphones”. Also, “earwax” is literally “earwax”, it seems not a technical term (at least I didn’t find that as technical term). In other words, the description and naming seem to be inconsistent. In fact, the sound to which this filter has been applied sometimes becomes such a muffled sound like when earwax is clogged or with earplugs. I think this confusing explanation is probably intentional (as “double meaning”). Probably, he omitted the “verb” of what to do with earwax. It’s a fancy naming.

After all, what do I want to say? You can be disappointed if you understand on a purpose-based basis (“easy to hear on headphones”), rather consider using it as “one of interesting audio effect”.