User:Mjb/foobar2000

From Offset
Jump to navigationJump to search

Here are my notes regarding how I have configured foobar2000, a free audio player for Windows.

Any questions/comments, email me at root at skew.org.

UI

Preferences:

  • Display
    • Default User Inferface – I like its simplicity. The alternative, columns user interface (CUI) would be fancier, but I don't like to introduce dependencies, and it helps simplify bug reporting.
    • Prefer currently playing track – i.e. I like the Album Art Viewer to reflect the currently playing track, not whatever else I have selected.
  • Context menu
    • (all selected except Copy names, Copy, Collect)
  • Default User Interface
    • Text = light blue
    • Background = black
    • Selection = peach
    • Highlight = yellow
    • Fonts
      • Default, Tabs, Status Bar = Source Hans Sans JP, Regular, 8 pt (or Yu Gothic UI, Regular, 7 pt)
      • Lists = Source Han Sans JP, ExtraLight, 7 pt (or Yu Gothic UI, SemiBold, 7 pt)
      • Playlists = Source Han Sans JP, Light, 8 pt (or Roboto, Regular, 8 pt)
      • Console = Inconsolata, Regular, 9 pt
    • Playlist View
      • All my custom columns and groupings are in a separate document, not yet on this wiki.
  • Keyboard Shortcuts
    • Ctrl+R = Remove tags
    • Shift+Ctrl+R = Reload info
    • Alt+F = Open containing folder
    • Alt+C = Crop selection
    • Shift+Delete = Delete file
    • Shift+Ctrl+O = Optimize file layout + minimize file size
    • Ctrl+G = Scan per-file track gain
    • Shift+Ctrl+G = Scan selection as a single album
    • Ctrl+B = Apply track ReplayGain
    • Shift+Ctrl+B = Apply album ReplayGain
    • Ctrl+D = DR Meter
    • Shift+Ctrl+F = Convert (FLAC, same name, no changes) - for splitting image rips
    • Shift+Ctrl+T = Convert (FLAC, same name, max compress, tmp subfolder) - for recompressing albums
  • Media Library
    • Album List
      • Double-click action: Add to current playlist
  • Playback
    • ReplayGain
      • Source mode: album; Processing: apply gain
      • Cursor follows playback
    • DSP manager
      • Dynamic DSP (see below)
      • Graphic Equalizer (for fine-tuning left & right, beyond the basic EQ I get with Nahimic's system-wide EQ)
      • Resampler (SoX): 48000 Hz, Best (to avoid lesser quality resampling by Windows)
  • Output
    • WASAPI (shared): Speakers [via component foo_out_wasapis]
    • Buffer length: 700ms
    • Smooth seeking enabled w/10ms fades on seek or manual track change
  • Shell integration
    • Register supported file formats on startup
    • Set "Enqueue" as the default action
    • Bring to front when adding new files
    • Sort incoming files by: %path_sort%
    • Exclude file types: *.CUE
  • Advanced
    • Display
      • Album art
        • Max external 8 MB, prefer embedded

Dynamic DSP

foobar2000 allows you to name a chain of DSPs as a preset, but doesn't provide a way to automatically choose the preset based on tags, filenames, or other attributes of the currently playing file. Dynamic DSP is the answer. It uses a title formatting script to generate the name of a chain of DSPs. These chains are just like presets, but specific to this component. I've barely scratched the surface of using it, but it's great so far.

I routinely annotate file names with comments in brackets, like this: Some Song [channels swapped].flac. Here are some common phrases I use:

  • weak bass
  • channels swapped
  • slightly fast

Each of these correlates to a DSP chain which compensates for that problem.

Then I have a title formatting script to generate the name of the chain, based on strings found in the filename.

Title formatting script

This assumes you have "Enable evaluation to multiple chains (separated by semicolon)" set.

$if($strstr(%filename%,excessive bass),basscut;)
$if($strstr(%filename%,weak bass),bassboost;)
$if($strstr(%filename%,excessive treble),treblecut;)
$if($strstr(%filename%,weak treble),trebleboost;)
$if($strstr(%filename%,slightly fast),slower;)
$if($strstr(%filename%,channels swapped),swapchannels;)
$if($strstr(%filename%,slightly slow),faster;)
$if($or($strstr(%filename%,'[mono'),$strstr(%filename%,'; mono]'),$strstr(%filename%,' mono ')),mono;)

DSP chains

bassboost
Equalizer: 55 & 77 Hz @ 8 dB, 110 @ 7, 156 @ 6, 220 @ 4, 311 @ 3, 440 @ 2, 622 @ 1, rest @ 0.
basscut
Equalizer: 55 & 77 Hz @ -8 dB, 110 @ -6, 156 @ -5, 220 & 311 @ -3, 440 @ -2, 622 @ -1, rest @ 0.
trebleboost
Equalizer: 1.2 & 1.8 kHz @ 1, 2.5 & 3.5 @ 2, 5 & 7 @ 3, 10 & 14 @ 4, 20 @ 5, rest @ 0.
treblecut
Equalizer: 1.2 & 1.8 & 2.5 @ -2, 3.5 @ -3, 5 @ -4, 7 @ -5, 10 @ -6, 14 & 20 @ -7.
slower
Playback Rate Shift: -1.0%
faster
Playback Rate Shift: +1.0%
swapchannels
Reverse stereo channels
mono
Downmix channels to mono
Equalizer: all @ +6
Convert mono to stereo (this is for the sake of the converter, which apparently randomly processes more than one file at a time under the assumption the channel format won't change.)

Spectrograms

Please see foobar2000 spectrograms.