<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hydrogenaudio.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cosmo</id>
	<title>Hydrogenaudio Knowledgebase - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hydrogenaudio.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cosmo"/>
	<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Special:Contributions/Cosmo"/>
	<updated>2026-04-28T22:41:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=EAC_and_TAK&amp;diff=18255</id>
		<title>EAC and TAK</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=EAC_and_TAK&amp;diff=18255"/>
		<updated>2008-01-29T20:01:34Z</updated>

		<summary type="html">&lt;p&gt;Cosmo: small typo fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Software Needed==&lt;br /&gt;
* [http://exactaudiocopy.org/eac6.html Exact Audio Copy]&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=58784 TAK]&lt;br /&gt;
* [[Wapet]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; This guide assumes that EAC has been configured for secure ripping, if not please follow [[EAC_Drive_Configuration | this]] guide.&lt;br /&gt;
* Extract &#039;&#039;&#039;takc.exe&#039;&#039;&#039; into a folder of your choice.&lt;br /&gt;
* Extract &#039;&#039;&#039;wapet.exe&#039;&#039;&#039; into your &#039;&#039;&#039;Exact Audio Copy&#039;&#039;&#039; directory.&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
* Open EAC and insert a CD into the drive.&lt;br /&gt;
* Click the &#039;&#039;&#039;EAC&#039;&#039;&#039; menu and select &#039;&#039;&#039;Compression Options...&#039;&#039;&#039; (or press &#039;&#039;&#039;F11&#039;&#039;&#039;).&lt;br /&gt;
* Click the &#039;&#039;&#039;External Compression&#039;&#039;&#039; tab, and put a check box in &#039;&#039;&#039;Use external program for compression&#039;&#039;&#039;.&lt;br /&gt;
* Change &#039;&#039;&#039;Parameter passing scheme&#039;&#039;&#039; to &#039;&#039;&#039;User Defined Encoder&#039;&#039;&#039;.&lt;br /&gt;
* Change &#039;&#039;&#039;Use file extension&#039;&#039;&#039; to &#039;&#039;&#039;.tak&#039;&#039;&#039;.&lt;br /&gt;
* Click the &#039;&#039;&#039;Browse&#039;&#039;&#039; button and locate &#039;&#039;&#039;wapet.exe&#039;&#039;&#039;.&lt;br /&gt;
* Remove the ticks from &#039;&#039;&#039;Use CRC check&#039;&#039;&#039;, &#039;&#039;&#039;Add ID3 tag&#039;&#039;&#039; and &#039;&#039;&#039;Check for external programs return code&#039;&#039;&#039;.&lt;br /&gt;
* In the &#039;&#039;&#039;Additional command line options&#039;&#039;&#039; box, copy and paste the string below.&lt;br /&gt;
&#039;&#039;&#039;APEv2 Tag:&#039;&#039;&#039;&lt;br /&gt;
 %d -t &amp;quot;Artist=%a&amp;quot; -t &amp;quot;Title=%t&amp;quot; -t &amp;quot;Album=%g&amp;quot; -t &amp;quot;Year=%y&amp;quot; -t &amp;quot;Track=%n&amp;quot; -t &amp;quot;Genre=%m&amp;quot; &amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;&amp;quot;C:\Program Files\TAK\takc.exe&amp;quot;&#039;&#039;&#039;&amp;lt;/span&amp;gt; -e &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;-p2&#039;&#039;&#039;&amp;lt;/span&amp;gt; %s %d &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;&#039;&#039;&#039;Note 1&#039;&#039;&#039;: This needs to point to where &#039;&#039;&#039;takc.exe&#039;&#039;&#039; is located.  If the path contains spaces, you must surround it with double quotes (&amp;quot;).&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;&#039;&#039;Note 2&#039;&#039;&#039;: Alter this switch for the desired compression mode.  If you leave the switch out, TAK will use the default of -p2.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Taken from the TAK command line summary:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-p#        select encoder preset #: 0-5 (fastest to strongest, default is 2).&lt;br /&gt;
             Append E/M (-p2m) to increase the evaluation level to Extra/Max.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:EACandTAK.png|frame|center|EAC External Compression dialogue configured for TAK with tagging support provided by Wapet]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Don&#039;t worry what bit rate is shown in the &#039;&#039;&#039;Bit rate&#039;&#039;&#039; drop down box, this will be ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Addtional Reading==&lt;br /&gt;
* [[TAK]]&lt;br /&gt;
* [[Exact_Audio_Copy | Exact Audio Copy]]&lt;br /&gt;
* [[Lossless | About Lossless Compression]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Guides]]&lt;br /&gt;
[[Category:EAC Guides|Monkey&#039;s Audio &amp;amp; EAC]]&lt;/div&gt;</summary>
		<author><name>Cosmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components&amp;diff=15302</id>
		<title>Foobar2000:Components</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components&amp;diff=15302"/>
		<updated>2006-11-12T02:54:40Z</updated>

		<summary type="html">&lt;p&gt;Cosmo: /* Remote control */ moved into alphabetical order&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fb2k}}&lt;br /&gt;
This page contains most Foobar2000 v0.9.x components available at time of last update. Descriptions where available. More information on these plugins can be found by searching the [http://www.hydrogenaudio.org/forums/index.php?showforum=28 foobar2000 forum] or in the [[foobar2000:Component_Repository|component repository]] page.&lt;br /&gt;
&lt;br /&gt;
Much of the information here came from [http://www.hydrogenaudio.org/forums/index.php?showtopic=42730&amp;amp;st=0 this thread] &lt;br /&gt;
which also shows a list of components not yet updated from earlier versions of foobar2000.&lt;br /&gt;
&lt;br /&gt;
==Interface==&lt;br /&gt;
===Column UI===&lt;br /&gt;
[http://music.morbo.org/components.php Columns UI (foo_ui_columns)] Very popular alternate interface for foobar2000 based on a columns and panel layout. It has a separated wiki that is located [http://music.morbo.org/wiki/columns_ui:columns_ui here].&lt;br /&gt;
&lt;br /&gt;
Columns UI has its own plugin system and these plugins extend the user interface:&lt;br /&gt;
* [http://cherans.bol.ucla.edu/fooplugins.html Album Art Panel (foo_uie_albumart)] ([[Foobar2000:0.9 Album Art Panel (foo_uie_albumart)|&#039;&#039;more info&#039;&#039;]]) Panel to display album art.&lt;br /&gt;
* [http://tmp.reharmonize.net/foobar/ Album Art Panel for matroska (foo_uie_albumart_mka)] Albumart mod to read matroska covers.&lt;br /&gt;
* [http://music.morbo.org/components.php Album List Panel (foo_uie_albumlist)] Displays the database in a treeview using customizable sorting methods (by genre, artist, directory, etc.)&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=47712 Album List Autoupdate Addon (foo_albumlist_autoupdate)] Adds an autoupdate on any database change (add/remove/change).&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=46612&amp;amp;hl= Bookmarks (foo_uie_bookmarks)] Help you remember positions in songs.&lt;br /&gt;
* [http://wiki.bowron.us/index.php/Foobar2000#foo_dockable_panels Dockable Panels (foo_dockable_panels)] It allows you to create windows that host columns ui panels as floating windows that can be attached to the side of the main foobar2000 window or each other.&lt;br /&gt;
* [http://ku.myftp.org/goods/ Explorer Panel (foo_uie_explorer)] [http://www.hydrogenaudio.org/forums/index.php?showtopic=49596 (alternate download location)] Displays a treeview of selected disks/folders .&lt;br /&gt;
* [http://foobar.s53.xrea.com/up/ Lyrics Panel (foo_uie_lyrics_panel)] Display lyrics stored in file tags. &lt;br /&gt;
* [http://wiki.bowron.us/index.php/Foobar2000 Music Browser (foo_browser)] Panels for Browsing Library, Similar to iTunes.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=44703 Playlist Dropdown (foo_uie_playlists_dropdown)] Displays the playlist in a dropdown menu.&lt;br /&gt;
* [http://wiki.bowron.us/index.php/Foobar2000#foo_playlist_tree Playlist Tree (foo_playlist_tree)] Tree based media library with many available customizations.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=44865 ProjectM Visualisation Panel (foo_uie_vis_projectM)] Based on the ProjectM project, which is a reimplementation of Milkdrop under OpenGL.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=7645921e89a8d475965ce4532a3849d0&amp;amp;showtopic=47650 Queue Manager (foo_uie_queuemanager)] It provides a window that shows the queue&#039;s contents and allows you to delete parts of them or clear the whole queue.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=44012 Quicksearch Panel (foo_uie_quicksearch)] Search toolbar that sends results to a playlist.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=47810&amp;amp;hl= Single Column Playlist Viewer (foo_uie_single_column_playlist)] ([[Foobar2000:0.9 Single Column Playlist (foo uie single column playlist)|&#039;&#039;more info&#039;&#039;]]) Displays the playlist in a single column with &amp;quot;headers&amp;quot;. Useful for creating a narrower and smaller layout.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=&amp;amp;showtopic=46106&amp;amp;view=findpost&amp;amp;p=410247 Tabs (foo_uie_tabs)] Tabs allows you to break Pauli&#039;s Exclusion principle by placing multiple panels in the same position at the same time.&lt;br /&gt;
* [http://stephan.kochen.nl/proj/foobar2000.html Track Info Panel (foo_uie_trackinfo)] ([[Foobar2000:0.9 Track Info Panel (foo_uie_trackinfo)|&#039;&#039;more info&#039;&#039;]]) Uses TAGZ to display information about a selected track.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=47044&amp;amp;st=0 Track Info Panel Mod (foo_uie_trackinfo_mod)] ([[Foobar2000:0.9 Track Info Panel Mod (foo uie trackinfo mod)|&#039;&#039;more info&#039;&#039;]]) Improved Track Info panel with the ability to use multiple fonts in the same panel. Also has the ability to display images.&lt;br /&gt;
&lt;br /&gt;
===GFX===&lt;br /&gt;
[http://www.hydrogenaudio.org/forums/index.php?showtopic=47891&amp;amp;hl= GFX window (foo_ui_gfx)] is a skinnable user interface, which doesn&#039;t only focus on looking good but tries to be as fast and &amp;quot;lightweight&amp;quot; as possible, too. It uses lua as scripting language. Two skins are included in the archive.&lt;br /&gt;
More info available in the 0.8 version discussion thread [http://www.hydrogenaudio.org/forums/index.php?showtopic=30281&amp;amp;hl=foo_ui_gfx+skin here].&lt;br /&gt;
&lt;br /&gt;
===Standard===&lt;br /&gt;
[http://www.foobar2000.org Default user interface (foo_ui_std)]. Included in the standard installation package.&lt;br /&gt;
&lt;br /&gt;
==DSP==&lt;br /&gt;
* [http://www.yohng.com/headphones.html 4Front Headphones (foo_dsp_headphones9)] Effects for headphone users.&lt;br /&gt;
* [http://www.andrewlabs.com/atsurround/download_fb2k.php ATSurround Processor (foo_dsp_atsurround)] ([[Foobar2000:0.9 ATSurround Processor (foo_dsp_atsurround)|&#039;&#039;more info&#039;&#039;]]) Reproduces surround sound information present in many stereo audio material and more.&lt;br /&gt;
* [http://bs2b.sourceforge.net/ BS2D (foo_dsp_bs2p)] ([[Foobar2000:0.9 BS2D (foo_dsp_bs2p)|&#039;&#039;more info&#039;&#039;]]) Improves headphone listening of regular hi-fi stereo records.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=46611 Voice Cut Filter (foo_dsp_centercut)] Voice cut filter.&lt;br /&gt;
* [http://www.skipyrich.com/foobar/foo_channel_mixer.ptml Channel Mixer (foo_channel_mixer)] ([[Foobar2000:0.9 Channel Mixer (foo_channel_mixer)|&#039;&#039;more info&#039;&#039;]]) Up/down mix to/from 1-6 channels&lt;br /&gt;
* [http://stephan.kochen.nl/proj/foobar2000.html#continuator Continuator (foo_dsp_continuator)] ([[Foobar2000:0.9 Continuator (foo_dsp_continuator)|&#039;&#039;more info&#039;&#039;]]) Allows for advanced crossfading between tracks.&lt;br /&gt;
* [http://www.foobar2000.org/components/index.html Convolve (foo_convolve)] ([[Foobar2000:0.9 Convolve (foo_convolve)|&#039;&#039;more info&#039;&#039;]]) Takes impulse response and does a fast convolution of the sound data with that impulse response.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=48524 Crossfader (foo_dsp_crossfader)] Allows crossfading between tracks.&lt;br /&gt;
* [http://www.naivesoftware.com/software.html Crossfeed (foo_dsp_crossfeed)] Filters the music to help reduce fatigue caused by listening to music with headphones&lt;br /&gt;
* [http://pelit.koillismaa.fi/plugins/dsp.php#132 Dolby Headphone Wrapper (foo_dsp_dolbyhp)] ([[Foobar2000:0.9 Dolby Headphone Wrapper (foo_dsp_dolbyhp)|&#039;&#039;more info&#039;&#039;]]) Dolby Headphone engine DLL.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=&amp;amp;showtopic=31899&amp;amp;view=findpost&amp;amp;p=419981 LPCM &amp;lt;--&amp;gt; Delta-PCM Converter (foo_dsp_delta)] Noise sharpening filter&lt;br /&gt;
* [http://www.oss3d.com/index.html OSS/3D (foo_dsp_oss3ddsp)] Audio enhancement. SHAREWARE.&lt;br /&gt;
* [http://www.acc.umu.se/~zao/foobar2000/#foo_dsp_silence Post-track Silence (foo_dsp_silence)] Inserts a configurable amount of silence after each track to help external devices like MiniDisc players to sync track changes.&lt;br /&gt;
* [http://www.mega-nerd.com/SRC/fb2k.html Secret Rabit Code Resampler (foo_dsp_src9)] Mega Nerd&#039;s Secret Rabbit Code sample rate converter.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=45849 Skip Silence (foo_dsp_skip_silence)] Detect and skip silence.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=46000 Soundtouch (foo_dsp_soundtouch)] Ajust pitch, tempo and rate.&lt;br /&gt;
* [http://otachan.com/foo_dsp_ssrc.html SSRC (foo_dsp_ssrc)] ([[Foobar2000:0.9 SSRC (foo_dsp_ssrc)|&#039;&#039;more info&#039;&#039;]]) Sample rate converter.&lt;br /&gt;
* [http://www.skipyrich.com/foobar/foo_dsp_tube.ptml Tube Sound (foo_dsp_tube)] ([[Foobar2000:0.9 Tube Sound (foo_dsp_tube)|&#039;&#039;more info&#039;&#039;]]) Emulate tube sound.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=22057&amp;amp;view=findpost&amp;amp;p=374256 VLevel (foo_dsp_vlevel)] ([[Foobar2000:0.9 VLevel (foo_dsp_vlevel)|&#039;&#039;more info&#039;&#039;]]) Dynamic compressor which amplifies the quiet parts of music.&lt;br /&gt;
* [http://pelit.koillismaa.fi/plugins/dsp.php#149 Winamp DSP Bridge (foo_dsp_winamp)] Allows the use of Winamp DSPs.&lt;br /&gt;
* [http://xover.sourceforge.net/ XOver (foo_dsp_xover)] ([[Foobar2000:0.9 XOver (foo_dsp_xover)|&#039;&#039;more info&#039;&#039;]]) Implements this digital crossover to achieve active multi-amplification.&lt;br /&gt;
&lt;br /&gt;
==Input==&lt;br /&gt;
===Audio Codecs===&lt;br /&gt;
* [http://kode54.foobar2000.org/ AC3 Decoder (foo_ac3)] Decodes Dolby Digital lossy audio compression technologies format ([[AC3]]).&lt;br /&gt;
* [http://dl.matroska.org/downloads/foobar2000/ AC3 Packet Decoder (foo_packet_decoder_ac3)] Needed for [[AC3]] in [[Matroska]].&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=48178&amp;amp;hl= Acropolis&#039;s WMA decoder | (foo_input_awma)] Alternative [[WMA]] decoder with tagging support.&lt;br /&gt;
* [http://www.foobar2000.com/components/index.html ALAC Decoder (foo_input_alac)] Apple Lossless ([[ALAC]]) decoder (has known stability issues: random crashes during decoding).&lt;br /&gt;
* [http://www.saunalahti.fi/~cse/foobar2000/foo_input_dts.zip DTS Decoder (foo_dts)] Decodes Digital Theater Systems ([[DTS]]) audio format.&lt;br /&gt;
* [http://dl.matroska.org/downloads/foobar2000/ Matroska Plugin (foo_input_matroska)] Decodes [[Matroska]] audio container format.&lt;br /&gt;
* [http://kode54.foobar2000.org/ MIDI Synthesizer Host (foo_midi)] &lt;br /&gt;
* [http://www.foobar2000.com/components/index.html Monkey&#039;s Audio Decoder (foo_input_monkey)] Adds decoding support for Monkey&#039;s Audio files (.[[APE]]) as well as APE Link files (.[[APL]]).&lt;br /&gt;
* [http://www.losslessaudio.org/ OptimFROG Lossless Audio Decoder (foo_input_ofr)] Decodes both the Lossless ([[OptimFROG|OFR]]) and DualStream (OFS) audio format.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Shorten Decoder (foo_input_shorten)] Decodes Shorten ([[SHN]]) audio format.&lt;br /&gt;
* [http://www.true-audio.com/Free_Downloads TTA Audio Decoder (unofficial) (foo_input_tta)] Decodes True Audio ([[TTA]]) audio format.&lt;br /&gt;
* [http://dl.matroska.org/downloads/foobar2000/ WavPack Packet Decoder (foo_packet_decoder_wavpack)]&lt;br /&gt;
&lt;br /&gt;
===Other Codecs===&lt;br /&gt;
* [http://kode54.foobar2000.org/ ADPCM Decoder (foo_adpcm)] Plays GameCube ADPCM audio data and some. (DSP, ADP, GCM, HPS, STM, AST, etc.)&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=43766 Another Slight Atari Player (foo_asap)] [http://asap.sourceforge.net/ ASAP] is a player/converter of Atari 8-bit music for modern computers. It provides high-quality, identical to the popular Atari800 emulator, emulation of the POKEY sound chip and the 6502 processor.&lt;br /&gt;
* [http://kode54.foobar2000.org/ DUMB Module Decoder (foo_dumb)] Plays your favorite module files, and then some. (MOD, S3M, XM, IT, 669, PTM, PSM, MTM, UMX)&lt;br /&gt;
* [http://shexec32.serveftp.net/products.aspx?id=foo_game Game Audio Decoder (foo_game)] Plays Westwood&#039;s audio (AUD), Sierra&#039;s sounds (SFX/AUD), Core design&#039;s cd audio (cdaudio.WAD), Funcom&#039;s music (ISS), Rome Total War&#039;s IDX (.IDX/DAT), Timegate&#039;s format (RWD), EA&#039;s Pathfinder audio (MUS) and Ben Gerard&#039;s music (SC68).&lt;br /&gt;
* [http://kode54.foobar2000.org/ Game Emu Player (foo_gep)] Plays several emulation formats. (GBS, NSF, SPC, GYM, HES, VGM)&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=47919&amp;amp;hl= Ganbatte! (foo_ganbatte)] Plays compressed Edlib (.d00, .d01) files.&lt;br /&gt;
* [http://kode54.foobar2000.org/ Lunar 2 PCM Decoder (foo_lunar2)] Plays audio files found on the original Lunar: Eternal Blue CD (RP*.PCM).&lt;br /&gt;
* [http://shexec32.serveftp.net/products.aspx?id=foo_m1 M1 Decoder (foo_m1)] ([[Foobar2000:0.9 M1 (foo_m1)|More info]]) Plays arcade/pinball game sound.&lt;br /&gt;
* [http://www.vesta.dti.ne.jp/~tsato/soft_fb2kv9.html MDX Decoder foo_input_mdx] MDX is a MIDI-like format that is designed to be played using the X68000&#039;s FM synthesizer.&lt;br /&gt;
* [http://www.vesta.dti.ne.jp/~tsato/soft_fb2kv9.html NSF Decoder foo_input_nsf] NSF file is a sound data file containing instructions for the Nintendo Entertainment System (NES) sound hardware.&lt;br /&gt;
* [http://kode54.foobar2000.org/ PSF Decoder (foo_psf)] Plays PlayStation Sound Format (PSF) files.&lt;br /&gt;
* [http://kode54.foobar2000.org/ SID Player 2 (foo_sid)] Sound chip of Commodore&#039;s CBM-II, Commodore 64 and Commodore 128 home computers.&lt;br /&gt;
* [http://www.vesta.dti.ne.jp/~tsato/soft_fb2kv9.html S98 Decoder foo_input_s98] Sound format for the NEC PC-98 microcomputer.&lt;br /&gt;
&lt;br /&gt;
==Output==&lt;br /&gt;
* [http://www.foobar2000.com/components/index.html ASIO Output (foo_out_asio)] Adds ASIO output support.&lt;br /&gt;
* [http://www.foobar2000.com/components/index.html Kernel Streaming Output (foo_out_ks)] Allows bit-exact playback bypassing Windows kernel mixer.&lt;br /&gt;
&lt;br /&gt;
==Visualisation==&lt;br /&gt;
* [http://stephan.kochen.nl/proj/foobar2000.html#projectM ProjectM Visualisation (foo_vis_projectM)] Based on the ProjectM project, which is a reimplementation of Milkdrop under OpenGL.&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
===General===&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=46954 Alarm (foo_alarm)] Starts playback at the specified period of time.&lt;br /&gt;
* [http://www.foobar2000.com/components/index.html Binary Comparator (foo_bitcompare)] Performs binary comparison between two or more tracks and reports differences.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/#channelusage Channel Usage Visualisation (foo_vis_channelusage)] Channel Usage Visualisation.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=000c74abfec71d3d8d4224d79adc8be8&amp;amp;showtopic=49606 Cleartype (foo_cleartype)] Adds cleartype checkbox in the font dialog box. Useful when only cleartype font is NOT turned on in the whole Windows OS system.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Common Services (foo_common)] Common services.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=46504 Component Versions Viewer (foo_version)]&lt;br /&gt;
* [http://www.foobar2000.com/components/index.html Decoding Speed Test (foo_benchmark)] ([[Foobar2000:0.9 Decoding Speed Test (foo_benchmark)|&#039;&#039;more info&#039;&#039;]]) Measures decoding speed of audio files.&lt;br /&gt;
* [http://www.foobar2000.org/components/index.html File Integrity Verifier (foo_verifier)] Checks specified media files for decoding errors.&lt;br /&gt;
* [http://numedecod.ro/HyperIM/forum/index.php?topic=118 HyperIM (foo_2hyperim)] Provides 19 media macros.&lt;br /&gt;
* [http://music.morbo.org/wiki/dop:start iPod Manager (foo_dop)] Experimental iPod plugin for foobar2000 0.9.2+, currently in alpha version.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=46360 Logitech G15 LCD Display (foo_g15lcd.dll)] Control the LCD panel on a Logitech G15 keyboard.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=47332&amp;amp;hl= Menu Addons (foo_menu_addons)] Adds a few shortcuts in menu.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=49636&amp;amp;hl= Minimize On Close (foo_minimize_on_close)] When foo gonna be closed, the plugin minimizes the program instead. If minimize-to-tray option is on, foo is minimized to tray.&lt;br /&gt;
* [http://kode54.foobar2000.org/ Pause On Lock (foo_lock)] Pauses/unpauses foobar2000 on workstation lock/unlock.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Playlist Lock Test (foo_locktest)]&lt;br /&gt;
* [http://www.skipyrich.com/foobar/foo_preview.ptml Preview (foo_preview)] Play only part of each track in the playlist.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=45223 Run (foo_run)] Able you to run a external program with the foobar syntax.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/#runcmd Run Commands (foo_runcmd)] Search and execute menu commands.&lt;br /&gt;
* [http://wiki.bowron.us/index.php/Foobar2000#foo_sendtodevice Send To Device (foo_sendtodevice)] Add &amp;quot;Send to Device&amp;quot; feature.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=000c74abfec71d3d8d4224d79adc8be8&amp;amp;showtopic=49589 Scheduler (foo_scheduler)] Plugin for scheduling actions like play, stop, system shutdown and many more.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Shell Link Resolver (foo_lnk)] Shell link resolver.&lt;br /&gt;
* [http://stephan.kochen.nl/proj/foobar2000.html#notaskbar Taskbar Remover (foo_notaskbar)] Hides Foobar2000 from the taskbar, even when the window is normally visible.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=46595 Titlebar (foo_managedWrapper)] ([[Foobar2000:0.9 Titlebar (foo_title)|&#039;&#039;more info&#039;&#039;]]) Create a personal title bar.&lt;br /&gt;
* [http://kode54.foobar2000.org/ Unpacker for JMA archive (foo_unpack_jma)]&lt;br /&gt;
* [http://kode54.foobar2000.org/ Unpacker for LHA archive (foo_unpack_lha)]&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=42941 Winamp API Emulator (foo_winamp_spam)] Designed to create a fake Winamp 1.x window which will act as a wrapper between applications written to use the Winamp API and foobar2000.&lt;br /&gt;
&lt;br /&gt;
===Library tools===&lt;br /&gt;
* [http://www.foobar2000.com/components/index.html Audio CD Writer (foo_burninate)] CD burning support (requires Nero to be installed on your system.)&lt;br /&gt;
* [http://www.foobar2000.com/components/index.html Autoplaylist Manager (foo_autoplaylist)] Presents a Media Library query in a dynamically-generated playlist (under development).&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=44656 Bin Pack (foo_binpack)] Creates playlists from a list with a maximum length.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=47148 Command Playlist (foo_cmd_playlist)] Add /playlist-activate:&amp;quot;Name&amp;quot; to the foobar command line to activate the named playlist.&lt;br /&gt;
* [http://tmp.reharmonize.net/foobar/ Cuesheet Creator (foo_cuesheet_creator)] Cuesheet creator.&lt;br /&gt;
* [http://wiki.bowron.us/index.php/Foobar2000#foo_cwb_hooks Cwbowron&#039;s Title formating  (foo_cwb_hooks)] Special playlist title formating.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Database Search (foo_dbsearch)] ([[Foobar2000:0.9 Database Search (foo_dbsearch)|&#039;&#039;more info&#039;&#039;]]) Database search.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=b70296382d538d9ccfb7a4ba9c179345&amp;amp;showtopic=47374 Highlight Playing (foo_highlightplaying)] Highlights actual now playing item even when the playlist has been broken.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=43012 History (foo_history)] Very basic song history.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=&amp;amp;showtopic=30361&amp;amp;view=findpost&amp;amp;p=409277 Inactive Tracks (foo_skip)] Skips tracks that are marked via a tag as inactive.&lt;br /&gt;
* [http://eludevisibility.org/music/ MeowDB (foo_meowdb)] ([[Foobar2000:0.9 MeowDB (foo_meowdb)|&#039;&#039;more info&#039;&#039;]]) Takes the Media Library and outputs the results to a form and uploads it to your server using the cURL library.&lt;br /&gt;
* [http://mry.awardspace.com/fb2k/foo_navigator.htm Navigator (foo_navigator)] Advanced history component.&lt;br /&gt;
* [http://www.foobar2000.com/components/index.html Play Count (official) (foo_playcount)] ([[Foobar2000:0.9 Play Count (official) (foo_playcount)|&#039;&#039;more info&#039;&#039;]]) Collects statistics about tracks from your Media Library being played.&lt;br /&gt;
* [http://stephan.kochen.nl/proj/foobar2000.html#playcount Play Count (foo_playcount)] ([[Foobar2000:0.9 Play Count (foo_playcount)|&#039;&#039;more info&#039;&#039;]]) Keeps track of the amount of times, the last time, and the first time a track has been played.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Playback Queue Viewer (foo_pqview)] Playback queue viewer.&lt;br /&gt;
* [http://www.skipyrich.com/foobar/foo_playlist_bind.ptml Playlist Bind (foo_playlist_bind)] Synchronize playlist with contents of specific directory.&lt;br /&gt;
* [http://otachan.com/foo_playlistclear.html Playlist Clear (foo_playlistclear)] All playlists are cleared at startup.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Playlist Manager (foo_playlist_manager)] Playlist manager.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=43522 Playlist Name Enhenced (foo_playlist_name_enhanced)] ([[Foobar2000:0.9 Playlist Name Enhenced (foo_playlist_name_enhanced)|&#039;&#039;more info&#039;&#039;]]) Appends automatically playlist info (&amp;quot;items / length&amp;quot;) to all playlist names.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Playlist Tools (foo_utils)] ([[Foobar2000:0.9 Playlist Tools (foo_utils)|&#039;&#039;more info&#039;&#039;]]) Provides various general commands.&lt;br /&gt;
* [http://dl.matroska.org/downloads/foobar2000/ Playlist Tools for Matroska (foo_utils_mka)] Provides various general commands.&lt;br /&gt;
* [http://chron.visiondesigns.de/foobar2000/foo_queuemanager_0.1.1.zip Quicksearch Panel (foo_uie_quicksearch)] Search toolbar that sends results to a playlist. Non-ColumnUI obsolete version.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Randomized Playlist Entry (foo_random)] Randomized playlist entry.&lt;br /&gt;
* [http://wiki.bowron.us/index.php/Foobar2000#foo_trackfinder Track Finder (foo_trackfinder)] Displays a context menu that lets you quickly find songs based on their album title or artists name.&lt;br /&gt;
* [http://maadman.ma.funpic.de/?page_id=4&amp;amp;language=en XSPF (foo_xspf)] Adds XSPF support. XSPF is an open, XML based playlist format.&lt;br /&gt;
&lt;br /&gt;
===Lyrics===&lt;br /&gt;
* [http://gasazip.com/bbs/download.php?bo_table=down&amp;amp;wr_id=62&amp;amp;no=2 Gasazip Lyrics (foo_gasazip)] Search for lyrics and displays it in external window.&lt;br /&gt;
* [http://lyrics.mirkforce.net/download.html LyricsDB (foo_lyricsdb)] ([[Foobar2000:0.9 LyricsDB (foo_lyricsdb)|&#039;&#039;more info&#039;&#039;]]) Search lyrics basing on song&#039;s artist title and sometimes album.&lt;br /&gt;
* [http://www.crintsoft.com/minilyrics.htm Mini Lyrics (foo_ui_minilyrics)] ([[Foobar2000:0.9 Mini Lyrics (foo_ui_minilyrics)|&#039;&#039;more info&#039;&#039;]]) Lyrics viewer for synchronizing and displaying lyrics of the currently playing song.&lt;br /&gt;
&lt;br /&gt;
===Notifier===&lt;br /&gt;
* [http://pelit.koillismaa.fi/plugins/general.php#40 AMIP Wrapper (foo_amipwrapper)] Complete now-playing plug-in for mIRC, PIRCH, Klient, Bersirc, other IRC and Mail clients, supporting full player control from mIRC, playlist search, clipboard integration, HTTP, dynamic image signatures, etc.&lt;br /&gt;
* [http://pelit.koillismaa.fi/plugins/general.php#76 Miranda IM Notifier (foo_mim_notify)] Sends configurable information about the current playing song to Miranda-IM and shows popup windows with this info.&lt;br /&gt;
* [http://stephan.kochen.nl/proj/foobar2000.html#msn MSN Now Playing (alt) (foo_msnalt)] ([[Foobar2000:0.9 MSN Now Playing (alt) (foo_msnalt)|&#039;&#039;more info&#039;&#039;]]) Show the current song as &amp;quot;Now Playing&amp;quot; in MSN and MS Live messenger.&lt;br /&gt;
* [http://kode54.foobar2000.org/ On-Screen Display (foo_osd)] ([[Foobar2000:0.9 On-Screen Display (foo_osd)|&#039;&#039;more info&#039;&#039;]]) On screen display of track information and volume bar.&lt;br /&gt;
* [http://kode54.foobar2000.org/ On-Screen Display GDI+ (foo_osd_gdiplus)] ([[Foobar2000:0.9 On-Screen Display (foo_osd)|&#039;&#039;more info&#039;&#039;]]) Same as foo_osd but uses GDI+ for osd drawing.&lt;br /&gt;
* [http://www.maroonspoon.com/foo_prettypop/ Pretty Popup (foo_prettypop)] ([[Foobar2000:0.9 Pretty Popup (foo_prettypop)|&#039;&#039;more info&#039;&#039;]]) Display a moderately sized popup of song information when a new song plays.&lt;br /&gt;
&lt;br /&gt;
===Online database===&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=44320&amp;amp;st=0 Audioscrobbler (foo_audioscrobbler)] Audioscrobbler will send the name of every song you play on your computer to Last.fm. This effortlessly populates your profile to play radio you like and make personalized recommendations.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Foosic Music Database (foo_sic)] Sends track information to the [http://www.foosic.org/ foosic online database]. You can currently view your top artist, album and track statistics with foosic. Now support FooID fingerprints.&lt;br /&gt;
&lt;br /&gt;
===Online radio===&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=49165 MSLive (foo_input_mslive)] Support for [[MMS]] and [[RSTP]] broadcast radio protocols.&lt;br /&gt;
* [http://www.maroonspoon.com/foo_xm/ XM Radio Online Player (foo_xm)] Allow you to listen to XM Radio channels over the Internet by using XM Radio Online.&lt;br /&gt;
&lt;br /&gt;
===Remote control===&lt;br /&gt;
* [http://pelit.koillismaa.fi/plugins/general.php#138 Advanced Controls (foo_advancedcontrols)] ([[Foobar2000:0.9 Advanced Controls (foo_advancedcontrols)|&#039;&#039;more info&#039;&#039;]]) Control all the playback functions from icons in the Taskbar Notification Area (play, pause, next, previous, open)&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ COM Automation Server (foo_comserver2)] Allows controlling foobar2000 through COM Automation&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=38114 Control Server (foo_controlserver)] Acts as a server to control Foobar2000. Connect with a telnet client and control it using ASCII commands.&lt;br /&gt;
* [http://otachan.com/foo_ddecontrol.html DDE Control (foo_ddecontrol)] Control foobar remotelly with DDE interprocess communication (interface in japanese only).&lt;br /&gt;
* [http://sourceforge.net/projects/foohttpserver HTTP Server(foo_httpserver)] Foobar HTTP Server Remote Control.&lt;br /&gt;
* [http://foobar.daychanged.com/ HTTP Writer (foo_write_http)] It&#039;s TCP/IP server that listens on a specified port for incoming requests such as play, stop, etc.&lt;br /&gt;
* [http://foobar2000.mofo.ca/joystick_control/ Joystick Control (foo_joystick_control)] Control foobar2000 from a joystick/gamepad. ([http://www.hydrogenaudio.org/forums/index.php?showtopic=50110 Discussion])&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=44741 Minibar2k (foo_Minibar2k)] Control Foobar2k from your PDA (PocketPC based).&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=45140&amp;amp;hl= RM-1800 (foo_mr1800)] Adds support of Creative X-Fi&#039;s remote (RM-1800).&lt;br /&gt;
* [http://wiki.darkain.com/wiki/Main_Page RM-X Media Edition (foo_rmx)] Yet another plugin for remote control. SHAREWARE.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=46595 Title (foo_title)] ([[Foobar2000:0.9 Titlebar (foo_title)|&#039;&#039;more info&#039;&#039;]]) Shows the currently playing song on the top of the screen all the time. It supports custom-made skins.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=&amp;amp;showtopic=19252&amp;amp;view=findpost&amp;amp;p=391028 WinLIRC Client (foo_lirc)] ([[Foobar2000:0.9 WinLIRC Client (foo_lirc)|&#039;&#039;more info&#039;&#039;]]) Control Foobar from a remote control.&lt;br /&gt;
&lt;br /&gt;
===Tagging===&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=45994 Custom Info (foo_custominfo)] Allows you to set info fields for files without modifying them. &lt;br /&gt;
* [http://pelit.koillismaa.fi/plugins/tagging.php#150 Freedb2 Characters Fixer (foo_freedb2_fix)] This plugin fix freedb2 problem - some native characters are broken. This masstagger addon can recovery its. Note: russian characters supported only.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Freedb Tagger (foo_freedb2)] Freedb tagger.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Live Show Tagger (foo_tradersfriend)] ([[Foobar2000:0.9 Live Show Tagger (foo_tradersfriend)|&#039;&#039;more info&#039;&#039;]]) Live show tagger.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=45243&amp;amp;hl=foo_masstag_addons Masstagger Addons (foo_masstag_addons)] Some addons for masstagger, including code page conversion and chinese conversion.&lt;br /&gt;
* [http://gro.clinux.org/frs/?group_id=737&amp;amp;release_id=1095 Special File Info Box (foo_infobox)] ([[Foobar2000:0.9 Special File Info Box (foo_infobox)|&#039;&#039;more info&#039;&#039;]]) A replacement of the built-in file info box.&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://www.foobar2000.org/components/index.html Official components site] &lt;br /&gt;
* [http://pelit.koillismaa.fi/plugins/ Official third-party components site]&lt;br /&gt;
* [http://music.morbo.org/components.php musicmusic&#039;s components] including Columns UI&lt;br /&gt;
* [http://stephan.kochen.nl/proj/foobar2000.html Several popular components ported to 0.9]&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=28647 Columns UI thread]: first post contains links to many Columns UI panel extensions&lt;br /&gt;
* [http://wiki.hydrogenaudio.org/index.php?title=Foobar2000 Go back to Main Page]&lt;/div&gt;</summary>
		<author><name>Cosmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components&amp;diff=15298</id>
		<title>Foobar2000:Components</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Components&amp;diff=15298"/>
		<updated>2006-11-12T02:45:08Z</updated>

		<summary type="html">&lt;p&gt;Cosmo: /* Remote control */ - foo_joystick_control&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{fb2k}}&lt;br /&gt;
This page contains most Foobar2000 v0.9.x components available at time of last update. Descriptions where available. More information on these plugins can be found by searching the [http://www.hydrogenaudio.org/forums/index.php?showforum=28 foobar2000 forum] or in the [[foobar2000:Component_Repository|component repository]] page.&lt;br /&gt;
&lt;br /&gt;
Much of the information here came from [http://www.hydrogenaudio.org/forums/index.php?showtopic=42730&amp;amp;st=0 this thread] &lt;br /&gt;
which also shows a list of components not yet updated from earlier versions of foobar2000.&lt;br /&gt;
&lt;br /&gt;
==Interface==&lt;br /&gt;
===Column UI===&lt;br /&gt;
[http://music.morbo.org/components.php Columns UI (foo_ui_columns)] Very popular alternate interface for foobar2000 based on a columns and panel layout. It has a separated wiki that is located [http://music.morbo.org/wiki/columns_ui:columns_ui here].&lt;br /&gt;
&lt;br /&gt;
Columns UI has its own plugin system and these plugins extend the user interface:&lt;br /&gt;
* [http://cherans.bol.ucla.edu/fooplugins.html Album Art Panel (foo_uie_albumart)] ([[Foobar2000:0.9 Album Art Panel (foo_uie_albumart)|&#039;&#039;more info&#039;&#039;]]) Panel to display album art.&lt;br /&gt;
* [http://tmp.reharmonize.net/foobar/ Album Art Panel for matroska (foo_uie_albumart_mka)] Albumart mod to read matroska covers.&lt;br /&gt;
* [http://music.morbo.org/components.php Album List Panel (foo_uie_albumlist)] Displays the database in a treeview using customizable sorting methods (by genre, artist, directory, etc.)&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=47712 Album List Autoupdate Addon (foo_albumlist_autoupdate)] Adds an autoupdate on any database change (add/remove/change).&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=46612&amp;amp;hl= Bookmarks (foo_uie_bookmarks)] Help you remember positions in songs.&lt;br /&gt;
* [http://wiki.bowron.us/index.php/Foobar2000#foo_dockable_panels Dockable Panels (foo_dockable_panels)] It allows you to create windows that host columns ui panels as floating windows that can be attached to the side of the main foobar2000 window or each other.&lt;br /&gt;
* [http://ku.myftp.org/goods/ Explorer Panel (foo_uie_explorer)] [http://www.hydrogenaudio.org/forums/index.php?showtopic=49596 (alternate download location)] Displays a treeview of selected disks/folders .&lt;br /&gt;
* [http://foobar.s53.xrea.com/up/ Lyrics Panel (foo_uie_lyrics_panel)] Display lyrics stored in file tags. &lt;br /&gt;
* [http://wiki.bowron.us/index.php/Foobar2000 Music Browser (foo_browser)] Panels for Browsing Library, Similar to iTunes.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=44703 Playlist Dropdown (foo_uie_playlists_dropdown)] Displays the playlist in a dropdown menu.&lt;br /&gt;
* [http://wiki.bowron.us/index.php/Foobar2000#foo_playlist_tree Playlist Tree (foo_playlist_tree)] Tree based media library with many available customizations.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=44865 ProjectM Visualisation Panel (foo_uie_vis_projectM)] Based on the ProjectM project, which is a reimplementation of Milkdrop under OpenGL.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=7645921e89a8d475965ce4532a3849d0&amp;amp;showtopic=47650 Queue Manager (foo_uie_queuemanager)] It provides a window that shows the queue&#039;s contents and allows you to delete parts of them or clear the whole queue.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=44012 Quicksearch Panel (foo_uie_quicksearch)] Search toolbar that sends results to a playlist.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=47810&amp;amp;hl= Single Column Playlist Viewer (foo_uie_single_column_playlist)] ([[Foobar2000:0.9 Single Column Playlist (foo uie single column playlist)|&#039;&#039;more info&#039;&#039;]]) Displays the playlist in a single column with &amp;quot;headers&amp;quot;. Useful for creating a narrower and smaller layout.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=&amp;amp;showtopic=46106&amp;amp;view=findpost&amp;amp;p=410247 Tabs (foo_uie_tabs)] Tabs allows you to break Pauli&#039;s Exclusion principle by placing multiple panels in the same position at the same time.&lt;br /&gt;
* [http://stephan.kochen.nl/proj/foobar2000.html Track Info Panel (foo_uie_trackinfo)] ([[Foobar2000:0.9 Track Info Panel (foo_uie_trackinfo)|&#039;&#039;more info&#039;&#039;]]) Uses TAGZ to display information about a selected track.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=47044&amp;amp;st=0 Track Info Panel Mod (foo_uie_trackinfo_mod)] ([[Foobar2000:0.9 Track Info Panel Mod (foo uie trackinfo mod)|&#039;&#039;more info&#039;&#039;]]) Improved Track Info panel with the ability to use multiple fonts in the same panel. Also has the ability to display images.&lt;br /&gt;
&lt;br /&gt;
===GFX===&lt;br /&gt;
[http://www.hydrogenaudio.org/forums/index.php?showtopic=47891&amp;amp;hl= GFX window (foo_ui_gfx)] is a skinnable user interface, which doesn&#039;t only focus on looking good but tries to be as fast and &amp;quot;lightweight&amp;quot; as possible, too. It uses lua as scripting language. Two skins are included in the archive.&lt;br /&gt;
More info available in the 0.8 version discussion thread [http://www.hydrogenaudio.org/forums/index.php?showtopic=30281&amp;amp;hl=foo_ui_gfx+skin here].&lt;br /&gt;
&lt;br /&gt;
===Standard===&lt;br /&gt;
[http://www.foobar2000.org Default user interface (foo_ui_std)]. Included in the standard installation package.&lt;br /&gt;
&lt;br /&gt;
==DSP==&lt;br /&gt;
* [http://www.yohng.com/headphones.html 4Front Headphones (foo_dsp_headphones9)] Effects for headphone users.&lt;br /&gt;
* [http://www.andrewlabs.com/atsurround/download_fb2k.php ATSurround Processor (foo_dsp_atsurround)] ([[Foobar2000:0.9 ATSurround Processor (foo_dsp_atsurround)|&#039;&#039;more info&#039;&#039;]]) Reproduces surround sound information present in many stereo audio material and more.&lt;br /&gt;
* [http://bs2b.sourceforge.net/ BS2D (foo_dsp_bs2p)] ([[Foobar2000:0.9 BS2D (foo_dsp_bs2p)|&#039;&#039;more info&#039;&#039;]]) Improves headphone listening of regular hi-fi stereo records.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=46611 Voice Cut Filter (foo_dsp_centercut)] Voice cut filter.&lt;br /&gt;
* [http://www.skipyrich.com/foobar/foo_channel_mixer.ptml Channel Mixer (foo_channel_mixer)] ([[Foobar2000:0.9 Channel Mixer (foo_channel_mixer)|&#039;&#039;more info&#039;&#039;]]) Up/down mix to/from 1-6 channels&lt;br /&gt;
* [http://stephan.kochen.nl/proj/foobar2000.html#continuator Continuator (foo_dsp_continuator)] ([[Foobar2000:0.9 Continuator (foo_dsp_continuator)|&#039;&#039;more info&#039;&#039;]]) Allows for advanced crossfading between tracks.&lt;br /&gt;
* [http://www.foobar2000.org/components/index.html Convolve (foo_convolve)] ([[Foobar2000:0.9 Convolve (foo_convolve)|&#039;&#039;more info&#039;&#039;]]) Takes impulse response and does a fast convolution of the sound data with that impulse response.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=48524 Crossfader (foo_dsp_crossfader)] Allows crossfading between tracks.&lt;br /&gt;
* [http://www.naivesoftware.com/software.html Crossfeed (foo_dsp_crossfeed)] Filters the music to help reduce fatigue caused by listening to music with headphones&lt;br /&gt;
* [http://pelit.koillismaa.fi/plugins/dsp.php#132 Dolby Headphone Wrapper (foo_dsp_dolbyhp)] ([[Foobar2000:0.9 Dolby Headphone Wrapper (foo_dsp_dolbyhp)|&#039;&#039;more info&#039;&#039;]]) Dolby Headphone engine DLL.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=&amp;amp;showtopic=31899&amp;amp;view=findpost&amp;amp;p=419981 LPCM &amp;lt;--&amp;gt; Delta-PCM Converter (foo_dsp_delta)] Noise sharpening filter&lt;br /&gt;
* [http://www.oss3d.com/index.html OSS/3D (foo_dsp_oss3ddsp)] Audio enhancement. SHAREWARE.&lt;br /&gt;
* [http://www.acc.umu.se/~zao/foobar2000/#foo_dsp_silence Post-track Silence (foo_dsp_silence)] Inserts a configurable amount of silence after each track to help external devices like MiniDisc players to sync track changes.&lt;br /&gt;
* [http://www.mega-nerd.com/SRC/fb2k.html Secret Rabit Code Resampler (foo_dsp_src9)] Mega Nerd&#039;s Secret Rabbit Code sample rate converter.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=45849 Skip Silence (foo_dsp_skip_silence)] Detect and skip silence.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=46000 Soundtouch (foo_dsp_soundtouch)] Ajust pitch, tempo and rate.&lt;br /&gt;
* [http://otachan.com/foo_dsp_ssrc.html SSRC (foo_dsp_ssrc)] ([[Foobar2000:0.9 SSRC (foo_dsp_ssrc)|&#039;&#039;more info&#039;&#039;]]) Sample rate converter.&lt;br /&gt;
* [http://www.skipyrich.com/foobar/foo_dsp_tube.ptml Tube Sound (foo_dsp_tube)] ([[Foobar2000:0.9 Tube Sound (foo_dsp_tube)|&#039;&#039;more info&#039;&#039;]]) Emulate tube sound.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=22057&amp;amp;view=findpost&amp;amp;p=374256 VLevel (foo_dsp_vlevel)] ([[Foobar2000:0.9 VLevel (foo_dsp_vlevel)|&#039;&#039;more info&#039;&#039;]]) Dynamic compressor which amplifies the quiet parts of music.&lt;br /&gt;
* [http://pelit.koillismaa.fi/plugins/dsp.php#149 Winamp DSP Bridge (foo_dsp_winamp)] Allows the use of Winamp DSPs.&lt;br /&gt;
* [http://xover.sourceforge.net/ XOver (foo_dsp_xover)] ([[Foobar2000:0.9 XOver (foo_dsp_xover)|&#039;&#039;more info&#039;&#039;]]) Implements this digital crossover to achieve active multi-amplification.&lt;br /&gt;
&lt;br /&gt;
==Input==&lt;br /&gt;
===Audio Codecs===&lt;br /&gt;
* [http://kode54.foobar2000.org/ AC3 Decoder (foo_ac3)] Decodes Dolby Digital lossy audio compression technologies format ([[AC3]]).&lt;br /&gt;
* [http://dl.matroska.org/downloads/foobar2000/ AC3 Packet Decoder (foo_packet_decoder_ac3)] Needed for [[AC3]] in [[Matroska]].&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=48178&amp;amp;hl= Acropolis&#039;s WMA decoder | (foo_input_awma)] Alternative [[WMA]] decoder with tagging support.&lt;br /&gt;
* [http://www.foobar2000.com/components/index.html ALAC Decoder (foo_input_alac)] Apple Lossless ([[ALAC]]) decoder (has known stability issues: random crashes during decoding).&lt;br /&gt;
* [http://www.saunalahti.fi/~cse/foobar2000/foo_input_dts.zip DTS Decoder (foo_dts)] Decodes Digital Theater Systems ([[DTS]]) audio format.&lt;br /&gt;
* [http://dl.matroska.org/downloads/foobar2000/ Matroska Plugin (foo_input_matroska)] Decodes [[Matroska]] audio container format.&lt;br /&gt;
* [http://kode54.foobar2000.org/ MIDI Synthesizer Host (foo_midi)] &lt;br /&gt;
* [http://www.foobar2000.com/components/index.html Monkey&#039;s Audio Decoder (foo_input_monkey)] Adds decoding support for Monkey&#039;s Audio files (.[[APE]]) as well as APE Link files (.[[APL]]).&lt;br /&gt;
* [http://www.losslessaudio.org/ OptimFROG Lossless Audio Decoder (foo_input_ofr)] Decodes both the Lossless ([[OptimFROG|OFR]]) and DualStream (OFS) audio format.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Shorten Decoder (foo_input_shorten)] Decodes Shorten ([[SHN]]) audio format.&lt;br /&gt;
* [http://www.true-audio.com/Free_Downloads TTA Audio Decoder (unofficial) (foo_input_tta)] Decodes True Audio ([[TTA]]) audio format.&lt;br /&gt;
* [http://dl.matroska.org/downloads/foobar2000/ WavPack Packet Decoder (foo_packet_decoder_wavpack)]&lt;br /&gt;
&lt;br /&gt;
===Other Codecs===&lt;br /&gt;
* [http://kode54.foobar2000.org/ ADPCM Decoder (foo_adpcm)] Plays GameCube ADPCM audio data and some. (DSP, ADP, GCM, HPS, STM, AST, etc.)&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=43766 Another Slight Atari Player (foo_asap)] [http://asap.sourceforge.net/ ASAP] is a player/converter of Atari 8-bit music for modern computers. It provides high-quality, identical to the popular Atari800 emulator, emulation of the POKEY sound chip and the 6502 processor.&lt;br /&gt;
* [http://kode54.foobar2000.org/ DUMB Module Decoder (foo_dumb)] Plays your favorite module files, and then some. (MOD, S3M, XM, IT, 669, PTM, PSM, MTM, UMX)&lt;br /&gt;
* [http://shexec32.serveftp.net/products.aspx?id=foo_game Game Audio Decoder (foo_game)] Plays Westwood&#039;s audio (AUD), Sierra&#039;s sounds (SFX/AUD), Core design&#039;s cd audio (cdaudio.WAD), Funcom&#039;s music (ISS), Rome Total War&#039;s IDX (.IDX/DAT), Timegate&#039;s format (RWD), EA&#039;s Pathfinder audio (MUS) and Ben Gerard&#039;s music (SC68).&lt;br /&gt;
* [http://kode54.foobar2000.org/ Game Emu Player (foo_gep)] Plays several emulation formats. (GBS, NSF, SPC, GYM, HES, VGM)&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=47919&amp;amp;hl= Ganbatte! (foo_ganbatte)] Plays compressed Edlib (.d00, .d01) files.&lt;br /&gt;
* [http://kode54.foobar2000.org/ Lunar 2 PCM Decoder (foo_lunar2)] Plays audio files found on the original Lunar: Eternal Blue CD (RP*.PCM).&lt;br /&gt;
* [http://shexec32.serveftp.net/products.aspx?id=foo_m1 M1 Decoder (foo_m1)] ([[Foobar2000:0.9 M1 (foo_m1)|More info]]) Plays arcade/pinball game sound.&lt;br /&gt;
* [http://www.vesta.dti.ne.jp/~tsato/soft_fb2kv9.html MDX Decoder foo_input_mdx] MDX is a MIDI-like format that is designed to be played using the X68000&#039;s FM synthesizer.&lt;br /&gt;
* [http://www.vesta.dti.ne.jp/~tsato/soft_fb2kv9.html NSF Decoder foo_input_nsf] NSF file is a sound data file containing instructions for the Nintendo Entertainment System (NES) sound hardware.&lt;br /&gt;
* [http://kode54.foobar2000.org/ PSF Decoder (foo_psf)] Plays PlayStation Sound Format (PSF) files.&lt;br /&gt;
* [http://kode54.foobar2000.org/ SID Player 2 (foo_sid)] Sound chip of Commodore&#039;s CBM-II, Commodore 64 and Commodore 128 home computers.&lt;br /&gt;
* [http://www.vesta.dti.ne.jp/~tsato/soft_fb2kv9.html S98 Decoder foo_input_s98] Sound format for the NEC PC-98 microcomputer.&lt;br /&gt;
&lt;br /&gt;
==Output==&lt;br /&gt;
* [http://www.foobar2000.com/components/index.html ASIO Output (foo_out_asio)] Adds ASIO output support.&lt;br /&gt;
* [http://www.foobar2000.com/components/index.html Kernel Streaming Output (foo_out_ks)] Allows bit-exact playback bypassing Windows kernel mixer.&lt;br /&gt;
&lt;br /&gt;
==Visualisation==&lt;br /&gt;
* [http://stephan.kochen.nl/proj/foobar2000.html#projectM ProjectM Visualisation (foo_vis_projectM)] Based on the ProjectM project, which is a reimplementation of Milkdrop under OpenGL.&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
===General===&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=46954 Alarm (foo_alarm)] Starts playback at the specified period of time.&lt;br /&gt;
* [http://www.foobar2000.com/components/index.html Binary Comparator (foo_bitcompare)] Performs binary comparison between two or more tracks and reports differences.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/#channelusage Channel Usage Visualisation (foo_vis_channelusage)] Channel Usage Visualisation.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=000c74abfec71d3d8d4224d79adc8be8&amp;amp;showtopic=49606 Cleartype (foo_cleartype)] Adds cleartype checkbox in the font dialog box. Useful when only cleartype font is NOT turned on in the whole Windows OS system.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Common Services (foo_common)] Common services.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=46504 Component Versions Viewer (foo_version)]&lt;br /&gt;
* [http://www.foobar2000.com/components/index.html Decoding Speed Test (foo_benchmark)] ([[Foobar2000:0.9 Decoding Speed Test (foo_benchmark)|&#039;&#039;more info&#039;&#039;]]) Measures decoding speed of audio files.&lt;br /&gt;
* [http://www.foobar2000.org/components/index.html File Integrity Verifier (foo_verifier)] Checks specified media files for decoding errors.&lt;br /&gt;
* [http://numedecod.ro/HyperIM/forum/index.php?topic=118 HyperIM (foo_2hyperim)] Provides 19 media macros.&lt;br /&gt;
* [http://music.morbo.org/wiki/dop:start iPod Manager (foo_dop)] Experimental iPod plugin for foobar2000 0.9.2+, currently in alpha version.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=46360 Logitech G15 LCD Display (foo_g15lcd.dll)] Control the LCD panel on a Logitech G15 keyboard.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=47332&amp;amp;hl= Menu Addons (foo_menu_addons)] Adds a few shortcuts in menu.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=49636&amp;amp;hl= Minimize On Close (foo_minimize_on_close)] When foo gonna be closed, the plugin minimizes the program instead. If minimize-to-tray option is on, foo is minimized to tray.&lt;br /&gt;
* [http://kode54.foobar2000.org/ Pause On Lock (foo_lock)] Pauses/unpauses foobar2000 on workstation lock/unlock.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Playlist Lock Test (foo_locktest)]&lt;br /&gt;
* [http://www.skipyrich.com/foobar/foo_preview.ptml Preview (foo_preview)] Play only part of each track in the playlist.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=45223 Run (foo_run)] Able you to run a external program with the foobar syntax.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/#runcmd Run Commands (foo_runcmd)] Search and execute menu commands.&lt;br /&gt;
* [http://wiki.bowron.us/index.php/Foobar2000#foo_sendtodevice Send To Device (foo_sendtodevice)] Add &amp;quot;Send to Device&amp;quot; feature.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=000c74abfec71d3d8d4224d79adc8be8&amp;amp;showtopic=49589 Scheduler (foo_scheduler)] Plugin for scheduling actions like play, stop, system shutdown and many more.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Shell Link Resolver (foo_lnk)] Shell link resolver.&lt;br /&gt;
* [http://stephan.kochen.nl/proj/foobar2000.html#notaskbar Taskbar Remover (foo_notaskbar)] Hides Foobar2000 from the taskbar, even when the window is normally visible.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=46595 Titlebar (foo_managedWrapper)] ([[Foobar2000:0.9 Titlebar (foo_title)|&#039;&#039;more info&#039;&#039;]]) Create a personal title bar.&lt;br /&gt;
* [http://kode54.foobar2000.org/ Unpacker for JMA archive (foo_unpack_jma)]&lt;br /&gt;
* [http://kode54.foobar2000.org/ Unpacker for LHA archive (foo_unpack_lha)]&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=42941 Winamp API Emulator (foo_winamp_spam)] Designed to create a fake Winamp 1.x window which will act as a wrapper between applications written to use the Winamp API and foobar2000.&lt;br /&gt;
&lt;br /&gt;
===Library tools===&lt;br /&gt;
* [http://www.foobar2000.com/components/index.html Audio CD Writer (foo_burninate)] CD burning support (requires Nero to be installed on your system.)&lt;br /&gt;
* [http://www.foobar2000.com/components/index.html Autoplaylist Manager (foo_autoplaylist)] Presents a Media Library query in a dynamically-generated playlist (under development).&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=44656 Bin Pack (foo_binpack)] Creates playlists from a list with a maximum length.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=47148 Command Playlist (foo_cmd_playlist)] Add /playlist-activate:&amp;quot;Name&amp;quot; to the foobar command line to activate the named playlist.&lt;br /&gt;
* [http://tmp.reharmonize.net/foobar/ Cuesheet Creator (foo_cuesheet_creator)] Cuesheet creator.&lt;br /&gt;
* [http://wiki.bowron.us/index.php/Foobar2000#foo_cwb_hooks Cwbowron&#039;s Title formating  (foo_cwb_hooks)] Special playlist title formating.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Database Search (foo_dbsearch)] ([[Foobar2000:0.9 Database Search (foo_dbsearch)|&#039;&#039;more info&#039;&#039;]]) Database search.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=b70296382d538d9ccfb7a4ba9c179345&amp;amp;showtopic=47374 Highlight Playing (foo_highlightplaying)] Highlights actual now playing item even when the playlist has been broken.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=43012 History (foo_history)] Very basic song history.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=&amp;amp;showtopic=30361&amp;amp;view=findpost&amp;amp;p=409277 Inactive Tracks (foo_skip)] Skips tracks that are marked via a tag as inactive.&lt;br /&gt;
* [http://eludevisibility.org/music/ MeowDB (foo_meowdb)] ([[Foobar2000:0.9 MeowDB (foo_meowdb)|&#039;&#039;more info&#039;&#039;]]) Takes the Media Library and outputs the results to a form and uploads it to your server using the cURL library.&lt;br /&gt;
* [http://mry.awardspace.com/fb2k/foo_navigator.htm Navigator (foo_navigator)] Advanced history component.&lt;br /&gt;
* [http://www.foobar2000.com/components/index.html Play Count (official) (foo_playcount)] ([[Foobar2000:0.9 Play Count (official) (foo_playcount)|&#039;&#039;more info&#039;&#039;]]) Collects statistics about tracks from your Media Library being played.&lt;br /&gt;
* [http://stephan.kochen.nl/proj/foobar2000.html#playcount Play Count (foo_playcount)] ([[Foobar2000:0.9 Play Count (foo_playcount)|&#039;&#039;more info&#039;&#039;]]) Keeps track of the amount of times, the last time, and the first time a track has been played.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Playback Queue Viewer (foo_pqview)] Playback queue viewer.&lt;br /&gt;
* [http://www.skipyrich.com/foobar/foo_playlist_bind.ptml Playlist Bind (foo_playlist_bind)] Synchronize playlist with contents of specific directory.&lt;br /&gt;
* [http://otachan.com/foo_playlistclear.html Playlist Clear (foo_playlistclear)] All playlists are cleared at startup.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Playlist Manager (foo_playlist_manager)] Playlist manager.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=43522 Playlist Name Enhenced (foo_playlist_name_enhanced)] ([[Foobar2000:0.9 Playlist Name Enhenced (foo_playlist_name_enhanced)|&#039;&#039;more info&#039;&#039;]]) Appends automatically playlist info (&amp;quot;items / length&amp;quot;) to all playlist names.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Playlist Tools (foo_utils)] ([[Foobar2000:0.9 Playlist Tools (foo_utils)|&#039;&#039;more info&#039;&#039;]]) Provides various general commands.&lt;br /&gt;
* [http://dl.matroska.org/downloads/foobar2000/ Playlist Tools for Matroska (foo_utils_mka)] Provides various general commands.&lt;br /&gt;
* [http://chron.visiondesigns.de/foobar2000/foo_queuemanager_0.1.1.zip Quicksearch Panel (foo_uie_quicksearch)] Search toolbar that sends results to a playlist. Non-ColumnUI obsolete version.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Randomized Playlist Entry (foo_random)] Randomized playlist entry.&lt;br /&gt;
* [http://wiki.bowron.us/index.php/Foobar2000#foo_trackfinder Track Finder (foo_trackfinder)] Displays a context menu that lets you quickly find songs based on their album title or artists name.&lt;br /&gt;
* [http://maadman.ma.funpic.de/?page_id=4&amp;amp;language=en XSPF (foo_xspf)] Adds XSPF support. XSPF is an open, XML based playlist format.&lt;br /&gt;
&lt;br /&gt;
===Lyrics===&lt;br /&gt;
* [http://gasazip.com/bbs/download.php?bo_table=down&amp;amp;wr_id=62&amp;amp;no=2 Gasazip Lyrics (foo_gasazip)] Search for lyrics and displays it in external window.&lt;br /&gt;
* [http://lyrics.mirkforce.net/download.html LyricsDB (foo_lyricsdb)] ([[Foobar2000:0.9 LyricsDB (foo_lyricsdb)|&#039;&#039;more info&#039;&#039;]]) Search lyrics basing on song&#039;s artist title and sometimes album.&lt;br /&gt;
* [http://www.crintsoft.com/minilyrics.htm Mini Lyrics (foo_ui_minilyrics)] ([[Foobar2000:0.9 Mini Lyrics (foo_ui_minilyrics)|&#039;&#039;more info&#039;&#039;]]) Lyrics viewer for synchronizing and displaying lyrics of the currently playing song.&lt;br /&gt;
&lt;br /&gt;
===Notifier===&lt;br /&gt;
* [http://pelit.koillismaa.fi/plugins/general.php#40 AMIP Wrapper (foo_amipwrapper)] Complete now-playing plug-in for mIRC, PIRCH, Klient, Bersirc, other IRC and Mail clients, supporting full player control from mIRC, playlist search, clipboard integration, HTTP, dynamic image signatures, etc.&lt;br /&gt;
* [http://pelit.koillismaa.fi/plugins/general.php#76 Miranda IM Notifier (foo_mim_notify)] Sends configurable information about the current playing song to Miranda-IM and shows popup windows with this info.&lt;br /&gt;
* [http://stephan.kochen.nl/proj/foobar2000.html#msn MSN Now Playing (alt) (foo_msnalt)] ([[Foobar2000:0.9 MSN Now Playing (alt) (foo_msnalt)|&#039;&#039;more info&#039;&#039;]]) Show the current song as &amp;quot;Now Playing&amp;quot; in MSN and MS Live messenger.&lt;br /&gt;
* [http://kode54.foobar2000.org/ On-Screen Display (foo_osd)] ([[Foobar2000:0.9 On-Screen Display (foo_osd)|&#039;&#039;more info&#039;&#039;]]) On screen display of track information and volume bar.&lt;br /&gt;
* [http://kode54.foobar2000.org/ On-Screen Display GDI+ (foo_osd_gdiplus)] ([[Foobar2000:0.9 On-Screen Display (foo_osd)|&#039;&#039;more info&#039;&#039;]]) Same as foo_osd but uses GDI+ for osd drawing.&lt;br /&gt;
* [http://www.maroonspoon.com/foo_prettypop/ Pretty Popup (foo_prettypop)] ([[Foobar2000:0.9 Pretty Popup (foo_prettypop)|&#039;&#039;more info&#039;&#039;]]) Display a moderately sized popup of song information when a new song plays.&lt;br /&gt;
&lt;br /&gt;
===Online database===&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=44320&amp;amp;st=0 Audioscrobbler (foo_audioscrobbler)] Audioscrobbler will send the name of every song you play on your computer to Last.fm. This effortlessly populates your profile to play radio you like and make personalized recommendations.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Foosic Music Database (foo_sic)] Sends track information to the [http://www.foosic.org/ foosic online database]. You can currently view your top artist, album and track statistics with foosic. Now support FooID fingerprints.&lt;br /&gt;
&lt;br /&gt;
===Online radio===&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=49165 MSLive (foo_input_mslive)] Support for [[MMS]] and [[RSTP]] broadcast radio protocols.&lt;br /&gt;
* [http://www.maroonspoon.com/foo_xm/ XM Radio Online Player (foo_xm)] Allow you to listen to XM Radio channels over the Internet by using XM Radio Online.&lt;br /&gt;
&lt;br /&gt;
===Remote control===&lt;br /&gt;
* [http://pelit.koillismaa.fi/plugins/general.php#138 Advanced Controls (foo_advancedcontrols)] ([[Foobar2000:0.9 Advanced Controls (foo_advancedcontrols)|&#039;&#039;more info&#039;&#039;]]) Control all the playback functions from icons in the Taskbar Notification Area (play, pause, next, previous, open)&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ COM Automation Server (foo_comserver2)] Allows controlling foobar2000 through COM Automation&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=38114 Control Server (foo_controlserver)] Acts as a server to control Foobar2000. Connect with a telnet client and control it using ASCII commands.&lt;br /&gt;
* [http://otachan.com/foo_ddecontrol.html DDE Control (foo_ddecontrol)] Control foobar remotelly with DDE interprocess communication (interface in japanese only).&lt;br /&gt;
* [http://sourceforge.net/projects/foohttpserver HTTP Server(foo_httpserver)] Foobar HTTP Server Remote Control.&lt;br /&gt;
* [http://foobar.daychanged.com/ HTTP Writer (foo_write_http)] It&#039;s TCP/IP server that listens on a specified port for incoming requests such as play, stop, etc.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=44741 Minibar2k (foo_Minibar2k)] Control Foobar2k from your PDA (PocketPC based).&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=45140&amp;amp;hl= RM-1800 (foo_mr1800)] Adds support of Creative X-Fi&#039;s remote (RM-1800).&lt;br /&gt;
* [http://wiki.darkain.com/wiki/Main_Page RM-X Media Edition (foo_rmx)] Yet another plugin for remote control. SHAREWARE.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=46595 Title (foo_title)] ([[Foobar2000:0.9 Titlebar (foo_title)|&#039;&#039;more info&#039;&#039;]]) Shows the currently playing song on the top of the screen all the time. It supports custom-made skins.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?s=&amp;amp;showtopic=19252&amp;amp;view=findpost&amp;amp;p=391028 WinLIRC Client (foo_lirc)] ([[Foobar2000:0.9 WinLIRC Client (foo_lirc)|&#039;&#039;more info&#039;&#039;]]) Control Foobar from a remote control.&lt;br /&gt;
* [http://foobar2000.mofo.ca/joystick_control/ Joystick Control (foo_joystick_control)] Control foobar2000 from a joystick/gamepad. ([http://www.hydrogenaudio.org/forums/index.php?showtopic=50110 Discussion])&lt;br /&gt;
&lt;br /&gt;
===Tagging===&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=45994 Custom Info (foo_custominfo)] Allows you to set info fields for files without modifying them. &lt;br /&gt;
* [http://pelit.koillismaa.fi/plugins/tagging.php#150 Freedb2 Characters Fixer (foo_freedb2_fix)] This plugin fix freedb2 problem - some native characters are broken. This masstagger addon can recovery its. Note: russian characters supported only.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Freedb Tagger (foo_freedb2)] Freedb tagger.&lt;br /&gt;
* [http://foosion.foobar2000.org/0.9/ Live Show Tagger (foo_tradersfriend)] ([[Foobar2000:0.9 Live Show Tagger (foo_tradersfriend)|&#039;&#039;more info&#039;&#039;]]) Live show tagger.&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=45243&amp;amp;hl=foo_masstag_addons Masstagger Addons (foo_masstag_addons)] Some addons for masstagger, including code page conversion and chinese conversion.&lt;br /&gt;
* [http://gro.clinux.org/frs/?group_id=737&amp;amp;release_id=1095 Special File Info Box (foo_infobox)] ([[Foobar2000:0.9 Special File Info Box (foo_infobox)|&#039;&#039;more info&#039;&#039;]]) A replacement of the built-in file info box.&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://www.foobar2000.org/components/index.html Official components site] &lt;br /&gt;
* [http://pelit.koillismaa.fi/plugins/ Official third-party components site]&lt;br /&gt;
* [http://music.morbo.org/components.php musicmusic&#039;s components] including Columns UI&lt;br /&gt;
* [http://stephan.kochen.nl/proj/foobar2000.html Several popular components ported to 0.9]&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=28647 Columns UI thread]: first post contains links to many Columns UI panel extensions&lt;br /&gt;
* [http://wiki.hydrogenaudio.org/index.php?title=Foobar2000 Go back to Main Page]&lt;/div&gt;</summary>
		<author><name>Cosmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Tags&amp;diff=14929</id>
		<title>Tags</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Tags&amp;diff=14929"/>
		<updated>2006-10-11T20:59:28Z</updated>

		<summary type="html">&lt;p&gt;Cosmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[tagging]]&lt;/div&gt;</summary>
		<author><name>Cosmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=User:Cosmo&amp;diff=14613</id>
		<title>User:Cosmo</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=User:Cosmo&amp;diff=14613"/>
		<updated>2006-09-28T19:16:28Z</updated>

		<summary type="html">&lt;p&gt;Cosmo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.hydrogenaudio.org/forums/index.php?showuser=18979 forum profile]&lt;/div&gt;</summary>
		<author><name>Cosmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=LAME&amp;diff=14555</id>
		<title>LAME</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=LAME&amp;diff=14555"/>
		<updated>2006-09-26T18:50:20Z</updated>

		<summary type="html">&lt;p&gt;Cosmo: added link for 3.97 MacOSX binary&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software Infobox&lt;br /&gt;
| name = LAME&lt;br /&gt;
| screenshot = [[Image:Lamelogo.png|250px|LAME official logo]]&lt;br /&gt;
| caption = LAME ain&#039;t an MP3 encoder&lt;br /&gt;
| maintainer = The LAME project&lt;br /&gt;
| stable_release = 3.97&lt;br /&gt;
| preview_release = none&lt;br /&gt;
| operating_system = All&lt;br /&gt;
| use = Audio encoder/decoder&lt;br /&gt;
| license = LGPL&lt;br /&gt;
| website = [http://lame.sourceforge.net/ LAME website]&lt;br /&gt;
}}{{featured}}&lt;br /&gt;
&#039;&#039;&#039;LAME&#039;&#039;&#039; (Lame Ain&#039;t an MP3 Encoder) is the [[Hydrogenaudio]] recommended [[MP3]] encoder. It has been developed by the open-source community since 1998, and has become the highest quality [[MP3]] encoder for most purposes.&lt;br /&gt;
&lt;br /&gt;
Some benefits for using LAME:&lt;br /&gt;
* Highly optimised presets&lt;br /&gt;
* Fast encoding&lt;br /&gt;
* [[CBR]], [[ABR]] and [[VBR]] encoding methods&lt;br /&gt;
* [[Gapless]] playback with LAME-header compliant decoders&lt;br /&gt;
* [[Exact Audio Copy]] and [[CDex]] support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
LAME development began around mid-1998. Mike Cheng started it as a patch against the 8hz-MP3 encoder sources. After some quality concerns raised by others, he decided to start from scratch based on the dist10 sources. That branch (a patch against the reference sources) became LAME 2.0, and only on LAME 3.81 they got rid of all dist10 code, making LAME a completely new program-not a mere patch of an existing encoder.&lt;br /&gt;
&lt;br /&gt;
The project quickly became a team effort. Mike Cheng eventually left leadership and started working on [http://toolame.sourceforge.net/ tooLAME], an [[MP2]] encoder. Mark Taylor became leader and released version 3.0 featuring gpsycho, a new psychoacoustic model developed by him.&lt;br /&gt;
&lt;br /&gt;
Nowadays LAME is considered the best MP3 encoder at mid-high bitrates and features the best VBR model among MP3 implementations, mostly thanks to the dedicated work of talented developers like Takehiro Tominaga, Naoki Shibata, Darin Morrison, Gabriel Bouvigne, Robert Hegemann, etc. And development is still going on...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Recommended encoder compiles and source code==&lt;br /&gt;
This list will be kept up to date with the current LAME compiles that are recommended for optimal quality and will keep track of any development compiles released on [[Hydrogenaudio]].&lt;br /&gt;
&lt;br /&gt;
It is suggested that the compiles available here be used with the [[#Recommended encoder settings|recommended encoder settings]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&#039;&#039;&#039;The currently recommended LAME version is&#039;&#039;&#039;&amp;lt;/center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: 1em auto 1em auto;text-align:center;color:red;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 3.97&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[http://rarewares.org/dancer/dancer.php?f=1 Download] (317 KB - Win32 compile including lame_enc.dll)&lt;br /&gt;
&amp;lt;!--*[http://rarewares.org/dancer/dancer.php?f=103 Download] (342 KB - LameDropXPd: easy to use drag&#039;n&#039;drop LAME frontend for Windows)&lt;br /&gt;
*[http://www.rarewares.org/files/mp3/lame-3.97b-Linux86.tar.gz Download] (131 KB - Linux x86 static compile)&lt;br /&gt;
*[http://www.rarewares.org/files/mp3/lame-3.97b1-MacOSX.tar.gz Download] (192 KB - MacOS X compile)&lt;br /&gt;
*[http://www.rarewares.org/mp3.html Download] (Compiles for other operating systems: Solaris, BSD, HP-UX etc.)--&amp;gt;&lt;br /&gt;
*[http://www.rarewares.org/files/mp3/Lame-3.97.dmg Download] (365 KB - MacOS X universal binary)&lt;br /&gt;
*[http://prdownloads.sourceforge.net/lame/lame-3.97.tar.gz?download Download] (1.3 MB - Lame source code from Lame project page)&lt;br /&gt;
&lt;br /&gt;
==Recommended encoder settings==&lt;br /&gt;
This section describes the [[Hydrogenaudio]] recommended settings to be used with [[LAME]] for highest quality [[MP3]] encoding.&lt;br /&gt;
&lt;br /&gt;
These settings require LAME 3.94 or later. LAME 3.97 is the recommended version.&lt;br /&gt;
&lt;br /&gt;
Avoid using alpha (a) versions of LAME. More often than not those are exclusively for testing purposes. Use them only if you want to help developers with feedback.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note #1:&#039;&#039;&#039; the rule of thumb when considering encoding options: at a given bitrate, [[VBR]] is higher quality than [[ABR]], which is higher quality than [[CBR]] ([[VBR]] &amp;gt; [[ABR]] &amp;gt; [[CBR]] in terms of quality). The exception to this is when you choose the highest possible [[CBR]] bitrate, which is 320 kbps (-b 320 = --alt-preset insane), but this produces very large filesizes for very little audible benefit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note #2:&#039;&#039;&#039; all modes and settings mentioned in this topic belong to the specifications of the [[MP3]] standard, and the resulting MP3s should be playable by every [[MP3]] decoder that conforms with the standard. If your decoder or device does not play MP3s produced by LAME, blame the manufacturer or developer, and not LAME.&lt;br /&gt;
&lt;br /&gt;
===VBR (variable bitrate) settings===&lt;br /&gt;
&#039;&#039;&#039;[[VBR]]:&#039;&#039;&#039; &#039;&#039;variable bitrate mode. Use variable bitrate modes when the goal is to achieve a fixed level of quality using the lowest possible bitrate.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[VBR]] is best used to target a specific quality level, instead of a specific bitrate. The final file size of a [[VBR]] encode is less predictable than with [[ABR]], but the quality is usually better.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Usage:&#039;&#039;&#039; &amp;lt;code&amp;gt;-V(number)&amp;lt;/code&amp;gt; where number is 0-9, 0 being highest quality, 9 being the lowest.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; &amp;lt;code&amp;gt;-V2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: 1em auto 1em auto;&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;List of recommended settings&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Switch&#039;&#039;&#039; || &#039;&#039;&#039;Preset&#039;&#039;&#039; || &#039;&#039;&#039;Target Kbit/s&#039;&#039;&#039; || &#039;&#039;&#039;Bitrate range kbit/s&#039;&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -b 320 || --preset insane || 320 || 320 CBR&lt;br /&gt;
|-&lt;br /&gt;
| -V 0 --vbr-new || --preset fast extreme ||  245 || 220...260&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 0 || --preset extreme || 245 || 220...260&lt;br /&gt;
|-&lt;br /&gt;
| -V 1 --vbr-new ||&amp;amp;nbsp;|| 225 || 200...250&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 1 ||&amp;amp;nbsp;|| 225 || 200...250&lt;br /&gt;
|-&lt;br /&gt;
| -V 2 --vbr-new || --preset fast standard || 190 || 170...210&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 2 || --preset standard || 190 || 170...210&lt;br /&gt;
|-&lt;br /&gt;
| -V 3 --vbr-new ||&amp;amp;nbsp;|| 175 || 155...195&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 3 ||&amp;amp;nbsp;|| 175 || 155...195&lt;br /&gt;
|-&lt;br /&gt;
| -V 4 --vbr-new || --preset fast medium || 165 || 145...185&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 4 || --preset medium  || 165 || 145...185&lt;br /&gt;
|-&lt;br /&gt;
| -V 5 --vbr-new ||&amp;amp;nbsp;|| 130 || 110...150&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 5 ||&amp;amp;nbsp;|| 130 || 110...150&lt;br /&gt;
|-&lt;br /&gt;
| -V 6 --vbr-new ||&amp;amp;nbsp;|| 115 || 95...135&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 6 ||&amp;amp;nbsp;|| 115 || 95...135&lt;br /&gt;
|-&lt;br /&gt;
| -V 7 --vbr-new ||&amp;amp;nbsp;|| 100 || 80...120&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 7 ||&amp;amp;nbsp;|| 100 || 80...120&lt;br /&gt;
|-&lt;br /&gt;
| -V 8 --vbr-new ||&amp;amp;nbsp;|| 85 || 65...105&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 8 ||&amp;amp;nbsp;|| 85 || 65...105&lt;br /&gt;
|-&lt;br /&gt;
| -V 9 --vbr-new ||&amp;amp;nbsp;|| 65 || 45...85&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 9 ||&amp;amp;nbsp;|| 65 || 45...85&lt;br /&gt;
|}&lt;br /&gt;
See also [[#Technical information|Technical details for recommended LAME settings]].&lt;br /&gt;
&lt;br /&gt;
If you need a predictable bitrate (in a streaming application, for example), use [[ABR]] or [[CBR]] modes, described below.&lt;br /&gt;
&lt;br /&gt;
===ABR (average bitrate) settings===&lt;br /&gt;
&#039;&#039;&#039;[[ABR]]:&#039;&#039;&#039; &#039;&#039;average bitrate mode. A compromise between [[VBR]] and [[CBR]] modes, [[ABR]] encoding varies bits around a specified target bitrate.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use [[ABR]] when you need to know the final size of the file but still want to allow the encoder some flexibility to decide which passages need more bits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Usage:&#039;&#039;&#039; &amp;lt;code&amp;gt;--preset &amp;lt;bitrate&amp;gt;&amp;lt;/code&amp;gt; where &amp;lt;bitrate&amp;gt; (desired averaged bitrate in kbit/s) can be any value between 8 - 320 , like eg. 9, 17, 80, 128, 133, 200 etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; &amp;lt;code&amp;gt;--preset 200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; &#039;&#039;[[ABR]] setting is tuned from 320 kbit/s down to 80 kbit/s.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===CBR (constant bitrate) settings===&lt;br /&gt;
&#039;&#039;&#039;[[CBR]]:&#039;&#039;&#039; &#039;&#039;constant bitrate mode. [[CBR]] encoding is not efficient. Whereas [[VBR]] and [[ABR]] modes can supply more bits to complex music passages and save bits on simpler ones, [[CBR]] encodes every frame at the same bitrate.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[CBR]] is only recommended for usage in streaming situations where the upper bitrate must be strictly enforced.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Usage:&#039;&#039;&#039; &amp;lt;code&amp;gt;-b &amp;lt;bitrate&amp;gt;&amp;lt;/code&amp;gt; where &amp;lt;bitrate&amp;gt; (bitrate in kbit/s) must be chosen from the following values: 8, 16, 24, 32, 40, 48, 64, 80, 96, 112, 128, 160, 192, 224, 256, or 320.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; &amp;lt;code&amp;gt;-b 192&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; &#039;&#039;[[CBR]] setting is tuned from 320 kbit/s down to 80 kbit/s.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Remarks===&lt;br /&gt;
The &amp;lt;code&amp;gt;--vbr-new&amp;lt;/code&amp;gt; switch enables the new [[VBR]] mode.  Lame will encode much faster than the old/default [[VBR]] mode.  In terms of quality, &amp;lt;code&amp;gt;--vbr-new&amp;lt;/code&amp;gt; appears to be better than the old model, but reports of artifacts when using the new model do exist.  Despite these possible issues, &amp;lt;code&amp;gt;--vbr-new&amp;lt;/code&amp;gt; is currently recommended over the default [[VBR]] mode due to both the speed and quality increases afforded by the new algorithm.&lt;br /&gt;
&lt;br /&gt;
===Quick start===&lt;br /&gt;
&#039;&#039;&#039;Best quality: &amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;&#039;archiving&#039;&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;-b 320&amp;lt;/font&amp;gt;&amp;lt;/code&amp;gt;. This is the strongest setting for [[MP3]], with the lowest risk of [[artifact]]s.&lt;br /&gt;
With the exception of a few situations, quality is rarely better than the highest [[VBR]] profiles described below. However, &#039;archiving&#039; music using a lossy format like [[MP3]] is never recommended &amp;amp;ndash; no matter how transparent the resulting files might be.&lt;br /&gt;
The alternative is to use [[Lossless]] formats like [[WavPack]], [[FLAC]] etc. that allow true archiving bit for bit like on original CD.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;High quality: &amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;HiFi, home or quiet listening&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;-V3 --vbr-new&amp;lt;/font&amp;gt;&amp;lt;/code&amp;gt; (~175 kbps), &amp;lt;code&amp;gt;&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;-V2 --vbr-new&amp;lt;/font&amp;gt;&amp;lt;/code&amp;gt; (~190 kbps), &amp;lt;code&amp;gt;&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;-V1 --vbr-new&amp;lt;/font&amp;gt;&amp;lt;/code&amp;gt; (~210 kbps) or &amp;lt;code&amp;gt;&amp;lt;font style=&amp;quot;color:green&amp;quot;&amp;gt;-V0 --vbr-new&amp;lt;/font&amp;gt;&amp;lt;/code&amp;gt; (~230 kbps) are recommended.&lt;br /&gt;
These settings will produce [[transparent]] encoding (transparent = most people cannot distinguish the [[MP3]] from the original in an [[ABX]] blind test).&lt;br /&gt;
Audible differences between these presets exist, but are extremely rare.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Portable: &amp;lt;font style=&amp;quot;color:purple&amp;quot;&amp;gt;background noise and low bitrate requirement, small sizes&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;font style=&amp;quot;color:purple&amp;quot;&amp;gt;-V6 --vbr-new&amp;lt;/font&amp;gt;&amp;lt;/code&amp;gt; (~115 kbps), &amp;lt;code&amp;gt;&amp;lt;font style=&amp;quot;color:purple&amp;quot;&amp;gt;-V5 --vbr-new&amp;lt;/font&amp;gt;&amp;lt;/code&amp;gt; (~130 kbps) or &amp;lt;code&amp;gt;&amp;lt;font style=&amp;quot;color:purple&amp;quot;&amp;gt;-V4 --vbr-new&amp;lt;/font&amp;gt;&amp;lt;/code&amp;gt; (~160 kbps) are recommended for this use.&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;font style=&amp;quot;color:purple&amp;quot;&amp;gt;-V6 --vbr-new&amp;lt;/font&amp;gt;&amp;lt;/code&amp;gt; produces an acceptable quality, while &amp;lt;code&amp;gt;&amp;lt;font style=&amp;quot;color:purple&amp;quot;&amp;gt;-V4--vbr-new&amp;lt;/font&amp;gt;&amp;lt;/code&amp;gt; should be close to perceptual [[transparency]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Very low bitrate, small sizes: &amp;lt;font style=&amp;quot;color:blue&amp;quot;&amp;gt;eg. for voice, radio, [[mono]] encoding etc.&amp;lt;/font&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
For very low bitrates, up to 100kbps, [[ABR]] is most often the best solution. &lt;br /&gt;
Use &amp;lt;code&amp;gt;&amp;lt;font style=&amp;quot;color:blue&amp;quot;&amp;gt;--abr &amp;lt;bitrate&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/code&amp;gt; (e.g. --abr 80).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:lame-chart-2.png|frame|center|Here a trial to get a view, how the &amp;lt;font style=&amp;quot;color:red&amp;quot;&amp;gt;perceived listening quality&amp;lt;/font&amp;gt; improves with settings/&amp;lt;font style=&amp;quot;color:blue&amp;quot;&amp;gt;averaged filesize&amp;lt;/font&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hey! What happened to &amp;quot;--alt-preset&amp;quot;?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The revolutionary &amp;lt;code&amp;gt;--alt-preset&amp;lt;/code&amp;gt; system was introduced in LAME 3.90; it was replaced by the &amp;lt;code&amp;gt;--preset&amp;lt;/code&amp;gt; flags in later versions. Starting with version 3.94, the &amp;lt;code&amp;gt;-Vx&amp;lt;/code&amp;gt; quality system was introduced, which allows finer control over the desired bitrate; the &amp;lt;code&amp;gt;--preset&amp;lt;/code&amp;gt; switches were made into aliases to the corresponding &amp;lt;code&amp;gt;-V&amp;lt;/code&amp;gt; flags for the sake of backwards compatibility. &#039;&#039;&#039;There is no difference between the output you get if you use &amp;lt;code&amp;gt;-V2&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;--alt-preset standard&amp;lt;/code&amp;gt;.&#039;&#039;&#039; (Although adding &amp;lt;code&amp;gt;--vbr-new&amp;lt;/code&amp;gt; is recommended for now, see above for details.)&lt;br /&gt;
&lt;br /&gt;
More encoding options are available under the new system, such as &amp;lt;code&amp;gt;-V1&amp;lt;/code&amp;gt;, which provides a level of quality between the old &amp;quot;standard&amp;quot; and &amp;quot;extreme&amp;quot; presets, or &amp;lt;code&amp;gt;-V3&amp;lt;/code&amp;gt;, which is between the old &amp;quot;medium&amp;quot; and &amp;quot;standard&amp;quot; presets.&lt;br /&gt;
&lt;br /&gt;
LAME 3.97 features more streamlined command line options, and it&#039;s recommended to stick to one of the values described in the text or shown in the tables above. &amp;lt;font style=&amp;quot;color:blue&amp;quot;&amp;gt;You don&#039;t need to worry&amp;lt;/font&amp;gt; anymore about quality, settings, arcane combinations of switches, or presets.&lt;br /&gt;
&lt;br /&gt;
For example, the following command lines will all produce the same output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;--alt-preset insane&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;--preset insane&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;-b 320&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;--preset 320&amp;lt;/code&amp;gt; = &amp;lt;code&amp;gt;--preset cbr 320&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(&amp;lt;code&amp;gt;--preset cbr 320&amp;lt;/code&amp;gt; is the exact same thing as &amp;lt;code&amp;gt;--alt-preset insane&amp;lt;/code&amp;gt;, etc.)&lt;br /&gt;
&lt;br /&gt;
==Technical information==&lt;br /&gt;
The table below contains technical details about the recommended settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: 1em auto 1em auto;&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;Technical details of the recommended settings&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Switch&#039;&#039;&#039; || &#039;&#039;&#039;Preset&#039;&#039;&#039; || &#039;&#039;&#039;Target Kbps&#039;&#039;&#039; || &#039;&#039;&#039;Y Switch&#039;&#039;&#039; || &#039;&#039;&#039;-b&#039;&#039;&#039; || &#039;&#039;&#039;Lowpass&#039;&#039;&#039; || &#039;&#039;&#039;Resample&#039;&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 0 || --preset extreme || ~240 || || 128 || 19383 Hz - 19916 Hz ||&lt;br /&gt;
|-&lt;br /&gt;
| -V 0 --vbr-new || --preset fast extreme ||  ~240 || || || 19383 Hz - 19916 Hz ||&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 1 || || ~210 || || 128 || 18671 Hz - 19205 Hz ||&lt;br /&gt;
|-&lt;br /&gt;
| -V 1 --vbr-new || || ~210 || || || 18671 Hz - 19205 Hz ||&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 2 || --preset standard || ~190 || || 128 || 18671 Hz - 19205 Hz ||&lt;br /&gt;
|-&lt;br /&gt;
| -V 2 --vbr-new || --preset fast standard || ~190 || || || 18671 Hz - 19205 Hz ||&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 3 || || ~175 || Y || || 17960 Hz - 18494 Hz ||&lt;br /&gt;
|-&lt;br /&gt;
| -V 3 --vbr-new || || ~175 || Y || || 17960 Hz - 18494 Hz ||&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 4 || --preset medium || ~165 || Y || || 17960 Hz - 18494 Hz ||&lt;br /&gt;
|-&lt;br /&gt;
| -V 4 --vbr-new || --preset fast medium || ~165 || Y || || 17960 Hz - 18494 Hz ||&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 5 || || ~130 || Y || || 16538 Hz - 17071 Hz ||&lt;br /&gt;
|-&lt;br /&gt;
| -V 5 --vbr-new || || ~130 || Y || || 16538 Hz - 17071 Hz ||&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 6 || || ~115 || Y || || 15826 Hz - 16360 Hz ||&lt;br /&gt;
|-&lt;br /&gt;
| -V 6 --vbr-new || || ~115 || Y || || 15826 Hz - 16360 Hz ||&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 7 || || ~100 || Y || || 14581 Hz - 14968 Hz || 32000 Hz&lt;br /&gt;
|-&lt;br /&gt;
| -V 7 --vbr-new || || ~100 || Y || || 14581 Hz - 14968 Hz || 32000 Hz&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 8 || || ~85 || Y || || 12516 Hz - 12903 Hz ||  32000 Hz&lt;br /&gt;
|-&lt;br /&gt;
| -V 8 --vbr-new || || ~85 || Y || || 12516 Hz - 12903 Hz || 32000 Hz&lt;br /&gt;
|- style=&amp;quot;background:white;&amp;quot;&lt;br /&gt;
| -V 9 || || ~65 || Y || || 9774 Hz - 10065 Hz || 24000 Hz&lt;br /&gt;
|-&lt;br /&gt;
| -V 9 --vbr-new || || ~65 || Y || || 9774 Hz - 10065 Hz || 24000 Hz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[MP3]]&lt;br /&gt;
* [[Exact_Audio_Copy|Exact Audio Copy]]&lt;br /&gt;
* [[EAC_and_Lame | Configuring EAC and LAME]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes and references==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;People who took part in suggesting the different settings:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dibrom, r3mix, ff123, Hans Heijden, kjempen, Benjamin Lebsanft, GeSomeone, Wombat &amp;amp; GuruBoolez for his immense testing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Creation of the alt preset system and related special code level quality enhancements:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dibrom, with technical assistance from Robert Hegemann and Naoki Shibata, Gabriel and extensive tuning help and quality verification via listening tests from JohnV and also initial help (--dm-preset era) from Hans Heijden, ff123, Wombat, and others. Test clips, bitrate information, and further listening tests provided by TheBashar, zbutsam, Pio2001, BadDuDeX, r3mix, h, TarX, Hans Heijden, ff123, Wombat, Filburt, Volcano, Garf, MrDrew, TrNSZ, nyaochi, Amadeus93, in no particular order, and many, many others we (Dibrom, user) probably forgot to mention.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Idea (also exposing the need for a unified preset system), Original post and list of original settings collected by:&#039;&#039;&#039; user&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Layout and additional work by:&#039;&#039;&#039; dev0, CiTay, SNYder, Dibrom.&lt;br /&gt;
&lt;br /&gt;
And finally...&lt;br /&gt;
&lt;br /&gt;
Thank you ALL in the community for making it what it is, providing interest and discussion and helping to work towards the most concise, well tuned, and most thought out MP3 quality &amp;quot;paradigm&amp;quot; seen yet! -- Dibrom&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
*[[CBR]]&lt;br /&gt;
*[[ABR]]&lt;br /&gt;
*[[VBR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://lame.sourceforge.net LAME official homepage]&lt;br /&gt;
*[http://www.rjamorim.com/rrw/lame.html Historical versions of LAME] at ReallyRareWares&lt;br /&gt;
*[http://www.rjamorim.com/test/ Several multiformat listening tests] featuring LAME and other encoders.&lt;br /&gt;
*[http://www.rarewares.org/mp3.html RareWares MP3 page]&lt;br /&gt;
*[http://www.hydrogenaudio.org/forums/index.php?showtopic=478&amp;amp;st=0 Discussion of recommended Lame compiles in the Hydrogenaudio forum]&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?act=ST&amp;amp;f=16&amp;amp;t=32288 Forum discussion of the recommended settings]&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?act=ST&amp;amp;f=15&amp;amp;t=203 Forum discussion of the recommended settings (older)]&lt;br /&gt;
* [http://www.hydrogenaudio.org/forums/index.php?showtopic=32288&amp;amp;view=findpost&amp;amp;p=327262 Previous recommendations (outdated)]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Encoder/Decoder]]&lt;/div&gt;</summary>
		<author><name>Cosmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Title_Formatting_Reference&amp;diff=8324</id>
		<title>Foobar2000:Title Formatting Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Title_Formatting_Reference&amp;diff=8324"/>
		<updated>2005-07-15T19:15:59Z</updated>

		<summary type="html">&lt;p&gt;Cosmo: /* $stricmp(s1,s2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Field remappings =&lt;br /&gt;
&lt;br /&gt;
Some of the fields accessible through &#039;&#039;%name%&#039;&#039; are remapped to other values to make writing titleformat scripts more convenient.&lt;br /&gt;
&lt;br /&gt;
== Metadata ==&lt;br /&gt;
&lt;br /&gt;
=== %album artist% ===&lt;br /&gt;
Defined as &#039;&#039;$if3($meta(album artist),$meta(artist),$meta(composer),$meta(performer))&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== %album% ===&lt;br /&gt;
Defined as &#039;&#039;$if3($meta(album),$meta(venue))&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== %artist% ===&lt;br /&gt;
Defined as &#039;&#039;$if3($meta(artist),$meta(album artist),$meta(composer),$meta(performer))&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== %disc% ===&lt;br /&gt;
Defined as &#039;&#039;$num($meta(disc),1)&#039;&#039;. Returns the discnumber without extra leading zeroes.&lt;br /&gt;
&lt;br /&gt;
=== %track artist% ===&lt;br /&gt;
Defined as &#039;&#039;$meta(artist)&#039;&#039;, if &#039;&#039;$meta(album artist)&#039;&#039; is different than &#039;&#039;$meta(artist)&#039;&#039;, otherwise this field is empty.&lt;br /&gt;
&lt;br /&gt;
=== %title% ===&lt;br /&gt;
Defined as &#039;&#039;$if2($meta(title),%_filename_ext%)&#039;&#039;. Returns the &#039;&#039;title&#039;&#039; tag if available, otherwise it returns the filename including the extension.&lt;br /&gt;
&lt;br /&gt;
=== %tracknumber% ===&lt;br /&gt;
Defined as &#039;&#039;$num($meta(tracknumber),2)&#039;&#039;. Returns the tracknumber padded to two digits from the left with zeroes.&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
&lt;br /&gt;
=== %bitrate% ===&lt;br /&gt;
Defined as &#039;&#039;$if2($info(bitrate_dynamic),$info(bitrate))&#039;&#039;. Returns the current bitrate, if available, otherwise it returns the average bitrate. If neither is available, nothing is returned.&lt;br /&gt;
&lt;br /&gt;
=== %channels% ===&lt;br /&gt;
Defined as &#039;&#039;$channels()&#039;&#039;. Returns the number of channels in text form; returns &amp;quot;mono&amp;quot; and &amp;quot;stereo&amp;quot; instead of &amp;quot;1&amp;quot; and &amp;quot;2&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== %filesize% ===&lt;br /&gt;
Defined as &#039;&#039;%_filesize%&#039;&#039;. Returns the filesize in bytes.&lt;br /&gt;
&lt;br /&gt;
=== %samplerate% ===&lt;br /&gt;
Defined as &#039;&#039;$info(samplerate)&#039;&#039;. Returns the samplerate in Hz.&lt;br /&gt;
&lt;br /&gt;
=== %codec% ===&lt;br /&gt;
Defined as &#039;&#039;$codec()&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Special fields ==&lt;br /&gt;
&lt;br /&gt;
=== %playlist_number% ===&lt;br /&gt;
Defined as &#039;&#039;$num(%_playlist_number%,$len(%_playlist_total%))&#039;&#039;. Returns the position of the track as index into the playlist. The first track has index 1. The index is padded from the left with zeroes to the same number of digits as the last track.&lt;br /&gt;
&lt;br /&gt;
= Control flow =&lt;br /&gt;
&lt;br /&gt;
The functions in this section can be used to conditionally execute statements.&lt;br /&gt;
&lt;br /&gt;
=== [...] (conditional section) ===&lt;br /&gt;
&lt;br /&gt;
Evaluates the expression between &#039;&#039;[&#039;&#039; and &#039;&#039;]&#039;&#039;. If it has the truth value &#039;&#039;true&#039;&#039;, its string value and the truth value &#039;&#039;true&#039;&#039; are returned. Otherwise an empty string and &#039;&#039;false&#039;&#039; are returned.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;[%artist%]&#039;&#039; returns the value of the artist tag, if it exists. Otherwise it returns nothing, when &#039;&#039;artist&#039;&#039; would return &amp;quot;?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== $if(cond,then) ===&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;cond&#039;&#039; evaluates to &#039;&#039;true&#039;&#039;, the &#039;&#039;then&#039;&#039; part is evaluated and its value returned. Otherwise, &#039;&#039;false&#039;&#039; is returned.&lt;br /&gt;
&lt;br /&gt;
=== $if(cond,then,else) ===&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;cond&#039;&#039; evaluates to &#039;&#039;true&#039;&#039;, the &#039;&#039;then&#039;&#039; part is evaluated and its value returned. Otherwise, the &#039;&#039;else&#039;&#039; part is evaluated and its value returned.&lt;br /&gt;
&lt;br /&gt;
=== $if2(a,else) ===&lt;br /&gt;
&lt;br /&gt;
Like &#039;&#039;$if(a,a,else)&#039;&#039; except that &#039;&#039;a&#039;&#039; is only evaluated once.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== $if3(a1,a2,...,aN,else) ===&lt;br /&gt;
&lt;br /&gt;
Evaluates arguments &#039;&#039;a1&#039;&#039; ... &#039;&#039;aN&#039;&#039;, until one is found that evaluates to &#039;&#039;true&#039;&#039;. If that happens, its value is returned. Otherwise the &#039;&#039;else&#039;&#039; part is evaluated and its value returned.&lt;br /&gt;
&lt;br /&gt;
=== $ifgreater(n1,n2,then,else) ===&lt;br /&gt;
&lt;br /&gt;
Compares the integer numbers &#039;&#039;n1&#039;&#039; and &#039;&#039;n2&#039;&#039;, if &#039;&#039;n1&#039;&#039; is greater than &#039;&#039;n2&#039;&#039;, the &#039;&#039;then&#039;&#039; part is evaluated and its value returned. Otherwise the &#039;&#039;else&#039;&#039; part is evaluated and its value returned.&lt;br /&gt;
&lt;br /&gt;
=== $iflonger(s1,s2,then,else) ===&lt;br /&gt;
&lt;br /&gt;
Compares the length of the strings &#039;&#039;s1&#039;&#039; and &#039;&#039;s2&#039;&#039;, if &#039;&#039;s1&#039;&#039; is longer than &#039;&#039;s2&#039;&#039;, the &#039;&#039;then&#039;&#039; part is evaluated and its value returned. Otherwise the &#039;&#039;else&#039;&#039; part is evaluated and its value returned.&lt;br /&gt;
&lt;br /&gt;
=== $select(n,a1,...,aN) ===&lt;br /&gt;
&lt;br /&gt;
If the value of &#039;&#039;n&#039;&#039; is between 1 and N, &#039;&#039;an&#039;&#039; is evaluated and its value returned. Otherwise &#039;&#039;false&#039;&#039; is returned.&lt;br /&gt;
&lt;br /&gt;
= Arithmetic functions =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;quot;c3po&amp;quot; -&amp;gt; 0, &amp;quot; -12&amp;quot; -&amp;gt; -12, but &amp;quot;- 12&amp;quot; -&amp;gt; 0&lt;br /&gt;
&lt;br /&gt;
=== $add(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Adds &#039;&#039;a&#039;&#039; and &#039;&#039;b&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Can be used with an arbitrary number of arguments. &#039;&#039;$add(a,b,...)&#039;&#039; is the same as &#039;&#039;$add($add(a,b),...)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $div(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Divides &#039;&#039;a&#039;&#039; through &#039;&#039;b&#039;&#039;. If &#039;&#039;b&#039;&#039; evaluates to zero, it returns &#039;&#039;a&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Can be used with an arbitrary number of arguments. &#039;&#039;$div(a,b,...)&#039;&#039; is the same as &#039;&#039;$div($div(a,b),...)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $greater(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Returns true, if &#039;&#039;a&#039;&#039; is greater than &#039;&#039;b&#039;&#039;, otherwise false.&lt;br /&gt;
&lt;br /&gt;
=== $max(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Returns the maximum of &#039;&#039;a&#039;&#039; and &#039;&#039;b&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Can be used with an arbitrary number of arguments. &#039;&#039;$max(a,b,...)&#039;&#039; is the same as &#039;&#039;$max($max(a,b),...)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $min(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Returns the minimum of &#039;&#039;a&#039;&#039; and &#039;&#039;b&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Can be used with an arbitrary number of arguments. &#039;&#039;$min(a,b,...)&#039;&#039; is the same as &#039;&#039;$min($min(a,b),...)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $mod(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Computes the remainder of dividing &#039;&#039;a&#039;&#039; through &#039;&#039;b&#039;&#039;. The result has the same sign as &#039;&#039;a&#039;&#039;. If &#039;&#039;b&#039;&#039; evaluates to zero, the result is &#039;&#039;a&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Can be used with an arbitrary number of arguments. &#039;&#039;$mod(a,b,...)&#039;&#039; is the same as &#039;&#039;$mod($mod(a,b),...)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $mul(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Multiplies &#039;&#039;a&#039;&#039; and &#039;&#039;b&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Can be used with an arbitrary number of arguments. &#039;&#039;$mul(a,b,...)&#039;&#039; is the same as &#039;&#039;$mul($mul(a,b),...)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $muldiv(a,b,c) ===&lt;br /&gt;
&lt;br /&gt;
Multiplies &#039;&#039;a&#039;&#039; and &#039;&#039;b&#039;&#039;, then divides by &#039;&#039;c&#039;&#039;. The result is rounded to the nearest integer.&lt;br /&gt;
&lt;br /&gt;
=== $rand() ===&lt;br /&gt;
&lt;br /&gt;
Generates a random number in the range from 0 to 2&amp;lt;sup&amp;gt;32&amp;lt;/sup&amp;gt;-1.&lt;br /&gt;
&lt;br /&gt;
=== $sub(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Subtracts &#039;&#039;b&#039;&#039; from &#039;&#039;a&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Can be used with an arbitrary number of arguments. &#039;&#039;$sub(a,b,...)&#039;&#039; is the same as &#039;&#039;$sub($sub(a,b),...)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Boolean functions =&lt;br /&gt;
&lt;br /&gt;
The functions in this section can be used to work with truth values (&#039;&#039;true&#039;&#039; and &#039;&#039;false&#039;&#039;), 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 &#039;&#039;$if&#039;&#039; and related functions.&lt;br /&gt;
&lt;br /&gt;
=== $and(...) ===&lt;br /&gt;
&lt;br /&gt;
Logical And of an arbitrary number of arguments. Returns &#039;&#039;true&#039;&#039;, if and only if all arguments evaluate to &#039;&#039;true&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Special case: &#039;&#039;$and(x,y)&#039;&#039; is &#039;&#039;true&#039;&#039;, if both &#039;&#039;x&#039;&#039; and &#039;&#039;y&#039;&#039; are &#039;&#039;true&#039;&#039;. Otherwise it is &#039;&#039;false&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $or(...) ===&lt;br /&gt;
&lt;br /&gt;
Logical Or of an arbitrary number of arguments. Returns &#039;&#039;true&#039;&#039;, if at least one argument evaluates to &#039;&#039;true&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Special case: &#039;&#039;$or(x,y)&#039;&#039; is &#039;&#039;true&#039;&#039;, if &#039;&#039;x&#039;&#039; or &#039;&#039;y&#039;&#039; is &#039;&#039;true&#039;&#039;, or if both are &#039;&#039;true&#039;&#039;. Otherwise it is &#039;&#039;false&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $not(x) ===&lt;br /&gt;
&lt;br /&gt;
Logical Not. Returns &#039;&#039;false&#039;&#039;, if &#039;&#039;x&#039;&#039; is &#039;&#039;true&#039;&#039;, otherwise it returns &#039;&#039;true&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $xor(...) ===&lt;br /&gt;
&lt;br /&gt;
Logical Exclusive-or of an arbitrary number of arguments. Returns &#039;&#039;true&#039;&#039;, if an odd number of arguments evaluate to &#039;&#039;true&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Special case: &#039;&#039;$xor(x,y)&#039;&#039; is &#039;&#039;true&#039;&#039;, if one of &#039;&#039;x&#039;&#039; and &#039;&#039;y&#039;&#039; is &#039;&#039;true&#039;&#039;, but not both. Otherwise it is &#039;&#039;false&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Color functions =&lt;br /&gt;
&lt;br /&gt;
=== $blend(color1,color2,part,total) ===&lt;br /&gt;
&lt;br /&gt;
Returns a color that is a blend between &#039;&#039;color1&#039;&#039; and &#039;&#039;color2&#039;&#039;. If &#039;&#039;part&#039;&#039; is smaller than or equal to zero, &#039;&#039;color1&#039;&#039; is returned. If &#039;&#039;part&#039;&#039; is greater than or equal to &#039;&#039;total&#039;&#039;, &#039;&#039;color2&#039;&#039; is returned. Otherwise a blended color is returned that is &#039;&#039;part&#039;&#039; parts &#039;&#039;color1&#039;&#039; and &#039;&#039;total&#039;&#039;-&#039;&#039;part&#039;&#039; parts &#039;&#039;color2&#039;&#039;. The blending is performed in the RGB color space.&lt;br /&gt;
&lt;br /&gt;
=== $rgb() ===&lt;br /&gt;
&lt;br /&gt;
Resets the text color to the default color.&lt;br /&gt;
&lt;br /&gt;
=== $rgb(r,g,b) ===&lt;br /&gt;
&lt;br /&gt;
Sets the color for text. &#039;&#039;r&#039;&#039;, &#039;&#039;g&#039;&#039; and &#039;&#039;b&#039;&#039; are the red, green and blue component of the color for unselected text. The color for selected text is set to the inverse color.&lt;br /&gt;
&lt;br /&gt;
=== $rgb(r1,g1,b1,r2,g2,b2) ===&lt;br /&gt;
&lt;br /&gt;
Sets the color for text. &#039;&#039;r1&#039;&#039;, &#039;&#039;g1&#039;&#039; and &#039;&#039;b1&#039;&#039; are the red, green and blue component of the color for unselected text. &#039;&#039;r2&#039;&#039;, &#039;&#039;g2&#039;&#039; and &#039;&#039;b2&#039;&#039; are the red, green and blue component for the color of selected text.&lt;br /&gt;
&lt;br /&gt;
=== $transition(string,color1,color2) ===&lt;br /&gt;
&lt;br /&gt;
Inserts color codes into &#039;&#039;string&#039;&#039;, so that the first character has &#039;&#039;color1&#039;&#039;, the last character has &#039;&#039;color2&#039;&#039;, 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 &#039;&#039;$transition&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Now playing info =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Special fields ==&lt;br /&gt;
&lt;br /&gt;
=== %_time_elapsed% ===&lt;br /&gt;
Returns elapsed time.&lt;br /&gt;
&lt;br /&gt;
=== %_time_remaining% ===&lt;br /&gt;
Returns remaining time until track ends.&lt;br /&gt;
&lt;br /&gt;
=== %_time_total% ===&lt;br /&gt;
Returns total length of track.&lt;br /&gt;
&lt;br /&gt;
=== %_time_elapsed_seconds% ===&lt;br /&gt;
Returns elapsed time in seconds.&lt;br /&gt;
&lt;br /&gt;
=== %_time_remaining_seconds% ===&lt;br /&gt;
Returns remaining time in seconds.&lt;br /&gt;
&lt;br /&gt;
=== %_time_total_seconds% ===&lt;br /&gt;
Returns total track length in seconds.&lt;br /&gt;
&lt;br /&gt;
=== %_ispaused% ===&lt;br /&gt;
Returns &amp;quot;1&amp;quot; if playback is paused and empty string otherwise.&lt;br /&gt;
&lt;br /&gt;
= Playlist info =&lt;br /&gt;
The following functions and fields are usable for playlist scripts.&lt;br /&gt;
&lt;br /&gt;
== Special fields ==&lt;br /&gt;
&lt;br /&gt;
=== %isplaying% ===&lt;br /&gt;
&lt;br /&gt;
Returns &amp;quot;1&amp;quot; if file is currently playing and empty string otherwise.&lt;br /&gt;
&lt;br /&gt;
The old version &amp;lt;code&amp;gt;%_isplaying%&amp;lt;/code&amp;gt; still works.&lt;br /&gt;
&lt;br /&gt;
=== %_ispaused% ===&lt;br /&gt;
&lt;br /&gt;
Returns &amp;quot;1&amp;quot; if playback is paused, empty string otherwise.&lt;br /&gt;
&lt;br /&gt;
=== %_playlist_number% ===&lt;br /&gt;
&lt;br /&gt;
Returns playlist index of specified item. The first item is at index 1.&lt;br /&gt;
&lt;br /&gt;
Also see [[Foobar2000:Titleformat Reference#%playlist_number%|%playlist_number%]].&lt;br /&gt;
&lt;br /&gt;
=== %_playlist_total% ===&lt;br /&gt;
&lt;br /&gt;
Returns number of items in the playlist.&lt;br /&gt;
&lt;br /&gt;
=== %playlist_name% ===&lt;br /&gt;
&lt;br /&gt;
Returns the name of the playlist containing the specified item.&lt;br /&gt;
&lt;br /&gt;
The old version &amp;lt;code&amp;gt;%_playlist_name%&amp;lt;/code&amp;gt; still works.&lt;br /&gt;
&lt;br /&gt;
= String functions =&lt;br /&gt;
&lt;br /&gt;
The functions in this section can be used to manipulate character strings.&lt;br /&gt;
&lt;br /&gt;
=== $abbr(x) ===&lt;br /&gt;
&lt;br /&gt;
Returns abbreviation of &#039;&#039;x&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $abbr(x,len) ===&lt;br /&gt;
&lt;br /&gt;
Returns abbreviation of &#039;&#039;x&#039;&#039;, if &#039;&#039;x&#039;&#039; is longer than &#039;&#039;len&#039;&#039; characters, otherwise returns &#039;&#039;x&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $ansi(x) ===&lt;br /&gt;
&lt;br /&gt;
Converts &#039;&#039;x&#039;&#039; 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.&lt;br /&gt;
&lt;br /&gt;
=== $caps(x) ===&lt;br /&gt;
&lt;br /&gt;
Converts first letter in every word of x to uppercase, and all other letters to lowercase.&lt;br /&gt;
&lt;br /&gt;
=== $caps2(x) ===&lt;br /&gt;
&lt;br /&gt;
Converts first letter in every word of x to uppercase, and leaves all other letters as they are.&lt;br /&gt;
&lt;br /&gt;
=== $char(x) ===&lt;br /&gt;
&lt;br /&gt;
Inserts Unicode character with code &#039;&#039;x&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $crlf() ===&lt;br /&gt;
&lt;br /&gt;
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 (&amp;quot;systray&amp;quot;) icon.&lt;br /&gt;
&lt;br /&gt;
=== $cut(a,len) ===&lt;br /&gt;
&lt;br /&gt;
Returns first &#039;&#039;len&#039;&#039; characters on the left of &#039;&#039;a&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $directory(x) ===&lt;br /&gt;
&lt;br /&gt;
Extracts directory name from the file path &#039;&#039;x&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $directory(x,n) ===&lt;br /&gt;
&lt;br /&gt;
Extracts directory name from the file path &#039;&#039;x&#039;&#039;; goes up by &#039;&#039;n&#039;&#039; levels.&lt;br /&gt;
&lt;br /&gt;
=== $ext(x) ===&lt;br /&gt;
&lt;br /&gt;
Extracts file extension from &#039;&#039;x&#039;&#039; which must be a file name or path.&lt;br /&gt;
&lt;br /&gt;
=== $filename(x) ===&lt;br /&gt;
&lt;br /&gt;
Extracts file name from full path.&lt;br /&gt;
&lt;br /&gt;
=== $fix_eol(x) ===&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;x&#039;&#039; contains an end-of-line marker (CR-LF), the end-of-line marker and all text to the right of it is replaced by &amp;quot; (...)&amp;quot;. Otherwise &#039;&#039;x&#039;&#039; is returned unaltered.&lt;br /&gt;
&lt;br /&gt;
=== $fix_eol(x,indicator) ===&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;x&#039;&#039; contains an end-of-line marker (CR-LF), the end-of-line marker and all text to the right of it is replaced by &#039;&#039;indicator&#039;&#039;. Otherwise &#039;&#039;x&#039;&#039; is returned unaltered.&lt;br /&gt;
&lt;br /&gt;
=== $hex(n) ===&lt;br /&gt;
&lt;br /&gt;
Formats the integer number &#039;&#039;n&#039;&#039; in hexadecimal notation.&lt;br /&gt;
&lt;br /&gt;
=== $hex(n,len) ===&lt;br /&gt;
&lt;br /&gt;
Formats the integer number &#039;&#039;n&#039;&#039; in hexadecimal notation with &#039;&#039;len&#039;&#039; digits. Pads with zeros from the left if necessary.&lt;br /&gt;
&lt;br /&gt;
=== $insert(a,b,n) ===&lt;br /&gt;
&lt;br /&gt;
Inserts &#039;&#039;b&#039;&#039; into &#039;&#039;a&#039;&#039; after &#039;&#039;n&#039;&#039; characters.&lt;br /&gt;
&lt;br /&gt;
=== $left(a,len) ===&lt;br /&gt;
&lt;br /&gt;
Returns the first &#039;&#039;len&#039;&#039; characters from the left of &#039;&#039;a&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $len(a) ===&lt;br /&gt;
&lt;br /&gt;
Returns length of string &#039;&#039;a&#039;&#039; in characters.&lt;br /&gt;
&lt;br /&gt;
=== $len2(a) ===&lt;br /&gt;
&lt;br /&gt;
Returns length of string x in characters, respecting double-width character rules (double-width characters will be counted as two).&lt;br /&gt;
&lt;br /&gt;
=== $longer(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Returns &#039;&#039;true&#039;&#039;, if string &#039;&#039;a&#039;&#039; is longer than string &#039;&#039;b&#039;&#039;, false otherwise.&lt;br /&gt;
&lt;br /&gt;
=== $lower(a) ===&lt;br /&gt;
&lt;br /&gt;
Converts &#039;&#039;a&#039;&#039; to lowercase.&lt;br /&gt;
&lt;br /&gt;
=== $longest(a,...) ===&lt;br /&gt;
&lt;br /&gt;
Returns the longest of its arguments. Can be used with an arbitrary number of strings.&lt;br /&gt;
&lt;br /&gt;
=== $num(n,len) ===&lt;br /&gt;
&lt;br /&gt;
Formats the integer number &#039;&#039;n&#039;&#039; in decimal notation with &#039;&#039;len&#039;&#039; digits. Pads with zeros from the left if necessary.&lt;br /&gt;
&lt;br /&gt;
=== $pad(x,len) ===&lt;br /&gt;
&lt;br /&gt;
Pads &#039;&#039;x&#039;&#039; from the left with spaces to &#039;&#039;len&#039;&#039; characters.&lt;br /&gt;
&lt;br /&gt;
=== $pad_right(x,y) ===&lt;br /&gt;
&lt;br /&gt;
Pads &#039;&#039;x&#039;&#039; from the right with spaces to &#039;&#039;len&#039;&#039; characters.&lt;br /&gt;
&lt;br /&gt;
=== $pad(x,len,char) ===&lt;br /&gt;
&lt;br /&gt;
Pads &#039;&#039;x&#039;&#039; from the left with &#039;&#039;char&#039;&#039; to &#039;&#039;len&#039;&#039; characters.&lt;br /&gt;
&lt;br /&gt;
=== $pad_right(x,len,char) ===&lt;br /&gt;
&lt;br /&gt;
Pads &#039;&#039;x&#039;&#039; from the right with &#039;&#039;char&#039;&#039; to &#039;&#039;len&#039;&#039; characters.&lt;br /&gt;
&lt;br /&gt;
=== $padcut(x,len) ===&lt;br /&gt;
&lt;br /&gt;
Returns first &#039;&#039;len&#039;&#039; characters from the left of &#039;&#039;x&#039;&#039;, if &#039;&#039;x&#039;&#039; is longer than &#039;&#039;len&#039;&#039; characters. Otherwise pads &#039;&#039;x&#039;&#039; from the left with spaces to &#039;&#039;len&#039;&#039; characters.&lt;br /&gt;
&lt;br /&gt;
=== $padcut_right(x,len) ===&lt;br /&gt;
&lt;br /&gt;
Returns first &#039;&#039;len&#039;&#039; characters from the left of &#039;&#039;x&#039;&#039;, if &#039;&#039;x&#039;&#039; is longer than &#039;&#039;len&#039;&#039; characters. Otherwise pads &#039;&#039;x&#039;&#039; from the right with spaces to &#039;&#039;len&#039;&#039; characters.&lt;br /&gt;
&lt;br /&gt;
=== $progress(pos,range,len,a,b) ===&lt;br /&gt;
&lt;br /&gt;
Creates a progress bar: &#039;&#039;pos&#039;&#039; contains position, &#039;&#039;range&#039;&#039; contains range, &#039;&#039;len&#039;&#039; progress bar length in characters, &#039;&#039;a&#039;&#039; and &#039;&#039;b&#039;&#039; are characters to build progress bar with.&lt;br /&gt;
&lt;br /&gt;
Example:&#039;&#039;$progress(%_time_elapsed_seconds%, %_time_total_seconds%, 20,&#039;#&#039;,&#039;=&#039;)&#039;&#039; produces &amp;quot;====#===============&amp;quot;, the # character is moving with playback position.&lt;br /&gt;
&lt;br /&gt;
=== $progress2(pos,range,len,a,b) ===&lt;br /&gt;
&lt;br /&gt;
Creates a progress bar: &#039;&#039;pos&#039;&#039; contains position, &#039;&#039;range&#039;&#039; contains range, &#039;&#039;len&#039;&#039; progress bar length in characters, &#039;&#039;a&#039;&#039; and &#039;&#039;b&#039;&#039; are characters to build progress bar with. Produces different appearance than &#039;&#039;$progress&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $repeat(a,n) ===&lt;br /&gt;
&lt;br /&gt;
Returns &#039;&#039;n&#039;&#039; copies of &#039;&#039;a&#039;&#039;. Note that &#039;&#039;a&#039;&#039; is evaluated once before its value is used, so &#039;&#039;$repeat&#039;&#039; cannot be used for loops.&lt;br /&gt;
&lt;br /&gt;
=== $replace(a,b,c) ===&lt;br /&gt;
&lt;br /&gt;
Replaces all occurrences of string &#039;&#039;b&#039;&#039; in string &#039;&#039;a&#039;&#039; with string &#039;&#039;c&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Can also be used with an arbitrary number of arguments. Note that &#039;&#039;$replace(a,b1,c1,b2,c2)&#039;&#039; is generally not the same as &#039;&#039;$replace($replace(a,b1,c1),b2,c2)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$replace(ab,a,b,b,c)&#039;&#039; -&amp;gt; &amp;quot;bc&amp;quot;, &#039;&#039;$replace($replace(ab,a,b),b,c)&#039;&#039; -&amp;gt; &amp;quot;cc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== $right(a,len) ===&lt;br /&gt;
&lt;br /&gt;
Returns the first &#039;&#039;len&#039;&#039; characters from the right of &#039;&#039;a&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $roman(n) ===&lt;br /&gt;
&lt;br /&gt;
Formats the integer number &#039;&#039;n&#039;&#039; in roman notation.&lt;br /&gt;
&lt;br /&gt;
=== $shortest ===&lt;br /&gt;
&lt;br /&gt;
Returns the shortest of its arguments. Can be used with an arbitrary number of strings.&lt;br /&gt;
&lt;br /&gt;
=== $strchr(s,c) ===&lt;br /&gt;
&lt;br /&gt;
Finds first occurence of character &#039;&#039;c&#039;&#039; in string &#039;&#039;s&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$strchr(abca,a)&#039;&#039; -&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
=== $strrchr(s,c) ===&lt;br /&gt;
&lt;br /&gt;
Finds last occurence of character &#039;&#039;c&#039;&#039; in string &#039;&#039;s&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$strrchr(abca,a)&#039;&#039; -&amp;gt; 4&lt;br /&gt;
&lt;br /&gt;
=== $strstr(s1,s2) ===&lt;br /&gt;
&lt;br /&gt;
Finds first occurence of string &#039;&#039;s2&#039;&#039; in string &#039;&#039;s1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $strcmp(s1,s2) ===&lt;br /&gt;
&lt;br /&gt;
Performs a case-sensitive comparison of the strings &#039;&#039;s1&#039;&#039; and &#039;&#039;s2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $stricmp(s1,s2) ===&lt;br /&gt;
&lt;br /&gt;
Performs a non-case-insensitive comparison of the strings &#039;&#039;s1&#039;&#039; and &#039;&#039;s2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $substr(s,m,n) ===&lt;br /&gt;
&lt;br /&gt;
Returns substring of string &#039;&#039;s&#039;&#039;, starting from &#039;&#039;m&#039;&#039;-th character and ending at &#039;&#039;n&#039;&#039;-th character.&lt;br /&gt;
&lt;br /&gt;
=== $trim(s) ===&lt;br /&gt;
&lt;br /&gt;
Removes leading and trailing spaces from string &#039;&#039;s&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $tab() ===&lt;br /&gt;
&lt;br /&gt;
Inserts one tabulator character.&lt;br /&gt;
&lt;br /&gt;
=== $tab(n) ===&lt;br /&gt;
&lt;br /&gt;
Inserts &#039;&#039;n&#039;&#039; tabulator characters.&lt;br /&gt;
&lt;br /&gt;
=== $upper(s) ===&lt;br /&gt;
&lt;br /&gt;
Converts string &#039;&#039;s&#039;&#039; to uppercase.&lt;br /&gt;
&lt;br /&gt;
= Track info =&lt;br /&gt;
&lt;br /&gt;
The functions and fields in this section can be used to access information about tracks.&lt;br /&gt;
&lt;br /&gt;
== Metadata ==&lt;br /&gt;
&lt;br /&gt;
=== $meta(name) ===&lt;br /&gt;
Returns value of tag called &#039;&#039;name&#039;&#039;. If multiple values of that tag exist, they are concatenated with &amp;quot;, &amp;quot; as separator.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$meta(artist)&#039;&#039; -&amp;gt; &amp;quot;He, She, It&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== $meta(name,n) ===&lt;br /&gt;
Returns value of &#039;&#039;n&#039;&#039;-th tag called &#039;&#039;name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$meta(artist,2)&#039;&#039; -&amp;gt; &amp;quot;She&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== $meta_sep(name,sep) ===&lt;br /&gt;
Returns value of tag called &#039;&#039;name&#039;&#039;. If multiple values of that tag exist, they are concatenated with &#039;&#039;sep&#039;&#039; as separator.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$meta_sep(artist,&#039; + &#039;)&#039;&#039; -&amp;gt; &amp;quot;He + She + It&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== $meta_sep(name,sep,lastsep) ===&lt;br /&gt;
Returns value of tag called &#039;&#039;name&#039;&#039;. If multiple values of that tag exist, they are concatenated with &#039;&#039;sep&#039;&#039; as separator between all but the last two values which are concatenated with &#039;&#039;lastsep&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$metasep(artist,&#039;, &#039;,&#039;, and &#039;)&#039;&#039; -&amp;gt; &amp;quot;He, She, and It&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== $meta_test(...) === &lt;br /&gt;
Returns &#039;&#039;true&#039;&#039;, if all given tags exist.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$meta_test(artist,title)&#039;&#039; -&amp;gt; true&lt;br /&gt;
&lt;br /&gt;
=== $meta_num(name) ===&lt;br /&gt;
Returns the number of values for the tag called &#039;&#039;name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$meta_num(artist)&#039;&#039; -&amp;gt; 3&lt;br /&gt;
&lt;br /&gt;
=== $tracknumber() ===&lt;br /&gt;
Returns the tracknumber padded to 2 digits with zeroes.&lt;br /&gt;
&lt;br /&gt;
=== $tracknumber(n) ===&lt;br /&gt;
Returns the tracknumber padded to &#039;&#039;n&#039;&#039; digits with zeros.&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
&lt;br /&gt;
=== $info(name) ===&lt;br /&gt;
Returns value of technical information field called &#039;&#039;name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$info(channels)&#039;&#039; -&amp;gt; 2&lt;br /&gt;
&lt;br /&gt;
=== $codec() ===&lt;br /&gt;
Returns codec of track. If no codec field is present, it the uses file extension.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$codec()&#039;&#039; -&amp;gt; &amp;quot;WavPack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== $channels() === &lt;br /&gt;
Returns number of channels in text format.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$channels()&#039;&#039; -&amp;gt; &amp;quot;stereo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== %__replaygain_album_gain% ===&lt;br /&gt;
Returns ReplayGain album gain value. //Not available through// &#039;&#039;$info(replaygain_album_gain)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== %__replaygain_album_peak% ===&lt;br /&gt;
Returns ReplayGain album peak value. //Not available through// &#039;&#039;$info(replaygain_album_peak)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== %__replaygain_track_gain% ===&lt;br /&gt;
Returns ReplayGain track gain value. //Not available through// &#039;&#039;$info(replaygain_track_gain)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== %__replaygain_track_peak% ===&lt;br /&gt;
Returns ReplayGain track peak value. //Not available through// &#039;&#039;$info(replaygain_track_peak)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Special fields ==&lt;br /&gt;
&lt;br /&gt;
=== $extra(name) ===&lt;br /&gt;
Returns the value of the special field called &#039;&#039;name&#039;&#039;. These fields can also be accessed as &#039;&#039;%_name%&#039;&#039;; note the additional underscore. The following field names can be used:&lt;br /&gt;
==== filename ====&lt;br /&gt;
Returns the filename without directory and extension.&lt;br /&gt;
==== filename_ext ====&lt;br /&gt;
Returns the filename with extension, but without the directory.&lt;br /&gt;
==== directoryname ====&lt;br /&gt;
Returns the name of the parent directory only, not the complete path.&lt;br /&gt;
==== path ====&lt;br /&gt;
Returns the path.&lt;br /&gt;
==== path_raw ====&lt;br /&gt;
Returns the path as URL including the protocol scheme.&lt;br /&gt;
==== subsong ====&lt;br /&gt;
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.&lt;br /&gt;
==== foobar2000_version ====&lt;br /&gt;
Returns a string representing the version of foobar2000.&lt;br /&gt;
==== length ====&lt;br /&gt;
Returns the length of the track formatted as hours, minutes, and seconds.&lt;br /&gt;
==== length_ex ====&lt;br /&gt;
Returns the length of the track formatted as hours, minutes, seconds, and milliseconds.&lt;br /&gt;
==== length_seconds ====&lt;br /&gt;
Returns the length of the track in seconds.&lt;br /&gt;
==== length_seconds_fp ====&lt;br /&gt;
Returns the length of the track in seconds as floating point number.&lt;br /&gt;
==== length_samples ====&lt;br /&gt;
Returns the length of the track in samples.&lt;br /&gt;
&lt;br /&gt;
= Variable operations =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== $get(name) ===&lt;br /&gt;
&lt;br /&gt;
Returns the value that was last stored in the variable &#039;&#039;name&#039;&#039;, if the variable was not defined (yet), it returns nothing. The truth value returned by &#039;&#039;$get&#039;&#039; indicates if the variable &#039;&#039;name&#039;&#039; was defined.&lt;br /&gt;
&lt;br /&gt;
=== $put(name,value) ===&lt;br /&gt;
&lt;br /&gt;
Stores &#039;&#039;value&#039;&#039; in the variable &#039;&#039;name&#039;&#039; and returns &#039;&#039;value&#039;&#039; unaltered.&lt;br /&gt;
&lt;br /&gt;
=== $puts(name,value) ===&lt;br /&gt;
&lt;br /&gt;
Stores &#039;&#039;value&#039;&#039; in the variable &#039;&#039;name&#039;&#039; and returns only the truth value of &#039;&#039;value&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Cosmo</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Title_Formatting_Reference&amp;diff=4959</id>
		<title>Foobar2000:Title Formatting Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Title_Formatting_Reference&amp;diff=4959"/>
		<updated>2005-05-24T18:52:55Z</updated>

		<summary type="html">&lt;p&gt;Cosmo: /* $transition(string,color1,color2) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Field remappings =&lt;br /&gt;
&lt;br /&gt;
Some of the fields accessible through &#039;&#039;%name%&#039;&#039; are remapped to other values to make writing titleformat scripts more convenient.&lt;br /&gt;
&lt;br /&gt;
== Metadata ==&lt;br /&gt;
&lt;br /&gt;
=== %artist% ===&lt;br /&gt;
Defined as &#039;&#039;$if3($meta(artist),$meta(album artist),$meta(composer),$meta(performer))&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== %album artist% ===&lt;br /&gt;
Defined as &#039;&#039;$if3($meta(album artist),$meta(artist),$meta(composer),$meta(performer))&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== %disc% ===&lt;br /&gt;
Defined as &#039;&#039;$num($meta(disc),1)&#039;&#039;. Returns the discnumber without extra leading zeroes.&lt;br /&gt;
&lt;br /&gt;
=== %track artist% ===&lt;br /&gt;
Defined as &#039;&#039;$meta(artist)&#039;&#039;, if &#039;&#039;$meta(album artist)&#039;&#039; is different than &#039;&#039;$meta(artist)&#039;&#039;, otherwise this field is empty.&lt;br /&gt;
&lt;br /&gt;
=== %title% ===&lt;br /&gt;
Defined as &#039;&#039;$if2($meta(title),%_filename_ext%)&#039;&#039;. Returns the &#039;&#039;title&#039;&#039; tag if available, otherwise it returns the filename including the extension.&lt;br /&gt;
&lt;br /&gt;
=== %tracknumber% ===&lt;br /&gt;
Defined as &#039;&#039;$num($meta(tracknumber),2)&#039;&#039;. Returns the tracknumber padded to two digits from the left with zeroes.&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
&lt;br /&gt;
=== %bitrate% ===&lt;br /&gt;
Defined as &#039;&#039;$if2(%_%%_%%bitrate_dynamic%,%bitrate%)&#039;&#039;. Returns the current bitrate, if available, otherwise it returns the average bitrate. If neither is available, nothing is returned.&lt;br /&gt;
&lt;br /&gt;
=== %channels% ===&lt;br /&gt;
Defined as &#039;&#039;$channels()&#039;&#039;. Returns the number of channels in text form; returns &amp;quot;mono&amp;quot; and &amp;quot;stereo&amp;quot; instead of &amp;quot;1&amp;quot; and &amp;quot;2&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== %filesize% ===&lt;br /&gt;
Defined as &#039;&#039;%_filesize%&#039;&#039;. Returns the filesize in bytes.&lt;br /&gt;
&lt;br /&gt;
=== %samplerate% ===&lt;br /&gt;
Defined as &#039;&#039;%_%%_%%samplerate%&#039;&#039;. Returns the samplerate in Hz.&lt;br /&gt;
&lt;br /&gt;
=== %codec% ===&lt;br /&gt;
Defined as &#039;&#039;$codec()&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Special fields ==&lt;br /&gt;
&lt;br /&gt;
=== %playlist_number% ===&lt;br /&gt;
Defined as &#039;&#039;$num(%_playlist_number%,$len(%_playlist_total%))&#039;&#039;. Returns the position of the track as index into the playlist. The first track has index 1. The index is padded from the left with zeroes to the same number of digits as the last track.&lt;br /&gt;
&lt;br /&gt;
= Control flow =&lt;br /&gt;
&lt;br /&gt;
The functions in this section can be used to conditionally execute statements.&lt;br /&gt;
&lt;br /&gt;
=== [...] (conditional section) ===&lt;br /&gt;
&lt;br /&gt;
Evaluates the expression between &#039;&#039;[&#039;&#039; and &#039;&#039;]&#039;&#039;. If it has the truth value &#039;&#039;true&#039;&#039;, its string value and the truth value &#039;&#039;true&#039;&#039; are returned. Otherwise an empty string and &#039;&#039;false&#039;&#039; are returned.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;[%artist%]&#039;&#039; returns the value of the artist tag, if it exists. Otherwise it returns nothing, when &#039;&#039;artist&#039;&#039; would return &amp;quot;?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== $if(cond,then) ===&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;cond&#039;&#039; evaluates to &#039;&#039;true&#039;&#039;, the &#039;&#039;then&#039;&#039; part is evaluated and its value returned. Otherwise, &#039;&#039;false&#039;&#039; is returned.&lt;br /&gt;
&lt;br /&gt;
=== $if(cond,then,else) ===&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;cond&#039;&#039; evaluates to &#039;&#039;true&#039;&#039;, the &#039;&#039;then&#039;&#039; part is evaluated and its value returned. Otherwise, the &#039;&#039;else&#039;&#039; part is evaluated and its value returned.&lt;br /&gt;
&lt;br /&gt;
=== $if2(a,else) ===&lt;br /&gt;
&lt;br /&gt;
Like &#039;&#039;$if(a,a,else)&#039;&#039; except that &#039;&#039;a&#039;&#039; is only evaluated once.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== $if3(a1,a2,...,aN,else) ===&lt;br /&gt;
&lt;br /&gt;
Evaluates arguments &#039;&#039;a1&#039;&#039; ... &#039;&#039;aN&#039;&#039;, until one is found that evaluates to &#039;&#039;true&#039;&#039;. If that happens, its value is returned. Otherwise the &#039;&#039;else&#039;&#039; part is evaluated and its value returned.&lt;br /&gt;
&lt;br /&gt;
=== $ifgreater(n1,n2,then,else) ===&lt;br /&gt;
&lt;br /&gt;
Compares the integer numbers &#039;&#039;n1&#039;&#039; and &#039;&#039;n2&#039;&#039;, if &#039;&#039;n1&#039;&#039; is greater than &#039;&#039;n2&#039;&#039;, the &#039;&#039;then&#039;&#039; part is evaluated and its value returned. Otherwise the &#039;&#039;else&#039;&#039; part is evaluated and its value returned.&lt;br /&gt;
&lt;br /&gt;
=== $iflonger(s1,s2,then,else) ===&lt;br /&gt;
&lt;br /&gt;
Compares the length of the strings &#039;&#039;s1&#039;&#039; and &#039;&#039;s2&#039;&#039;, if &#039;&#039;s1&#039;&#039; is longer than &#039;&#039;s2&#039;&#039;, the &#039;&#039;then&#039;&#039; part is evaluated and its value returned. Otherwise the &#039;&#039;else&#039;&#039; part is evaluated and its value returned.&lt;br /&gt;
&lt;br /&gt;
=== $select(n,a1,...,aN) ===&lt;br /&gt;
&lt;br /&gt;
If the value of &#039;&#039;n&#039;&#039; is between 1 and N, &#039;&#039;an&#039;&#039; is evaluated and its value returned. Otherwise &#039;&#039;false&#039;&#039; is returned.&lt;br /&gt;
&lt;br /&gt;
= Arithmetic functions =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Example: &amp;quot;c3po&amp;quot; -&amp;gt; 0, &amp;quot; -12&amp;quot; -&amp;gt; -12, but &amp;quot;- 12&amp;quot; -&amp;gt; 0&lt;br /&gt;
&lt;br /&gt;
=== $add(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Adds &#039;&#039;a&#039;&#039; and &#039;&#039;b&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Can be used with an arbitrary number of arguments. &#039;&#039;$add(a,b,...)&#039;&#039; is the same as &#039;&#039;$add($add(a,b),...)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $div(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Divides &#039;&#039;a&#039;&#039; through &#039;&#039;b&#039;&#039;. If &#039;&#039;b&#039;&#039; evaluates to zero, it returns &#039;&#039;a&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Can be used with an arbitrary number of arguments. &#039;&#039;$div(a,b,...)&#039;&#039; is the same as &#039;&#039;$div($div(a,b),...)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $greater(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Returns true, if &#039;&#039;a&#039;&#039; is greater than &#039;&#039;b&#039;&#039;, otherwise false.&lt;br /&gt;
&lt;br /&gt;
=== $max(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Returns the maximum of &#039;&#039;a&#039;&#039; and &#039;&#039;b&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Can be used with an arbitrary number of arguments. &#039;&#039;$max(a,b,...)&#039;&#039; is the same as &#039;&#039;$max($max(a,b),...)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $min(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Returns the minimum of &#039;&#039;a&#039;&#039; and &#039;&#039;b&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Can be used with an arbitrary number of arguments. &#039;&#039;$min(a,b,...)&#039;&#039; is the same as &#039;&#039;$min($min(a,b),...)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $mod(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Computes the remainder of dividing &#039;&#039;a&#039;&#039; through &#039;&#039;b&#039;&#039;. The result has the same sign as &#039;&#039;a&#039;&#039;. If &#039;&#039;b&#039;&#039; evaluates to zero, the result is &#039;&#039;a&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Can be used with an arbitrary number of arguments. &#039;&#039;$mod(a,b,...)&#039;&#039; is the same as &#039;&#039;$mod($mod(a,b),...)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $mul(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Multiplies &#039;&#039;a&#039;&#039; and &#039;&#039;b&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Can be used with an arbitrary number of arguments. &#039;&#039;$mul(a,b,...)&#039;&#039; is the same as &#039;&#039;$mul($mul(a,b),...)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $muldiv(a,b,c) ===&lt;br /&gt;
&lt;br /&gt;
Multiplies &#039;&#039;a&#039;&#039; and &#039;&#039;b&#039;&#039;, then divides by &#039;&#039;c&#039;&#039;. The result is rounded to the nearest integer.&lt;br /&gt;
&lt;br /&gt;
=== $rand() ===&lt;br /&gt;
&lt;br /&gt;
Generates a random number in the range from 0 to 2&amp;lt;sup&amp;gt;32&amp;lt;/sup&amp;gt;-1.&lt;br /&gt;
&lt;br /&gt;
=== $sub(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Subtracts &#039;&#039;b&#039;&#039; from &#039;&#039;a&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Can be used with an arbitrary number of arguments. &#039;&#039;$sub(a,b,...)&#039;&#039; is the same as &#039;&#039;$sub($sub(a,b),...)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Boolean functions =&lt;br /&gt;
&lt;br /&gt;
The functions in this section can be used to work with truth values (&#039;&#039;true&#039;&#039; and &#039;&#039;false&#039;&#039;), 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 &#039;&#039;$if&#039;&#039; and related functions.&lt;br /&gt;
&lt;br /&gt;
=== $and(...) ===&lt;br /&gt;
&lt;br /&gt;
Logical And of an arbitrary number of arguments. Returns &#039;&#039;true&#039;&#039;, if and only if all arguments evaluate to &#039;&#039;true&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Special case: &#039;&#039;$and(x,y)&#039;&#039; is &#039;&#039;true&#039;&#039;, if both &#039;&#039;x&#039;&#039; and &#039;&#039;y&#039;&#039; are &#039;&#039;true&#039;&#039;. Otherwise it is &#039;&#039;false&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $or(...) ===&lt;br /&gt;
&lt;br /&gt;
Logical Or of an arbitrary number of arguments. Returns &#039;&#039;true&#039;&#039;, if at least one argument evaluates to &#039;&#039;true&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Special case: &#039;&#039;$or(x,y)&#039;&#039; is &#039;&#039;true&#039;&#039;, if &#039;&#039;x&#039;&#039; or &#039;&#039;y&#039;&#039; is &#039;&#039;true&#039;&#039;, or if both are &#039;&#039;true&#039;&#039;. Otherwise it is &#039;&#039;false&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $not(x) ===&lt;br /&gt;
&lt;br /&gt;
Logical Not. Returns &#039;&#039;false&#039;&#039;, if &#039;&#039;x&#039;&#039; is &#039;&#039;true&#039;&#039;, otherwise it returns &#039;&#039;true&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $xor(...) ===&lt;br /&gt;
&lt;br /&gt;
Logical Exclusive-or of an arbitrary number of arguments. Returns &#039;&#039;true&#039;&#039;, if an odd number of arguments evaluate to &#039;&#039;true&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Special case: &#039;&#039;$xor(x,y)&#039;&#039; is &#039;&#039;true&#039;&#039;, if one of &#039;&#039;x&#039;&#039; and &#039;&#039;y&#039;&#039; is &#039;&#039;true&#039;&#039;, but not both. Otherwise it is &#039;&#039;false&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Color functions =&lt;br /&gt;
&lt;br /&gt;
=== $blend(color1,color2,part,total) ===&lt;br /&gt;
&lt;br /&gt;
Returns a color that is a blend between &#039;&#039;color1&#039;&#039; and &#039;&#039;color2&#039;&#039;. If &#039;&#039;part&#039;&#039; is smaller than or equal to zero, &#039;&#039;color1&#039;&#039; is returned. If &#039;&#039;part&#039;&#039; is greater than or equal to &#039;&#039;total&#039;&#039;, &#039;&#039;color2&#039;&#039; is returned. Otherwise a blended color is returned that is &#039;&#039;part&#039;&#039; parts &#039;&#039;color1&#039;&#039; and &#039;&#039;total&#039;&#039;-&#039;&#039;part&#039;&#039; parts &#039;&#039;color2&#039;&#039;. The blending is performed in the RGB color space.&lt;br /&gt;
&lt;br /&gt;
=== $rgb() ===&lt;br /&gt;
&lt;br /&gt;
Resets the text color to the default color.&lt;br /&gt;
&lt;br /&gt;
=== $rgb(r,g,b) ===&lt;br /&gt;
&lt;br /&gt;
Sets the color for text. &#039;&#039;r&#039;&#039;, &#039;&#039;g&#039;&#039; and &#039;&#039;b&#039;&#039; are the red, green and blue component of the color for unselected text. The color for selected text is set to the inverse color.&lt;br /&gt;
&lt;br /&gt;
=== $rgb(r1,g1,b1,r2,g2,b2) ===&lt;br /&gt;
&lt;br /&gt;
Sets the color for text. &#039;&#039;r1&#039;&#039;, &#039;&#039;g1&#039;&#039; and &#039;&#039;b1&#039;&#039; are the red, green and blue component of the color for unselected text. &#039;&#039;r2&#039;&#039;, &#039;&#039;g2&#039;&#039; and &#039;&#039;b2&#039;&#039; are the red, green and blue component for the color of selected text.&lt;br /&gt;
&lt;br /&gt;
=== $transition(string,color1,color2) ===&lt;br /&gt;
&lt;br /&gt;
Inserts color codes into &#039;&#039;string&#039;&#039;, so that the first character has &#039;&#039;color1&#039;&#039;, the last character has &#039;&#039;color2&#039;&#039;, 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 &#039;&#039;$transition&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
= Now playing info =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Special fields ==&lt;br /&gt;
&lt;br /&gt;
=== %_time_elapsed% ===&lt;br /&gt;
Returns elapsed time.&lt;br /&gt;
&lt;br /&gt;
=== %_time_remaining% ===&lt;br /&gt;
Returns remaining time until track ends.&lt;br /&gt;
&lt;br /&gt;
=== %_time_total% ===&lt;br /&gt;
Returns total length of track.&lt;br /&gt;
&lt;br /&gt;
=== %_time_elapsed_seconds% ===&lt;br /&gt;
Returns elapsed time in seconds.&lt;br /&gt;
&lt;br /&gt;
=== %_time_remaining_seconds% ===&lt;br /&gt;
Returns remaining time in seconds.&lt;br /&gt;
&lt;br /&gt;
=== %_time_total_seconds% ===&lt;br /&gt;
Returns total track length in seconds.&lt;br /&gt;
&lt;br /&gt;
=== %_ispaused% ===&lt;br /&gt;
Returns &amp;quot;1&amp;quot; if playback is paused and empty string otherwise.&lt;br /&gt;
&lt;br /&gt;
= Playlist info =&lt;br /&gt;
The following functions and fields are usable for playlist scripts.&lt;br /&gt;
&lt;br /&gt;
== Special fields ==&lt;br /&gt;
&lt;br /&gt;
=== %_isplaying% ===&lt;br /&gt;
&lt;br /&gt;
Returns &amp;quot;1&amp;quot; if file is currently playing and empty string otherwise.&lt;br /&gt;
&lt;br /&gt;
=== %_ispaused% ===&lt;br /&gt;
&lt;br /&gt;
Returns &amp;quot;1&amp;quot; if playback is paused, empty string otherwise.&lt;br /&gt;
&lt;br /&gt;
=== %_playlist_number% ===&lt;br /&gt;
&lt;br /&gt;
Returns playlist index of specified item. The first item is at index 1.&lt;br /&gt;
&lt;br /&gt;
=== %_playlist_total% ===&lt;br /&gt;
&lt;br /&gt;
Returns number of items in the playlist.&lt;br /&gt;
&lt;br /&gt;
=== %_playlist_name% ===&lt;br /&gt;
&lt;br /&gt;
Returns the name of the playlist containing the specified item.&lt;br /&gt;
&lt;br /&gt;
= String functions =&lt;br /&gt;
&lt;br /&gt;
The functions in this section can be used to manipulate character strings.&lt;br /&gt;
&lt;br /&gt;
=== $abbr(x) ===&lt;br /&gt;
&lt;br /&gt;
Returns abbreviation of &#039;&#039;x&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $abbr(x,len) ===&lt;br /&gt;
&lt;br /&gt;
Returns abbreviation of &#039;&#039;x&#039;&#039;, if &#039;&#039;x&#039;&#039; is longer than &#039;&#039;len&#039;&#039; characters, otherwise returns &#039;&#039;x&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $ansi(x) ===&lt;br /&gt;
&lt;br /&gt;
Converts &#039;&#039;x&#039;&#039; 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.&lt;br /&gt;
&lt;br /&gt;
=== $caps(x) ===&lt;br /&gt;
&lt;br /&gt;
Converts first letter in every word of x to uppercase, and all other letters to lowercase.&lt;br /&gt;
&lt;br /&gt;
=== $caps2(x) ===&lt;br /&gt;
&lt;br /&gt;
Converts first letter in every word of x to uppercase, and leaves all other letters as they are.&lt;br /&gt;
&lt;br /&gt;
=== $char(x) ===&lt;br /&gt;
&lt;br /&gt;
Inserts Unicode character with code &#039;&#039;x&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $crlf() ===&lt;br /&gt;
&lt;br /&gt;
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 (&amp;quot;systray&amp;quot;) icon.&lt;br /&gt;
&lt;br /&gt;
=== $cut(a,len) ===&lt;br /&gt;
&lt;br /&gt;
Returns first &#039;&#039;len&#039;&#039; characters on the left of &#039;&#039;a&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $directory(x) ===&lt;br /&gt;
&lt;br /&gt;
Extracts directory name from the file path &#039;&#039;x&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $directory(x,n) ===&lt;br /&gt;
&lt;br /&gt;
Extracts directory name from the file path &#039;&#039;x&#039;&#039;; goes up by &#039;&#039;n&#039;&#039; levels.&lt;br /&gt;
&lt;br /&gt;
=== $ext(x) ===&lt;br /&gt;
&lt;br /&gt;
Extracts file extension from &#039;&#039;x&#039;&#039; which must be a file name or path.&lt;br /&gt;
&lt;br /&gt;
=== $filename(x) ===&lt;br /&gt;
&lt;br /&gt;
Extracts file name from full path.&lt;br /&gt;
&lt;br /&gt;
=== $fix_eol(x) ===&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;x&#039;&#039; contains an end-of-line marker (CR-LF), the end-of-line marker and all text to the right of it is replaced by &amp;quot; (...)&amp;quot;. Otherwise &#039;&#039;x&#039;&#039; is returned unaltered.&lt;br /&gt;
&lt;br /&gt;
=== $fix_eol(x,indicator) ===&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;x&#039;&#039; contains an end-of-line marker (CR-LF), the end-of-line marker and all text to the right of it is replaced by &#039;&#039;indicator&#039;&#039;. Otherwise &#039;&#039;x&#039;&#039; is returned unaltered.&lt;br /&gt;
&lt;br /&gt;
=== $hex(n) ===&lt;br /&gt;
&lt;br /&gt;
Formats the integer number &#039;&#039;n&#039;&#039; in hexadecimal notation.&lt;br /&gt;
&lt;br /&gt;
=== $hex(n,len) ===&lt;br /&gt;
&lt;br /&gt;
Formats the integer number &#039;&#039;n&#039;&#039; in hexadecimal notation with &#039;&#039;len&#039;&#039; digits. Pads with zeros from the left if necessary.&lt;br /&gt;
&lt;br /&gt;
=== $insert(a,b,n) ===&lt;br /&gt;
&lt;br /&gt;
Inserts &#039;&#039;b&#039;&#039; into &#039;&#039;a&#039;&#039; after &#039;&#039;n&#039;&#039; characters.&lt;br /&gt;
&lt;br /&gt;
=== $left(a,len) ===&lt;br /&gt;
&lt;br /&gt;
Returns the first &#039;&#039;len&#039;&#039; characters from the left of &#039;&#039;a&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $len(a) ===&lt;br /&gt;
&lt;br /&gt;
Returns length of string &#039;&#039;a&#039;&#039; in characters.&lt;br /&gt;
&lt;br /&gt;
=== $len2(a) ===&lt;br /&gt;
&lt;br /&gt;
Returns length of string x in characters, respecting double-width character rules (double-width characters will be counted as two).&lt;br /&gt;
&lt;br /&gt;
=== $longer(a,b) ===&lt;br /&gt;
&lt;br /&gt;
Returns &#039;&#039;true&#039;&#039;, if string &#039;&#039;a&#039;&#039; is longer than string &#039;&#039;b&#039;&#039;, false otherwise.&lt;br /&gt;
&lt;br /&gt;
=== $lower(a) ===&lt;br /&gt;
&lt;br /&gt;
Converts &#039;&#039;a&#039;&#039; to lowercase.&lt;br /&gt;
&lt;br /&gt;
=== $longest(a,...) ===&lt;br /&gt;
&lt;br /&gt;
Returns the longest of its arguments. Can be used with an arbitrary number of strings.&lt;br /&gt;
&lt;br /&gt;
=== $num(n,len) ===&lt;br /&gt;
&lt;br /&gt;
Formats the integer number &#039;&#039;n&#039;&#039; in decimal notation with &#039;&#039;len&#039;&#039; digits. Pads with zeros from the left if necessary.&lt;br /&gt;
&lt;br /&gt;
=== $pad(x,len) ===&lt;br /&gt;
&lt;br /&gt;
Pads &#039;&#039;x&#039;&#039; from the left with spaces to &#039;&#039;len&#039;&#039; characters.&lt;br /&gt;
&lt;br /&gt;
=== $pad_right(x,y) ===&lt;br /&gt;
&lt;br /&gt;
Pads &#039;&#039;x&#039;&#039; from the right with spaces to &#039;&#039;len&#039;&#039; characters.&lt;br /&gt;
&lt;br /&gt;
=== $pad(x,len,char) ===&lt;br /&gt;
&lt;br /&gt;
Pads &#039;&#039;x&#039;&#039; from the left with &#039;&#039;char&#039;&#039; to &#039;&#039;len&#039;&#039; characters.&lt;br /&gt;
&lt;br /&gt;
=== $pad_right(x,len,char) ===&lt;br /&gt;
&lt;br /&gt;
Pads &#039;&#039;x&#039;&#039; from the right with &#039;&#039;char&#039;&#039; to &#039;&#039;len&#039;&#039; characters.&lt;br /&gt;
&lt;br /&gt;
=== $padcut(x,len) ===&lt;br /&gt;
&lt;br /&gt;
Returns first &#039;&#039;len&#039;&#039; characters from the left of &#039;&#039;x&#039;&#039;, if &#039;&#039;x&#039;&#039; is longer than &#039;&#039;len&#039;&#039; characters. Otherwise pads &#039;&#039;x&#039;&#039; from the left with spaces to &#039;&#039;len&#039;&#039; characters.&lt;br /&gt;
&lt;br /&gt;
=== $padcut_right(x,len) ===&lt;br /&gt;
&lt;br /&gt;
Returns first &#039;&#039;len&#039;&#039; characters from the left of &#039;&#039;x&#039;&#039;, if &#039;&#039;x&#039;&#039; is longer than &#039;&#039;len&#039;&#039; characters. Otherwise pads &#039;&#039;x&#039;&#039; from the right with spaces to &#039;&#039;len&#039;&#039; characters.&lt;br /&gt;
&lt;br /&gt;
=== $progress(pos,range,len,a,b) ===&lt;br /&gt;
&lt;br /&gt;
Creates a progress bar: &#039;&#039;pos&#039;&#039; contains position, &#039;&#039;range&#039;&#039; contains range, &#039;&#039;len&#039;&#039; progress bar length in characters, &#039;&#039;a&#039;&#039; and &#039;&#039;b&#039;&#039; are characters to build progress bar with.&lt;br /&gt;
&lt;br /&gt;
Example:&#039;&#039;$progress(%_time_elapsed_seconds%, %_time_total_seconds%, 20,&#039;#&#039;,&#039;=&#039;)&#039;&#039; produces &amp;quot;====#===============&amp;quot;, the # character is moving with playback position.&lt;br /&gt;
&lt;br /&gt;
=== $progress2(pos,range,len,a,b) ===&lt;br /&gt;
&lt;br /&gt;
Creates a progress bar: &#039;&#039;pos&#039;&#039; contains position, &#039;&#039;range&#039;&#039; contains range, &#039;&#039;len&#039;&#039; progress bar length in characters, &#039;&#039;a&#039;&#039; and &#039;&#039;b&#039;&#039; are characters to build progress bar with. Produces different appearance than &#039;&#039;$progress&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $repeat(a,n) ===&lt;br /&gt;
&lt;br /&gt;
Returns &#039;&#039;n&#039;&#039; copies of &#039;&#039;a&#039;&#039;. Note that &#039;&#039;a&#039;&#039; is evaluated once before its value is used, so &#039;&#039;$repeat&#039;&#039; cannot be used for loops.&lt;br /&gt;
&lt;br /&gt;
=== $replace(a,b,c) ===&lt;br /&gt;
&lt;br /&gt;
Replaces all occurrences of string &#039;&#039;b&#039;&#039; in string &#039;&#039;a&#039;&#039; with string &#039;&#039;c&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Can also be used with an arbitrary number of arguments. Note that &#039;&#039;$replace(a,b1,c1,b2,c2)&#039;&#039; is generally not the same as &#039;&#039;$replace($replace(a,b1,c1),b2,c2)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$replace(ab,a,b,b,c)&#039;&#039; -&amp;gt; &amp;quot;bc&amp;quot;, &#039;&#039;$replace($replace(ab,a,b),b,c)&#039;&#039; -&amp;gt; &amp;quot;cc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== $right(a,len) ===&lt;br /&gt;
&lt;br /&gt;
Returns the first &#039;&#039;len&#039;&#039; characters from the right of &#039;&#039;a&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $roman(n) ===&lt;br /&gt;
&lt;br /&gt;
Formats the integer number &#039;&#039;n&#039;&#039; in roman notation.&lt;br /&gt;
&lt;br /&gt;
=== $shortest ===&lt;br /&gt;
&lt;br /&gt;
Returns the shortest of its arguments. Can be used with an arbitrary number of strings.&lt;br /&gt;
&lt;br /&gt;
=== $strchr(s,c) ===&lt;br /&gt;
&lt;br /&gt;
Finds first occurence of character &#039;&#039;c&#039;&#039; in string &#039;&#039;s&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$strchr(abca,a)&#039;&#039; -&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
=== $strrchr(s,c) ===&lt;br /&gt;
&lt;br /&gt;
Finds last occurence of character &#039;&#039;c&#039;&#039; in string &#039;&#039;s&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$strrchr(abca,a)&#039;&#039; -&amp;gt; 4&lt;br /&gt;
&lt;br /&gt;
=== $strstr(s1,s2) ===&lt;br /&gt;
&lt;br /&gt;
Finds first occurence of string &#039;&#039;s2&#039;&#039; in string &#039;&#039;s1&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $strcmp(s1,s2) ===&lt;br /&gt;
&lt;br /&gt;
Performs a case-sensitive comparison of the strings &#039;&#039;s1&#039;&#039; and &#039;&#039;s2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $stricmp(s1,s2) ===&lt;br /&gt;
&lt;br /&gt;
Performs a case-insensitive comparison of the strings &#039;&#039;s1&#039;&#039; and &#039;&#039;s2&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $substr(s,m,n) ===&lt;br /&gt;
&lt;br /&gt;
Returns substring of string &#039;&#039;s&#039;&#039;, starting from &#039;&#039;m&#039;&#039;-th character and ending at &#039;&#039;n&#039;&#039;-th character.&lt;br /&gt;
&lt;br /&gt;
=== $trim(s) ===&lt;br /&gt;
&lt;br /&gt;
Removes leading and trailing spaces from string &#039;&#039;s&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== $tab() ===&lt;br /&gt;
&lt;br /&gt;
Inserts one tabulator character.&lt;br /&gt;
&lt;br /&gt;
=== $tab(n) ===&lt;br /&gt;
&lt;br /&gt;
Inserts &#039;&#039;n&#039;&#039; tabulator characters.&lt;br /&gt;
&lt;br /&gt;
=== $upper(s) ===&lt;br /&gt;
&lt;br /&gt;
Converts string &#039;&#039;s&#039;&#039; to uppercase.&lt;br /&gt;
&lt;br /&gt;
= Track info =&lt;br /&gt;
&lt;br /&gt;
The functions and fields in this section can be used to access information about tracks.&lt;br /&gt;
&lt;br /&gt;
== Metadata ==&lt;br /&gt;
&lt;br /&gt;
=== $meta(name) ===&lt;br /&gt;
Returns value of tag called &#039;&#039;name&#039;&#039;. If multiple values of that tag exist, they are concatenated with &amp;quot;, &amp;quot; as separator.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$meta(artist)&#039;&#039; -&amp;gt; &amp;quot;He, She, It&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== $meta(name,n) ===&lt;br /&gt;
Returns value of &#039;&#039;n&#039;&#039;-th tag called &#039;&#039;name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$meta(artist,2)&#039;&#039; -&amp;gt; &amp;quot;She&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== $meta_sep(name,sep) ===&lt;br /&gt;
Returns value of tag called &#039;&#039;name&#039;&#039;. If multiple values of that tag exist, they are concatenated with &#039;&#039;sep&#039;&#039; as separator.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$meta_sep(artist,&#039; + &#039;)&#039;&#039; -&amp;gt; &amp;quot;He + She + It&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== $meta_sep(name,sep,lastsep) ===&lt;br /&gt;
Returns value of tag called &#039;&#039;name&#039;&#039;. If multiple values of that tag exist, they are concatenated with &#039;&#039;sep&#039;&#039; as separator between all but the last two values which are concatenated with &#039;&#039;lastsep&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$metasep(artist,&#039;, &#039;,&#039;, and &#039;)&#039;&#039; -&amp;gt; &amp;quot;He, She, and It&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== $meta_test(...) === &lt;br /&gt;
Returns &#039;&#039;true&#039;&#039;, if all given tags exist.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$meta_test(artist,title)&#039;&#039; -&amp;gt; true&lt;br /&gt;
&lt;br /&gt;
=== $meta_num(name) ===&lt;br /&gt;
Returns the number of values for the tag called &#039;&#039;name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$meta_num(artist)&#039;&#039; -&amp;gt; 3&lt;br /&gt;
&lt;br /&gt;
=== $tracknumber() ===&lt;br /&gt;
Returns the tracknumber padded to 2 digits with zeroes.&lt;br /&gt;
&lt;br /&gt;
=== $tracknumber(n) ===&lt;br /&gt;
Returns the tracknumber padded to &#039;&#039;n&#039;&#039; digits with zeros.&lt;br /&gt;
&lt;br /&gt;
== Technical information ==&lt;br /&gt;
&lt;br /&gt;
=== $info(name) ===&lt;br /&gt;
Returns value of technical information field called &#039;&#039;name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$info(channels)&#039;&#039; -&amp;gt; 2&lt;br /&gt;
&lt;br /&gt;
=== $codec() ===&lt;br /&gt;
Returns codec of track. If no codec field is present, it the uses file extension.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$codec()&#039;&#039; -&amp;gt; &amp;quot;WavPack&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== $channels() === &lt;br /&gt;
Returns number of channels in text format.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;$channels()&#039;&#039; -&amp;gt; &amp;quot;stereo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== %__replaygain_album_gain% ===&lt;br /&gt;
Returns ReplayGain album gain value. //Not available through// &#039;&#039;$info(replaygain_album_gain)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== %__replaygain_album_peak% ===&lt;br /&gt;
Returns ReplayGain album peak value. //Not available through// &#039;&#039;$info(replaygain_album_peak)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== %__replaygain_track_gain% ===&lt;br /&gt;
Returns ReplayGain track gain value. //Not available through// &#039;&#039;$info(replaygain_track_gain)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== %__replaygain_track_peak% ===&lt;br /&gt;
Returns ReplayGain track peak value. //Not available through// &#039;&#039;$info(replaygain_track_peak)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Special fields ==&lt;br /&gt;
&lt;br /&gt;
=== $extra(name) ===&lt;br /&gt;
Returns the value of the special field called &#039;&#039;name&#039;&#039;. These fields can also be accessed as &#039;&#039;%_name%&#039;&#039;; note the additional underscore. The following field names can be used:&lt;br /&gt;
==== filename ====&lt;br /&gt;
Returns the filename without directory and extension.&lt;br /&gt;
==== filename_ext ====&lt;br /&gt;
Returns the filename with extension, but without the directory.&lt;br /&gt;
==== directoryname ====&lt;br /&gt;
Returns the name of the parent directory only, not the complete path.&lt;br /&gt;
==== path ====&lt;br /&gt;
Returns the path.&lt;br /&gt;
==== path_raw ====&lt;br /&gt;
Returns the path as URL including the protocol scheme.&lt;br /&gt;
==== subsong ====&lt;br /&gt;
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.&lt;br /&gt;
==== foobar2000_version ====&lt;br /&gt;
Returns a string representing the version of foobar2000.&lt;br /&gt;
==== length ====&lt;br /&gt;
Returns the length of the track formatted as hours, minutes, and seconds.&lt;br /&gt;
==== length_ex ====&lt;br /&gt;
Returns the length of the track formatted as hours, minutes, seconds, and milliseconds.&lt;br /&gt;
==== length_seconds ====&lt;br /&gt;
Returns the length of the track in seconds.&lt;br /&gt;
==== length_seconds_fp ====&lt;br /&gt;
Returns the length of the track in seconds as floating point number.&lt;br /&gt;
==== length_samples ====&lt;br /&gt;
Returns the length of the track in samples.&lt;br /&gt;
&lt;br /&gt;
= Variable operations =&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== $get(name) ===&lt;br /&gt;
&lt;br /&gt;
Returns the value that was last stored in the variable &#039;&#039;name&#039;&#039;, if the variable was not defined (yet), it returns nothing. The truth value returned by &#039;&#039;$get&#039;&#039; indicates if the variable &#039;&#039;name&#039;&#039; was defined.&lt;br /&gt;
&lt;br /&gt;
=== $put(name,value) ===&lt;br /&gt;
&lt;br /&gt;
Stores &#039;&#039;value&#039;&#039; in the variable &#039;&#039;name&#039;&#039; and returns &#039;&#039;value&#039;&#039; unaltered.&lt;br /&gt;
&lt;br /&gt;
=== $puts(name,value) ===&lt;br /&gt;
&lt;br /&gt;
Stores &#039;&#039;value&#039;&#039; in the variable &#039;&#039;name&#039;&#039; and returns only the truth value of &#039;&#039;value&#039;&#039;.&lt;/div&gt;</summary>
		<author><name>Cosmo</name></author>
	</entry>
</feed>