Foobar2000:Foobar2000: Difference between revisions
Line 236: | Line 236: | ||
==== ReplayGain ==== | ==== ReplayGain ==== | ||
For a good explanation of what Replaygain is and how to use it effectively in foobar2000, see picmixer's '[http://www.hydrogenaudio.org/forums/index.php?showtopic=12653&st=0&p=129270&#entry129270 How To Set Up Replaygain]'. | For a good explanation of what Replaygain is and how to use it effectively in foobar2000, see picmixer's '[http://www.hydrogenaudio.org/forums/index.php?showtopic=12653&st=0&p=129270&#entry129270 How To Set Up Replaygain]'. | ||
[http://www.hydrogenaudio.org/forums/index.php?showtopic=31140 An interesting discussion] of Replaygain, mastering, clipping etc. | [http://www.hydrogenaudio.org/forums/index.php?showtopic=31140 An interesting discussion] of Replaygain, mastering, clipping etc. | ||
Revision as of 03:26, 14 February 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.
Supported...
Playback Formats
Supported through plug-ins:
- TTA, FLAC, Monkey's Audio, WavPack, Speex, Mod, SPC, TFMX, Shorten, OptimFROG, LPAC, WMA, AC3, PSF, NSF, XID, XA, Matroska
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.
A note to potential editors
As the author of the current edition of this wiki, I would like to clarify my aim. The Beginner's 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 Advanced Use section. 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 Beginner's Guide is beneath them, they may always move beyond it, but a Beginner's Guide that is bogged down by too much information will be no less intimidating than the looming behemoth we call our forum.
Thank you. --Topdownjimmy 18:40, 13 Feb 2005 (CST)
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.
Beginner's Guide
Introduction
Always remember that the best way to become comfortable with foobar is to read the forums regularly and to play around with foobar itself. 90% of what you learn will come from the forums and experimentation.
The heart of foobar lies in its components, which supplement foobar's functionality. If you are having trouble with a component, the first step is to consult that component's documentation, preferences, and forum thread. Any question you have as a beginner has probably already been asked and answered in the forums a half dozen times. Please search the forums thoroughly for an answer before posting your question. If you must post a question, try to avoid creating a new topic. An appropriate topic most likely already exists, so post your question as a reply in that topic.
Using Columns UI
It is best to start with Columns UI as your user interface; the TAGZ formatting needed is very basic and the panel extensions will make foobar much more user-friendly, resembling mp3 players you're more accustomed to.
Bookmark these sites before using Columns UI:
- Columns UI thread: very large, but the first post contains links to important related sites and panel extensions
- Columns UI FAQ: a short FAQ, including installation instructions
- Columns UI documentation: it is crucial that you familiarize yourself with this over time
The Columns UI interface consists of:
- Playlist View: The Playlist View is the large area that displays the songs in your current playlist. Other playlists appear as tabs at the top of the Playlist View. Each row in the Playlist View is divided into one or more columns that may be individually formatted using TAGZ strings.
- Toolbar: The Toolbar is the area above the Playlist View and can display playback buttons, the menu, playlist search, and other toolbar components.
- Sidebar: The Sidebar resides to the left of the Playlist View and can display panel extensions as well as toolbar components. The Sidebar is enabled by checking both "Enable Sidebar" and "Show Sidebar" in the "Columns UI" subgroup of the "Components" menu.
Panel Extensions
Panel extensions add album art, track info, and other useful components to the Columns UI Sidebar. Installing panels to Columns UI is simple; just copy the .dll into your foobar2000\components folder and restart foobar. To display an installed panel or toolbar in the Sidebar, right-click on any gray area of the Sidebar for a list of items you can add.
Links to supported panels are given in the Columns UI thread of the foobar2000 forums.
Some popular panels include (in no particular order):
- foo_uie_tabs Tabbed Panel Stack
Allows multiple panels to be stacked in a tabbed interface.
- foo_uie_albumart Album Art Panel
Displays album art from images in a specified folder.
- foo_uie_trackinfo Track Info Panel
Displays information about the currently playing or selected track. Can be customised using TAGZ strings.
- foo_uie_volume Volume Control Toolbar
Volume control extension for Columns UI. Provides a slider to control volume.
- foo_playlistfind Playlist Find Panel
Finds tracks in current playlist matching input text.
- foo_history History Plugin/Panel
Displays and provides browser-style navigation through recently played songs.
To see what some people have done with Columns UI and panel extensions, check out the Foobar Gallery. If you see something you like, try to do it yourself. If you get stumped, you might find an answer in the Tips & Tricks section below.
Basic TAGZ
TAGZ is the language used to define how information about a track is displayed. Although you can do some very complex things using TAGZ, you should have a basic understanding of it now because you'll be encountering it a lot whether you want to or not. The text displayed in each column of the playlist in Columns UI is defined by a string of TAGZ code, located in "Foobar 2000 > Preferences > Display > Columns UI > (Columns tab)." TAGZ strings and functions are thoroughly documented in the titleformat_help.html file located in your foobar2000 directory. Bookmark this file and familiarize yourself with it as much as possible. It might look very strange at first, but once you see some TAGZ strings "in action" it will begin to make sense, and you will refer to it constantly.
Looking in the Columns UI preferences, you will see that the TAGZ code used for the "Artist" column is:
[%artist%]
%artist% retrieves the contents of the ARTIST field stored in the file's tag. The brackets [ ] around %artist% mean that the ARTIST field should only be shown if it exists. If there is no ARTIST field, nothing will be displayed; without the brackets, a question mark would be displayed.
Not to be confused with TAGZ, a file's "tag" contains what is known as "metadata." Information about the file, such as artist, album, tracknumber, etc., are stored within the file in the form of tag fields. Maintaining accurate tags is a good habit to get into.
Some common tag fields are:
- ARTIST
- ALBUM ARTIST (for "Various Artists," etc.)
- ALBUM
- TRACKNUMBER
- TITLE (track title)
- DATE
- GENRE
- COMMENT
To view and edit the tag fields contained within a particular file, right-click on that file in the playlist and click "Properties."
Data in the "Technical info" pane on the right can be retrieved using a double underscore: %__bitrate%.
Looking again in Columns UI preferences, the TAGZ string used for the "Title" column is:
$if2(%title%,%_filename%)
Using titleformat_help.html, try to figure out what this TAGZ string will produce, and why it was written this way. You might also want to try creating columns that contain your own TAGZ strings. As always, titleformat_help.html is your best friend.
The trackinfo panel can be VERY helpful in teaching you how TAGZ strings behave. This panel updates in real-time as you edit its TAGZ-based configuration. It is recommended that you install and display this panel, using it as a "scratch pad" to help you become familiar with TAGZ.
As you become more proficient, you might want to download some ready-made Columns UI configs to see some more complex TAGZ strings in action. Import the .fcs file from the "Other" tab in the Columns UI preferences (be sure to export your current config first to back it up in case you're not happy with the one you import). Study how these strings do what they do and change them around to see how the display is affected.
Masstagger
The Masstagger component is very handy when you need to perform relatively complex tag operations on a group of files. For a more in-depth explanation of some of the possibilities of the Masstagger, see picmixer's 'FB2K's Masstagger, an unofficial Beginners Guide'.
To perform tag operations on a group of files using Masstagger, highlight those files in the playlist, right-click on them, and choose "Masstagger > Edit tags." The "Actions to perform" pane lists the actions that will be performed on the list of "Files to process" when the "Run" button is clicked. To add an action to perform, click the "Add" button.
A simple action to perform is to set some field to a given value. For example, to set the GENRE field for all selected files to "Rock," choose "Set value..." from the "Select action type" window. In the "Field name" drop down list, choose "GENRE," and in the "Field value" box, type "Rock" (without quotes). When you click "OK," the action will be listed in the "Actions to perform" pane. Click "Run" to perform these actions on the selected files.
Before clicking "OK," you may choose to save this group of actions (this "script") for easy retrieval later. Just type in a name for the script in the "Scripts" section below (in this case, something like "Set GENRE to 'Rock'"), and click "Save." Later, to retrieve the saved script, select it from the drop-down menu and click "Load."
Realistically, this would be more easily achieved by selecting the files to be processed in the playlist, right-clicking them and choosing "Properties," then editing the GENRE field in the "File Info" window. There are many more tag actions you can perform with Masstager, including guessing tags from filenames, and formatting tag fields based on other tag fields. These operations depend on an understanding of the TAGZ language.
The Database
The Database keeps track of all the info for all the files you play in foobar. The Database is crucial for such things as the albumlist panel (included with Columns UI), the Extended Playlist Generator (included in the special installer), and other components. To enable the Database, check the "Database enabled" box in the "Database" section of Preferences. If you would like to add an entire directory of music to the Database, enter the directory in the "Restrict directories to:" box and click the "scan" button. Keeping this directory in the box will prevent files in other directories from being added in the future, however, so uncheck it if you will be adding files from other locations as well. Files are added to the Database whenever they are added to a playlist.
You can view the contents of the Database using the Album list component. Click "Components > Album list."
Extended Playlist Generator
The Extended Playlist Generator can automatically create playlists from the contents of a playlist or the Database based on criteria that you specify. To access the EPG, click "Components > Extended Playlist Generator > Configure Playlist Query..."
For starters, try entering the name of an artist you know is in your database in the "Query:" box. Click "Run." The results will appear below. To create a playlist with these results, enter a name for the playlist in the "Playlist Name:" box and click the "Create Playlist" button. To save a query, click the "Save" button. It will be saved in the presets under the "Playlist Name" you specified. Once saved, a query can be recalled and its playlist regenerated by clicking "Components > Extended Playlist Generator > Generate Playlist..." in the menu toolbar.
Click the "Help" button in the EPG for help formatting queries. EPG uses both the TAGZ language and its own query language of conditionals such as GREATER and HAS. Try this simple query:
%date% GREATER 1979
This query will return all songs whose DATE tag is greater than 1979. Save this query as "The '80s, '90s, and today!" Queries that use tag fields like this require that the tag fields exist in the first place. Another reason to keep your tags ship-shape!
Third-Party Components
There is a slew of third-party components that can fill many of your foobar needs. Installing these and using them is as simple as installing and using Columns UI's panel extensions: just download the .dll, copy it into your foobar2000\components folder, and restart foobar.
Check out the Most Sought-After Plugins forum thread and the official third-party components site for a list of available components.
Things to remember...
Look around. Play with stuff. Experiment. Right-click on something you've never right-clicked on before. Browse the preferences window. Read the forums. Study titleformat_help.html. Have fun. Don't forget to listen to music.
Advanced Use
// more advanced or technical stuff should go here, such as albumlist views, sort specs, diskwriter, replaygain, etc.
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[]
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).
Album List & Album List Panel
ReplayGain
For a good explanation of what Replaygain is and how to use it effectively in foobar2000, see picmixer's 'How To Set Up Replaygain'.
An interesting discussion of Replaygain, mastering, clipping etc.
Diskwriter
The Database & Tag Writing
Default UI Strings
Tips & Tricks
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.
Handy Strings
"The Band" becomes "Band, The"
$if($strcmp($left(%artist%,4),The ),$right(%artist%,$sub($len(%artist%),4))', 'The,%artist%)
Format %tracknumber% as 01
$num(%tracknumber%,2)
FAQ
External links
Official Site
Community
Appearance
- Foobar Gallery: screenshot thread
- Default UI formatting strings: cut-n-paste ready
- Columns UI configs: .fcs file format
- foo_ui_gfx (alpha): skin support for foobar
Components / Plugins
General
- Most Sought-After Plugins (forum thread)
- Columns UI thread: first post contains links to many Columns UI panel extensions
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)
- foosion's Page: dbsearch, cut n' paste, history, etc.
- Messer's page: freedb-masstagger, streaming with save-function, etc.
- Musicmusic's Page: textwriter, quicktag, custom sort, ui_columns, panels