Difference between revisions of "Foobar2000:Foobar2000"

From Hydrogenaudio Knowledgebase
Jump to: navigation, search
(Intermediate Use)
(Novice Use)
Line 54: Line 54:
 
Go to the [[foobar2000:Newbie Guide]]
 
Go to the [[foobar2000:Newbie Guide]]
  
=== Novice Use ===
+
=== Novice User Guide ===
  
 
==== Basic Color Codes ====
 
==== Basic Color Codes ====

Revision as of 18:58, 5 April 2005

foobar2000 is a free music player for Windows. It features multiple playlists, a music database, streaming, ReplayGain support, extensive plug-ins support and more.



A note to potential editors

The Newbie Guide is intended to provide no more than a very basic competence in fb2k. Therefore, it should be relatively broad, readable in one sitting, and contain only the most essential information for getting started. Any documentation beyond this purpose belongs in the Intermediate or Advanced Use sections. Similarly, small issues that demand a significant amount of detail are better suited for the FAQ section.

Remember that if any reader feels that the Newbie Guide is beneath them, they may always move beyond it, but a Newbie Guide that is bogged down by too much information will be no less intimidating than the looming behemoth we call our forum.


Supported...

Playback Formats

Supported through plug-ins:

In addition, foobar2000 can also play music directly from compressed RAR, ZIP and 7-ZIP archives without requiring the user to extract the files prior to playing.

Languages

  • English

Platforms

  • Windows

No known plans exists to port it to other platforms, but attempts have been made, with varying degrees of success, to run foobar2000 on x86 Linux systems by using Wine.


User Interface

Standard

By default foobar2000 uses the standard interface, foo_ui_standard. This interface is based around a tabbed list of playlists. Playlists are then formatted according to the title formatting strings entered by the user. These allow access to tag data, as well as information about the state of the program in the playlist display.

Columns UI

foo_ui_columns is an extension of the ideas used in the standard interface. It takes the open area of the playlist and divides it into one or more columns that have individual formatting strings. Recent versions of Columns UI have also added support for UI Extension panels which appear in Columns UI's sidebar or in the toolbar.

Because of the useful extensions to the Standard UI, Columns UI is rapidly becoming popular and continues to be under rapid development.


Newbie Guide

Go to the foobar2000:Newbie Guide

Novice User Guide

Basic Color Codes

Click on the "Colour" tab within the "Columns" tab of the Columns UI preferences. It is empty. If you want to customize the colors used in a column, you would put the color codes here and check the "Use custom colour spec" box above.

Beneath the text box you will see a six-character hex code with a block character on either side of it:

�0080FF�

This is what a color code looks like. To get a color code for a specific color, click on the "..." button, which will pop-up a palette and return the color you choose in the same gray box, ready to be copied and pasted.

The way you format colors is given by clicking the "Tools" button, then by clicking "String help." Concentrate on the first four items, which are required in every color code string:

text|selected text|background|selected background

For example, if I wanted my "Artist" column to display red text on white background when not selected, and yellow text on blue background when selected, I would use this format:

(red color code)|(yellow color code)|(white color code)|(blue color code)

The proper color code would then be:

�0000FF�|�00FFFF�|�FFFFFF�|�FF0000�

Custom color sample

Note that unlike most other applications, Foobar uses a hexadecimal BGR color scheme, which means that if you use any alternate color pickers you will need to switch the first and last two characters. (Example: FF0080 (magenta) in Photoshop should be changed to 8000FF in Foobar)

The block character may instead be represented by $char(3), as in:

$char(3)0000FF$char(3)

You may also represent color codes as RGB values using this format:

$rgb(255,128,0)

These alternate codes are useful when the block character is unavailable or becomes problematic (as it does in Firefox).

Advanced TAGZ

Album List & Album List Panel

The Album List extension (foo_albumlist) comes as a part of the default Foobar package. This extension allows you to sort your music a variety of ways, each displaying it in a hierarchical tree format. While Album List comes by default and can be used without the Columns UI, the Album List Panel extension (foo_uie_albumlist) improves on it in many ways.

Usage of Album List

The Album list sorts music through a variety of sort strings. To get the music to display, you must enable the database by going to preferences/database. By default, Albumlist comes with a handful of "views," which when selected show different layouts of your collection. All of these views are fully customizable with TAGZ, and additional views can be added or removed in the preferences. When making a new view using TAGZ, keep in mind that each branch is represented by a single pipe ("|") character. It is important to note that the TAGZ string will be split up by these pipes, meaning that each section must be valid TAGZ code by itself. For example:

$if(%album artist%,%album%|$num(%tracknumber%,2) - %title%,%artist%|%album%|$num(%tracknumber%,2) - 
%title%)

This is not valid code. As far as Albumlist is concerned, this string would be interpreted as such:

$if(%album artist%,%album%
$num(%tracknumber%,2) - %title%,%artist%
%album%
$num(%tracknumber%,2) - %title%)

Assuming that the intended behavior was for %album artist% to have a different string than the regular artist, you will have to put an $if() statement in every section:

 $if(%album artist%,%album%,%artist%)|$if(%album artist%,$num(%tracknumber%,2) - 
 %title%,%album%)|$if($not(%album artist%),$num(%tracknumber%,2) - %title%)

This is valid code.

ReplayGain

Replaygain calculates the average volume of either a track (track gain) or an album (album gain) and uses this information to properly adjust the volume of tracks, that are mastered at different volume levels, during playback. This will make sure that you will have a similar volume levels on all of your tracks or albums without loosing any dynamic range of your music. In the case of Album Gain, it will even make sure that more quiet tracks of an album will sound more quiet and tracks that where meant to be louder, louder. As you can probably already tell, Album Gain would probably be the best way to make use of Replaygain. For more details, check the Replaygain wiki page.

Setting it up is realtively easy. Simply select all the tracks you want to Replaygain in your playlist and you will be presented with several options:

  • Scan per file track gain
    This will scan the selection and will add Replaygain values file by file, meaning that the difference in loudness of files coming from the same album is not preserved. This would be the recommended way of scanning tracks of wich you don't own the entire Album. (If you only have a few files of an Album, but they come from the same source (rip), I would also recommend using Album gain.
  • Scan selection as album
    Not that hard to guess, using this option, you will have to select all the tracks that belong to one album and scan them. The difference in loudness between quiet and loud tracks will be left intact.
  • Scan selection as multiple albums using album field
    In case all your files are properly tagged this would probably be the easiest way to initially set up Replaygain. It will scan all selected files and properly gain them album by album using the album info found in the file tag.

Replaygaining your files will not alter them in any way. It stores all the information it needs into the file tags or Foobars database and the actual file is not changed what so ever. The whole process is obviously fully reversible by simply removing the Replaygain info from the file. (Or simply disabling Replaygain during playback). Check your playback preferences, for all playback options considering Replaygain

Replaygain can also be used when creating mix cd's with Foobars diskwriter. Simply enable it in the diskwriter preferences to make sure you get nicely balanced compilations without annoyingly large differences in volume levels.

Note that Replaygain will in a lot of cases also prevent your files from clipping, since it usually lowers the playback volume of very loudly mastered tracks. Whereas this is not the main intention of Replaygain ( volume levelling is), this comes as a nice side effect to some people. You even have the option to scale down tracks that still clip after applying Replaygain using the peak info (again, check your preferences for this option).

Last but not least, I will mention the two preamps in the Playback preferences. Except if you know exactly what you are doing, it is not recommended to raise the output of the preamps above the default 0.0dB in any way. However you can use these to slightly compensate for the difference between replaygained and unreplaigained Tracks. Simply estimate your average Replaygain level and lower the preamp for files without Replaygain info by that value. I found -8dB to work quite well for me. This obviously should not be used to compensate for not properly Replaygaining your tracks, but definetaly will protect your ears and your equipment when coming across tracks that miss Replaygain info.

An interesting discussion of Replaygain, mastering, clipping etc.

Diskwriter

The Database & Tag Writing

The database identifies files by path, filename, modification date and filesize. If any of these properties are changed by a program other than foobar itself, foobar will reload the metadata from the file the next time it is played.

Default UI Strings


Advanced Use


Tips & Tricks

Volume Slider in Sidebar/Toolbar

foo_uie_volume

Placing Panels Above the Playlist

To place panels above the playlist, check "List all toolbars" in the "Other" tab of the Columns UI preferences. When checked, right-clicking on the toolbar will give you the option of placing panels on the toolbar. If a panel appears "squashed," it is because it needs to have a minimum height set in its preferences. If the panel extension has no minimum height setting, you may place it in a panel stack, and set a minimum height via the panel stack options.

Two Tabbed Panel Stacks in One Sidebar/Toolbar

While holding shift: Right-click on sidebar/toolbar, click "Layout > Tabbed Panel Stack"

Handy Strings

Standardize my PLAY_DATE and PLAY_TIME fields

LAST_PLAYED has been developed as a standard to replace the widely variable PLAY_DATE and PLAY_TIME usages. Use these Masstagger scripts to convert your specific format to this new standard. More info about LAST_PLAYED available here.

!!!NOTE!!!: Be VERY CAREFUL when applying any of the scripts below. Be sure to test the script on one file before running it on your whole library.

If your current time/datestamp is in the format...

  • PLAY_DATE = DDMMYY, PLAY_TIME = HHMMSS (24hr) (this is foo_playcount's default format)
    ...download scripts from this thread post.
  • PLAY_DATE = YYYYMMDD, PLAY_TIME = HHMMSS (24hr)
    ...download script from this thread post.
  • PLAY_DATE = DD~MM~YY, PLAY_TIME = HH~MM~SS (where ~ is any one single-character separator)
    ...download script from this thread post.
"The Band" becomes "Band, The"
$if($strcmp($left(%artist%,4),The ),$right(%artist%,$sub($len(%artist%),4))', 'The,%artist%)
Pad tracknumber with leading zeros ("1" becomes "01")
$num(%tracknumber%,2)
Alternating Stripes in the playlist (Like iTunes)

Go to Preferences/Display/Columns UI/Globals/Colour Tab, enter this under the background section of your color string (text|selected text|background|selected background|...)

$ifgreater($mod(%_playlist_number%,2),0,�F2E8DF�,�FFFFFF�)

Replace the last two colors with your own.

Indicate Replaygain tags

This is if you want to show which kind of Replaygain you have. This string will show an "A" if album gain has been applied, a "T" if Track gain is applied, and a red "X" if there is no replaygain data in the file.

$if(%__replaygain_album_gain%,A,$if(%__replaygain_track_gain%,T,�0000FF|000�X))
Indicate Audioscrobbler submission

Audioscrobbler is a service that, using the foo_scrobbler component, keeps a record of the songs you listen to and provides various statistical reports. A track is submitted when either 50% or 4 minutes have elapsed, and this is what the string tests for. Actual submission to Audioscrobbler can only be verified by foobar's console.

$if(%_isplaying%,
$ifgreater(%_time_elapsed_seconds%,240,'*',
$ifgreater(%_time_elapsed_seconds%,$div(%_time_total_seconds%,2),'*',)))

Components

Find components for foobar2000 at the components page


FAQ

A rather extensive FAQ is available at the SH/SC Wiki.

Q: Album list shows dead entries after a restart, even though I used "Remove dead entries" before. Why is that?

A: The files are probably still contained in one of your playlists or in the history (only if you are using an older version of foo_history). Use "Playlist/Remove dead entries" from the main menu on all your playlists, or remove the dead entries manually. As long as the files are on a playlist, they will be in the database and thus will show up in album list.

Encouraged Tag Standards

FIELD_NAME [format] (component)

  • ALBUM ARTIST [e.g., Various Artists, The Foobar Collective] (none)
    Notes: Field name is ALBUM ARTIST, with no underscore. Tag should exist if and only if an album is by multiple artists, and be contained in every track. Track-specific artists should be entered in the ARTIST tag, never in the TITLE tag.
    (more about this standard)
  • LAST_PLAYED [2005-03-22 19:00:00...] (foo_playcount)
    Notes: Any amount or type of data may be placed after the time. Compliant TAGZ code shall use $substr() instead of $right() when extracting substrings from this field.
    See also: Standardize my PLAY_DATE and PLAY_TIME fields
    (more about this standard)

Important Links

Official Site

Community

Guides

Appearance

Components / Plugins

General
Specific Components
  • case's Page: special installer, diskwriter components, etc.
  • kode's Page: file-formats, archive-support, OSD, shuffle (temporary mirror since the primary host is down)
  • Messer's page: freedb-masstagger, streaming with save-function, etc.

Thanks

picmixer: ReplayGain tutorial