https://wiki.hydrogenaud.io/api.php?action=feedcontributions&user=Kohlrabi&feedformat=atomHydrogenaudio Knowledgebase - User contributions [en]2024-03-28T11:31:50ZUser contributionsMediaWiki 1.22.7https://wiki.hydrogenaud.io/index.php?title=Foobar2000:Title_Formatting_ReferenceFoobar2000:Title Formatting Reference2013-08-30T11:59:11Z<p>Kohlrabi: /* String functions */ Cahnged wording of padding functions according to http://www.hydrogenaudio.org/forums/index.php?showtopic=102439&view=findpost&p=843315</p>
<hr />
<div>{{fb2k}}<br />
This article contains information about built-in titleformatting functions and field references with special meaning. References to documentation about fields and function which can only be used in specific components or which are provided by specific components can be found at the end of this article.<br />
<br />
A field reference is a field name enclosed in percent signs, for example ''%artist%''. A function call starts with a dollar sign, followed by the function name and the parameter list. A parameter list can either be empty - denoted as ''()'' - or contain one or more parameters separated by commata, for example ''$abbr(%artist%)''. Note that there must be no whitespace between the dollar sign and the function name, or the function name and the opening parenthesis of the parameter list.<br />
<br />
Please see [[Foobar2000:Title Formatting Introduction|Title Formatting Introduction]] for a general overview of titleformat syntax and its basic rules. The article [[foobar2000:Titleformat Examples|Titleformat Examples]] offers user-submitted examples of code for specific purposes; feel free to add your own if you think it can be of use to others.<br />
<br />
For details of the query syntax, which uses some of these fields to find files for playlists, etc., see: [[Foobar2000:Query_syntax|Query Syntax]].<br />
<br />
= Field remappings =<br />
<br />
Some of the fields accessible through ''%name%'' are remapped to other values to make writing titleformat scripts more convenient.<br />
<br />
== Metadata ==<br />
<br />
=== %album artist% ===<br />
Name of the artist of the album specified track belongs to. Checks following metadata fields, in this order: "album artist", "artist", "composer", "performer". The difference between this and ''%artist%'' is that ''%album artist%'' is intended for use where consistent value across entire album is needed even when per-track artists values vary.<br />
<br />
=== %album% ===<br />
Name of the album specified track belongs to. Checks following metadata fields, in this order: "album", "venue".<br />
<br />
=== %artist% ===<br />
Name of the artist of the track. Checks following metadata fields, in this order: "artist", "album artist", "composer", "performer". For a SHOUTcast stream which contains metadata, it is the StreamTitle up to the first "-" character.<br />
<br />
=== %discnumber% ===<br />
Index of disc specified track belongs to, within the album. Available only when "discnumber"/"disc" field is present in track’s metadata.<br />
<br />
=== %track artist% ===<br />
Name of the artist of the track; present only if ''%album artist%'' is different than ''%artist%'' for specific track. Intended for use together with ''%album artist%'', to indicate track-specific artist info, e.g. "%album artist% - %title%[ '//' %track artist%]". In this case, the last part will be displayed only when track-specific artist info is present.<br />
<br />
=== %title% ===<br />
Title of the track. If "title" metadata field is missing, file name is used instead. For a SHOUTcast stream which contains metadata, it is the StreamTitle after the first "-" character.<br />
<br />
=== %tracknumber% ===<br />
Two-digit index of specified track within the album. Available only when "tracknumber" field is present in track’s metadata. An extra '0' is placed in front of single digit track numbers (5 becomes 05).<br />
<br />
=== %track number% ===<br />
Similar to %tracknumber%, however single digit track numbers are not reformatted to have an extra 0.<br />
<br />
== Technical information ==<br />
<br />
=== %bitrate% ===<br />
Bitrate of the track; includes dynamic VBR bitrate display for currently played track.<br />
<br />
=== %channels% ===<br />
Number of channels in the track (mono/stereo/etc). Returns the number of channels in text form; returns "mono" and "stereo" instead of "1" and "2".<br />
<br />
=== %filesize% ===<br />
Defined as ''%_filesize%''. Returns the filesize in bytes.<br />
<br />
=== %filesize_natural% ===<br />
Size of the file, automatically formatted in appropriate units such as megabytes or kilobytes. <br />
<br />
=== %samplerate% ===<br />
Sample rate of the track, in Hz.<br />
<br />
=== %codec% ===<br />
Name of codec used to encode the track. If exact codec name is not available, file extension is used.<br />
<br />
== Special fields ==<br />
<br />
= Control flow =<br />
<br />
The functions in this section can be used to conditionally execute statements.<br />
<br />
=== [...] (conditional section) ===<br />
<br />
Evaluates the expression between ''['' and '']''. If it has the truth value ''true'', its string value and the truth value ''true'' are returned. Otherwise an empty string and ''false'' are returned.<br />
<br />
Example: ''[%artist%]'' returns the value of the artist tag, if it exists. Otherwise it returns nothing, when ''artist'' would return "?".<br />
<br />
=== $if(cond,then) ===<br />
<br />
If ''cond'' evaluates to ''true'', the ''then'' part is evaluated and its value returned. Otherwise, ''false'' is returned.<br />
<br />
=== $if(cond,then,else) ===<br />
<br />
If ''cond'' evaluates to ''true'', the ''then'' part is evaluated and its value returned. Otherwise, the ''else'' part is evaluated and its value returned.<br />
<br />
=== $if2(a,else) ===<br />
<br />
Like ''$if(a,a,else)'' except that ''a'' is only evaluated once.<br />
<br />
=== $if3(a1,a2,...,aN,else) ===<br />
<br />
Evaluates arguments ''a1'' ... ''aN'', until one is found that evaluates to ''true''. If that happens, its value is returned. Otherwise the ''else'' part is evaluated and its value returned.<br />
<br />
=== $ifequal(n1,n2,then,else) ===<br />
<br />
Compares the integer numbers ''n1'' and ''n2'', if ''n1'' is equal to ''n2'', the ''then'' part is evaluated and its value returned. Otherwise the ''else'' part is evaluated and its value returned.<br />
<br />
=== $ifgreater(n1,n2,then,else) ===<br />
<br />
Compares the integer numbers ''n1'' and ''n2'', if ''n1'' is greater than ''n2'', the ''then'' part is evaluated and its value returned. Otherwise the ''else'' part is evaluated and its value returned.<br />
<br />
=== $iflonger(s,n,then,else) ===<br />
<br />
Compares the length of the string ''s'' to the number ''n'', if ''s'' is longer than ''n'' characters, the ''then'' part is evaluated and its value returned. Otherwise the ''else'' part is evaluated and its value returned.<br />
<br />
=== $select(n,a1,...,aN) ===<br />
<br />
If the value of ''n'' is between 1 and N, ''an'' is evaluated and its value returned. Otherwise ''false'' is returned.<br />
<br />
= Arithmetic functions =<br />
<br />
The functions in this section can be used to perform arithmetic on integer numbers. A string will be automatically converted to a number and vice versa. The conversion to a number uses the longest prefix of the string that can be interpreted as number. Leading whitespace is ignored. Decimal points are not supported. Examples:<br />
* "c3po" → 0<br />
* "4.8" → 4<br />
* "-12" → -12<br />
* "- 12" → 0<br />
<br />
=== $add(a,b) ===<br />
<br />
Adds ''a'' and ''b''.<br />
<br />
Can be used with an arbitrary number of arguments. ''$add(a,b,...)'' is the same as ''$add($add(a,b),...)''.<br />
<br />
=== $div(a,b) ===<br />
<br />
Divides ''a'' by ''b'' and rounds down to an integer. If ''b'' evaluates to zero, it returns ''a''.<br />
<br />
Can be used with an arbitrary number of arguments. ''$div(a,b,...)'' is the same as ''$div($div(a,b),...)''.<br />
<br />
=== $greater(a,b) ===<br />
<br />
Returns true, if ''a'' is greater than ''b'', otherwise false.<br />
<br />
=== $max(a,b) ===<br />
<br />
Returns the maximum of ''a'' and ''b''.<br />
<br />
Can be used with an arbitrary number of arguments. ''$max(a,b,...)'' is the same as ''$max($max(a,b),...)''.<br />
<br />
=== $min(a,b) ===<br />
<br />
Returns the minimum of ''a'' and ''b''.<br />
<br />
Can be used with an arbitrary number of arguments. ''$min(a,b,...)'' is the same as ''$min($min(a,b),...)''.<br />
<br />
=== $mod(a,b) ===<br />
<br />
Computes the remainder of dividing ''a'' through ''b''. The result has the same sign as ''a''. If ''b'' evaluates to zero, the result is ''a''.<br />
<br />
Can be used with an arbitrary number of arguments. ''$mod(a,b,...)'' is the same as ''$mod($mod(a,b),...)''.<br />
<br />
=== $mul(a,b) ===<br />
<br />
Multiplies ''a'' and ''b''.<br />
<br />
Can be used with an arbitrary number of arguments. ''$mul(a,b,...)'' is the same as ''$mul($mul(a,b),...)''.<br />
<br />
=== $muldiv(a,b,c) ===<br />
<br />
Multiplies ''a'' and ''b'', then divides by ''c''. The result is rounded to the nearest integer.<br />
<br />
=== $rand() ===<br />
<br />
Generates a random number in the range from 0 to 2<sup>32</sup>-1. Available only in sort-related contexts, such as the ''Edit → Sort → Sort by ...'' menu command.<br />
<br />
=== $sub(a,b) ===<br />
<br />
Subtracts ''b'' from ''a''.<br />
<br />
Can be used with an arbitrary number of arguments. ''$sub(a,b,...)'' is the same as ''$sub($sub(a,b),...)''.<br />
<br />
= Boolean functions =<br />
<br />
The functions in this section can be used to work with truth values (''true'' and ''false''), which have no explicit representation in titleformat scripts. They do not return a string or number value. You can use them for more complex conditions with ''$if'' and related functions.<br />
<br />
=== $and(...) ===<br />
<br />
Logical And of an arbitrary number of arguments. Returns ''true'', if and only if all arguments evaluate to ''true''.<br />
<br />
Special case: ''$and(x,y)'' is ''true'', if both ''x'' and ''y'' are ''true''. Otherwise it is ''false''.<br />
<br />
=== $or(...) ===<br />
<br />
Logical Or of an arbitrary number of arguments. Returns ''true'', if at least one argument evaluates to ''true''.<br />
<br />
Special case: ''$or(x,y)'' is ''true'', if ''x'' or ''y'' is ''true'', or if both are ''true''. Otherwise it is ''false''.<br />
<br />
=== $not(x) ===<br />
<br />
Logical Not. Returns ''false'', if ''x'' is ''true'', otherwise it returns ''true''.<br />
<br />
=== $xor(...) ===<br />
<br />
Logical Exclusive-or of an arbitrary number of arguments. Returns ''true'', if an odd number of arguments evaluate to ''true''.<br />
<br />
Special case: ''$xor(x,y)'' is ''true'', if one of ''x'' and ''y'' is ''true'', but not both. Otherwise it is ''false''.<br />
<br />
= Color functions =<br />
<br />
==For the Default User Interface==<br />
Starting in version 1.0, the Default UI playlist view doesn't support color functions. In that location, text color can only be adjusted via angle-bracket syntax: Use < and > characters to make specific text <dimmed> ''vs.'' the default color or >highlight>ed with the highlight color, with up to three levels in each case, ''e.g.'': <dimmed>, >highlight<, >>more highlight<<, <<<very dim>>>.<br />
<br />
==For Columns UI==<br />
<br />
The playlist in the Columns UI still supports the following functions:<br />
<br />
=== $blend(color1,color2,part,total) ===<br />
<br />
Returns a color that is a blend between ''color1'' and ''color2''. If ''part'' is smaller than or equal to zero, ''color1'' is returned. If ''part'' is greater than or equal to ''total'', ''color2'' is returned. Otherwise a blended color is returned that is ''part'' parts ''color1'' and ''total''-''part'' parts ''color2''. The blending is performed in the RGB color space.<br />
<br />
=== $hsl() ===<br />
<br />
Resets the text color to the default color.<br />
<br />
=== $hsl(h,s,l) ===<br />
<br />
Sets the color for text in the HSL color space. ''h'', ''s'' and ''l'' are the hue, saturation, and lightness of the color for unselected text. The color for selected text is set to the inverse color.<br />
The ranges of ''h'', ''s'', and ''l'' are from 0 to 240; the function is designed to interpret those values in the same way as the standard Windows color dialog.<br />
<br />
=== $hsl(h1,s1,l1,h2,s2,l2) ===<br />
<br />
Sets the color for text in the HSL color space. ''h1'', ''s1'' and ''l1'' are the hue, saturation, and lightness of the color for unselected text. ''h2'', ''s2'' and ''l2'' are the hue, saturation, and lightness of the color for selected text.<br />
<br />
=== $rgb() ===<br />
<br />
Resets the text color to the default color.<br />
<br />
=== $rgb(r,g,b) ===<br />
<br />
Sets the color for text. ''r'', ''g'' and ''b'' are the red, green and blue component of the color for unselected text. The color for selected text is set to the inverse color.<br />
<br />
=== $rgb(r1,g1,b1,r2,g2,b2) ===<br />
<br />
Sets the color for text. ''r1'', ''g1'' and ''b1'' are the red, green and blue component of the color for unselected text. ''r2'', ''g2'' and ''b2'' are the red, green and blue component of the color for selected text.<br />
<br />
=== $transition(string,color1,color2) ===<br />
<br />
Inserts color codes into ''string'', so that the first character has ''color1'', the last character has ''color2'', and intermediate characters have blended colors. The blending is performed in the RGB color space. Note that color codes are additional characters that will also be counted by string manipulation functions. For example, if you need to truncate a string, you should do this before applying ''$transition''.<br />
<br />
= Now playing info =<br />
The following functions and fields are usable for scripts used with the currently playing item, for example the status bar, the main window title and the copy command script.<br />
<br />
== Special fields ==<br />
<br />
=== %playback_time% ===<br />
Returns the elapsed time formatted as [HH:]MM:SS.<br />
<br />
=== %playback_time_seconds% ===<br />
Returns elapsed time in seconds.<br />
Old version: <code>%_time_elapsed%</code><br />
<br />
=== %playback_time_remaining% ===<br />
Returns remaining time until track ends, formatted as [HH:]MM:SS.<br />
Old version: <code>%_time_remaining%</code><br />
<br />
=== %playback_time_remaining_seconds% ===<br />
Returns remaining time in seconds.<br />
Old version: <code>%_time_remaining_seconds%</code><br />
<br />
=== %length% ===<br />
Returns the length of the track formatted as hours, minutes, and seconds.<br />
Old version: <code>%_time_total%</code><br />
<br />
=== %length_ex% ===<br />
Returns the length of the track formatted as hours, minutes, seconds, and milliseconds.<br />
<br />
=== %length_seconds% ===<br />
Returns the length of the track in seconds.<br />
Old version: <code>%_time_total_seconds%</code><br />
<br />
=== %length_seconds_fp% ===<br />
Returns the length of the track in seconds as floating point number.<br />
<br />
=== %length_samples% ===<br />
Returns the length of the track in samples.<br />
<br />
= Playlist info =<br />
The following functions and fields are usable for playlist display formatting (eg. per-column title formatting patterns).<br />
<br />
== Special fields ==<br />
<br />
=== %isplaying% ===<br />
<br />
Returns "1" if file is currently playing and empty string otherwise.<br />
<br />
=== %ispaused% ===<br />
<br />
Returns "1" if playback is paused, empty string otherwise.<br />
<br />
=== %list_index% ===<br />
<br />
Returns a zero-padded playlist index of specified item. The first item is at index 1.<br />
<br />
=== %list_total% ===<br />
<br />
Returns number of items in the playlist.<br />
<br />
=== %queue_index% ===<br />
<br />
Index of the specified item in the playback queue; available in playlist only. If the item has been queued multiple times, %queue_index% evaluates to the first index.<br />
<br />
=== %queue_indexes% ===<br />
<br />
List of indexes of the specified item in the playback queue; available in playlist only. Same as %queue_index% unless the item has been queued more than once.<br />
<br />
=== %queue_total% ===<br />
<br />
Total amount of tracks in playback queue. Available only for queued tracks, for technical reasons. <br />
<br />
= String functions =<br />
<br />
The functions in this section can be used to manipulate character strings.<br />
<br />
=== $abbr(x) ===<br />
<br />
Returns abbreviation of ''x''. Words which begin with an alphanumeric character are shortened to the first character. Spaces and parentheses are stripped. Example:<br />
* $abbr('This is a Long Title (12-inch version) [needs tags]') → TiaLT1v[needst<br />
<br />
=== $abbr(x,len) ===<br />
<br />
Returns abbreviation of ''x'', if ''x'' is longer than ''len'' characters, otherwise returns ''x''.<br />
<br />
=== $ansi(x) ===<br />
<br />
Converts ''x'' to system codepage and back. Any characters that are not present in the system codepage will be removed / replaced. Useful for mass-renaming files to ensure compatibility with non-unicode-capable software.<br />
<br />
=== $ascii(x) ===<br />
<br />
Converts ''x'' to ASCII. Any characters that are not present in ASCII will be removed / replaced.<br />
<br />
=== $caps(x) ===<br />
<br />
Converts first letter in every word of x to uppercase, and all other letters to lowercase.<br />
<br />
=== $caps2(x) ===<br />
<br />
Converts first letter in every word of x to uppercase, and leaves all other letters as they are.<br />
<br />
=== $char(x) ===<br />
<br />
Inserts Unicode character with code ''x''. You can search for characters and find the matching decimal number on this [http://www.fileformat.info/info/unicode/char/search.htm site].<br />
<br />
=== $crc32(a) ===<br />
<br />
Computes the CRC32 of the string ''a'' as a number. Intended for use in coloring scripts.<br />
<br />
Example: $rgb($mod($crc32(%album%),256),128,128)<br />
<br />
=== $crlf() ===<br />
<br />
Inserts end-of-line marker (carriage return, line feed). Can be used to generate multiple lines in the output, for example for the tooltip of the system notification area ("systray") icon.<br />
<br />
=== $cut(a,len) ===<br />
<br />
Returns first ''len'' characters from the left of the string ''a''. This function is the same as $left(a,len). Negative numbers produce the entire string. Examples:<br />
* $cut('abc123',3) → abc<br />
* $cut('abc123',0) → (nothing)<br />
* $cut('abc123',-1) → abc123<br />
<br />
=== $directory(x) ===<br />
<br />
Extracts directory name from the file path ''x''.<br />
<br />
=== $directory(x,n) ===<br />
<br />
Extracts directory name from the file path ''x''; goes up by ''n'' levels.<br />
<br />
=== $directory_path(x) ===<br />
<br />
Extracts directory path from the file path ''x''.<br />
<br />
=== $ext(x) ===<br />
<br />
Extracts file extension from ''x'' which must be a file name or path.<br />
<br />
=== $filename(x) ===<br />
<br />
Extracts file name from full path.<br />
<br />
=== $fix_eol(x) ===<br />
<br />
If ''x'' contains an end-of-line marker (CR-LF), the end-of-line marker and all text to the right of it is replaced by " (...)". Otherwise ''x'' is returned unaltered.<br />
<br />
=== $fix_eol(x,indicator) ===<br />
<br />
If ''x'' contains an end-of-line marker (CR-LF), the end-of-line marker and all text to the right of it is replaced by ''indicator''. Otherwise ''x'' is returned unaltered.<br />
<br />
=== $hex(n) ===<br />
<br />
Formats the integer number ''n'' in hexadecimal notation.<br />
<br />
=== $hex(n,len) ===<br />
<br />
Formats the integer number ''n'' in hexadecimal notation with ''len'' digits. Pads with zeros from the left if necessary.<br />
<br />
=== $insert(a,b,n) ===<br />
<br />
Inserts ''b'' into ''a'' after ''n'' characters.<br />
<br />
=== $left(a,len) ===<br />
<br />
Returns first ''len'' characters from the left of the string ''a''. This function is the same as $cut(a,len). Negative numbers produce the entire string. Examples:<br />
* $left('abc123',3) → abc<br />
* $left('abc123',0) → (nothing)<br />
* $left('abc123',-1) → abc123<br />
<br />
=== $len(a) ===<br />
<br />
Returns length of string ''a'' in characters.<br />
<br />
=== $len2(a) ===<br />
<br />
Returns length of string x in characters, respecting double-width character rules (double-width characters will be counted as two).<br />
<br />
=== $longer(a,b) ===<br />
<br />
Returns ''true'', if string ''a'' is longer than string ''b'', false otherwise.<br />
<br />
=== $lower(a) ===<br />
<br />
Converts ''a'' to lowercase.<br />
<br />
=== $longest(a,...) ===<br />
<br />
Returns the longest of its arguments. Can be used with an arbitrary number of strings.<br />
<br />
=== $num(n,len) ===<br />
<br />
Formats the integer number ''n'' in decimal notation with ''len'' characters. Pads with zeros from the left if necessary. ''len'' includes the dash when the number is negative. If ''n'' is not numeric, it is treated as zero. Examples:<br />
<br />
* $num(123,5) → 00123<br />
* $num(-123,5) → -0123<br />
* $num(4.8,5) → 00004<br />
* $num(A1,5) → 00000<br />
<br />
=== $pad(x,len) ===<br />
<br />
Creates a left-aligned version of the string ''x''. If ''x'' is shorter than ''len'' characters, the function adds spaces to the right of ''x'' to make the result ''len'' characters long. Otherwise the function returns ''x'' unchanged.<br />
<br />
=== $pad_right(x,len) ===<br />
<br />
Creates a right-aligned version of the string ''x''. If ''x'' is shorter than ''len'' characters, the function adds spaces to the left of ''x'' to make the result ''len'' characters long. Otherwise the function returns ''x'' unchanged.<br />
<br />
=== $pad(x,len,char) ===<br />
<br />
Creates a left-aligned version of the string ''x''. If ''x'' is shorter than ''len'' characters, the function adds ''char'' to the right of ''x'' to make the result ''len'' characters long. Otherwise the function returns ''x'' unchanged.<br />
<br />
=== $pad_right(x,len,char) ===<br />
<br />
Creates a right-aligned version of the string ''x''. If ''x'' is shorter than ''len'' characters, the function adds ''char'' to the left of ''x'' to make the result ''len'' characters long. Otherwise the function returns ''x'' unchanged.<br />
<br />
=== $padcut(x,len) ===<br />
<br />
Returns first ''len'' characters from the left of ''x'', if ''x'' is longer than ''len'' characters. Otherwise adds spaces to the right of ''x'' to make the result ''len'' characters long.<br />
<br />
=== $padcut_right(x,len) ===<br />
<br />
Returns first ''len'' characters from the left of ''x'', if ''x'' is longer than ''len'' characters. Otherwise adds spaces to the left of ''x'' to make the result ''len'' characters long.<br />
<br />
=== $progress(pos,range,len,a,b) ===<br />
<br />
Creates a progress bar: ''pos'' contains position, ''range'' contains range, ''len'' progress bar length in characters, ''a'' and ''b'' are characters to build progress bar with.<br />
<br />
Example:''$progress(%_time_elapsed_seconds%, %_time_total_seconds%, 20,'#','=')'' produces "====#===============", the # character is moving with playback position.<br />
<br />
=== $progress2(pos,range,len,a,b) ===<br />
<br />
Creates a progress bar: ''pos'' contains position, ''range'' contains range, ''len'' progress bar length in characters, ''a'' and ''b'' are characters to build progress bar with. Produces different appearance than ''$progress''.<br />
<br />
=== $repeat(a,n) ===<br />
<br />
Returns ''n'' copies of ''a''. Note that ''a'' is evaluated once before its value is used, so ''$repeat'' cannot be used for loops.<br />
<br />
=== $replace(a,b,c) ===<br />
<br />
Replaces all occurrences of string ''b'' in string ''a'' with string ''c''.<br />
<br />
Can also be used with an arbitrary number of arguments. Note that ''$replace(a,b1,c1,b2,c2)'' is generally not the same as ''$replace($replace(a,b1,c1),b2,c2)''.<br />
<br />
Example: ''$replace(ab,a,b,b,c)'' → "bc", ''$replace($replace(ab,a,b),b,c)'' → "cc"<br />
<br />
=== $right(a,len) ===<br />
<br />
Returns the first ''len'' characters from the right of ''a''.<br />
<br />
=== $roman(n) ===<br />
<br />
Formats the integer number ''n'' in roman notation.<br />
<br />
=== $rot13() ===<br />
<br />
Performs [http://en.wikipedia.org/wiki/ROT13 ROT13] transformation to given string.<br />
<br />
Example: ''$rot13('foobar2000')'' → "sbbone2000".<br />
<br />
=== $shortest ===<br />
<br />
Returns the shortest of its arguments. Can be used with an arbitrary number of strings.<br />
<br />
=== $strchr(s,c) ===<br />
<br />
Finds first occurence of character ''c'' in string ''s''.<br />
<br />
Example: ''$strchr(abca,a)'' → 1<br />
<br />
=== $strrchr(s,c) ===<br />
<br />
Finds last occurence of character ''c'' in string ''s''.<br />
<br />
Example: ''$strrchr(abca,a)'' → 4<br />
<br />
=== $strstr(s1,s2) ===<br />
<br />
Finds first occurence of string ''s2'' in string ''s1''.<br />
<br />
=== $strcmp(s1,s2) ===<br />
<br />
Performs a case-sensitive comparison of the strings ''s1'' and ''s2''.<br />
<br />
=== $stricmp(s1,s2) ===<br />
<br />
Performs a case-insensitive comparison of the strings ''s1'' and ''s2''.<br />
<br />
=== $substr(s,m,n) ===<br />
<br />
Returns substring of string ''s'', starting from ''m''-th character and ending at ''n''-th character.<br />
<br />
=== $stripprefix(x) ===<br />
<br />
Removes ''A'' and ''The'' prefixes from x. <br />
<br />
=== $stripprefix(x,prefix1,prefix2,...) ===<br />
<br />
Removes the specified prefixes from x. <br />
<br />
=== $swapprefix(x) ===<br />
<br />
Moves ''A'' and ''The'' prefixes to the end of x. <br />
<br />
=== $swapprefix(x,prefix1,prefix2,...) ===<br />
<br />
Moves the specified prefixes to the end of x. <br />
<br />
=== $trim(s) ===<br />
<br />
Removes leading and trailing spaces from string ''s''.<br />
<br />
=== $tab() ===<br />
<br />
Inserts one tabulator character.<br />
<br />
=== $tab(n) ===<br />
<br />
Inserts ''n'' tabulator characters.<br />
<br />
=== $upper(s) ===<br />
<br />
Converts string ''s'' to uppercase.<br />
<br />
= Track info =<br />
<br />
The functions and fields in this section can be used to access information about tracks.<br />
<br />
== Metadata ==<br />
<br />
=== $meta(name) ===<br />
Returns value of tag called ''name''. If multiple values of that tag exist, they are concatenated with ", " as separator.<br />
<br />
Example: ''$meta(artist)'' → "He, She, It"<br />
<br />
=== $meta(name,n) ===<br />
Returns value of ''n''-th (0,1,2 and so on) tag called ''name''.<br />
<br />
Example: ''$meta(artist,1)'' → "She"<br />
<br />
=== $meta_sep(name,sep) ===<br />
Returns value of tag called ''name''. If multiple values of that tag exist, they are concatenated with ''sep'' as separator.<br />
<br />
Example: ''$meta_sep(artist,' + ')'' → "He + She + It"<br />
<br />
=== $meta_sep(name,sep,lastsep) ===<br />
Returns value of tag called ''name''. If multiple values of that tag exist, they are concatenated with ''sep'' as separator between all but the last two values which are concatenated with ''lastsep''.<br />
<br />
Example: ''$meta_sep(artist,', ',', and ')'' → "He, She, and It"<br />
<br />
=== $meta_test(...) === <br />
Returns ''1'', if all given tags exist, ''undefined'' otherwise.<br />
<br />
Example: ''$meta_test(artist,title)'' → true<br />
<br />
=== $meta_num(name) ===<br />
Returns the number of values for the tag called ''name''.<br />
<br />
Example: ''$meta_num(artist)'' → 3<br />
<br />
== Technical information ==<br />
<br />
=== $info(name) ===<br />
Returns value of technical information field called ''name''.<br />
<br />
For convenience, the '''%__name%''' alias is also available.<br />
<br />
Example: ''$info(channels)'' → 2<br />
<br />
Here is an '''informative''' list of recognized fields. Some of these depend on the media file type being queried.<br />
<br />
{| border="0" cellspacing="0" cellpadding="2"<br />
! field name<br />
! Description<br />
|-<br />
| colspan="2" style="background-color:#CCF"|'''General'''<br />
|-<br />
|codec<br />
| style="background-color:#EEF"|'''Codec''' (''e.g.'' MP3)<br />
|-<br />
|codec_profile<br />
| style="background-color:#EEF"|'''Codec Profile''' (''e.g.'' CBR)<br />
|-<br />
|samplerate<br />
| style="background-color:#EEF"|'''Sample Rate''', in hertz (''e.g.'' 44100)<br />
|-<br />
|bitrate<br />
| style="background-color:#EEF"|'''Bitrate''', in kilobits per second (''e.g.'' 320)<br />
|-<br />
|tool<br />
| style="background-color:#EEF"|'''Tool''' used to produce the file, possibly guessed (''e.g.'' LAME3.97)<br />
|-<br />
|encoding<br />
| style="background-color:#EEF"|'''Encoding''' lossiness (''e.g.'' lossy)<br />
|-<br />
|channels<br />
| style="background-color:#EEF"|'''Channels''' count (''e.g.'' 2 <nowiki>[for stereo]</nowiki>)<br />
|-<br />
|channel_mode<br />
| style="background-color:#EEF"|'''Channel Mode''', description of channels (''e.g.'' 3 front, 2 rear surround channels + LFE)<br />
|-<br />
|bitspersample<br />
| style="background-color:#EEF"|'''Bits Per Sample''' (''e.g.'' 16)<br />
|-<br />
|tagtype<br />
| style="background-color:#EEF"|'''Tag Type''', comma-separated list of tag formats (''e.g.'' id3v2|apev2)<br />
|-<br />
|cue_embedded<br />
| style="background-color:#EEF"|'''Embedded Cuesheet''' presence (''e.g.'' no <nowiki>[may be empty!]</nowiki>)<br />
|-<br />
|md5<br />
| style="background-color:#EEF"|'''Audio MD5''' hash, if container defines it (''e.g.'' 1E24A910D91EF09A8CF403C9B6963961)<br />
|-<br />
| colspan="2" style="background-color:#CCF"|'''Other'''<br />
|-<br />
|ENC_DELAY<br />
| style="background-color:#EEF"|LAME proprietary MP3 '''enc_delay''' value (''e.g.'' 576)<br />
|-<br />
|ENC_PADDING<br />
| style="background-color:#EEF"|LAME proprietary MP3 '''enc_padding''' value (''e.g.'' 1536)<br />
|-<br />
|MP3_ACCURATE_LENGTH<br />
| style="background-color:#EEF"|'''mp3_accurate_length''' supported (LAME proprietary header)? (''e.g.'' yes)<br />
|-<br />
|MP3_STEREO_MODE<br />
| style="background-color:#EEF"|Stereo mode used in MP3 file (''e.g.'' mono, stereo, joint stereo, etc.)<br />
|-<br />
|VERSION<br />
| style="background-color:#EEF"|'''Version''' of tool (''e.g.'' 3.99)<br />
|-<br />
|FLAGS<br />
| style="background-color:#EEF"|'''Flags''' of tool (''e.g.'' 22)<br />
|}<br />
<br />
=== $channels() === <br />
Returns number of channels in text format.<br />
<br />
Example: ''$channels()'' → "stereo"<br />
<br />
=== %replaygain_album_gain% ===<br />
<br />
Returns ReplayGain album gain value.<br />
<br />
=== %replaygain_album_peak% ===<br />
<br />
Returns ReplayGain album peak value.<br />
<br />
=== %replaygain_track_gain% ===<br />
<br />
Returns ReplayGain track gain value.<br />
<br />
=== %replaygain_track_peak% ===<br />
<br />
Returns ReplayGain track peak value.<br />
<br />
== Special fields ==<br />
<br />
==== %filename% ====<br />
<br />
Returns the filename without directory and extension.<br />
<br />
==== %filename_ext% ====<br />
<br />
Returns the filename with extension, but without the directory.<br />
<br />
==== %directoryname% ====<br />
<br />
Returns the name of the parent directory only, not the complete path.<br />
<br />
==== %last_modified% ====<br />
<br />
Returns the date and time the file was last modified. Eg: ''2005-12-22 00:04:10''<br />
<br />
==== %path% ====<br />
<br />
Returns the path.<br />
<br />
==== %_path_raw% ====<br />
<br />
Returns the path as URL including the protocol scheme.<br />
<br />
==== %subsong% ====<br />
<br />
Returns the subsong index. The subsong index is used to distuingish multiple tracks in a single file, for example for cue sheets, tracker modules and various container formats.<br />
<br />
==== %_foobar2000_version% ====<br />
Returns a string representing the version of foobar2000.<br />
<br />
= Time/Date Functions =<br />
<br />
These functions are used to manipulate time/date strings, notably (but not limited to), [[Foobar2000:Titleformat_Playback_Statistics|those gathered]] by the [[Foobar2000:Components/Playback Statistics v3.x (foo playcount)|Playback Statistics component]].<br />
<br />
=== $year(time) ===<br />
<br />
Retrieves the year part (formatted as four digits) from a time/date string.<br />
<br />
=== $month(time) ===<br />
<br />
Retrieves the month part (formatted as two digits) from a time/date string.<br />
<br />
=== $day_of_month(time) ===<br />
<br />
Retrieves the day of month part (formatted as two digits) from a time/date string.<br />
<br />
=== $date(time) ===<br />
<br />
Retrieves the date part (formatted as YYYY-MM-DD) from a time/date string.<br />
<br />
=== $time(time) ===<br />
<br />
Retrieves the time part (formatted as HH:MM:SS or HH:MM) from a date/time string.<br />
<br />
= Variable operations =<br />
<br />
Variables can be used to store strings and number. They cannot store truth values. They are best used to store intermediate results that you need multiple times. Variable names are not case-sensitive.<br />
<br />
For example:<br />
{| border="0" cellspacing="0" cellpadding="2"<br />
! code<br />
! output<br />
|-<br />
|<pre>$put(foo,bar)$char(10)<br />
$get(foo)$char(10)<br />
$get(Foo)$char(10)<br />
$puts(foo,2000)$char(10)<br />
$get(foo)$char(10)</pre><br />
| style="background-color:#EEF" |<pre>bar<br />
bar<br />
bar<br />
<br />
2000</pre><br />
|}<br />
=== $get(name) ===<br />
<br />
Returns the value that was last stored in the variable ''name'', if the variable was not defined (yet), it returns nothing. The truth value returned by ''$get'' indicates if the variable ''name'' was defined<br />
<br />
=== $put(name,value) ===<br />
<br />
Stores ''value'' in the variable ''name'' and returns ''value'' unaltered<br />
<br />
=== $puts(name,value) ===<br />
<br />
Stores ''value'' in the variable ''name'' and returns nothing<br />
<br />
= Component-provided fields and functions on tracks =<br />
<br />
This section lists components that provide additional fields and functions that are useable in the context of any track.<br />
<br />
== Playback statistics ==<br />
<br />
* [http://www.foobar2000.org/components/view/foo_playcount Playback statistics homepage]<br />
* [[Foobar2000:Titleformat Playback Statistics|Playback statistics titleformat reference]]<br />
<br />
= Component-specific fields and functions =<br />
<br />
This section lists components that provide additional fields and functions that are only usable in the context of the particular component.<br />
<br />
== Album list ==<br />
* [[Foobar2000:Titleformat_Album_List|Album List Title Formatting]]<br />
* [[Foobar2000:Preferences:Album List|Preferences: Album List]]<br />
== Playlist Organizer ==<br />
* [http://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components/Playlist_Organizer_(foo_plorg)#Nodes Playlist Organizer: Nodes Title Formatting]<br />
<br />
== Columns UI ==<br />
<br />
* [http://yuo.be/columns.php Columns UI homepage]<br />
* [http://yuo.be/wiki/columns_ui:config:global_variables Global variables reference]<br />
* [http://yuo.be/wiki/columns_ui:config:colour_string Playlist colors reference]<br />
* [http://yuo.be/wiki/columns_ui:config:playlist_switcher_titleformatting Playlist switcher reference]<br />
<br />
= Additional Reading =<br />
<br />
* [[Foobar2000:Titleformat_Introduction|Introduction to titleformat scripts]]<br />
* '''titleformat_help.html''' in your Foobar2000 directory (ie C:\Program Files\foobar2000\titleformat_help.html) file:///C:/Program%20Files/foobar2000/titleformat_help.html<br />
<br />
<br />
[[Category:foobar2000 Guides|Titleformat Reference]]</div>Kohlrabihttps://wiki.hydrogenaud.io/index.php?title=Free_Lossless_Audio_CodecFree Lossless Audio Codec2013-01-31T10:09:53Z<p>Kohlrabi: /* Features */ Other lossless formats have HW support too, but FLAC support is likely most widespread.</p>
<hr />
<div>{{Codec Infobox<br />
| name = FLAC<br />
| logo = [[Image:FLAC logo.gif]]<br />
| type = lossless<br />
| purpose = Popular open source patent free lossless compression scheme.<br />
| maintainer = Josh Coalson, Xiph Community <br />
| recommended_encoder = FLAC encoder<br />
| recommended_text = FLAC v1.2.1<br />
| website = http://flac.sourceforge.net/<br />
}}<br />
'''Free Lossless Audio Codec''' ('''FLAC''') is a codec for lossless audiocompression.<br />
Grossly oversimplified, FLAC is similar to [[MP3]], but [[lossless]], meaning that audio is compressed in FLAC without any loss in quality. This is similar to how Zip works, except with FLAC you will get much better compression because it is designed specifically for audio, and you can play back compressed FLAC files in your favorite player (or your car or home stereo, if supported) just like you would an MP3 file.<br />
<br />
== General aspects of the format ==<br />
FLAC is freely available and supported on most operating systems, including Windows, UNIX (Linux, *BSD, Solaris, OS X, IRIX), BeOS, OS/2, and Amiga. There are build systems for autotools, MSVC, Watcom C, and Project Builder.<br />
<br />
The FLAC project consists of:<br />
* the stream format<br />
* reference encoders and decoders in library form<br />
* flac, a command-line program to encode and decode FLAC files<br />
* metaflac, a command-line metadata editor for FLAC files<br />
* input plugins for various music players<br />
<br />
When it's said that FLAC is ''free'', it means more than just that it is available at no cost. It means that the specification of the format is fully open to the public to be used for any purpose, although the FLAC project reserves the right to set the FLAC specification and certify compliance. It also means that neither the FLAC format nor any of the implemented encoding/decoding methods are covered by any known patent. And it means that all the source code is available under open-source licenses. It is the first truly open and free lossless audio format.<br />
<br />
== Features ==<br />
* '''Lossless:''' The encoding of audio (PCM) data incurs no loss of information, and the decoded audio is bit-for-bit identical to what went into the encoder. Each frame contains a 16-bit CRC of the frame data for detecting transmission errors. The integrity of the audio data is further insured by storing an MD5 signature of the original unencoded audio data in the file header, which can be compared against later during decoding or testing.<br />
* '''Fast:''' FLAC is asymmetric in favor of decode speed. Decoding requires only integer arithmetic, and is much less compute-intensive than for most perceptual codecs. Real-time decode performance is easily achievable on even modest hardware.<br />
* '''Hardware support:''' Because of FLAC's free reference implementation, low decoding complexity and popularity, FLAC has relatively widespread hardware support compared to other lossless formats.<br />
* '''Streamable:''' Each FLAC frame contains enough data to decode that frame. FLAC does not even rely on previous or following frames. FLAC uses sync codes and CRCs (similar to MPEG and other formats), which, along with framing, allow decoders to pick up in the middle of a stream with a minimum of delay.<br />
* '''Seekable:''' FLAC supports fast sample-accurate seeking. Not only is this useful for playback, it makes FLAC files suitable for use in editing applications.<br />
* '''Flexible metadata:''' New metadata blocks can be defined and implemented in future versions of FLAC without breaking older streams or decoders. Currently there are metadata types for tags, cue sheets, and seek tables. Applications can write their own APPLICATION metadata once they register an ID.<br />
* '''Suitable for archiving:''' FLAC is an open format, and there is no generation loss if you need to convert your data to another format in the future. In addition to the frame CRCs and MD5 signature, flac has a verify option that decodes the encoded stream in parallel with the encoding process and compares the result to the original, aborting with an error if there is a mismatch.<br />
* '''Convenient CD archiving:''' FLAC has a ''cue sheet'' metadata block for storing a CD table of contents and all track and index points. For instance, you can rip a CD to a single file, then import the CD's extracted cue sheet while encoding to yield a single file representation of the entire CD. If your original CD is damaged, the cue sheet can be exported later in order to burn an exact copy.<br />
* '''Error resistant:''' Because of FLAC's framing, stream errors limit the damage to the frame in which the error occurred, typically a small fraction of a second worth of data. Contrast this with some other lossless codecs, in which a single error destroys the remainder of the stream.<br />
<br />
== Pros ==<br />
* Portable to many systems<br />
* Source open and freely licenced<br />
* Hardware support (PhatBox, Kenwood MusicKeg, Rio Karma, etc. See below)<br />
* Streaming support<br />
* Extremely fast decoding<br />
* Supports multichannel and high resolution streams<br />
* Supports [[ReplayGain]]<br />
* Supports cue-sheet (with some limitations)<br />
* Gaining wide use as successor to [[Shorten]]<br />
<br />
== Cons ==<br />
* Compresses less efficiently than other popular modern compressors ([[Monkey's Audio]], [[OptimFROG]])<br />
* Higher compression modes slow, for little gain over the default setting.<br />
<br />
== Hardware and software that support FLAC ==<br />
For a more comprehensive list see the [http://flac.sourceforge.net/links.html FLAC links page].<br />
<br />
=== Hardware ===<br />
==== Home stereo ====<br />
* Olive's [http://www.olive.us/ Symphony] wireless digital music center<br />
* [http://www.numark.com/ Numark]'s DJ equipment (HDX and CDX turntables, HDMIX mixer)<br />
* [http://www.sonos.com/ Sonos Digital Music System]<br />
* Slim Devices' [http://www.slimdevices.com/pi_squeezebox.html Squeezebox] networked audio players<br />
<br />
==== Portable ====<br />
* [[Apple iPod]] with [[Rockbox]] firmware<br />
* [[iAudio M3]], M5 and X5<br />
* [[iRiver]] iHP-120/iHP-140 with [[Rockbox]] firmware<br />
* [[Iwod G10]]<br />
* [[Rio Karma]]<br />
* [http://en.wikipedia.org/wiki/SanDisk_Sansa SanDisk Sansa]<br />
* TrekStor's [http://www.trekstor.de/en/products/detail_mp3.php?pid=66 Vibez]<br />
* Devices running Android 3.1+<br />
<br />
=== Software ===<br />
==== Players ====<br />
* [[foobar2000]]<br />
* [[JRiver Media Center]]<br />
* [[MediaMonkey]]<br />
* [http://www.mplayerhq.hu/ MPlayer]<br />
* [http://www.mythtv.org/ MythTV]<br />
* [http://www.videolan.org/ VLC]<br />
* [http://www.vuplayer.com/vuplayer.htm VUPlayer]<br />
* [[Winamp]]<br />
* [[XMMS]]<br />
* [http://www.un4seen.com/ XMplay]<br />
<br />
==== Frontends (Windows) ====<br />
* Custom [http://members.home.nl/w.speek/flac.htm Windows Frontend] (by Speek)<br />
* [http://home.vxu.se/mdati00/frontah/ Frontah] by Madah<br />
<br />
==== Frontends (Mac) ====<br />
* [http://www.sbooth.org/Max/ Max]<br />
<br />
==== Converters ====<br />
* [http://www.dbpoweramp.com/ dBpowerAMP] Music Converter / Audio Player / CD Writer<br />
* [http://www.mediamonkey.com/ MediaMonkey] Music Manager / Audio Player / CD Writer<br />
<br />
==== Editors ====<br />
* [[Adobe Audition]]<br />
* [http://www.goldwave.com/ GoldWave]<br />
<br />
==== CD writers/rippers ====<br />
* [http://www.nero.com/eng/ Nero]<br />
* [http://arson.sourceforge.net/ Arson]<br />
* [http://www.burrrn.net Burrrn] Audio CD burner<br />
* [[Exact Audio Copy]] CD Ripper<br />
* [http://cdexos.sourceforge.net CDex] CD ripper<br />
* [http://www.cdwave.com/ CD Wave]<br />
* [http://cdburnerxp.se/ CDburner XP] CD writer<br />
* [http://www.mediamonkey.com/ MediaMonkey] - CD ripper/writer<br />
<br />
==== Taggers ====<br />
* [http://members.home.nl/w.speek/download/Tag.zip Case's Tag] command line tagger<br />
* [http://www.jtclipper.eu/thegodfather/ The GodFather] Tagger / Music manager<br />
* [http://www.mp3tag.de/en/index.html Mp3tag] Universal Tag Editor<br />
* [http://sbooth.org/Tag/ Tag] — for Mac OS X 10.4 (Tiger)<br />
* [http://flac.sourceforge.net/documentation.html#metaflac metaflac] - for general metadata (including Vorbis comments) maintenance<br />
* [http://www.mediamonkey.com MediaMonkey] - [[MediaMonkey]] Tagger / Music manager (Including Multiple and Linked Album Art support)<br />
<br />
==== Other tools ====<br />
* [http://www.bunkus.org/videotools/mkvtoolnix/ mkvtoolnix] - tool to multiplex FLAC streams inside the Matroska container<br />
* [http://flac.sourceforge.net/documentation.html#metaflac metaflac] - for general metadata (including Vorbis comments) maintenance, also to calculate [[ReplayGain]] values for FLAC files lacking such<br />
<br />
...and many more; see the [http://flac.sourceforge.net/links.html#software FLAC software section] and [http://flac.sourceforge.net/download.html#extras download section] for a more comprehensive list.<br />
<br />
== Frequently asked questions ==<br />
''Question:'' Does the compression level affect decompression speed?<br />
<br />
''Short Answer'': No.<br />
<br />
''Long Answer'': In truth, the compression level does affect the decompression speed, but the difference between the various compress levels can barely be measured and is too small to be noticed, even on low-end machines.<br />
<br />
<br />
''Question:'' What is the best compression level for encoding my music?<br />
<br />
''Short Answer'': The default setting, 5.<br />
<br />
''Long Answer'': Encoding at the default setting will give the best balance between compression and encoding speed. Encoding at 8 can more than quadruple the encoding time, while having an insignificant effect on compression.<br />
<br />
== See also ==<br />
* [[Lossless]]<br />
* [[Lossless comparison]]<br />
<br />
== Externals links ==<br />
* [http://flac.sourceforge.net/ FLAC website]<br />
* [http://flac.sourceforge.net/download.html FLAC download]<br />
* [http://flac.sourceforge.net/format.html Detailed description of the FLAC format]<br />
* [http://flac.sourceforge.net/documentation.html FLAC documentation]<br />
* [http://flac.sourceforge.net/faq.html FLAC FAQ]<br />
* <s> Omion's FLAC "File Size vs. Decoding Speed" test</s> - a very thorough test on [[Free Lossless Audio Codec#Frequently Asked Questions|the influence of the chosen encoding level on the decoding speed of FLAC]]; the only one so far to have covered FLAC's --super-secret-totally-impractical-compression-level to this extent as well.<br />
<br />
<br />
[[Category:Lossless]]<br />
[[Category:Encoder/Decoder]]</div>Kohlrabihttps://wiki.hydrogenaud.io/index.php?title=Free_Lossless_Audio_CodecFree Lossless Audio Codec2013-01-31T10:07:47Z<p>Kohlrabi: /* General aspects of the format */ Shorten is dead.</p>
<hr />
<div>{{Codec Infobox<br />
| name = FLAC<br />
| logo = [[Image:FLAC logo.gif]]<br />
| type = lossless<br />
| purpose = Popular open source patent free lossless compression scheme.<br />
| maintainer = Josh Coalson, Xiph Community <br />
| recommended_encoder = FLAC encoder<br />
| recommended_text = FLAC v1.2.1<br />
| website = http://flac.sourceforge.net/<br />
}}<br />
'''Free Lossless Audio Codec''' ('''FLAC''') is a codec for lossless audiocompression.<br />
Grossly oversimplified, FLAC is similar to [[MP3]], but [[lossless]], meaning that audio is compressed in FLAC without any loss in quality. This is similar to how Zip works, except with FLAC you will get much better compression because it is designed specifically for audio, and you can play back compressed FLAC files in your favorite player (or your car or home stereo, if supported) just like you would an MP3 file.<br />
<br />
== General aspects of the format ==<br />
FLAC is freely available and supported on most operating systems, including Windows, UNIX (Linux, *BSD, Solaris, OS X, IRIX), BeOS, OS/2, and Amiga. There are build systems for autotools, MSVC, Watcom C, and Project Builder.<br />
<br />
The FLAC project consists of:<br />
* the stream format<br />
* reference encoders and decoders in library form<br />
* flac, a command-line program to encode and decode FLAC files<br />
* metaflac, a command-line metadata editor for FLAC files<br />
* input plugins for various music players<br />
<br />
When it's said that FLAC is ''free'', it means more than just that it is available at no cost. It means that the specification of the format is fully open to the public to be used for any purpose, although the FLAC project reserves the right to set the FLAC specification and certify compliance. It also means that neither the FLAC format nor any of the implemented encoding/decoding methods are covered by any known patent. And it means that all the source code is available under open-source licenses. It is the first truly open and free lossless audio format.<br />
<br />
== Features ==<br />
* '''Lossless:''' The encoding of audio (PCM) data incurs no loss of information, and the decoded audio is bit-for-bit identical to what went into the encoder. Each frame contains a 16-bit CRC of the frame data for detecting transmission errors. The integrity of the audio data is further insured by storing an MD5 signature of the original unencoded audio data in the file header, which can be compared against later during decoding or testing.<br />
* '''Fast:''' FLAC is asymmetric in favor of decode speed. Decoding requires only integer arithmetic, and is much less compute-intensive than for most perceptual codecs. Real-time decode performance is easily achievable on even modest hardware.<br />
* '''Hardware support:''' Because of FLAC's free reference implementation and low decoding complexity, FLAC is currently the only lossless codec that has any kind of hardware support.<br />
* '''Streamable:''' Each FLAC frame contains enough data to decode that frame. FLAC does not even rely on previous or following frames. FLAC uses sync codes and CRCs (similar to MPEG and other formats), which, along with framing, allow decoders to pick up in the middle of a stream with a minimum of delay.<br />
* '''Seekable:''' FLAC supports fast sample-accurate seeking. Not only is this useful for playback, it makes FLAC files suitable for use in editing applications.<br />
* '''Flexible metadata:''' New metadata blocks can be defined and implemented in future versions of FLAC without breaking older streams or decoders. Currently there are metadata types for tags, cue sheets, and seek tables. Applications can write their own APPLICATION metadata once they register an ID.<br />
* '''Suitable for archiving:''' FLAC is an open format, and there is no generation loss if you need to convert your data to another format in the future. In addition to the frame CRCs and MD5 signature, flac has a verify option that decodes the encoded stream in parallel with the encoding process and compares the result to the original, aborting with an error if there is a mismatch.<br />
* '''Convenient CD archiving:''' FLAC has a ''cue sheet'' metadata block for storing a CD table of contents and all track and index points. For instance, you can rip a CD to a single file, then import the CD's extracted cue sheet while encoding to yield a single file representation of the entire CD. If your original CD is damaged, the cue sheet can be exported later in order to burn an exact copy.<br />
* '''Error resistant:''' Because of FLAC's framing, stream errors limit the damage to the frame in which the error occurred, typically a small fraction of a second worth of data. Contrast this with some other lossless codecs, in which a single error destroys the remainder of the stream.<br />
<br />
== Pros ==<br />
* Portable to many systems<br />
* Source open and freely licenced<br />
* Hardware support (PhatBox, Kenwood MusicKeg, Rio Karma, etc. See below)<br />
* Streaming support<br />
* Extremely fast decoding<br />
* Supports multichannel and high resolution streams<br />
* Supports [[ReplayGain]]<br />
* Supports cue-sheet (with some limitations)<br />
* Gaining wide use as successor to [[Shorten]]<br />
<br />
== Cons ==<br />
* Compresses less efficiently than other popular modern compressors ([[Monkey's Audio]], [[OptimFROG]])<br />
* Higher compression modes slow, for little gain over the default setting.<br />
<br />
== Hardware and software that support FLAC ==<br />
For a more comprehensive list see the [http://flac.sourceforge.net/links.html FLAC links page].<br />
<br />
=== Hardware ===<br />
==== Home stereo ====<br />
* Olive's [http://www.olive.us/ Symphony] wireless digital music center<br />
* [http://www.numark.com/ Numark]'s DJ equipment (HDX and CDX turntables, HDMIX mixer)<br />
* [http://www.sonos.com/ Sonos Digital Music System]<br />
* Slim Devices' [http://www.slimdevices.com/pi_squeezebox.html Squeezebox] networked audio players<br />
<br />
==== Portable ====<br />
* [[Apple iPod]] with [[Rockbox]] firmware<br />
* [[iAudio M3]], M5 and X5<br />
* [[iRiver]] iHP-120/iHP-140 with [[Rockbox]] firmware<br />
* [[Iwod G10]]<br />
* [[Rio Karma]]<br />
* [http://en.wikipedia.org/wiki/SanDisk_Sansa SanDisk Sansa]<br />
* TrekStor's [http://www.trekstor.de/en/products/detail_mp3.php?pid=66 Vibez]<br />
* Devices running Android 3.1+<br />
<br />
=== Software ===<br />
==== Players ====<br />
* [[foobar2000]]<br />
* [[JRiver Media Center]]<br />
* [[MediaMonkey]]<br />
* [http://www.mplayerhq.hu/ MPlayer]<br />
* [http://www.mythtv.org/ MythTV]<br />
* [http://www.videolan.org/ VLC]<br />
* [http://www.vuplayer.com/vuplayer.htm VUPlayer]<br />
* [[Winamp]]<br />
* [[XMMS]]<br />
* [http://www.un4seen.com/ XMplay]<br />
<br />
==== Frontends (Windows) ====<br />
* Custom [http://members.home.nl/w.speek/flac.htm Windows Frontend] (by Speek)<br />
* [http://home.vxu.se/mdati00/frontah/ Frontah] by Madah<br />
<br />
==== Frontends (Mac) ====<br />
* [http://www.sbooth.org/Max/ Max]<br />
<br />
==== Converters ====<br />
* [http://www.dbpoweramp.com/ dBpowerAMP] Music Converter / Audio Player / CD Writer<br />
* [http://www.mediamonkey.com/ MediaMonkey] Music Manager / Audio Player / CD Writer<br />
<br />
==== Editors ====<br />
* [[Adobe Audition]]<br />
* [http://www.goldwave.com/ GoldWave]<br />
<br />
==== CD writers/rippers ====<br />
* [http://www.nero.com/eng/ Nero]<br />
* [http://arson.sourceforge.net/ Arson]<br />
* [http://www.burrrn.net Burrrn] Audio CD burner<br />
* [[Exact Audio Copy]] CD Ripper<br />
* [http://cdexos.sourceforge.net CDex] CD ripper<br />
* [http://www.cdwave.com/ CD Wave]<br />
* [http://cdburnerxp.se/ CDburner XP] CD writer<br />
* [http://www.mediamonkey.com/ MediaMonkey] - CD ripper/writer<br />
<br />
==== Taggers ====<br />
* [http://members.home.nl/w.speek/download/Tag.zip Case's Tag] command line tagger<br />
* [http://www.jtclipper.eu/thegodfather/ The GodFather] Tagger / Music manager<br />
* [http://www.mp3tag.de/en/index.html Mp3tag] Universal Tag Editor<br />
* [http://sbooth.org/Tag/ Tag] — for Mac OS X 10.4 (Tiger)<br />
* [http://flac.sourceforge.net/documentation.html#metaflac metaflac] - for general metadata (including Vorbis comments) maintenance<br />
* [http://www.mediamonkey.com MediaMonkey] - [[MediaMonkey]] Tagger / Music manager (Including Multiple and Linked Album Art support)<br />
<br />
==== Other tools ====<br />
* [http://www.bunkus.org/videotools/mkvtoolnix/ mkvtoolnix] - tool to multiplex FLAC streams inside the Matroska container<br />
* [http://flac.sourceforge.net/documentation.html#metaflac metaflac] - for general metadata (including Vorbis comments) maintenance, also to calculate [[ReplayGain]] values for FLAC files lacking such<br />
<br />
...and many more; see the [http://flac.sourceforge.net/links.html#software FLAC software section] and [http://flac.sourceforge.net/download.html#extras download section] for a more comprehensive list.<br />
<br />
== Frequently asked questions ==<br />
''Question:'' Does the compression level affect decompression speed?<br />
<br />
''Short Answer'': No.<br />
<br />
''Long Answer'': In truth, the compression level does affect the decompression speed, but the difference between the various compress levels can barely be measured and is too small to be noticed, even on low-end machines.<br />
<br />
<br />
''Question:'' What is the best compression level for encoding my music?<br />
<br />
''Short Answer'': The default setting, 5.<br />
<br />
''Long Answer'': Encoding at the default setting will give the best balance between compression and encoding speed. Encoding at 8 can more than quadruple the encoding time, while having an insignificant effect on compression.<br />
<br />
== See also ==<br />
* [[Lossless]]<br />
* [[Lossless comparison]]<br />
<br />
== Externals links ==<br />
* [http://flac.sourceforge.net/ FLAC website]<br />
* [http://flac.sourceforge.net/download.html FLAC download]<br />
* [http://flac.sourceforge.net/format.html Detailed description of the FLAC format]<br />
* [http://flac.sourceforge.net/documentation.html FLAC documentation]<br />
* [http://flac.sourceforge.net/faq.html FLAC FAQ]<br />
* <s> Omion's FLAC "File Size vs. Decoding Speed" test</s> - a very thorough test on [[Free Lossless Audio Codec#Frequently Asked Questions|the influence of the chosen encoding level on the decoding speed of FLAC]]; the only one so far to have covered FLAC's --super-secret-totally-impractical-compression-level to this extent as well.<br />
<br />
<br />
[[Category:Lossless]]<br />
[[Category:Encoder/Decoder]]</div>Kohlrabihttps://wiki.hydrogenaud.io/index.php?title=Myths_(Vinyl)Myths (Vinyl)2013-01-05T08:41:47Z<p>Kohlrabi: Made mastering section more neutral. see: http://www.hydrogenaudio.org/forums/index.php?showtopic=98199</p>
<hr />
<div>==Vinyl always sounds better than CD==<br />
As described below, despite decades of arguments, '''there is no technical proof of the sonic superiority of the vinyl medium compared to CD.''' One vinyl record may sound better than its equivalent CD for extremely specific reasons. That does not mean the medium as a whole is superior.<br />
<br />
Many people do prefer listening to music to vinyl rather than on CD or digital formats. Many of those reasons have nothing to do with actual sound quality, and have more to do with the tactile characteristics of vinyl - its "feel" - like larger artwork and its required playback ritual. Others prefer listening to CDs for a different set of reasons. There is nothing wrong with preferring vinyl to CDs, as long as the preference is honestly stated on emotional terms, or is precisely quantified and tied to subjective experience, and not obscured with (fallacious) technical appeals.<br />
<br />
==Vinyl requires a better-sounding master because it is physically incapable of reproducing the hypercompressed sound mastered to CD==<br />
Different masters can substantially improve or reduce sound quality. Some have less background noise. Some alter the dynamic range. There are other mastering techniques that can also affect the sound.<br />
<br />
There are documented instances of different masters being used on vinyl releases compared to CD releases. One notable example is The White Stripes' ''Icky Thump''. However, there are also instances of the same masters being used on vinyl releases compared to CD releases. In fact, if you purchase an album produced in the last two decades on vinyl, it is likely that the master will be no different than the one used on CD. Alternative masters for vinyl cost money, and mastering is a significant cost of producing a record. The reason for different masters is that producers possibly view digital media (like CD) and analog media (like Vinyl) to be different in nature, so they might produce a different master for each medium. Some even believe that Vinyl will automatically yield a superior sound, despite the well known technical limitations and disadvantages compared to the CD.<br />
<br />
'''The technical details behind this myth are as follows.''' The cutting heads used for creating the vinyl lacquer (or metal mother) are speaker-like electromechanical devices driven by an extremely powerful amplifier (several hundred watts). At extremely large/fast cutting head excursions, the cutting head coils may physically burn up, much like how a speaker's voice coils may be destroyed by an excessive current. Also, the diamond cutting head stylus may prematurely wear or break. This places important constraints on the maximum levels that can be recorded to a record.<br />
<br />
A very high power output is required to cut grooves with a high acceleration. Acceleration at the same signal amplitude is higher for higher-frequency signals. Heavily clipped and limited CDs in the modern mastering style have more high-frequency content than earlier masters. In general, increasing the perceived volume of a record - whether by increasing the recording level or by limiting/clipping/compression - raises the cutting head average power.<br />
<br />
Additionally, during playback, the turntable's stylus has limits on what grooves it can successfully track. Cartridges can only track grooves of a finite modulation width (measured in microns) that decreases in frequency. For instance, a cartridge may only be able to track a 300 µm-wide groove at 300 Hz, and yet only 50 µm at 20 kHz. This also places limits on the acceleration and velocity limits the record master can take.<br />
<br />
'''The most obvious way to work around these issues is simply to reduce the recording level of the vinyl master.''' Multiband limiters exist for recording purposes that dynamically reduce the treble content of the master, to limit the cutting head power usage.<br />
<br />
==The vinyl surface is heated to several hundred degrees on playback, and repeat play of the same track should wait at least several hours until the vinyl has cooled==<br />
<br />
Professional estimates for the stylus surface temperature during playback are 300-500 °F. Obviously, the temperature of the record is at or close to room temperature except at the stylus contact point - otherwise the record would completely melt. Back-to-back playback will introduce slightly more distortion than a fresh play. This is believed to be a temporary effect and goes away after approx. 10 minutes.<br />
<br />
Repeated playback (no matter what the timeframe) carries the risk of permanent damage. Obviously, records are observed to wear out with repeated play. No published evidence exists of back-to-back playback causing any more permanent damage than if repeated plays are separated by any longer period of time.<br />
<br />
==Proper vinyl playback is click-free==<br />
<br />
Pops and clicks are often not audible during a song on a well-maintained record and should not distract from the listening experience. No evidence exists of a record that is shown to be played back with absolutely no pops or clicks whatsoever. They are introduced at virtually every stage of production, from cutting the lacquer to the pressing to the playback itself. Some pops and ticks are pressed into the record itself.<br />
<br />
Some pops and ticks result from static discharges during playback. However, this may be mitigated by the use of topical treatments on the record.<br />
<br />
Because of the lack of evidence for a tick-free record and the engineering factors making such a record extremely rare, it is quite likely that no record exists that is truly free from all pops and ticks.<br />
<br />
==Vinyl is better than CD because it reproduces higher frequencies than CD and avoids anti-aliasing filter issues at the frequencies CDs can reproduce==<br />
<br />
The recording/tracking ability of vinyl is easily at least 50 kHz and perhaps as high as 100 kHz. The most notable proof of this is the CD4 quadraphonic system which relied on a 45 kHz bandwidth to be accurately reproduced. That said, the high-frequency response accuracy of vinyl varies tremendously. Frequency deviations of 5-10 dB or greater are not uncommon in the 20 kHz range for many records.<br />
<br />
More discussion: http://www.hydrogenaudio.org/forums/index.php?showtopic=98178<br />
<br />
Playback of ultrasound frequencies is still not guaranteed. Many MM cartridges have resonant peaks defined by the preamp loading, or stylus tip resonances defined by the cantilever, that attenuate high-frequency content.<br />
<br />
When groove wear does occur, it occurs much faster at high frequencies than at low frequencies. For modern styli this is not as much of a concern, though.<br />
<br />
There are rarely, if ever, any ultrasonic frequencies for vinyl to preserve. In audio recordings, such frequencies, when present, are normally low-energy noise imparted by electrical equipment and storage media used during recording, mixing, and mastering. Although some musical instruments can produce low-energy overtones in the ultrasonic range, they could only be on the vinyl if every piece of equipment and storage medium in the recording, mixing, and mastering stages was able to preserve them—which is unlikely even in modern recordings, since the average microphone or mixing console is designed only with audible frequencies in mind. Even if the overtones were preserved all the way to the mastering stage, mono and stereo lacquer cutting equipment typically includes a lowpass filter to avoid overheating the cutting head with ultrasonic frequencies.<br />
<br />
Finally, on top of all of these issues, there is simply no scientific evidence that frequencies beyond the 22 kHz limit of CD audio are audible to any known group of people, or that such frequencies affect anyone's perception of the audible range. There is no evidence that reconstruction and anti-aliasing issues are audible.<br />
<br />
==Vinyl is better than digital because the analog signal on the vinyl tracks the analog signal exactly, while digital is quantized into steps==<br />
<br />
The Nyquist-Shannon sampling theory states that continuous-time (analog) signals and their corresponding discrete-time (digital) signals are mathematically equivalent representations of any bandwidth-limited signal, provided the sample rate is higher than 2X the bandwidth. All relevant advantages and disadvantages result from implementation details rather than analog versus digital signal representation method per se.<br />
<br />
PCM encoding (used on CDs and DVD-A) records audio data in a quantized format. Analog formats do not have a measurable time or signal resolution.<br />
<br />
PCM is sometimes characterized as producing a jagged, "stair-step" waveform. This is only partially correct; analog-to-digital conversion (ADC) does indeed use a sample-and-hold circuit to measure an approximate, average amplitude across the duration of the sample, and digital-to-analog conversion (DAC) does the same kind of thing, generating a rectangular-ish waveform, but this output is ''always'' then subjected to additional filtering to smooth it out. Effectively, the ADC output sample values are interpreted as a series of ''points'' intersected by the waveform; the DAC output is a smooth curve, not a stair-step at all. Additionally, modern ADC and DAC chips are engineered to reduce below the threshold of audibility, if not completely eliminate, any other sources of noise in this conversion process, resulting in an extremely high correlation between the input and output signals.<br />
<br />
The most significant impact of finite sample rate is finite bandwidth. The only analog signal that can exist 'between the samples' of a CD is rare supersonic signal components and random noise. Both are deliberately filtered out in vinyl and CD recordings. Another impact of finite sample rate is the possibility of jitter in the sample clock. If the clock is not exactly on time, the jitter causes distortion. Jitter error is unique to digital, and vanishingly miniscule.<br />
<br />
PCM can encode time delays to any arbitrarily small length. Time delays of 1us or less - a tiny fraction of the sample rate - are easily achievable. The theoretical minimum delay is 1ns or less. (Proof [http://www.stevehoffman.tv/forums/showthread.php?t=85436 here].)<br />
<br />
The most significant impact of finite quantizing resolution is finite dynamic range. As implemented, CD and DVD digital audio formats have higher dynamic range than vinyl. The only signal that can exist 'between the bits' of a CD is drowned out by random noise from the vinyl surface grain. Another impact of finite quantizing resolution is systematic rounding and truncation error. The process of ignoring anything too small to be measured can lead to distortion of small signal levels if not splitting the difference exactly between quanta. This is the 'quantization distortion' most often referred to. It is another source of error that is unique to digital.<br />
<br />
With a correct implementation using dither, signal quantization (ie 16-bit or 24-bit) only adds wideband noise to the signal, not quantization distortion. If this dither noise is well below the already-present noise floor, it is inaudible.<br />
<br />
In inexpensive 1-bit converters, quantization can also cause spurious low-magnitude tones. This is yet another error unique to digital. Understanding of spurious tones is limited, but fortunately some techniques of reducing them have been developed, and 1-bit converters are now in widespread use.<br />
<br />
Analog encoding has many measurable and audible faults, potentially including harmonic distortion, noise and intermodulation distortion. These distortions have invariably measured higher than for digital formats, including CD.<br />
<br />
Tracking error is due to the use of analog encoding with a stylus that contacts the medium, manifesting as distortion and possibly also cyclic wow with subsonic noise if the pressing is off center from the spindle hole. Wow, flutter, footsteps and feedback are other errors due to the transport mechanism and transducers used with vinyl. Digital storage has none of these errors.<br />
<br />
In addition to its advantages for audio storage, digital also has advantages for audio production. When a large number of individual audio sources are sampled from source into 24 bits at high sample rate, then digitally processed with effects and mixed into a standard multichannel format, the resulting mix is superior in dynamic range and harmonic distortion to what could be achieved with legacy analog processing and mixing, due to the elimination of thousands of noise-producing and distortion-producing analog components such as potentiometers, resistors, and transistors. Some digital effects such as lossy codec compression to reduce overall bandwidth (thus reducing storage space) without sacrificing psycho-acoustic realism are impossible to implement in analog, and require a digital format anyway.<br />
<br />
Audio DVD or A/V Blu-ray medium is used in order to preserve the fidelity and channel grouping of modern multichannel recordings. Audio CD can also be used for such digital mixes, but at lower dynamic range and sample rate, and with only two discrete channels, with no lossy compression to reduce storage space. A third alternative is to rip to data disc and play back on computer via digital bus to a multichannel home theater receiver or equivalent.<br />
<br />
In any of these preceeding three use cases, digital is superior to analog at both mastering and end-user stages, and represents an advance in the total sound production signal path rather than simply storage improvement.<br />
<br />
==Vinyl has greater resolution than CD because its dynamic range is higher than for CD at the most audible frequencies==<br />
<br />
The dynamic range of vinyl, when evaluated as the ratio of a peak sinusoidal amplitude to the peak noise density at that sine wave frequency, is somewhere around 80 dB. Under theoretically ideal conditions, this could perhaps improve to 120 dB. The dynamic range of CDs, when evaluated on a frequency-dependent basis and performed with proper dithering and oversampling, is somewhere around 150 dB. Under no legitimate circumstances will the dynamic range of vinyl ever exceed the dynamic range of CD, under any frequency, given the wide performance gap and the physical limitations of vinyl playback. More discussion at [http://www.hydrogenaudio.org/forums/index.php?showtopic=47827&st=0&p=425794&#entry425794 Hydrogenaudio].<br />
<br />
==Adding a penny to the headshell improves tracking/sound==<br />
The trackability of a cartridge is related to the mechanical parameters of the tonearm and stylus assembly. Adding weight to the headshell (and adjusting the counterweight to compensate) increases the effective mass of the tonearm and reduces its resonant frequency. If the resonant frequency is excessively high - 15-20 Hz as measured by a test record - the weight may improve trackability by moving the resonance out of the audible range. Otherwise, it will generally only reduce trackability.<br />
<br />
==A cartridge is permanently damaged and should be replaced if the stylus appears even slightly bent==<br />
Bent styli cause azimuth and alignment errors which may be audible. In extreme cases they can cause record damage. Cartridges are hand-built and always have some finite tolerance in their construction. No stylus is perfectly straight. That said, if a brand-new cartridge arrives visibly bent, it is probably a good idea to return it.<br />
<br />
==Belt-driven turntables are better than direct-drive turntables==<br />
Belt drives are far easier to implement than direct drives, easier to improve, and arguably easier to repair. Well built direct drives have speed and rumble tolerances as good or better than well built belt drives.<br />
<br />
Subjective claims to the improved musicality and audio quality of belt drives are disputed and not well agreed upon by all listeners.<br />
<br />
Belt drives hold their value just as poorly in the used market as direct drives.<br />
<br />
Direct drive motors tend to last a very long time (some original-model SL1200s may still run without any maintenance). Belt drives need new belts on a semi-regular basis and tend to have noisier motors at the same price ranges as direct drives.<br />
<br />
There is a common myth that a direct drive will "hunt" for the correct speed and cause audible speed variations. This has no basis in reality.<br />
<br />
It is believed that direct drives are better at handling dynamic stylus friction than belt drives, except in cases of very poor direct drives or very good belt drives.<br />
<br />
Some examples do exist of direct drives of inferior quality.<br />
<br />
Stock tonearms on direct drives tend to be much less expensive than the tonearms that come with belt drives at similar price points.<br />
<br />
[[Category:Guides]]<br />
[[Category:Vinyl]]</div>Kohlrabihttps://wiki.hydrogenaud.io/index.php?title=New_Members_GuideNew Members Guide2012-08-30T17:30:53Z<p>Kohlrabi: Initial commit of the "New Members Guide". Article about the common question "FLAC vs. WAV". TODO: Add hyperlinks to relevant sections.</p>
<hr />
<div>This page is meant to address concerns and questions which regularly come up on the forums by members new to the Hydrogenaudio community. In the past these questions lead to ever repeating discussions of the same fashion, straining moderators and regular users alike.<br />
<br />
=Should I rip my CDs to FLAC or WAV?=<br />
==Short answer==<br />
;Advantages of FLAC<br />
* Reduction of file size<br />
* Allows tagging of files<br />
;Advantages of WAV<br />
* Plays in virtually any audio player<br />
<br />
Basically FLAC is the best choice in all cases, since nowadays there are audio players which play FLAC on every major platform. So unless you commonly use software which is not able to play or decode FLAC files, there is no compelling reason not to use it.<br />
<br />
==Long Answer==<br />
First of all, FLAC is, as the name implies, a lossless audio compression format. This means that the decoded FLAC file will not only sound exactly the same as the WAV, but it will be identical bit-by-bit to the WAV file. You can think of FLAC (or any lossless compression algorithm) like the ZIP algorithm to compress data. You will get the exact data out as you put in, just like ZIP, just the file size will be smaller.<br />
<br />
The reduction in file size directly implies that the bitrate of the resulting FLAC file is smaller than that of the input WAV file. This fact often is confusing to people new to audio compression, because they were trained to accept that bitrate equals audio quality. So how can FLAC have the exact same audio quality as WAV, but have a smaller bit rate? This confusion is due to a misconception of the meaning of the word "bitrate", while in fact it is very simple. Bitrate simply is a measure of the number of bits allocated per second of audio. Since FLAC reduces the file size due to compression, this of course means that it needs to allocate less bits per second of audio than the source WAV file. In fact, for a lossless compressor it is preferable to achieve the lowest possible bitrate, because this directly means that the file was reduced to the smallest possible size while still being completely identical to the input file.<br />
<br />
The reduction in file size is already the biggest advantage of FLAC over WAV, but for most users another point is likely of equal importance. Most everyone knows and is used to metadata stored in audio formats, a popular example being ID3 tags in MP3 files. These allow to attach information about the audio stream directly to the file without the need for external files, or a specialized folder structure for the audio files. This immensely helps with keeping an ever-growing music collection organized, because the information about the audio data is always kept together with the audio stream itself, even when moving the files around on the hard drive. FLAC has a defined way of storing this kind of information too, which is structured similar to ID3 tags and can be edited by a multitude of tools for many platforms. Storing of metadata is not well-defined for WAV, and in fact most audio players and tagging tools are unable to read metadata from WAV files. This means that a user who stores music using WAV files has to meticulously keep his folder structure intact, or store the metadata in special file along with the audio files. Moving the files to another folder or losing the external metadata file means that the information is completely lost.<br />
<br />
These are strong points in favour of FLAC, but there also have to be mentioned a point which slightly speaks against it. Since WAV is such a simple and old audio format, virtually every audio software is able to read the format. This is not the case for FLAC, in fact the standard media players on both Windows (Windows Media Player) and Mac OS (iTunes) do not support FLAC. The user has to check beforehand if the software he intends to use is able to work with FLAC. While there are audio players for every major platform which can play FLAC, some users might for one reason or another not want to use them, or have to use a very specific piece of software (e.g. a specific Audio Workstation without FLAC support). In that case keeping WAV files might be preferable, though due to their lossless nature, FLAC files can be decoded to WAV to be used in the relevant piece of software.</div>Kohlrabihttps://wiki.hydrogenaud.io/index.php?title=Multiplayer_GamesMultiplayer Games2012-05-20T10:56:23Z<p>Kohlrabi: Added Diablo 3.</p>
<hr />
<div>Some of us of the HydrogenAudio and foobar2000 like playing multiplayer games. This page keeps track of who plays what game and the in-game IDs. Meet us on #foobar2000 or #hydrogenaudio.<br />
<br />
=Battlefield 3=<br />
* Case, Garf, Kohlrabi<br />
<br />
=StarCraft 2=<br />
* Garf, Maestro^, y4n<br />
<br />
=World Of Tanks=<br />
* Kohlrabi, tomek<br />
<br />
=League Of Legends=<br />
* Kohlrabi, Zao<br />
<br />
=Diablo III=<br />
* Kohlrabi: Kohlrabi#2502</div>Kohlrabihttps://wiki.hydrogenaud.io/index.php?title=Multiplayer_GamesMultiplayer Games2012-05-10T18:36:05Z<p>Kohlrabi: /* Battlefield 3 */ added Kohlrabi</p>
<hr />
<div>Some of us of the HydrogenAudio and foobar2000 like playing multiplayer games. This page keeps track of who plays what game and the in-game IDs. Meet us on #foobar2000 or #hydrogenaudio.<br />
<br />
=Battlefield 3=<br />
* Case, Garf, Kohlrabi<br />
<br />
=StarCraft 2=<br />
* Garf, Maestro^, y4n<br />
<br />
=World Of Tanks=<br />
* Kohlrabi, tomek<br />
<br />
=League Of Legends=<br />
* Kohlrabi, Zao</div>Kohlrabihttps://wiki.hydrogenaud.io/index.php?title=Multiplayer_GamesMultiplayer Games2012-05-10T18:35:34Z<p>Kohlrabi: added known LoL players.</p>
<hr />
<div>Some of us of the HydrogenAudio and foobar2000 like playing multiplayer games. This page keeps track of who plays what game and the in-game IDs. Meet us on #foobar2000 or #hydrogenaudio.<br />
<br />
=Battlefield 3=<br />
* Case, Garf<br />
<br />
=StarCraft 2=<br />
* Garf, Maestro^, y4n<br />
<br />
=World Of Tanks=<br />
* Kohlrabi, tomek<br />
<br />
=League Of Legends=<br />
* Kohlrabi, Zao</div>Kohlrabihttps://wiki.hydrogenaud.io/index.php?title=MusepackMusepack2011-09-24T13:39:37Z<p>Kohlrabi: /* Pros */ generalised rockbox sentence</p>
<hr />
<div>= Introduction =<br />
'''Musepack''' is a lossy audio compression scheme created by Andree Buschmann. He started work on the codec in 1998 (then called MP+) because he was unsatisfied with the audio quality of MP3 codecs at the time. It is strongly based on the [[MPEG-1]] Layer-2 ([[MP2]]) algorithms, with 32 subbands of the same bandwidth, but with several significant improvements. Musepack is optimized for "transparency". The format doesn't compete well at lower, 'streaming' bitrates such as 32/48/64kbps. This is due to MPC being a [[subband]] [[codec]] as well as the fact that very little optimization has gone into such low [[bitrate]]s. However, as can be seen in various 128kbit/s listening tests (see below), despite the fact that MPC has been optimized little for such bitrates it is in the same class of other modern competitors such as [[AAC]] and (Ogg) [[Vorbis]].<br />
<br />
== Pros ==<br />
* Suffers from different "problem cases" than most other formats (less pre-echo)<br />
* Very fast encoding/decoding<br />
* Designed to be very good by default at --standard setting.<br />
* Open source<br />
* Portable playback by Pocket-PCs, Palm OS-based and Windows CE/Windows Mobile-based devices, even Smartphones, see http://tcpmp.corecodec.org<br />
* Portable playback on digital audio players with Rockbox support, see http://www.rockbox.org<br />
* Support & development forum at http://www.Musepack.net<br />
<br />
== Cons ==<br />
* Marginal support (yet) on portable players<br />
* No support for [[sampling rate]]s above 48khz<br />
<br />
= Technical details =<br />
== Supported input formats ==<br />
* channels: 1 to 8<br />
* bit depths: 1 to 32 bit linear [[PCM]]<br />
* sample rates: 32kHz, 37.8kHz, 44.1kHz, 48kHz (44.1 and 48 are highly tuned)<br />
* [[WAV]], raw [[PCM]], a lot of [[lossless]] compressed audio formats like [[FLAC]], [[LPAC]], [[Monkey's_Audio|APE]], [[OptimFROG]], [[SZIP]] and Shorten ([[SHN]])<br />
<br />
== Encoder Functions ==<br />
[[MPC Encoder Functions]]<br />
<br />
= Links =<br />
== User oriented links ==<br />
* [http://musepack.net Musepack.net] - a general info, news and software site.<br />
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=1927 Users' HowTo MPC guide at HydrogenAudio]<br />
* [http://www.saunalahti.fi/~cse/ Case's page] (Winamp plug-ins and more).<br />
* [http://www.uni-jena.de/~pfk/mpp/ Frank Klemm's official page] (out of order now)<br />
: This page is mirrored at: http://hydrogenaudio.org/musepack/klemm/www.personal.uni-jena.de/~pfk/mpp/<br />
* [http://betaplayer.corecodec.org/ BetaPlayer], the first Musepack-able player on PocketPCs<br />
<br />
== Technical links ==<br />
* [http://trac.musepack.net/trac/wiki Specifications]<br />
* [http://www.musepack.net/index.php?pg=src Source code]<br />
* Frank Klemm's [http://www.uni-jena.de/~pfk/mpp/ official page] (out of order now)<br />
: This page is mirrored at: http://hydrogenaudio.org/musepack/klemm/www.personal.uni-jena.de/~pfk/mpp/<br />
* [http://www.audiocoding.com/modules/wiki/?page=MPC MPC at AudioCodingWiki]<br />
* [http://www.caddr.com/code/libmusepack libmusepack portable musepack decoding library] (in progress)<br />
<br />
== Listening test involving MPC ==<br />
* [[Listening Tests]] page<br />
* [http://ff123.net/128tests.html ff123's 128kbit/s group listening test]<br />
* [http://ff123.net/128test/instruct.html ff123's second 128kbit/s group listening test]<br />
* [http://audio.ciara.us/test/128extension/results.html rjamorim's 128kbit/s test]<br />
<br />
Please note that some of these tests, while valid, used encoder versions which have now been superseded. You should make your own decision about the comparative quality of MPC, listening to clips of music in the style you prefer.<br />
<br />
Also note that these are tests at low bitrates; an area where MPC is not particularly optimized. The encoder was designed by the author to be very good at the --standard setting, thus little to no low [[bitrate]] tuning has gone into the [[codec]], opposite to that of [[AAC]], (Ogg) [[Vorbis]], [[WMA]] and others which focus more on this region. However, as can be seen in the various listening test pages, MPC competes surprisingly well with the rest of them.<br />
<br />
[[Category: Codecs]]<br />
[[Category: Lossy]]<br />
[[Category:Encoder/Decoder]]</div>Kohlrabihttps://wiki.hydrogenaud.io/index.php?title=Foobar2000:Foobar2000Foobar2000:Foobar20002011-03-20T09:30:45Z<p>Kohlrabi: Undo revision 22455 by Kohlrabi (Talk)</p>
<hr />
<div>{{title|foobar2000}}<br />
<br />
{{Software Infobox|<br />
|name = foobar2000<br />
|logo = [[Image:foobar2000 Logo.png|48px]]<br />
|screenshot = [[Image:Foobar2000-1.0-default-ui.png|250px]]<br />
|caption = Screenshot of foobar2000 v1.0 using the default user interface<br />
|maintainer = Peter Pawlowski<br />
|stable_release = 1.1.5<br />
|preview_release = <br />
|operating_system = Windows<br />
|use = Media Player<br />
|license = Proprietary, BSD<br />
|website = [http://www.foobar2000.org/ www.foobar2000.org]<br />
}}<br />
<br />
'''foobar2000''' is an advanced freeware audio player for the Windows platform. Some of the basic features include full unicode support, ReplayGain support and native support for several popular audio formats.<br />
<br />
'''The latest stable version is:''' [http://www.foobar2000.org/download v1.1.5]<br />
<br />
== Platforms ==<br />
<br />
foobar2000 has been written specifically for the Windows platform and there are no plans to port it to any others. However, while not officially supported, it is known to run on [http://www.hydrogenaudio.org/forums/index.php?showtopic=54933 Linux] and [http://www.hydrogenaudio.org/forums/index.php?showtopic=77261 Mac OS X] through Wine and WineBottler, respectively.<br />
<br />
== Features ==<br />
* Powerful open component architecture allowing third-party developers to extend functionality of the player, including the ability to fully replace the user interface.<br />
* Full Unicode support: File names, user interface, tagging, etc.<br />
* [[Replay Gain]] support: Both playback and writing ReplayGain information to file tags.<br />
* [[Gapless playback]].<br />
* Advanced [[tagging]] capabilities - through built-in [[foobar2000:Properties|Properties dialog]] and various optional tagging-related components.<br />
* Built-in [[foobar2000:Preferences:Media Library|Media Library]] functionality.<br />
** Intuitive [[foobar2000:Query syntax|query syntax]] for searching the Media Library.<br />
** [[foobar2000:Autoplaylist|Autoplaylist]] support: Generate dynamically updating playlists based on queries.<br />
* [[foobar2000:Preferences:General:Keyboard Shortcuts|Customizable keyboard shortcuts]].<br />
* Support for transcoding all supported audio formats using the [[Foobar2000:Converter|Converter component]] (requires external command-line encoder executables for different output formats).<br />
* [[Secure_ripping|Secure]] [[foobar2000:Ripping CDs|CD ripping]].<br />
* Streaming support.<br />
* Efficient handling of large playlists.<br />
* [[foobar2000:Components/Default_user_interface_%28foo_ui_std%29|User interface]] with simple configuration to create even complex layouts quickly and easily.<br />
* Highly customizable display of track information using [[foobar2000:Titleformat_Introduction|title formatting scripts]].<br />
<br />
== Supported Audio Formats ==<br />
Native Support ("out-of-the-box"):<br />
* [[MP1]], [[MP2]], [[MP3]], [[MP4]], [[Musepack]], [[AAC]], [[Ogg Vorbis]], [[FLAC]] / Ogg FLAC, [[Speex]], [[WavPack]], [[WAV]], [[AIFF]], [[AU|AU/SND]], [[CDDA]], [[WMA]], [[Matroska]].<br />
<br />
Supported through optional components:<br />
* [[TTA]], [[Monkey's Audio]], [[ALAC]], [[MOD]], [[SPC]], [[Shorten]], [[OptimFROG]], [[AC3]], [[DTS]], [[PSF]], [[NSF]], [[XID]], [[XA]], [[MMS]], [[RSTP]], [[TAK]], [[AMR]], etc.<br />
<br />
In addition, foobar2000 can also play music directly from compressed ZIP and without requiring the user to extract the files prior to playing. More archive formats supported through additional components: [http://kode54.foobar2000.org/ JMA], [http://kode54.foobar2000.org/ LHA].<br />
<br />
== Using foobar2000 ==<br />
* [http://www.foobar2000.org/FAQ foobar2000 FAQ]<br />
* [[foobar2000:components|foobar2000 Components]]<br />
* [[foobar2000:Directories|foobar2000 Directories]]<br />
* [[foobar2000:Encouraged Tag Standards|foobar2000 Encouraged Tag Standards]]<br />
* [[foobar2000:FAQ|foobar2000 FAQ (unofficial)]]<br />
* [http://wiki.hydrogenaudio.org/index.php?title=Category:Foobar2000_Guides foobar2000 Guides (category)]<br />
* [http://wiki.hydrogenaudio.org/index.php?title=Category:Foobar2000_Preferences foobar2000 Preferences (category)]<br />
=== Technical Information ===<br />
* [[foobar2000:ID3 Tag Mapping|ID3 Tag Mapping]]<br />
<br />
=== Specific Guides ===<br />
* [[foobar2000:Preferences|Preferences Dialog]]<br />
* [[foobar2000:Properties|Tag editing: the Properties dialog]]<br />
* [[foobar2000:Titleformat Introduction|Introduction to titleformat scripts]]<br />
* [[foobar2000:Titleformat Reference|Titleformat Reference]] - Quick-Reference for fields and functions<br />
* [[foobar2000:Query syntax|Query Syntax]] - Details of Syntax for querying metadata.<br />
* [[foobar2000:File operations|File operations dialog]] - Move, copy, rename, and delete files from within foobar2000<br />
* [[foobar2000:Commandline Guide|Commandline Usage]]<br />
* [[foobar2000:Metadata Compatibility|Metadata Compatibility]] - Compatibility with metadata written by other applications<br />
<br />
=== External Guides ===<br />
* [http://foobar2000.audiohq.de/ Frank Bicking's German-language guide].<br />
* [http://foobar2000.xrea.jp/ fb2k Wiki Page] for Japanese users.<br />
* [http://winamp2foobar.blogspot.com Winamp To Foobar Guide] with information relevant for general users also.<br />
<br />
== Important Links ==<br />
=== Official Site ===<br />
* [http://www.foobar2000.org foobar2000.org: Homepage]<br />
* [http://www.foobar2000.org/download foobar2000.org: Download]<br />
* [http://www.foobar2000.org/components foobar2000.org: Components]<br />
<br />
=== Community ===<br />
* [http://forums.foobar2000.org/ Official foobar2000 forum]<br />
* [http://foobar-users.de/ German Support Forum]<br />
* [http://foobar2000.pl/ Polish Support Forum]<br />
* [http://www.fforum.ru/index.php?showforum=59 Russian-language forum]<br />
* [http://www.foobar2000.ru/forum/ Another Russian-language forum]<br />
<br />
=== Appearance ===<br />
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=61333 Default UI .fth Thread] Fast way to clone another's DUI Configuration.<br />
* [[foobar2000:Preferences:Columns UI/Appearance|Columns UI appearance customization guides]]<br />
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=31027 Columns UI configurations]<br />
<br />
[[Category:foobar2000]]<br />
[[Category:Media Players|foobar2000]]<br />
[[Category:CD Rippers]]<br />
[[Category:Software]]<br />
[[Category:Tag editors]]</div>Kohlrabihttps://wiki.hydrogenaud.io/index.php?title=Foobar2000:Metadata_Compatibility_1.1.6_changesFoobar2000:Metadata Compatibility 1.1.6 changes2011-03-18T18:42:58Z<p>Kohlrabi: Added suggestions by Neptune.</p>
<hr />
<div>To improve the interoperability between foobar2000 and other media players, foobar2000 v1.1.6 offers the following changes to metadata handling:<br />
<br />
* ID3:<br />
** foobar2000 writes "AC/DC" as a single artist into ARTIST field of ID3v2.3 tags, instead of writing two artists "AC" and "DC". This is a special hack around the ID3 specification specially for "AC/DC".<br />
** The ALBUM ARTIST field is mapped to the ID3v2 TPE2 (BAND) frame.<br />
** ID3v2.3 tags are now written by default, without unsynchronization.<br />
** Improved reading of tags written by alpha versions of LAME.<br />
** foobar2000 links the iTunes ITUNESCOMPILATION tag to the ALBUM ARTIST tag. In case an ITUNESCOMPILATION tag is found in a file, foobar2000 treats it as if ALBUM ARTIST was set to "Various Artists". If an ALBUM ARTIST tag is found, ITUNESCOMPILATION will be ignored.<br />
<br />
* WMA:<br />
** Support added for multi-value fields in WMA.<br />
<br />
To benefit from these changes, users have to reload the metadata from the relevant files. This can be done by selecting the files in the Media Library or Playlist, and '''opening the context menu (right mouse button) while holding down the shift key''' to show additional options. From the menu select '''Tagging->Reload Info from file(s)''' to reload the info of the selected files.</div>Kohlrabihttps://wiki.hydrogenaud.io/index.php?title=Foobar2000:Foobar2000Foobar2000:Foobar20002011-03-18T18:38:22Z<p>Kohlrabi: Removed link to avoid jarsoniccing.</p>
<hr />
<div>{{title|foobar2000}}<br />
<br />
{{Software Infobox|<br />
|name = foobar2000<br />
|logo = [[Image:foobar2000 Logo.png|48px]]<br />
|screenshot = [[Image:Foobar2000-1.0-default-ui.png|250px]]<br />
|caption = Screenshot of foobar2000 v1.0 using the default user interface<br />
|maintainer = Peter Pawlowski<br />
|stable_release = 1.1.5<br />
|preview_release = <br />
|operating_system = Windows<br />
|use = Media Player<br />
|license = Proprietary, BSD<br />
|website = [http://www.foobar2000.org/ www.foobar2000.org]<br />
}}<br />
<br />
'''foobar2000''' is an advanced freeware audio player for the Windows platform. Some of the basic features include full unicode support, ReplayGain support and native support for several popular audio formats.<br />
<br />
'''The latest stable version is:''' [http://www.foobar2000.org/download v1.1.5]<br />
<br />
== Platforms ==<br />
<br />
foobar2000 has been written specifically for the Windows platform and there are no plans to port it to any others. However, while not officially supported, it is known to run on [http://www.hydrogenaudio.org/forums/index.php?showtopic=54933 Linux] and [http://www.hydrogenaudio.org/forums/index.php?showtopic=77261 Mac OS X] through Wine and WineBottler, respectively.<br />
<br />
== Features ==<br />
* Powerful open component architecture allowing third-party developers to extend functionality of the player, including the ability to fully replace the user interface.<br />
* Full Unicode support: File names, user interface, tagging, etc.<br />
* [[Replay Gain]] support: Both playback and writing ReplayGain information to file tags.<br />
* [[Gapless playback]].<br />
* Advanced [[tagging]] capabilities - through built-in [[foobar2000:Properties|Properties dialog]] and various optional tagging-related components.<br />
* Built-in [[foobar2000:Preferences:Media Library|Media Library]] functionality.<br />
** Intuitive [[foobar2000:Query syntax|query syntax]] for searching the Media Library.<br />
** [[foobar2000:Autoplaylist|Autoplaylist]] support: Generate dynamically updating playlists based on queries.<br />
* [[foobar2000:Preferences:General:Keyboard Shortcuts|Customizable keyboard shortcuts]].<br />
* Support for transcoding all supported audio formats using the [[Foobar2000:Converter|Converter component]] (requires external command-line encoder executables for different output formats).<br />
* [[Secure_ripping|Secure]] [[foobar2000:Ripping CDs|CD ripping]].<br />
* Streaming support.<br />
* Efficient handling of large playlists.<br />
* [[foobar2000:Components/Default_user_interface_%28foo_ui_std%29|User interface]] with simple configuration to create even complex layouts quickly and easily.<br />
* Highly customizable display of track information using [[foobar2000:Titleformat_Introduction|title formatting scripts]].<br />
<br />
== Supported Audio Formats ==<br />
Native Support ("out-of-the-box"):<br />
* [[MP1]], [[MP2]], [[MP3]], [[MP4]], [[Musepack]], [[AAC]], [[Ogg Vorbis]], [[FLAC]] / Ogg FLAC, [[Speex]], [[WavPack]], [[WAV]], [[AIFF]], [[AU|AU/SND]], [[CDDA]], [[WMA]], [[Matroska]].<br />
<br />
Supported through optional components:<br />
* [[TTA]], [[Monkey's Audio]], [[ALAC]], [[MOD]], [[SPC]], [[Shorten]], [[OptimFROG]], [[AC3]], [[DTS]], [[PSF]], [[NSF]], [[XID]], [[XA]], [[MMS]], [[RSTP]], [[TAK]], [[AMR]], etc.<br />
<br />
In addition, foobar2000 can also play music directly from compressed ZIP and without requiring the user to extract the files prior to playing. More archive formats supported through additional components: [http://kode54.foobar2000.org/ JMA], [http://kode54.foobar2000.org/ LHA].<br />
<br />
== Using foobar2000 ==<br />
* [http://www.foobar2000.org/FAQ foobar2000 FAQ]<br />
* [[foobar2000:components|foobar2000 Components]]<br />
* [[foobar2000:Directories|foobar2000 Directories]]<br />
* [[foobar2000:Encouraged Tag Standards|foobar2000 Encouraged Tag Standards]]<br />
* [[foobar2000:FAQ|foobar2000 FAQ (unofficial)]]<br />
* [http://wiki.hydrogenaudio.org/index.php?title=Category:Foobar2000_Guides foobar2000 Guides (category)]<br />
* [http://wiki.hydrogenaudio.org/index.php?title=Category:Foobar2000_Preferences foobar2000 Preferences (category)]<br />
=== Technical Information ===<br />
* [[foobar2000:ID3 Tag Mapping|ID3 Tag Mapping]]<br />
<br />
=== Specific Guides ===<br />
* [[foobar2000:Preferences|Preferences Dialog]]<br />
* [[foobar2000:Properties|Tag editing: the Properties dialog]]<br />
* [[foobar2000:Titleformat Introduction|Introduction to titleformat scripts]]<br />
* [[foobar2000:Titleformat Reference|Titleformat Reference]] - Quick-Reference for fields and functions<br />
* [[foobar2000:Query syntax|Query Syntax]] - Details of Syntax for querying metadata.<br />
* [[foobar2000:File operations|File operations dialog]] - Move, copy, rename, and delete files from within foobar2000<br />
* [[foobar2000:Commandline Guide|Commandline Usage]]<br />
<br />
=== External Guides ===<br />
* [http://foobar2000.audiohq.de/ Frank Bicking's German-language guide].<br />
* [http://foobar2000.xrea.jp/ fb2k Wiki Page] for Japanese users.<br />
* [http://winamp2foobar.blogspot.com Winamp To Foobar Guide] with information relevant for general users also.<br />
<br />
== Important Links ==<br />
=== Official Site ===<br />
* [http://www.foobar2000.org foobar2000.org: Homepage]<br />
* [http://www.foobar2000.org/download foobar2000.org: Download]<br />
* [http://www.foobar2000.org/components foobar2000.org: Components]<br />
<br />
=== Community ===<br />
* [http://forums.foobar2000.org/ Official foobar2000 forum]<br />
* [http://foobar-users.de/ German Support Forum]<br />
* [http://foobar2000.pl/ Polish Support Forum]<br />
* [http://www.fforum.ru/index.php?showforum=59 Russian-language forum]<br />
* [http://www.foobar2000.ru/forum/ Another Russian-language forum]<br />
<br />
=== Appearance ===<br />
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=61333 Default UI .fth Thread] Fast way to clone another's DUI Configuration.<br />
* [[foobar2000:Preferences:Columns UI/Appearance|Columns UI appearance customization guides]]<br />
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=31027 Columns UI configurations]<br />
<br />
[[Category:foobar2000]]<br />
[[Category:Media Players|foobar2000]]<br />
[[Category:CD Rippers]]<br />
[[Category:Software]]<br />
[[Category:Tag editors]]</div>Kohlrabihttps://wiki.hydrogenaud.io/index.php?title=Foobar2000:Metadata_Compatibility_1.1.6_changesFoobar2000:Metadata Compatibility 1.1.6 changes2011-03-18T18:31:42Z<p>Kohlrabi: Created page based on changelog and IRC logs.</p>
<hr />
<div>To improve the interoperability between foobar2000 and other media players, foobar2000 v1.1.6 offers the following changes to metadata handling:<br />
<br />
* ID3:<br />
** foobar2000 writes "AC/DC" as a single artist into ARTIST field of ID3v2.3 tags, instead of writing two artists "AC" and "DC". This is a special hack around the ID3 specification specially for "AC/DC".<br />
** The ALBUM ARTIST field is mapped to the ID3v2 TPE2 (BAND) frame in compliance with WMP/iTunes.<br />
** ID3v2.3 tags are now written by default, without unsynchronization.<br />
** Improved reading of tags written by alpha versions of LAME.<br />
** foobar2000 links the iTunes ITUNESCOMPILATION tag to the ALBUM ARTIST tag. In case an ITUNESCOMPILATION tag is found in a file, foobar2000 treats it as if ALBUM ARTIST was set to "Various Artists".<br />
<br />
* WMA:<br />
** Support added for multi-value fields in WMA.<br />
<br />
To benefit from these changes, users have to reload the metadata from the relevant files. This can be done by selecting the files in the Media Library or Playlist, and '''opening the context menu (right mouse button) while holding down the shift key''' to show additional options. From the menu select '''Tagging->Reload Info from file(s)''' to reload the info of the selected files.</div>Kohlrabihttps://wiki.hydrogenaud.io/index.php?title=Foobar2000:Foobar2000Foobar2000:Foobar20002011-03-18T18:07:54Z<p>Kohlrabi: added link to Metadata compatibility section.</p>
<hr />
<div>{{title|foobar2000}}<br />
<br />
{{Software Infobox|<br />
|name = foobar2000<br />
|logo = [[Image:foobar2000 Logo.png|48px]]<br />
|screenshot = [[Image:Foobar2000-1.0-default-ui.png|250px]]<br />
|caption = Screenshot of foobar2000 v1.0 using the default user interface<br />
|maintainer = Peter Pawlowski<br />
|stable_release = 1.1.5<br />
|preview_release = <br />
|operating_system = Windows<br />
|use = Media Player<br />
|license = Proprietary, BSD<br />
|website = [http://www.foobar2000.org/ www.foobar2000.org]<br />
}}<br />
<br />
'''foobar2000''' is an advanced freeware audio player for the Windows platform. Some of the basic features include full unicode support, ReplayGain support and native support for several popular audio formats.<br />
<br />
'''The latest stable version is:''' [http://www.foobar2000.org/download v1.1.5]<br />
<br />
== Platforms ==<br />
<br />
foobar2000 has been written specifically for the Windows platform and there are no plans to port it to any others. However, while not officially supported, it is known to run on [http://www.hydrogenaudio.org/forums/index.php?showtopic=54933 Linux] and [http://www.hydrogenaudio.org/forums/index.php?showtopic=77261 Mac OS X] through Wine and WineBottler, respectively.<br />
<br />
== Features ==<br />
* Powerful open component architecture allowing third-party developers to extend functionality of the player, including the ability to fully replace the user interface.<br />
* Full Unicode support: File names, user interface, tagging, etc.<br />
* [[Replay Gain]] support: Both playback and writing ReplayGain information to file tags.<br />
* [[Gapless playback]].<br />
* Advanced [[tagging]] capabilities - through built-in [[foobar2000:Properties|Properties dialog]] and various optional tagging-related components.<br />
* Built-in [[foobar2000:Preferences:Media Library|Media Library]] functionality.<br />
** Intuitive [[foobar2000:Query syntax|query syntax]] for searching the Media Library.<br />
** [[foobar2000:Autoplaylist|Autoplaylist]] support: Generate dynamically updating playlists based on queries.<br />
* [[foobar2000:Preferences:General:Keyboard Shortcuts|Customizable keyboard shortcuts]].<br />
* Support for transcoding all supported audio formats using the [[Foobar2000:Converter|Converter component]] (requires external command-line encoder executables for different output formats).<br />
* [[Secure_ripping|Secure]] [[foobar2000:Ripping CDs|CD ripping]].<br />
* Streaming support.<br />
* Efficient handling of large playlists.<br />
* [[foobar2000:Components/Default_user_interface_%28foo_ui_std%29|User interface]] with simple configuration to create even complex layouts quickly and easily.<br />
* Highly customizable display of track information using [[foobar2000:Titleformat_Introduction|title formatting scripts]].<br />
<br />
== Supported Audio Formats ==<br />
Native Support ("out-of-the-box"):<br />
* [[MP1]], [[MP2]], [[MP3]], [[MP4]], [[Musepack]], [[AAC]], [[Ogg Vorbis]], [[FLAC]] / Ogg FLAC, [[Speex]], [[WavPack]], [[WAV]], [[AIFF]], [[AU|AU/SND]], [[CDDA]], [[WMA]], [[Matroska]].<br />
<br />
Supported through optional components:<br />
* [[TTA]], [[Monkey's Audio]], [[ALAC]], [[MOD]], [[SPC]], [[Shorten]], [[OptimFROG]], [[AC3]], [[DTS]], [[PSF]], [[NSF]], [[XID]], [[XA]], [[MMS]], [[RSTP]], [[TAK]], [[AMR]], etc.<br />
<br />
In addition, foobar2000 can also play music directly from compressed ZIP and without requiring the user to extract the files prior to playing. More archive formats supported through additional components: [http://kode54.foobar2000.org/ JMA], [http://kode54.foobar2000.org/ LHA].<br />
<br />
== Using foobar2000 ==<br />
* [http://www.foobar2000.org/FAQ foobar2000 FAQ]<br />
* [[foobar2000:components|foobar2000 Components]]<br />
* [[foobar2000:Directories|foobar2000 Directories]]<br />
* [[foobar2000:Encouraged Tag Standards|foobar2000 Encouraged Tag Standards]]<br />
* [[foobar2000:FAQ|foobar2000 FAQ (unofficial)]]<br />
* [http://wiki.hydrogenaudio.org/index.php?title=Category:Foobar2000_Guides foobar2000 Guides (category)]<br />
* [http://wiki.hydrogenaudio.org/index.php?title=Category:Foobar2000_Preferences foobar2000 Preferences (category)]<br />
=== Technical Information ===<br />
* [[foobar2000:ID3 Tag Mapping|ID3 Tag Mapping]]<br />
<br />
=== Specific Guides ===<br />
* [[foobar2000:Preferences|Preferences Dialog]]<br />
* [[foobar2000:Properties|Tag editing: the Properties dialog]]<br />
* [[foobar2000:Titleformat Introduction|Introduction to titleformat scripts]]<br />
* [[foobar2000:Titleformat Reference|Titleformat Reference]] - Quick-Reference for fields and functions<br />
* [[foobar2000:Query syntax|Query Syntax]] - Details of Syntax for querying metadata.<br />
* [[foobar2000:File operations|File operations dialog]] - Move, copy, rename, and delete files from within foobar2000<br />
* [[foobar2000:Commandline Guide|Commandline Usage]]<br />
* [[foobar2000:Metadata Compatibility|Metadata Compatibility]] - Compatibility with metadata written by other applications<br />
<br />
=== External Guides ===<br />
* [http://foobar2000.audiohq.de/ Frank Bicking's German-language guide].<br />
* [http://foobar2000.xrea.jp/ fb2k Wiki Page] for Japanese users.<br />
* [http://winamp2foobar.blogspot.com Winamp To Foobar Guide] with information relevant for general users also.<br />
<br />
== Important Links ==<br />
=== Official Site ===<br />
* [http://www.foobar2000.org foobar2000.org: Homepage]<br />
* [http://www.foobar2000.org/download foobar2000.org: Download]<br />
* [http://www.foobar2000.org/components foobar2000.org: Components]<br />
<br />
=== Community ===<br />
* [http://forums.foobar2000.org/ Official foobar2000 forum]<br />
* [http://foobar-users.de/ German Support Forum]<br />
* [http://foobar2000.pl/ Polish Support Forum]<br />
* [http://www.fforum.ru/index.php?showforum=59 Russian-language forum]<br />
* [http://www.foobar2000.ru/forum/ Another Russian-language forum]<br />
<br />
=== Appearance ===<br />
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=61333 Default UI .fth Thread] Fast way to clone another's DUI Configuration.<br />
* [[foobar2000:Preferences:Columns UI/Appearance|Columns UI appearance customization guides]]<br />
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=31027 Columns UI configurations]<br />
<br />
[[Category:foobar2000]]<br />
[[Category:Media Players|foobar2000]]<br />
[[Category:CD Rippers]]<br />
[[Category:Software]]<br />
[[Category:Tag editors]]</div>Kohlrabi